- begin_transaction();
-
- $supplier_currency = get_supplier_currency($supplier_id);
- $bank_account_currency = get_bank_account_currency($bank_account);
-
- $supp_amount = exchange_from_to($amount, $bank_account_currency, $supplier_currency, $date_);
- $supp_discount = exchange_from_to($discount, $bank_account_currency, $supplier_currency, $date_);
-
- // it's a supplier payment
- $trans_type = 22;
+ global $Refs;
+
+ begin_transaction(__FUNCTION__, func_get_args());
+ $args = func_get_args(); while (count($args) < 10) $args[] = 0;
+ $args = (object)array_combine(array('trans_no', 'supplier_id', 'bank_account', 'date_',
+ 'ref', 'bank_amount', 'supp_amount', 'supp_discount', 'memo_', 'bank_charge'), $args);
+ $args->trans_no = 0;
+ hook_db_prewrite( $args, ST_SUPPAYMENT);
+
+ if ($trans_no != 0) {
+ delete_comments(ST_SUPPAYMENT, $trans_no);
+ void_bank_trans(ST_SUPPAYMENT, $trans_no, true);
+ void_gl_trans(ST_SUPPAYMENT, $trans_no, true);
+ void_cust_allocations(ST_SUPPAYMENT, $trans_no, $date_);
+ }
+
+ $bank = get_bank_account($bank_account);
+
+ if (!$bank_amount) // auto
+ {
+ $rate = get_exchange_rate_from_to(get_supplier_currency($supplier_id),
+ $bank['bank_curr_code'], $date_ );
+ $bank_amount = $supp_amount/$rate;
+ }
+
+ if ($bank['bank_curr_code'] == get_company_currency()) // [0002506]
+ $rate = $bank_amount/$supp_amount;
+ else
+ $rate = 0;