return $payment_id;
}
-//------------------------------------------------------------------------------------------------
-/*
- This is legacy code, leaved here to provide compatibility for 2.3 extension modules.
- Will be removed in 2.4 due to design issues.
-*/
-function add_supp_payment($supplier_id, $date_, $bank_account,
- $amount, $discount, $ref, $memo_, $rate=0, $charge=0)
-{
- global $Refs;
-
- begin_transaction();
- $args = func_get_args(); while (count($args) < 9) $args[] = 0;
- $args = (object)array_combine(array('supplier_id', 'date_', 'bank_account',
- 'amount', 'discount', 'ref', 'memo_', 'rate', 'charge'), $args);
- $args->trans_no = 0;
- hook_db_prewrite( $args, ST_SUPPAYMENT);
-
- $supplier_currency = get_supplier_currency($supplier_id);
- $bank_account_currency = get_bank_account_currency($bank_account);
- $bank_gl_account = get_bank_gl_account($bank_account);
-
- if ($rate == 0)
- {
- $supp_amount = exchange_from_to($amount, $bank_account_currency, $supplier_currency, $date_);
- $supp_discount = exchange_from_to($discount, $bank_account_currency, $supplier_currency, $date_);
- $supp_charge = exchange_from_to($charge, $bank_account_currency, $supplier_currency, $date_);
- }
- else
- {
- $supp_amount = round($amount / $rate, user_price_dec());
- $supp_discount = round($discount / $rate, user_price_dec());
- $supp_charge = round($charge / $rate, user_price_dec());
- }
-
-
- // it's a supplier payment
- $trans_type = ST_SUPPAYMENT;
-
- /* Create a supp_trans entry for the supplier payment */
- $payment_id = write_supp_trans($trans_type, 0, $supplier_id, $date_, $date_,
- $ref, "", -$supp_amount, 0, -$supp_discount, "", $rate);
-
- // Now debit creditors account with payment + discount
-
- $total = 0;
- $supplier_accounts = get_supplier_accounts($supplier_id);
- $total += add_gl_trans_supplier($trans_type, $payment_id, $date_, $supplier_accounts["payable_account"], 0, 0,
- $supp_amount + $supp_discount, $supplier_id, "", $rate);
-
- // Now credit discount received account with discounts
- if ($supp_discount != 0)
- {
- $total += add_gl_trans_supplier($trans_type, $payment_id, $date_, $supplier_accounts["payment_discount_account"], 0, 0,
- -$supp_discount, $supplier_id, "", $rate);
- }
-
- if ($supp_charge != 0)
- {
- $charge_act = get_bank_charge_account($bank_account);
- $total += add_gl_trans_supplier($trans_type, $payment_id, $date_, $charge_act, 0, 0,
- $supp_charge, $supplier_id, "", $rate);
- }
-
- if ($supp_amount != 0)
- {
- $total += add_gl_trans_supplier($trans_type, $payment_id, $date_, $bank_gl_account, 0, 0,
- -($supp_amount + $supp_charge), $supplier_id, "", $rate);
- }
-
- /*Post a balance post if $total != 0 */
- add_gl_balance($trans_type, $payment_id, $date_, -$total, PT_SUPPLIER, $supplier_id);
-
- /*now enter the bank_trans entry */
- add_bank_trans($trans_type, $payment_id, $bank_account, $ref,
- $date_, -($amount + $supp_charge), PT_SUPPLIER,
- $supplier_id, $bank_account_currency,
- "Could not add the supplier payment bank transaction");
-
- add_comments($trans_type, $payment_id, $date_, $memo_);
-
- $Refs->save($trans_type, $payment_id, $ref);
-
- $args->trans_no = $payment_id;
- hook_db_postwrite($args, ST_SUPPAYMENT);
- commit_transaction();
-
- return $payment_id;
-}
-
//------------------------------------------------------------------------------------------------
function void_supp_payment($type, $type_no)
$inv->ex_rate = $cart->ex_rate;
$inv_no = add_supp_invoice($inv);
+
// presume supplier data need correction
if ($inv->stored_algorithm != $inv->tax_algorithm)
update_supp_tax_algorithm($inv->supplier_id, $inv->tax_algorithm);
if ($cart->cash_account) {
-
- $pmt_no = add_supp_payment($inv->supplier_id, $inv->tran_date, $cart->cash_account,
- $total, 0, $Refs->get_next(ST_SUPPAYMENT),
- _('Payment for:').$inv->supp_reference .' ('.$type_shortcuts[ST_SUPPINVOICE].$inv_no.')');
+ $pmt_no = write_supp_payment(0, $inv->supplier_id, $cart->cash_account, $inv->tran_date, $Refs->get_next(ST_SUPPAYMENT),
+ $total, 0, _('Payment for:').$inv->supp_reference .' ('.$type_shortcuts[ST_SUPPINVOICE].$inv_no.')');
add_supp_allocation($total, ST_SUPPAYMENT, $pmt_no, ST_SUPPINVOICE, $inv_no, $inv->tran_date);
update_supp_trans_allocation(ST_SUPPINVOICE, $inv_no);
update_supp_trans_allocation(ST_SUPPAYMENT, $pmt_no);