[0005214] Stock Check Sheet: changed option name to less confusing for shortages...
[fa-stable.git] / reporting / rep105.php
index 4b6a086cc55b00166070f36d650eeac56d3425d0..584791ac52b6877602e51c694a9a239d50fc7358 100644 (file)
@@ -35,34 +35,35 @@ function GetSalesOrders($from, $to, $category=0, $location=null, $backorder=0)
        $fromdate = date2sql($from);
        $todate = date2sql($to);
 
-       $sql= "SELECT ".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.from_stk_loc,
-                ".TB_PREF."sales_orders.delivery_date,
-                ".TB_PREF."sales_order_details.stk_code,
-                ".TB_PREF."stock_master.description,
-                ".TB_PREF."stock_master.units,
-                ".TB_PREF."sales_order_details.quantity,
-                ".TB_PREF."sales_order_details.qty_sent
-            FROM ".TB_PREF."sales_orders
-               INNER JOIN ".TB_PREF."sales_order_details
-                   ON (".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no
-                   AND ".TB_PREF."sales_orders.trans_type = ".TB_PREF."sales_order_details.trans_type
-                   AND ".TB_PREF."sales_orders.trans_type = ".ST_SALESORDER.")
-               INNER JOIN ".TB_PREF."stock_master
-                   ON ".TB_PREF."sales_order_details.stk_code = ".TB_PREF."stock_master.stock_id
-            WHERE ".TB_PREF."sales_orders.ord_date >='$fromdate'
-                AND ".TB_PREF."sales_orders.ord_date <='$todate'";
+       $sql= "SELECT sorder.order_no,
+                               sorder.debtor_no,
+                sorder.branch_code,
+                sorder.customer_ref,
+                sorder.ord_date,
+                sorder.from_stk_loc,
+                sorder.delivery_date,
+                sorder.total,
+                line.stk_code,
+                item.description,
+                item.units,
+                line.quantity,
+                line.qty_sent
+            FROM ".TB_PREF."sales_orders sorder
+                       INNER JOIN ".TB_PREF."sales_order_details line
+                   ON sorder.order_no = line.order_no
+                   AND sorder.trans_type = line.trans_type
+                   AND sorder.trans_type = ".ST_SALESORDER."
+               INNER JOIN ".TB_PREF."stock_master item
+                   ON line.stk_code = item.stock_id
+            WHERE sorder.ord_date >='$fromdate'
+                AND sorder.ord_date <='$todate'";
        if ($category > 0)
-               $sql .= " AND ".TB_PREF."stock_master.category_id=".db_escape($category);
+               $sql .= " AND item.category_id=".db_escape($category);
        if ($location != null)
-               $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc=".db_escape($location);
+               $sql .= " AND sorder.from_stk_loc=".db_escape($location);
        if ($backorder)
-               $sql .= " AND ".TB_PREF."sales_order_details.quantity - ".TB_PREF."sales_order_details.qty_sent > 0";
-       $sql .= " ORDER BY ".TB_PREF."sales_orders.order_no";
+               $sql .= " AND line.quantity - line.qty_sent > 0";
+       $sql .= " ORDER BY sorder.order_no";
 
        return db_query($sql, "Error getting order details");
 }
@@ -79,11 +80,13 @@ function print_order_status_list()
        $location = $_POST['PARAM_3'];
        $backorder = $_POST['PARAM_4'];
        $comments = $_POST['PARAM_5'];
-       $destination = $_POST['PARAM_6'];
+       $orientation = $_POST['PARAM_6'];
+       $destination = $_POST['PARAM_7'];
        if ($destination)
                include_once($path_to_root . "/reporting/includes/excel_report.inc");
        else
                include_once($path_to_root . "/reporting/includes/pdf_report.inc");
+       $orientation = ($orientation ? 'L' : 'P');
 
        if ($category == ALL_NUMERIC)
                $category = 0;
@@ -96,7 +99,7 @@ function print_order_status_list()
        if ($location == null)
                $loc = _('All');
        else
-               $loc = $location;
+               $loc = get_location_name($location);
        if ($backorder == 0)
                $back = _('All Orders');
        else
@@ -109,8 +112,8 @@ function print_order_status_list()
 
        $aligns = array('left', 'left', 'right', 'right', 'right', 'right',     'right');
 
-       $headers = array(_('Code'),     _('Description'), _('Ordered'), _('Invoiced'),
-               _('Outstanding'), '');
+       $headers = array(_('Code'),     _('Description'), _('Ordered'), _('Delivered'),
+               _('Outstanding'), '', _('Total Amount'));
 
     $params =   array(         0 => $comments,
                                        1 => array(  'text' => _('Period'), 'from' => $from, 'to' => $to),
@@ -118,25 +121,22 @@ function print_order_status_list()
                                        3 => array(  'text' => _('Location'), 'from' => $loc, 'to' => ''),
                                        4 => array(  'text' => _('Selection'),'from' => $back,'to' => ''));
 
-       $cols2 = $cols;
        $aligns2 = $aligns;
 
-       $rep = new FrontReport(_('Order Status Listing'), "OrderStatusListing", user_pagesize());
+       $rep = new FrontReport(_('Order Status Listing'), "OrderStatusListing", user_pagesize(), 9, $orientation);
+    if ($orientation == 'L')
+       recalculate_cols($cols);
+       $cols2 = $cols;
        $rep->Font();
        $rep->Info($params, $cols, $headers, $aligns, $cols2, $headers2, $aligns2);
 
-       $rep->Header();
+       $rep->NewPage();
        $orderno = 0;
+       $grand_total = 0;
 
        $result = GetSalesOrders($from, $to, $category, $location, $backorder);
-
        while ($myrow=db_fetch($result))
        {
-               if ($rep->row < $rep->bottomMargin + (2 * $rep->lineHeight))
-               {
-                       $orderno = 0;
-                       $rep->Header();
-               }
                $rep->NewLine(0, 2, false, $orderno);
                if ($orderno != $myrow['order_no'])
                {
@@ -152,7 +152,10 @@ function print_order_status_list()
                        $rep->DateCol(4, 5,     $myrow['ord_date'], true);
                        $rep->DateCol(5, 6,     $myrow['delivery_date'], true);
                        $rep->TextCol(6, 7,     $myrow['from_stk_loc']);
-                       $rep->NewLine(2);
+                       $rep->NewLine(1);
+                       $rep->AmountCol(6, 7, $myrow['total']);
+                       $rep->NewLine(1);
+                       $grand_total += $myrow['total'];                
                        $orderno = $myrow['order_no'];
                }
                $rep->TextCol(0, 1,     $myrow['stk_code']);
@@ -168,14 +171,12 @@ function print_order_status_list()
                        $rep->Font();
                }
                $rep->NewLine();
-               if ($rep->row < $rep->bottomMargin + (2 * $rep->lineHeight))
-               {
-                       $orderno = 0;
-                       $rep->Header();
-               }
        }
        $rep->Line($rep->row);
+       $rep->NewLine();
+       $rep->TextCol(1, 6, _("Grand Total")); 
+       $rep->AmountCol(6, 7, $grand_total);
+       $rep->Line($rep->row - 5);
        $rep->End();
 }
 
-?>
\ No newline at end of file