Bug 5722: Canceled Sales Orders Show Up In Sales Order Inquiry. Fixed.
[fa-stable.git] / sales / inquiry / sales_orders_view.php
index 35d71c6444a40b86e1838e1cba7c9482d43f119c..c3e63ab5ff839e51bafe30bfeb1859ce56a23f4a 100644 (file)
@@ -106,19 +106,27 @@ function edit_link($row)
 {
        global $page_nested;
 
+       if (is_prepaid_order_open($row['order_no']))
+               return '';
+
        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);
@@ -149,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)
@@ -164,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
@@ -195,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');
@@ -228,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);
@@ -240,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"), 
@@ -259,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"), 
@@ -272,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"));
@@ -288,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) {
@@ -300,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')));
 };