X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fincludes%2Fdb%2Fgl_db_banking.inc;h=9d2a585d6e88187d054e1a0dd0cbf113be1abc4b;hb=5089910120614dfb8b76a0271b43739f90f38b01;hp=58825018e3e12db6fb01beaac3bb9aa4aec86079;hpb=4a4cafb0a0184fdcc96fcde391f01ce02dbf31b1;p=fa-stable.git diff --git a/gl/includes/db/gl_db_banking.inc b/gl/includes/db/gl_db_banking.inc index 58825018..9d2a585d 100644 --- a/gl/includes/db/gl_db_banking.inc +++ b/gl/includes/db/gl_db_banking.inc @@ -87,12 +87,21 @@ function add_bank_transfer($from_account, $to_account, $date_, global $Refs, $SysPrefs; begin_transaction(); + $args = func_get_args(); if (count($args) < 7) $args[] = 0; + $args = (object)array_combine(array('from_account', 'to_account', 'date_', 'amount', + 'ref', 'memo_', 'charge'), $args); + $args->trans_no = 0; + hook_db_prewrite($args, ST_BANKTRANSFER); $trans_type = ST_BANKTRANSFER; $currency = get_bank_account_currency($from_account); $trans_no = get_next_trans_no($trans_type); + + $fromact = get_bank_account($from_account); + $toact = get_bank_account($to_account); + $person_id = _("From")." ".$fromact['bank_account_name']." "._("To")." ".$toact['bank_account_name']; $from_gl_account = get_bank_gl_account($from_account); $to_gl_account = get_bank_gl_account($to_account); @@ -100,17 +109,18 @@ function add_bank_transfer($from_account, $to_account, $date_, $exchanged = false; $total = 0; // do the source account postings - $total += add_gl_trans($trans_type, $trans_no, $date_, $from_gl_account, 0, 0, "", + $total += add_gl_trans($trans_type, $trans_no, $date_, $from_gl_account, 0, 0, $person_id, -($amount + $charge), $currency); add_bank_trans($trans_type, $trans_no, $from_account, $ref, $date_, -($amount + $charge), - PT_MISC, "", $currency, + PT_MISC, $person_id, $currency, "Cannot insert a source bank transaction"); if ($SysPrefs->auto_currency_revaluation()) { $trans_no1 = get_next_trans_no(ST_JOURNAL); - if (add_exchange_variation($trans_no1, $date_, $from_account, $from_gl_account, $currency)) + if (add_exchange_variation($trans_no1, $date_, $from_account, $from_gl_account, + $currency, PT_MISC, $person_id)) $exchanged = true; } if ($charge != 0) @@ -118,24 +128,25 @@ function add_bank_transfer($from_account, $to_account, $date_, /* Now Debit bank charge account with charges */ $charge_act = get_company_pref('bank_charge_act'); $total += add_gl_trans($trans_type, $trans_no, $date_, - $charge_act, 0, 0, "", $charge, $currency); + $charge_act, 0, 0, $person_id, $charge, $currency); } // do the destination account postings - $total += add_gl_trans($trans_type, $trans_no, $date_, $to_gl_account, 0, 0, "", + $total += add_gl_trans($trans_type, $trans_no, $date_, $to_gl_account, 0, 0, $person_id, $amount, $currency); /*Post a balance post if $total != 0 */ add_gl_balance($trans_type, $trans_no, $date_, -$total); add_bank_trans($trans_type, $trans_no, $to_account, $ref, - $date_, $amount, PT_MISC, "", + $date_, $amount, PT_MISC, $person_id, $currency, "Cannot insert a destination bank transaction"); if ($SysPrefs->auto_currency_revaluation()) { $currency = get_bank_account_currency($to_account); - if ($exchanged || add_exchange_variation($trans_no1, $date_, $to_account, $to_gl_account, $currency)) + if ($exchanged || add_exchange_variation($trans_no1, $date_, $to_account, $to_gl_account, + $currency, PT_MISC, $person_id)) { $ref1 = $Refs->get_next(ST_JOURNAL); $Refs->save(ST_JOURNAL, $trans_no1, $ref1); @@ -147,11 +158,12 @@ function add_bank_transfer($from_account, $to_account, $date_, $Refs->save($trans_type, $trans_no, $ref); add_audit_trail($trans_type, $trans_no, $date_); + $args->trans_no = $trans_no; + hook_db_postwrite($args, ST_BANKTRANSFER); commit_transaction(); return $trans_no; } - //---------------------------------------------------------------------------------- // Add bank payment or deposit to database. // @@ -162,8 +174,10 @@ function add_bank_transfer($from_account, $to_account, $date_, // $person_detail_id - customer branch id or not used // // returns an array of (inserted trans type, trans no) - -function add_bank_transaction($trans_type, $from_account, $items, $date_, +// +// FIXME -revise code for update case +// +function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $date_, $person_type_id, $person_id, $person_detail_id, $ref, $memo_, $use_transaction=true) { global $Refs, $SysPrefs; @@ -177,6 +191,15 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, if ($use_transaction) begin_transaction(); + $args = func_get_args(); if (count($args) < 11) $args[] = true; + $args = (object)array_combine(array('trans_type', 'trans_no', 'from_account', 'items', 'date_', + 'person_type_id', 'person_id', 'person_detail_id', 'ref', 'memo_', 'use_transaction'), + $args); + hook_db_prewrite($args, $trans_type); + + if ($trans_no) + clear_bank_transaction($_SESSION['pay_items']->trans_type, $_SESSION['pay_items']->order_id); + $currency = get_bank_account_currency($from_account); $bank_gl_account = get_bank_gl_account($from_account); @@ -192,7 +215,7 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, // we need to negate it too $cust_amount = -$cust_amount; - $trans_no = write_customer_trans($trans_type, 0, $person_id, $person_detail_id, $date_, + $trans_no = write_customer_trans($trans_type, $trans_no, $person_id, $person_detail_id, $date_, $ref, $cust_amount); } @@ -205,13 +228,14 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, // we need to negate it too $supp_amount = -$supp_amount; - $trans_no = add_supp_trans($trans_type, $person_id, $date_, '', - $ref, "", $supp_amount, 0, 0); + $trans_no = write_supp_trans($trans_type, $trans_no, $person_id, $date_, '', + $ref, "", $supp_amount, 0, 0); } else { - $trans_no = get_next_trans_no($trans_type); + if (!$trans_no) + $trans_no = get_next_trans_no($trans_type); $do_exchange_variance = $SysPrefs->auto_currency_revaluation(); if ($do_exchange_variance) $trans_no1 = get_next_trans_no(ST_JOURNAL); @@ -248,9 +272,8 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, "Cannot insert a destination bank transaction"); if ($do_exchange_variance) { - if (add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id, - $currency, $person_type_id, $person_id)) - $exchanged = true; + add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id, + $currency, $person_type_id, $person_id); } } // store tax details if the gl account is a tax account @@ -276,17 +299,43 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, add_audit_trail(ST_JOURNAL, $trans_no1, $date_); } } + add_comments($trans_type, $trans_no, $date_, $memo_); $Refs->save($trans_type, $trans_no, $ref); add_audit_trail($trans_type, $trans_no, $date_); + $args->trans_no = $trans_no; + hook_db_postwrite($args, $trans_type); if ($use_transaction) commit_transaction(); return array($trans_type, $trans_no); } - //---------------------------------------------------------------------------------------- +function clear_bank_transaction($type, $type_no) +{ + + hook_db_prevoid($type, $type_no); + + $sql = "DELETE FROM ".TB_PREF."bank_trans + WHERE type=".db_escape($type)." AND trans_no=".db_escape($type_no); + + $result = db_query($sql, "could not clear bank transactions for type=$type and trans_no=$type_no"); + + clear_gl_trans($type, $type_no, true); + + // in case it's a customer trans - probably better to check first + void_cust_allocations($type, $type_no); + + // in case it's a supplier trans - probably better to check first + void_supp_allocations($type, $type_no); + clear_supp_trans($type, $type_no); + + clear_trans_tax_details($type, $type_no); + + delete_comments($type, $type_no); +} + ?> \ No newline at end of file