Fixed allocation date for customer payments entry, additional fixes for strict sql...
[fa-stable.git] / sales / customer_payments.php
index 5e5d3b9d5b7c8d03e08c58b7139c03445275b81a..f314b9889b250f05289022009bdeaa913de51644 100644 (file)
@@ -51,8 +51,9 @@ if (!isset($_POST['bank_account'])) { // first page call
                $inv = get_customer_trans($_GET['SInvoice'], ST_SALESINVOICE);
                $dflt_act = get_default_bank_account($inv['curr_code']);
                $_POST['bank_account'] = $dflt_act['id'];
-               if($inv) {
-                       $_SESSION['alloc']->person_id = $_POST['customer_id'] = $inv['debtor_no'];
+               if ($inv) {
+                       $_POST['customer_id'] = $inv['debtor_no'];
+                       $_SESSION['alloc']->set_person($inv['debtor_no'], PT_CUSTOMER);
                        $_SESSION['alloc']->read();
                        $_POST['BranchID'] = $inv['branch_code'];
                        $_POST['DateBanked'] = sql2date($inv['tran_date']);
@@ -81,8 +82,11 @@ if (list_updated('BranchID')) {
 }
 
 if (!isset($_POST['customer_id'])) {
-       $_SESSION['alloc']->person_id = $_POST['customer_id'] = get_global_customer(false);
+       $_POST['customer_id'] = get_global_customer(false);
+       $_SESSION['alloc']->set_person($_POST['customer_id'], PT_CUSTOMER);
        $_SESSION['alloc']->read();
+       $dflt_act = get_default_bank_account($_SESSION['alloc']->person_curr);
+       $_POST['bank_account'] = $dflt_act['id'];
 }
 if (!isset($_POST['DateBanked'])) {
        $_POST['DateBanked'] = new_doc_date();
@@ -170,7 +174,7 @@ function can_process()
                return false;
        }
 
-       if (isset($_POST['charge']) && !check_num('charge', 0)) {
+       if (isset($_POST['charge']) && (!check_num('charge', 0) || $_POST['charge'] == $_POST['amount'])) {
                display_error(_("The entered amount is invalid or negative and cannot be processed."));
                set_focus('charge');
                return false;
@@ -239,6 +243,7 @@ if (get_post('AddPaymentItem') && can_process()) {
                input_num('amount'), input_num('discount'), $_POST['memo_'], 0, input_num('charge'), input_num('bank_amount', input_num('amount')));
 
        $_SESSION['alloc']->trans_no = $payment_no;
+       $_SESSION['alloc']->date_ = $_POST['DateBanked'];
        $_SESSION['alloc']->write();
 
        unset($_SESSION['alloc']);
@@ -322,8 +327,10 @@ if (list_updated('customer_id') || ($new && list_updated('bank_account'))) {
        $_SESSION['alloc']->set_person($_POST['customer_id'], PT_CUSTOMER);
        $_SESSION['alloc']->read();
        $_POST['memo_'] = $_POST['amount'] = $_POST['discount'] = '';
-       if (list_updated('customer_id'))
-               $_POST['bank_account'] = get_default_bank_account($_SESSION['alloc']->person_curr);
+       if (list_updated('customer_id')) {
+               $dflt_act = get_default_bank_account($_SESSION['alloc']->person_curr);
+               $_POST['bank_account'] = $dflt_act['id'];
+       }
        $Ajax->activate('_page_body');
 }