X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fincludes%2Fdb%2Fgl_journal.inc;fp=gl%2Fincludes%2Fdb%2Fgl_journal.inc;h=f3f49533d8ba388b5d96c1dd521bacc0df7f2e0d;hb=3b431d909abc53e4a4d712cbafa39ca556409d0e;hp=0000000000000000000000000000000000000000;hpb=c33fed6d8d791f7901f418345daafa9cda03c6a9;p=fa-stable.git diff --git a/gl/includes/db/gl_journal.inc b/gl/includes/db/gl_journal.inc new file mode 100644 index 00000000..f3f49533 --- /dev/null +++ b/gl/includes/db/gl_journal.inc @@ -0,0 +1,166 @@ +. +***********************************************************************/ +function add_journal($type, $trans_no, $amount, $tran_date, $currency, $reference, $source_ref='', $rate=1, + $event_date='', $doc_date='') +{ + $sql = "INSERT INTO ".TB_PREF."journal( + `type`,`trans_no`, `amount`, `currency`, `rate`, `reference`, `source_ref`, `tran_date`, + `event_date`, `doc_date`) + VALUES(" + .db_escape($type)."," + .db_escape($trans_no)."," + .db_escape($amount)."," + .db_escape($currency)."," + .db_escape($rate)."," + .db_escape($reference)."," + .db_escape($source_ref)."," + ."'".date2sql($tran_date)."'," + ."'".date2sql($event_date)."'," + ."'".date2sql($doc_date)."')"; + + return db_query($sql, 'cannot add journal entry'); +} + +function update_journal($type, $trans_no, $amount, $tran_date, $currency, $reference, $source_ref='', $rate=1, + $event_date='', $doc_date='') +{ + $sql = "UPDATE ".TB_PREF."journal SET " + ."`amount`=".db_escape($amount)."," + ."`currency`=".db_escape($currency)."," + ."`rate`=".db_escape($rate)."," + ."`reference`=".db_escape($reference)."," + ."`source_ref`=".db_escape($source_ref)."," + ."`tran_date`="."'".date2sql($tran_date)."'," + ."`event_date`="."'".date2sql($event_date)."'," + ."`doc_date`="."'".date2sql($doc_date)."') + WHERE `type`=".db_escape($type)." AND " ."`trans_no`=".db_escape($trans_no); + + return db_query($sql, 'cannot update journal entry'); +} + +function delete_journal($type, $trans_no) +{ + $sql = "DELETE FROM ".TB_PREF."journal + WHERE `type`=".db_escape($type)." AND " ."`trans_no`=".db_escape($trans_no); + + return db_query($sql, 'cannot delete journal entry'); +} + +function get_journal($type, $trans_no) +{ + $sql = "SELECT * FROM ".TB_PREF."journal + WHERE `type`=".db_escape($type)." AND " ."`trans_no`=".db_escape($trans_no); + + $myrow= db_query($sql, 'cannot retrieve journal entry'); + return db_fetch($myrow); +} + +// +// Write headers in debtor_trans for allocation purposes. +// Amount in customer currency +// +function write_cust_journal($trans_type, $trans_no, $branch_id, $date, $ref, $amount, $rate) +{ + // we have to select any branch_id for given AR_act - in fact w + $sql = "INSERT INTO ".TB_PREF."debtor_trans (trans_no, type, debtor_no, branch_code, tran_date, reference, ov_amount, rate) + SELECT " + .db_escape($trans_no).", ".db_escape($trans_type).", debtor_no," + .db_escape($branch_id).",'".date2sql($date)."', ".db_escape($ref)."," + .db_escape($amount).", ".db_escape($rate)." + FROM ".TB_PREF."cust_branch WHERE branch_code=".db_escape($branch_id); + + return db_query($sql, 'cannot write cust_journal'); +} + +// +// Write headers in supp_trans for allocation purposes. +// Amount in supplier currency +// +function write_supp_journal($trans_type, $trans_no, $supp_id, $date, $ref, $amount, $rate, $src_ref) +{ + $sql = "INSERT INTO ".TB_PREF."supp_trans (trans_no, type, supplier_id, tran_date, reference, ov_amount, rate, supp_reference) + VALUES (".db_escape($trans_no).", ".db_escape($trans_type).", ".db_escape($supp_id).", '".date2sql($date)."'," + .db_escape($ref).", ".db_escape($amount).",".db_escape($rate).",".db_escape($src_ref).")"; + + return db_query($sql, 'cannot write supp_journal'); +} + +//-------------------------------------------------------------------------------- +// Write/update journal entries. +// +function write_journal_entries(&$cart) +{ + global $Refs; + + $date_ = $cart->tran_date; + $ref = $cart->reference; + $memo_ = $cart->memo_; + $trans_type = $cart->trans_type; + $new = $cart->order_id == 0; + + begin_transaction(); + + if (!$new) + { + $msg = void_transaction($trans_type, $cart->order_id, Today(), _("Document reentered.")); + if ($msg) + { + display_error($msg); + return false; + } + } + + $trans_id = $cart->order_id = get_next_trans_no($trans_type); + $total = $cart->gl_items_total_debit(); + + $cart->write_gl(); + + add_journal($trans_type, $trans_id, $total, $date_ , $cart->currency, $ref, + $cart->source_ref, $cart->rate, $cart->event_date, $cart->doc_date); + + $Refs->save($trans_type, $trans_id, $ref); + if ($new) { + add_comments($trans_type, $trans_id, $date_, $memo_); + } else { + update_comments($trans_type, $trans_id, null, $memo_); + } + + add_audit_trail($trans_type, $trans_id, $date_); + + commit_transaction(); + + return $trans_id; +} + +//---------------------------------------------------------------------------------------- + +function void_journal_trans($type, $type_no, $use_transaction=true) +{ + if ($use_transaction) + begin_transaction(); + + $sql = "UPDATE ".TB_PREF."journal SET amount=0 + WHERE type=".db_escape($type)." AND trans_no=".db_escape($type_no); + + $result = db_query($sql, "could not void journal transaction for type=$type and trans_no=$type_no"); + + void_bank_trans($type, $type_no, true); + +// void_gl_trans($type, $type_no, true); // this is done above +// void_trans_tax_details($type, $type_no); // ditto +// void_supp_allocations($type, $type_no); // ditto +// void_cust_allocations($type, $type_no); // ditto + + if ($use_transaction) + commit_transaction(); +} +