Fix [0000106] Error during direct invoice for non-ECB currencies.
[fa-stable.git] / sales / inquiry / sales_orders_view.php
index d5c7f768d08127e7960cfb51b34979cc77de37de..b174688deba3d91dbb64b41af46f7a2f4abfc9b6 100644 (file)
@@ -1,12 +1,21 @@
 <?php
-
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU Affero General Public License,
+       AGPL, as published by the Free Software Foundation, either version 
+       3 of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/agpl-3.0.html>.
+***********************************************************************/
 $page_security = 2;
 $path_to_root="../..";
 
-include($path_to_root . "/sales/includes/sales_ui.inc");
 include($path_to_root . "/includes/db_pager.inc");
-include_once($path_to_root . "/reporting/includes/reporting.inc");
 include($path_to_root . "/includes/session.inc");
+include($path_to_root . "/sales/includes/sales_ui.inc");
+include_once($path_to_root . "/reporting/includes/reporting.inc");
 
 $js = "";
 if ($use_popup_windows)
@@ -69,38 +78,38 @@ function check_overdue($row)
                && ($row['TotDelivered'] < $row['TotQuantity']));
 }
 
-function view_link($order_no) 
+function view_link($dummy, $order_no)
 {
        return  get_customer_trans_view_str(systypes::sales_order(), $order_no);
 }
 
 function prt_link($row)
 {
-       return print_document_link($row['order_no'], _("Print"), true, 30);
+       return print_document_link($row['order_no'], _("Print"), true, 30, ICON_PRINT);
 }
 
 function edit_link($row) 
 {
   return pager_link( _("Edit"),
-    "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $row['order_no']);
+    "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $row['order_no'], ICON_EDIT);
 }
 
 function dispatch_link($row)
 {
   return pager_link( _("Dispatch"),
-       "/sales/customer_delivery.php?" . SID . "OrderNumber=" .$row['order_no']);
+       "/sales/customer_delivery.php?" . SID . "OrderNumber=" .$row['order_no'], ICON_DOC);
 }
 
 function invoice_link($row)
 {
   return pager_link( _("Invoice"),
-       "/sales/sales_order_entry.php?" . SID . "NewInvoice=" .$row["order_no"]);
+       "/sales/sales_order_entry.php?" . SID . "NewInvoice=" .$row["order_no"], ICON_DOC);
 }
 
 function delivery_link($row)
 {
   return pager_link( _("Delivery"),
-       "/sales/sales_order_entry.php?" . SID . "NewDelivery=" .$row['order_no']);
+       "/sales/sales_order_entry.php?" . SID . "NewDelivery=" .$row['order_no'], ICON_DOC);
 }
 
 function tmpl_checkbox($row)
@@ -185,38 +194,38 @@ end_row();
 
 end_table(1);
 end_form();
-
 //---------------------------------------------------------------------------------------------
 //     Orders inquiry table
 //
-$sql = "SELECT ".TB_PREF."sales_orders.order_no, "
-       .TB_PREF."debtors_master.name, "
-       .TB_PREF."cust_branch.br_name, "
-       .($_POST['order_view_mode']=='InvoiceTemplates' 
-               || $_POST['order_view_mode']=='DeliveryTemplates' ?
-        TB_PREF."sales_orders.comments, " : TB_PREF."sales_orders.customer_ref, ")
-       .TB_PREF."sales_orders.ord_date, "
-       .TB_PREF."sales_orders.delivery_date, "
-       .TB_PREF."sales_orders.deliver_to, "
-       ." Sum(".TB_PREF."sales_order_details.unit_price*"
-               .TB_PREF."sales_order_details.quantity*(1-"
-               .TB_PREF."sales_order_details.discount_percent)) AS OrderValue, "
-       .TB_PREF."sales_orders.type, "
-       .TB_PREF."debtors_master.curr_code, "
-       ." Sum(".TB_PREF."sales_order_details.qty_sent) AS TotDelivered, "
-       ." Sum(".TB_PREF."sales_order_details.quantity) AS TotQuantity "
-
-       ." FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch
-               WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no
-               AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no
-               AND ".TB_PREF."sales_orders.branch_code = ".TB_PREF."cust_branch.branch_code
-               AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."cust_branch.debtor_no ";
+$sql = "SELECT 
+               sorder.order_no,
+               debtor.name,
+               branch.br_name,"
+               .($_POST['order_view_mode']=='InvoiceTemplates' 
+                       || $_POST['order_view_mode']=='DeliveryTemplates' ?
+                "sorder.comments, " : "sorder.customer_ref, ")
+               ."sorder.ord_date,
+               sorder.delivery_date,
+               sorder.deliver_to,
+               Sum(line.unit_price*line.quantity*(1-line.discount_percent)) AS OrderValue,
+               sorder.type,
+               debtor.curr_code,
+               Sum(line.qty_sent) AS TotDelivered,
+               Sum(line.quantity) AS TotQuantity
+       FROM ".TB_PREF."sales_orders as sorder, "
+               .TB_PREF."sales_order_details as line, "
+               .TB_PREF."debtors_master as debtor, "
+               .TB_PREF."cust_branch as branch
+               WHERE sorder.order_no = line.order_no
+               AND sorder.debtor_no = debtor.debtor_no
+               AND sorder.branch_code = branch.branch_code
+               AND debtor.debtor_no = branch.debtor_no";
 
 if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
 {
        // search orders with number like ...
-       $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."'"
-                       ." GROUP BY ".TB_PREF."sales_orders.order_no";
+       $sql .= " AND sorder.order_no LIKE '%". $_POST['OrderNumber'] ."'"
+                       ." GROUP BY sorder.order_no";
 }
 else   // ... or select inquiry constraints
 {
@@ -225,33 +234,33 @@ else      // ... or select inquiry constraints
                $date_after = date2sql($_POST['OrdersAfterDate']);
                $date_before = date2sql($_POST['OrdersToDate']);
 
-               $sql .=  " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'"
-                               ." AND ".TB_PREF."sales_orders.ord_date <= '$date_before'";
+               $sql .=  " AND sorder.ord_date >= '$date_after'"
+                               ." AND sorder.ord_date <= '$date_before'";
        }
        if ($selected_customer != -1)
-               $sql .= " AND ".TB_PREF."sales_orders.debtor_no='" . $selected_customer . "'";
+               $sql .= " AND sorder.debtor_no='" . $selected_customer . "'";
 
        if (isset($selected_stock_item))
-               $sql .= " AND ".TB_PREF."sales_order_details.stk_code='". $selected_stock_item ."'";
+               $sql .= " AND line.stk_code='". $selected_stock_item ."'";
 
        if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all())
-               $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' ";
+               $sql .= " AND sorder.from_stk_loc = '". $_POST['StockLocation'] . "' ";
 
        if ($_POST['order_view_mode']=='OutstandingOnly')
-               $sql .= " AND ".TB_PREF."sales_order_details.qty_sent < ".TB_PREF."sales_order_details.quantity";
+               $sql .= " AND line.qty_sent < line.quantity";
        elseif ($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates')
-               $sql .= " AND ".TB_PREF."sales_orders.type=1";
-
-       $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no, "
-               .TB_PREF."sales_orders.debtor_no, "
-               .TB_PREF."sales_orders.branch_code, "
-               .TB_PREF."sales_orders.customer_ref, "
-               .TB_PREF."sales_orders.ord_date, "
-               .TB_PREF."sales_orders.deliver_to";
+               $sql .= " AND sorder.type=1";
+
+       $sql .= " GROUP BY sorder.order_no,
+                               sorder.debtor_no,
+                               sorder.branch_code,
+                               sorder.customer_ref,
+                               sorder.ord_date,
+                               sorder.deliver_to";
 }
 
 $cols = array(
-       _("Order #") => array('type'=>'spec', 'fun'=>'view_link'),
+       _("Order #") => array('fun'=>'view_link'),
        _("Customer"),
        _("Branch"), 
        _("Comments"),
@@ -260,45 +269,43 @@ $cols = array(
        _("Delivery To"), 
        _("Order Total") => array('type'=>'amount', 'ord'=>''),
        'Type' => 'skip',
-       _("Currency")
+       _("Currency") => array('align'=>'center')
 );
 
 if ($_POST['order_view_mode'] == 'OutstandingOnly') {
-       array_remove($cols, 4);
-       array_insert($cols, 4, _("Cust Order Ref"));
-       $cols += array('' => array('type'=>'insert', 'fun'=>'dispatch_link'));
+       array_replace($cols, 3, 1, _("Cust Order Ref"));
+       array_append($cols, array(array('insert'=>true, 'fun'=>'dispatch_link')));
 
 } elseif ($_POST['order_view_mode'] == 'InvoiceTemplates') {
-       array_remove($cols, 4);
-       array_insert($cols, 4, _("Description"));
-       $cols += array('' => array('type'=>'insert', 'fun'=>'invoice_link'));
+       array_replace($cols, 3, 1, _("Description"));
+       array_append($cols, array( array('insert'=>true, 'fun'=>'invoice_link')));
 
 } else if ($_POST['order_view_mode'] == 'DeliveryTemplates') {
-       array_remove($cols, 4);
-       array_insert($cols, 4, _("Description"));
-       $cols += array('' => array('type'=>'insert', 'fun'=>'delivery_link'));
+       array_replace($cols, 3, 1, _("Description"));
+       array_append($cols, array(
+                       array('insert'=>true, 'fun'=>'delivery_link'))
+       );
 
 } else {
-       $cols += array(
-                       _("Tmpl") => array('type'=>'insert', 'fun'=>'tmpl_checkbox'),
-                       array('type'=>'insert', 'fun'=>'edit_link'),
-                       array('type'=>'insert', 'fun'=>'prt_link'));
+        array_append($cols,array(
+                       _("Tmpl") => array('insert'=>true, 'fun'=>'tmpl_checkbox'),
+                                       array('insert'=>true, 'fun'=>'edit_link'),
+                                       array('insert'=>true, 'fun'=>'prt_link')));
 };
 
 
 $table =& new_db_pager('orders_tbl', $sql, $cols);
 $table->set_marker('check_overdue', _("Marked items are overdue."));
 
-
-if (get_post('SearchOrders')) 
-{
+if (get_post('SearchOrders')) {
        $table->set_sql($sql);
-       $Ajax->activate('orders_tbl');
-} 
-       start_form();
-       display_db_pager($table);
+       $table->set_columns($cols);
+}
+start_form();
+
+display_db_pager($table);
+submit_center('Update', _("Update"), true, '', null);
 
-       submit_center('Update', _("Update"), true, '', null);
-       end_form();
+end_form();
 end_page();
 ?>
\ No newline at end of file