Merged changes form main trunk (2.2.8, 2.2.9)
[fa-stable.git] / sales / includes / db / sales_order_db.inc
index de50c6aad94a789b3f3fc06de79486a9c0353807..27b4fe9a81461d1d695a12aa4c57cae04c112060 100644 (file)
@@ -21,7 +21,7 @@ function add_sales_order(&$order)
        $order_type = 0; // this is default on new order
        $sql = "INSERT INTO ".TB_PREF."sales_orders (order_no, type, debtor_no, trans_type, branch_code, customer_ref, reference, comments, ord_date,
                order_type, ship_via, deliver_to, delivery_address, contact_phone,
-               contact_email, freight_cost, from_stk_loc, delivery_date, payment_terms)
+               freight_cost, from_stk_loc, delivery_date, payment_terms)
                VALUES (" .db_escape($order_no) . "," .db_escape($order_type) . "," . db_escape($order->customer_id) .
                 ", " .db_escape($order->trans_type) . "," .db_escape($order->Branch) . ", ".
                        db_escape($order->cust_ref) .",". 
@@ -33,7 +33,6 @@ function add_sales_order(&$order)
                        db_escape($order->deliver_to) . "," .
                        db_escape($order->delivery_address) . ", " .
                        db_escape($order->phone) . ", " . 
-                       db_escape($order->email) . ", " .
                        db_escape($order->freight_cost) .", " . 
                        db_escape($order->Location) .", " .
                        db_escape($del_date) . "," .
@@ -128,6 +127,8 @@ function delete_sales_order($order_no, $trans_type)
                .db_escape($order_no) . " AND trans_type=".db_escape($trans_type);
        db_query($sql, "order Detail Delete");
 
+       delete_reference($trans_type, $order_no);
+
        add_audit_trail($trans_type, $order_no, Today(), _("Deleted."));
        commit_transaction();
 }
@@ -169,7 +170,6 @@ function update_sales_order($order)
                deliver_to = " . db_escape($order->deliver_to) . ",
                delivery_address = " . db_escape($order->delivery_address) . ",
                contact_phone = " .db_escape($order->phone) . ",
-               contact_email = " .db_escape($order->email) . ",
                freight_cost = " .db_escape($order->freight_cost) .",
                from_stk_loc = " .db_escape($order->Location) .",
                delivery_date = " .db_escape($del_date). ",
@@ -221,10 +221,11 @@ function update_sales_order($order)
                        }
                }
                $sql = "INSERT INTO ".TB_PREF."sales_order_details
-                (order_no, trans_type, stk_code,  description, unit_price, quantity,
+                (id, order_no, trans_type, stk_code,  description, unit_price, quantity,
                  discount_percent, qty_sent)
                 VALUES (";
-               $sql .= $order_no . ",".$order->trans_type.","
+               $sql .= db_escape($line->id ? $line->id : 0) . ","
+                 .$order_no . ",".$order->trans_type.","
                  .db_escape($line->stock_id) . ","
                  .db_escape($line->item_description) . ", "
                  .db_escape($line->price) . ", "
@@ -266,33 +267,32 @@ function update_sales_order($order)
 
 function get_sales_order_header($order_no, $trans_type)
 {
-       $sql = "SELECT ".TB_PREF."sales_orders.*, "
-         .TB_PREF."debtors_master.name, "
-         .TB_PREF."debtors_master.curr_code, "
-         .TB_PREF."debtors_master.email AS master_email, "
-         .TB_PREF."locations.location_name, "
-         .TB_PREF."debtors_master.discount, "
-         .TB_PREF."sales_types.sales_type, "
-         .TB_PREF."sales_types.id AS sales_type_id, "
-         .TB_PREF."sales_types.tax_included, "
-         .TB_PREF."shippers.shipper_name, "
-         .TB_PREF."tax_groups.name AS tax_group_name , "
-         .TB_PREF."tax_groups.id AS tax_group_id
-       FROM ".TB_PREF."sales_orders, "
-         .TB_PREF."debtors_master, "
-         .TB_PREF."sales_types, "
-         .TB_PREF."tax_groups, "
-         .TB_PREF."cust_branch, "
-         .TB_PREF."locations, "
-         .TB_PREF."shippers
-       WHERE ".TB_PREF."sales_orders.order_type=".TB_PREF."sales_types.id
-               AND ".TB_PREF."cust_branch.branch_code = ".TB_PREF."sales_orders.branch_code
-               AND ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id
-               AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no
-               AND ".TB_PREF."locations.loc_code = ".TB_PREF."sales_orders.from_stk_loc
-               AND ".TB_PREF."shippers.shipper_id = ".TB_PREF."sales_orders.ship_via
-               AND ".TB_PREF."sales_orders.trans_type = " . db_escape($trans_type) ."
-               AND ".TB_PREF."sales_orders.order_no = " . db_escape($order_no );
+       $sql = "SELECT sorder.*, "
+         ."cust.name, "
+         ."cust.curr_code, "
+         ."loc.location_name, "
+         ."cust.discount, "
+         ."stype.sales_type, "
+         ."stype.id AS sales_type_id, "
+         ."stype.tax_included, "
+         ."ship.shipper_name, "
+         ."tax_group.name AS tax_group_name , "
+         ."tax_group.id AS tax_group_id "
+       ."FROM ".TB_PREF."sales_orders sorder, "
+         .TB_PREF."debtors_master cust,"
+         .TB_PREF."sales_types stype, "
+         .TB_PREF."tax_groups tax_group, "
+         .TB_PREF."cust_branch branch,"
+         .TB_PREF."locations loc, "
+         .TB_PREF."shippers ship
+       WHERE sorder.order_type=stype.id
+               AND branch.branch_code = sorder.branch_code
+               AND branch.tax_group_id = tax_group.id
+               AND sorder.debtor_no = cust.debtor_no
+               AND loc.loc_code = sorder.from_stk_loc
+               AND ship.shipper_id = sorder.ship_via
+               AND sorder.trans_type = " . db_escape($trans_type) ."
+               AND sorder.order_no = " . db_escape($order_no );
 
        $result = db_query($sql, "order Retreival");
 
@@ -343,7 +343,7 @@ function read_sales_order($order_no, &$order, $trans_type)
          $myrow["curr_code"], $myrow["discount"], $myrow["payment_terms"]);
 
        $order->set_branch($myrow["branch_code"], $myrow["tax_group_id"],
-         $myrow["tax_group_name"], $myrow["contact_phone"], $myrow["contact_email"]);
+         $myrow["tax_group_name"], $myrow["contact_phone"]);
 
        $order->set_sales_type($myrow["sales_type_id"], $myrow["sales_type"], 
            $myrow["tax_included"], 0); // no default price calculations on edit
@@ -388,7 +388,11 @@ function sales_order_has_deliveries($order_no)
 
        $row = db_fetch_row($result);
 
-       return ($row[0] > 0);
+       if ($row[0] > 0)
+               return true;  // 2010-04-21 added check for eventually voided deliveries, Joe Hunt
+       $sql = "SELECT order_ FROM ".TB_PREF."debtor_trans WHERE type=".ST_CUSTDELIVERY." AND order_=".db_escape($order_no);
+       $result = db_query($sql,"The related delivery notes could not be retreived");
+       return (db_num_rows($result) > 0);      
 }
 
 //----------------------------------------------------------------------------------------
@@ -458,9 +462,7 @@ function get_branch_to_order($customer_id, $branch_id) {
                $sql = "SELECT ".TB_PREF."cust_branch.br_name, "
                        .TB_PREF."cust_branch.br_address, "
                        .TB_PREF."cust_branch.br_post_address, "
-                       .TB_PREF."cust_branch.phone, "
-                       .TB_PREF."cust_branch.email,
-                         default_location, location_name, default_ship_via, "
+                       ." default_location, location_name, default_ship_via, "
                        .TB_PREF."tax_groups.name AS tax_group_name, "
                        .TB_PREF."tax_groups.id AS tax_group_id
                        FROM ".TB_PREF."cust_branch, "
@@ -512,6 +514,13 @@ function get_sql_for_sales_orders_view($selected_customer, $trans_type)
                $sql .= " AND sorder.order_no LIKE ".db_escape($number_like)
                                ." GROUP BY sorder.order_no";
        }
+       elseif (isset($_POST['OrderReference']) && $_POST['OrderReference'] != "")
+       {
+               // search orders with reference like 
+               $number_like = "%".$_POST['OrderReference']."%";
+               $sql .= " AND sorder.reference LIKE ".db_escape($number_like)
+                               ." GROUP BY sorder.order_no";
+       }
        else    // ... or select inquiry constraints
        {
                if ($_POST['order_view_mode']!='DeliveryTemplates' && $_POST['order_view_mode']!='InvoiceTemplates')