Payment terms related functions moved to separate file, common function for calculati...
[fa-stable.git] / purchasing / includes / db / invoice_db.inc
index 07e87eb0810620fb56026ba7ad657a0ae06a6216..11fed129f8f7dccfcade4ac8a2f53f3bb6123445 100644 (file)
@@ -16,17 +16,16 @@ include_once($path_to_root . "/admin/db/attachments_db.inc");
 
 function read_supplier_details_to_trans(&$supp_trans, $supplier_id)
 {
-       $sql = "SELECT supp.supp_name, terms.terms, terms.days_before_due, supp.dimension_id, supp.dimension2_id,
-               terms.day_in_following_month, supp.tax_included,
+       $sql = "SELECT supp.supp_name, supp.dimension_id, supp.dimension2_id, supp.tax_included,
                supp.tax_group_id, tax_group.name AS tax_group_name,
-               supp.credit_limit - Sum((ov_amount + ov_gst + ov_discount)) as cur_credit, curr_code
-               FROM ".TB_PREF."suppliers supp LEFT JOIN "
-                       .TB_PREF."supp_trans trans ON supp.supplier_id = trans.supplier_id, "
-                       .TB_PREF."payment_terms terms, "
-                       .TB_PREF."tax_groups tax_group
-               WHERE supp.tax_group_id = tax_group.id
-               AND supp.payment_terms=terms.terms_indicator
-               AND supp.supplier_id = ".db_escape($supplier_id)." GROUP BY supp.supp_name";
+               supp.credit_limit - Sum((ov_amount + ov_gst + ov_discount)) as cur_credit,
+               supp.curr_code,
+               terms.*
+               FROM ".TB_PREF."suppliers supp 
+                       LEFT JOIN ".TB_PREF."supp_trans trans ON supp.supplier_id = trans.supplier_id
+                       LEFT JOIN ".TB_PREF."payment_terms terms ON supp.payment_terms=terms.id
+                       LEFT JOIN ".TB_PREF."tax_groups tax_group ON supp.tax_group_id = tax_group.id
+               WHERE supp.supplier_id = ".db_escape($supplier_id);
 
        $result = db_query($sql, "The supplier record selected: " . $supplier_id . " cannot be retrieved");
 
@@ -39,17 +38,21 @@ function read_supplier_details_to_trans(&$supp_trans, $supplier_id)
                if (!is_date_in_fiscalyear($supp_trans->tran_date))
                        $supp_trans->tran_date = end_fiscalyear();
        }
+
+       $supp_trans->terms = array( 
+               'description' => $myrow['terms'],
+               'type' => $myrow['type'], 
+               'days' => $myrow['days'],
+               'early_discount' => $myrow['early_discount'],
+               'early_days' => $myrow['early_days'],
+       );
+
        if ($supp_trans->supplier_id != $supplier_id)
-           get_duedate_from_terms($supp_trans);
+           $supp_trans->due_date = get_payment_due_date($supp_trans->terms, $supp_trans->tran_date);
 
     $supp_trans->supplier_id = $supplier_id;
     $supp_trans->tax_included = $myrow['tax_included'];
     $supp_trans->supplier_name = $myrow['supp_name'];
-       $supp_trans->terms = array( 
-               'description' => $myrow['terms'],
-               'days_before_due' => $myrow['days_before_due'], 
-               'day_in_following_month' => $myrow['day_in_following_month'] );
-
        $supp_trans->credit = $myrow['cur_credit'];
 
        $supp_trans->tax_description = $myrow['tax_group_name'];
@@ -132,7 +135,7 @@ function add_supp_invoice(&$supp_trans)  //, $already_voided=false, $allocs=null
        $supplier = get_supplier($supp_trans->supplier_id);
        $dec = user_price_dec();
 
-       begin_transaction();
+       begin_transaction(__FUNCTION__, func_get_args());
        hook_db_prewrite($supp_trans, $trans_type);
 
        if ($trans_no) {        // void old transaction
@@ -514,7 +517,7 @@ function get_matching_invoice_item($stock_id, $po_item_id)
 
 function void_supp_invoice($type, $type_no)
 {
-       begin_transaction();
+       begin_transaction(__FUNCTION__, func_get_args());
 
        hook_db_prevoid($type, $type_no);
        $trans = get_supp_trans($type_no, $type);