Customer Credit Invoice: fixed invalid processing of invoice payments (triggering...
[fa-stable.git] / sales / includes / sales_db.inc
index 1698e40a2d88ff2c1a603f28e4e195fbdc08bf22..b7e168320d2e63af6c56bd993982746e917bfb3e 100644 (file)
@@ -47,7 +47,7 @@ function add_gl_trans_customer($type, $type_no, $date_, $account, $dimension, $d
 
 function get_calculated_price($stock_id, $add_pct)
 {
-       $avg = get_standard_cost($stock_id);
+       $avg = get_unit_cost($stock_id);
        if ($avg == 0)
                return 0;
        return round2($avg * (1 + $add_pct / 100), user_price_dec());
@@ -117,20 +117,6 @@ function get_price ($stock_id, $currency, $sales_type_id, $factor=null, $date=nu
        {
            $price = $prices[$base_id][$home_curr] * $factor / $rate;
        }
-/*
-       if (isset($prices[$sales_type_id][$home_curr])) 
-       {
-           $price = $prices[$sales_type_id][$home_curr] / $rate;
-       }
-       elseif (isset($prices[$base_id][$currency])) 
-       {
-           $price = $prices[$base_id][$currency] * $factor;
-       }
-       elseif (isset($prices[$base_id][$home_curr])) 
-       {
-           $price = $prices[$base_id][$home_curr] * $factor / $rate;
-       }
-*/     
        elseif ($num_rows == 0 && $add_pct != -1)
        {
                $price = get_calculated_price($stock_id, $add_pct);
@@ -189,7 +175,6 @@ function update_parent_line($doc_type, $line_id, $qty_dispatched, $auto=false)
 
         $qty_dispatched = (float)$qty_dispatched;
 
-//     echo "update line: $line_id, $doc_type, $qty_dispatched";
        if ($doc_type == 0)
                return false;
        else {
@@ -215,14 +200,15 @@ function update_parent_line($doc_type, $line_id, $qty_dispatched, $auto=false)
 //
 function get_location(&$cart)
 {
-       $sql = "SELECT ".TB_PREF."locations.* FROM ".TB_PREF."stock_moves,"
-               .TB_PREF."locations".
+       $sql = "SELECT location.*
+               FROM ".TB_PREF."stock_moves move,"
+                       .TB_PREF."locations location".
                " WHERE type=".db_escape($cart->trans_type).
                " AND trans_no=".key($cart->trans_no).
                " AND qty!=0 ".
-               " AND ".TB_PREF."locations.loc_code=".TB_PREF."stock_moves.loc_code";
-       $result = db_query($sql, 'Retreiving inventory location');
+               " AND location.loc_code=move.loc_code";
 
+       $result = db_query($sql, 'Retreiving inventory location');
 
        if (db_num_rows($result)) {
                return db_fetch($result);
@@ -237,7 +223,7 @@ function get_location(&$cart)
 function read_sales_trans($doc_type, $trans_no, &$cart)
 {
        if (!is_array($trans_no) && $trans_no)
-                       $trans_no = array($trans_no);
+               $trans_no = array($trans_no);
 
        $cart->trans_type = $doc_type;
        if (!$trans_no) { // new document
@@ -245,14 +231,15 @@ function read_sales_trans($doc_type, $trans_no, &$cart)
        } else {
                // read header data from first document
                $myrow = get_customer_trans($trans_no[0],$doc_type);
-               if (count($trans_no)>1)
+        $debtor_no = $myrow['debtor_no'];
+               if (count_array($trans_no)>1)
                        $cart->trans_no = get_customer_trans_version($doc_type, $trans_no);
                else
                        $cart->trans_no = array($trans_no[0]=>$myrow["version"]);
 
                $cart->set_sales_type($myrow["tpe"], $myrow["sales_type"], $myrow["tax_included"],0);
 
-               $cart->set_customer($myrow["debtor_no"], $myrow["DebtorName"],
+        $cart->set_customer($debtor_no, $myrow["DebtorName"],
                        $myrow["curr_code"], $myrow["discount"], $myrow["payment_terms"]);
 
                $cart->set_branch($myrow["branch_code"], $myrow["tax_group_id"],
@@ -293,7 +280,7 @@ function read_sales_trans($doc_type, $trans_no, &$cart)
                                        @$myrow["src_id"]);
                        }
                }
-               $cart->prepayments = get_payments_for($trans_no, $doc_type);
+        $cart->prepayments = get_payments_for($trans_no[0], $doc_type, $debtor_no);
 
        } // !newdoc
 
@@ -382,10 +369,10 @@ function get_sales_child_documents($trans_type, $trans_no)
        // FIXME -  credit notes retrieved here should be those linked to invoices containing 
        // at least one line from related invoice
 
-       if (!count($trans_no))
+       if (!count_array($trans_no))
                return false;
        $childs = get_sales_child_numbers($trans_type, $trans_no, false);
-       if (!count($childs))
+       if (!count_array($childs))
                return false;
                
        $sql = "SELECT * FROM ".TB_PREF."debtor_trans