X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fincludes%2Fdb%2Fgl_db_trans.inc;h=5b559d33987a094334242f3620f30f066c3c45a3;hb=29bfc95a3b218ab90694535a0e94acd380b738b5;hp=b077e5d58268ad6b22b710048404283689c3c164;hpb=d13f7277c62f8231041d086da9c66f7ed22d6659;p=fa-stable.git diff --git a/gl/includes/db/gl_db_trans.inc b/gl/includes/db/gl_db_trans.inc index b077e5d5..5b559d33 100644 --- a/gl/includes/db/gl_db_trans.inc +++ b/gl/includes/db/gl_db_trans.inc @@ -138,6 +138,19 @@ function get_gl_trans($type, $trans_id) //-------------------------------------------------------------------------------- +function get_gl_wo_cost_trans($trans_id, $person_id=-1) +{ + $sql = "SELECT ".TB_PREF."gl_trans.*, ".TB_PREF."chart_master.account_name FROM ".TB_PREF."gl_trans, ".TB_PREF."chart_master + WHERE ".TB_PREF."chart_master.account_code=".TB_PREF."gl_trans.account + AND ".TB_PREF."gl_trans.type=".systypes::work_order()." AND ".TB_PREF."gl_trans.type_no=$trans_id + AND ".TB_PREF."gl_trans.person_type_id=".payment_person_types::WorkOrder(); + if ($person_id != -1) + $sql .= " AND ".TB_PREF."gl_trans.person_id=$person_id"; + $sql .= " AND amount < 0"; + + return db_query($sql, "The gl transactions could not be retrieved"); +} + function get_gl_balance_from_to($from_date, $to_date, $account, $dimension=0, $dimension2=0) { $from = date2sql($from_date); @@ -184,6 +197,36 @@ function get_gl_trans_from_to($from_date, $to_date, $account, $dimension=0, $dim return $row[0]; } +//---------------------------------------------------------------------------------------------------- +function get_balance($account, $dimension, $dimension2, $from, $to, $from_incl=true, $to_incl=true) +{ + $sql = "SELECT SUM(IF(amount >= 0, amount, 0)) as debit, SUM(IF(amount < 0, -amount, 0)) as credit, SUM(amount) as balance + FROM ".TB_PREF."gl_trans,".TB_PREF."chart_master,".TB_PREF."chart_types, ".TB_PREF."chart_class + WHERE ".TB_PREF."gl_trans.account=".TB_PREF."chart_master.account_code AND ".TB_PREF."chart_master.account_type=".TB_PREF."chart_types.id + AND ".TB_PREF."chart_types.class_id=".TB_PREF."chart_class.cid AND"; + + if ($account != null) + $sql .= " account='$account' AND"; + if ($dimension > 0) + $sql .= " dimension_id=$dimension AND"; + if ($dimension2 > 0) + $sql .= " dimension2_id=$dimension2 AND"; + $from_date = date2sql($from); + if ($from_incl) + $sql .= " tran_date >= '$from_date' AND"; + else + $sql .= " tran_date > IF(ctype>0 AND ctype<".CL_INCOME.", '0000-00-00', '$from_date') AND"; + $to_date = date2sql($to); + if ($to_incl) + $sql .= " tran_date <= '$to_date' "; + else + $sql .= " tran_date < '$to_date' "; + + $result = db_query($sql,"No general ledger accounts were returned"); + + return db_fetch($result); +} + //-------------------------------------------------------------------------------- function get_budget_trans_from_to($from_date, $to_date, $account, $dimension=0, $dimension2=0) @@ -311,7 +354,7 @@ function get_tax_summary($from, $to) //-------------------------------------------------------------------------------- // Write/update journal entries. // -function write_journal_entries(&$cart) +function write_journal_entries(&$cart, $reverse) { $date_ = $cart->tran_date; $ref = $cart->reference; @@ -358,6 +401,39 @@ function write_journal_entries(&$cart) commit_transaction(); + if ($reverse) + { + //$reversingDate = date(user_date_display(), + // Mktime(0,0,0,get_month($date_)+1,1,get_year($date_))); + $reversingDate = begin_month(add_months($date_, 1)); + + $trans_id_reverse = get_next_trans_no($trans_type); + + foreach ($cart->gl_items as $journal_item) + { + $is_bank_to = is_bank_account($journal_item->code_id); + + add_gl_trans($trans_type, $trans_id_reverse, $reversingDate, + $journal_item->code_id, $journal_item->dimension_id, $journal_item->dimension2_id, + $journal_item->reference, -$journal_item->amount); + if ($is_bank_to) + { + add_bank_trans($trans_type, $trans_id_reverse, $is_bank_to, $ref, + $reversingDate, $journal_item->amount, + 0, "", get_company_currency(), + "Cannot insert a destination bank transaction"); + } + // store tax details if the gl account is a tax account + add_gl_tax_details($journal_item->code_id, + $trans_type, $trans_id, $journal_item->amount, 1, $reversingDate, $memo_); + } + + add_comments($trans_type, $trans_id_reverse, $reversingDate, $memo_); + + references::save($trans_type, $trans_id_reverse, $ref); + add_audit_trail($trans_type, $trans_id_reverse, $reversingDate); + } + return $trans_id; }