Bug 5722: Canceled Sales Orders Show Up In Sales Order Inquiry. Fixed.
[fa-stable.git] / sales / inquiry / sales_orders_view.php
index a9f8cf7570bb28cd79b80b387af09b5dd8a770dd..c3e63ab5ff839e51bafe30bfeb1859ce56a23f4a 100644 (file)
@@ -71,7 +71,7 @@ else
 }
 
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(900, 600);
 if (user_use_date_picker())
        $js .= get_js_date_picker();
@@ -106,24 +106,27 @@ function edit_link($row)
 {
        global $page_nested;
 
-       if ($page_nested)
+       if (is_prepaid_order_open($row['order_no']))
                return '';
-       global $trans_type;
-       $modify = ($trans_type == ST_SALESORDER ? "ModifyOrderNumber" : "ModifyQuotationNumber");
-  return pager_link( _("Edit"),
-    "/sales/sales_order_entry.php?$modify=" . $row['order_no'], ICON_EDIT);
+
+       return $page_nested ? '' : trans_editor_link($row['trans_type'], $row['order_no']);
 }
 
 function dispatch_link($row)
 {
-       global $trans_type;
+       global $trans_type, $page_nested;
 
        if ($row['ord_payments'] + $row['inv_payments'] < $row['prep_amount'])
                return '';
 
        if ($trans_type == ST_SALESORDER)
-               return pager_link( _("Dispatch"),
-                       "/sales/customer_delivery.php?OrderNumber=" .$row['order_no'], ICON_DOC);
+       {
+               if ($row['TotDelivered'] < $row['TotQuantity'] && !$page_nested)
+                       return pager_link( _("Dispatch"),
+                               "/sales/customer_delivery.php?OrderNumber=" .$row['order_no'], ICON_DOC);
+               else
+                       return '';
+       }               
        else
                return pager_link( _("Sales Order"),
                        "/sales/sales_order_entry.php?OrderNumber=" .$row['order_no'], ICON_DOC);
@@ -154,7 +157,8 @@ function order_link($row)
 function tmpl_checkbox($row)
 {
        global $trans_type, $page_nested;
-       if ($trans_type == ST_SALESQUOTE)
+
+       if ($trans_type == ST_SALESQUOTE || !check_sales_order_type($row['order_no']))
                return '';
 
        if ($page_nested)
@@ -169,6 +173,21 @@ function tmpl_checkbox($row)
        . hidden('last['.$row['order_no'].']', $value, false);
 }
 
+function unallocated_prepayments($row)
+{
+
+    if ($row['ord_payments'] > 0) {
+        $pmts = get_payments_for($row['order_no'], $row['trans_type'], $row['debtor_no']);
+
+        foreach($pmts as $pmt)
+        {
+            $list[] = get_trans_view_str($pmt['trans_type_from'], $pmt['trans_no_from'], get_reference($pmt['trans_type_from'], $pmt['trans_no_from']));
+        }
+        return implode(',', $list);
+    } else
+        return '';
+}
+
 function invoice_prep_link($row)
 {
        // invoicing should be available only for partially allocated orders
@@ -200,8 +219,8 @@ if (get_post('_OrderNumber_changed') || get_post('_OrderReference_changed')) //
        $disable = get_post('OrderNumber') !== '' || get_post('OrderReference') !== '';
 
        if ($show_dates) {
-                       $Ajax->addDisable(true, 'OrdersAfterDate', $disable);
-                       $Ajax->addDisable(true, 'OrdersToDate', $disable);
+               $Ajax->addDisable(true, 'OrdersAfterDate', $disable);
+               $Ajax->addDisable(true, 'OrdersToDate', $disable);
        }
 
        $Ajax->activate('orders_tbl');
@@ -215,7 +234,7 @@ ref_cells(_("#:"), 'OrderNumber', '',null, '', true);
 ref_cells(_("Ref"), 'OrderReference', '',null, '', true);
 if ($show_dates)
 {
-       date_cells(_("from:"), 'OrdersAfterDate', '', null, -$_SESSION["wa_current_user"]->prefs->transaction_days());
+       date_cells(_("from:"), 'OrdersAfterDate', '', null, -user_transaction_days());
        date_cells(_("to:"), 'OrdersToDate', '', null, 1);
 }
 locations_list_cells(_("Location:"), 'StockLocation', null, true, true);
@@ -233,7 +252,8 @@ if (!$page_nested)
        customer_list_cells(_("Select a customer: "), 'customer_id', null, true, true);
 if ($trans_type == ST_SALESQUOTE)
        check_cells(_("Show All:"), 'show_all');
-
+if ($trans_type == ST_SALESORDER)
+       check_cells(_("Zero values"), 'show_voided');
 submit_cells('SearchOrders', _("Search"),'',_('Select documents'), 'default');
 hidden('order_view_mode', $_POST['order_view_mode']);
 hidden('type', $trans_type);
@@ -245,12 +265,11 @@ end_table(1);
 //     Orders inquiry table
 //
 $sql = get_sql_for_sales_orders_view($trans_type, get_post('OrderNumber'), get_post('order_view_mode'),
-       get_post('SelectStockFromList'), get_post('OrdersAfterDate'), get_post('OrdersToDate'), get_post('OrderReference'), get_post('StockLocation'),
-       get_post('customer_id'));
+       get_post('SelectStockFromList'), get_post('OrdersAfterDate'), get_post('OrdersToDate'), get_post('OrderReference'), get_post('StockLocation'), get_post('customer_id'), check_value('show_voided'));
 
 if ($trans_type == ST_SALESORDER)
        $cols = array(
-               _("Order #") => array('fun'=>'view_link'),
+               _("Order #") => array('fun'=>'view_link', 'align'=>'right', 'ord' =>''),
                _("Ref") => array('type' => 'sorder.reference', 'ord' => '') ,
                _("Customer") => array('type' => 'debtor.name' , 'ord' => '') ,
                _("Branch"), 
@@ -264,7 +283,7 @@ if ($trans_type == ST_SALESORDER)
        );
 else
        $cols = array(
-               _("Quote #") => array('fun'=>'view_link'),
+               _("Quote #") => array('fun'=>'view_link', 'align'=>'right', 'ord' => ''),
                _("Ref"),
                _("Customer"),
                _("Branch"), 
@@ -277,10 +296,10 @@ else
                _("Currency") => array('align'=>'center')
        );
 if ($_POST['order_view_mode'] == 'OutstandingOnly') {
-       //array_substitute($cols, 3, 1, _("Cust Order Ref"));
        array_append($cols, array(
+               array('insert'=>true, 'fun'=>'edit_link'),
                array('insert'=>true, 'fun'=>'dispatch_link'),
-               array('insert'=>true, 'fun'=>'edit_link')));
+               array('insert'=>true, 'fun'=>'prt_link')));
 
 } elseif ($_POST['order_view_mode'] == 'InvoiceTemplates') {
        array_substitute($cols, 4, 1, _("Description"));
@@ -293,7 +312,8 @@ if ($_POST['order_view_mode'] == 'OutstandingOnly') {
        );
 } else if ($_POST['order_view_mode'] == 'PrepaidOrders') {
        array_append($cols, array(
-                       array('insert'=>true, 'fun'=>'invoice_prep_link'))
+               _("New Payments") => array('insert'=>true, 'fun'=>'unallocated_prepayments'),
+               array('insert'=>true, 'fun'=>'invoice_prep_link'))
        );
 
 } elseif ($trans_type == ST_SALESQUOTE) {
@@ -305,6 +325,7 @@ if ($_POST['order_view_mode'] == 'OutstandingOnly') {
         array_append($cols,array(
                        _("Tmpl") => array('insert'=>true, 'fun'=>'tmpl_checkbox'),
                                        array('insert'=>true, 'fun'=>'edit_link'),
+                                       array('insert'=>true, 'fun'=>'dispatch_link'),
                                        array('insert'=>true, 'fun'=>'prt_link')));
 };