Mysqli errors: Trying to access array offset on value of type bool. Fixed. Please...
[fa-stable.git] / gl / includes / ui / gl_bank_ui.inc
index 5425edfbaa605af1d5e1b89083e2019f5febddff..a4a95b85a3027526bcd73d3964940e7f0273cb0b 100644 (file)
 ***********************************************************************/
 function display_bank_header(&$order)
 {
-       global $Ajax, $Refs;
+       global $Ajax;
        $payment = $order->trans_type == ST_BANKPAYMENT;
 
        $customer_error = false;
        div_start('pmt_header');
 
-       start_outer_table(TABLESTYLE2, "width=90%"); // outer table
+       start_outer_table(TABLESTYLE2, "width='90%'"); // outer table
 
        table_section(1);
        
     date_row(_("Date:"), 'date_', '', true, 0, 0, 0, null, true);
 
-       ref_row(_("Reference:"), 'ref', '');
+       ref_row(_("Reference:"), 'ref', '', $order->reference, false, $order->trans_type, get_post('date_'));
 
        table_section(2, "33%");
 
@@ -47,6 +47,7 @@ function display_bank_header(&$order)
                $Ajax->activate('code_id');
                $Ajax->activate('pagehelp');
                $Ajax->activate('editors');
+               $Ajax->activate('footer');
        }
     payment_person_types_list_row( $payment ? _("Pay To:"):_("From:"),
                 'PayType', $_POST['PayType'], true);
@@ -56,9 +57,6 @@ function display_bank_header(&$order)
                text_row_ex($payment ?_("To the Order of:"):_("Name:"),
                                 'person_id', 40, 50);
                break;
-               //case PT_WORKORDER :
-       //      workorders_list_row(_("Work Order:"), 'person_id', null);
-       //      break;
                case PT_SUPPLIER :
                supplier_list_row(_("Supplier:"), 'person_id', null, false, true, false, true);
                break;
@@ -76,7 +74,7 @@ function display_bank_header(&$order)
                        hidden('PersonDetailID');
                }
                $trans = get_customer_habit($_POST['person_id']); // take care of customers on hold
-               if ($trans['dissallow_invoices'] != 0)
+               if (is_array($trans) && $trans['dissallow_invoices'] != 0)
                {
                        if ($payment)
                        {
@@ -93,19 +91,17 @@ function display_bank_header(&$order)
                        $qid = get_quick_entry(get_post('person_id'));
                        if (list_updated('person_id')) {
                                unset($_POST['totamount']); // enable default
+                               $Ajax->activate('footer');
                                $Ajax->activate('totamount');
                        }
                        amount_row($qid['base_desc'].":", 'totamount', price_format($qid['base_amount']),
                                 null, "  ".submit('go', _("Go"), false, false, true));
                        break;  
-               //case payment_person_types::Project() :
-       //      dimensions_list_row(_("Dimension:"), 'person_id', $_POST['person_id'], false, null, true);
-       //      break;
     }
 
        table_section(3, "33%");
 
-       if (!$order->order_id && !list_updated('bank_account'))
+       if (!$order->order_id && !get_post('bank_account'))
        {
                if ($_POST['PayType'] == PT_CUSTOMER)
                        $_POST['bank_account'] = get_default_customer_bank_account($_POST['person_id']);
@@ -114,14 +110,14 @@ function display_bank_header(&$order)
                else
                        unset($_POST['bank_account']);
        }               
-    bank_accounts_list_row( $payment ? _("From:") : _("To:"), 'bank_account', null, true);
+    
+    bank_accounts_list_row( $payment ? _("From:") : _("Into:"), 'bank_account', null, true);
     if ($payment)
                bank_balance_row($_POST['bank_account']);
-       
-       $person_currency = payment_person_currency($_POST['PayType'], $_POST['person_id']);
+
        $bank_currency = get_bank_account_currency($_POST['bank_account']);
 
-       exchange_rate_display($bank_currency, $person_currency, $_POST['date_']);
+       exchange_rate_display(get_company_currency(), $bank_currency, $_POST['date_']);
 
        end_outer_table(1); // outer table
 
@@ -144,12 +140,12 @@ function display_gl_items($title, &$order)
        display_heading($title);
 
     div_start('items_table');
-       start_table(TABLESTYLE, "colspan=7 width=95%");
+       start_table(TABLESTYLE, "width='95%'");
 
        if ($dim == 2)
                $th = array(_("Account Code"), _("Account Description"), _("Dimension")." 1",
                        _("Dimension")." 2", _("Amount"), _("Memo"), "");
-       else if ($dim == 1)
+       elseif ($dim == 1)
                $th = array(_("Account Code"), _("Account Description"), _("Dimension"),
                        _("Amount"), _("Memo"), "");
        else
@@ -174,7 +170,6 @@ function display_gl_items($title, &$order)
                                label_cell(get_dimension_string($item->dimension_id, true));
                if ($dim > 1)
                                label_cell(get_dimension_string($item->dimension2_id, true));
-                       //amount_cell(abs($item->amount));
                        if ($order->trans_type == ST_BANKDEPOSIT)
                                amount_cell(-$item->amount);
                        else            
@@ -223,48 +218,43 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
                $_POST['LineMemo'] = $item->reference;
 
                hidden('Index', $id);
-               echo gl_all_accounts_list('code_id', null, true, true);
-               if ($dim >= 1)
-                       dimensions_list_cells(null, 'dimension_id', null, true, " ", false, 1);
-               if ($dim > 1)
-                       dimensions_list_cells(null, 'dimension2_id', null, true, " ", false, 2);
            $Ajax->activate('items_table');
        }
        else
        {
-               $_POST['amount'] = price_format(0);
-               $_POST['dimension_id'] = 0;
-               $_POST['dimension2_id'] = 0;
-               //$_POST['LineMemo'] = ""; // let memo go to next line Joe Hunt 2010-05-30
                if(isset($_POST['_code_id_update'])) {
                            $Ajax->activate('code_id');
                }
-
-               if ($_POST['PayType'] == PT_CUSTOMER)
-               {
-                       $acc = get_branch_accounts($_POST['PersonDetailID']);
-                       $_POST['code_id'] = $acc['receivables_account'];
-               }
-               elseif ($_POST['PayType'] == PT_SUPPLIER)
+               if (list_updated('PayType') || list_updated('person_id'))
                {
-                       $acc = get_supplier_accounts($_POST['person_id']);
-                       $_POST['code_id'] = $acc['payable_account'];
-               }
-               //elseif ($_POST['PayType'] == PT_WORKORDER)
-               //      $_POST['code_id'] = get_company_pref('default_assembly_act');
-               else {
-                       $_POST['code_id'] =
-                               get_company_pref($payment ? 'default_cogs_act':'default_inv_sales_act');
+                       if ($_POST['PayType'] == PT_CUSTOMER)
+                       {
+                               $acc = get_branch_accounts($_POST['PersonDetailID']);
+                               $_POST['code_id'] = is_array($acc) ? $acc['receivables_account'] : '';
+                       }
+                       elseif ($_POST['PayType'] == PT_SUPPLIER)
+                       {
+                               $acc = get_supplier_accounts($_POST['person_id']);
+                               $_POST['code_id'] = is_array($acc) ? $acc['payable_account'] : '';
+                               $_POST['dimension_id'] = is_array($acc) ? $acc['dimension_id'] : '';
+                               $_POST['dimension2_id'] = is_array($acc) ? $acc['dimension2_id'] : '';
+                       }
+                       else {
+                               $_POST['code_id'] =
+                                       get_company_pref($payment ? 'default_cogs_act':'default_inv_sales_act');
+                       }
+                       $Ajax->activate('dimension_id');
+                       $Ajax->activate('dimension2_id');
                }
-               echo gl_all_accounts_list('code_id', null, true, true);
-               if ($dim >= 1)
-                       dimensions_list_cells(null, 'dimension_id', null, true, " ", false, 1);
-               if ($dim > 1)
-                       dimensions_list_cells(null, 'dimension2_id', null, true, " ", false, 2);
        }
-       if ($dim < 1)
+       echo gl_all_accounts_list('code_id', null, true, true);
+       if ($dim >= 1)
+               dimensions_list_cells(null, 'dimension_id', null, true, " ", false, 1);
+       else
                hidden('dimension_id', 0);
-       if ($dim < 2)
+       if ($dim > 1)
+               dimensions_list_cells(null, 'dimension2_id', null, true, " ", false, 2);
+       else
                hidden('dimension2_id', 0);
 
        amount_cells(null, 'amount');
@@ -290,16 +280,29 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
 
 //---------------------------------------------------------------------------------
 
-function gl_options_controls()
+function gl_options_controls($order)
 {
+       div_start('footer');
        echo "<br><table align='center'>";
 
+       $type = get_post('PayType');
+       $bank_curr = get_bank_account_currency(get_post('bank_account'));
+       $person_curr = $type == PT_CUSTOMER ? get_customer_currency(get_post('person_id')) 
+               : ($type == PT_SUPPLIER ? get_supplier_currency(get_post('person_id')) : $bank_curr);
+
+       if ($person_curr != $bank_curr)
+       {
+               $_POST['settled_amount'] =
+                       price_format(abs($order->gl_items_total() / get_exchange_rate_from_to($bank_curr, $person_curr, get_post('date_'))));
+               amount_row($type == PT_CUSTOMER ? _("Settled AR Amount:") :  _("Settled AP Amount:"),
+                        'settled_amount', null, null, $person_curr, user_price_dec());
+       }
        textarea_row(_("Memo"), 'memo_', null, 50, 3);
 
        echo "</table>";
+       div_end();
 }
 
 
 //---------------------------------------------------------------------------------
 
-?>
\ No newline at end of file