Invoice Prepaid Orders: Added new payments column for direct review of order invoicin...
[fa-stable.git] / sales / inquiry / sales_orders_view.php
index 688f3f7f356132333e0d16f681634b552eaba12d..3d70d125b686a20001973dc4ef1d2a7521f7896a 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);
@@ -165,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
@@ -246,7 +269,7 @@ $sql = get_sql_for_sales_orders_view($trans_type, get_post('OrderNumber'), get_p
 
 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"), 
@@ -260,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"), 
@@ -274,8 +297,9 @@ else
        );
 if ($_POST['order_view_mode'] == 'OutstandingOnly') {
        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')));
 };