Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180...
[fa-stable.git] / reporting / rep209.php
index 1d297de54d503f21c47c780e9e1cbeb6a853fef9..5a08217168009fb8a0c8c933aef3be4daa16bdf5 100644 (file)
@@ -31,26 +31,27 @@ include_once($path_to_root . "/taxes/tax_calc.inc");
 print_po();
 
 //----------------------------------------------------------------------------------------------------
-function get_po($order_no)
+function get_supp_po($order_no)
 {
-       $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name,  "
-               .TB_PREF."suppliers.supp_account_no,".TB_PREF."suppliers.tax_included,
-               ".TB_PREF."suppliers.curr_code, ".TB_PREF."suppliers.payment_terms, ".TB_PREF."locations.location_name,
-               ".TB_PREF."suppliers.address, ".TB_PREF."suppliers.contact, ".TB_PREF."suppliers.tax_group_id
-               FROM ".TB_PREF."purch_orders, ".TB_PREF."suppliers, ".TB_PREF."locations
-               WHERE ".TB_PREF."purch_orders.supplier_id = ".TB_PREF."suppliers.supplier_id
-               AND ".TB_PREF."locations.loc_code = into_stock_location
-               AND ".TB_PREF."purch_orders.order_no = ".db_escape($order_no);
+       $sql = "SELECT po.*, supplier.supp_name, supplier.supp_account_no,supplier.tax_included,
+               supplier.gst_no AS tax_id,
+               supplier.curr_code, supplier.payment_terms, loc.location_name,
+               supplier.address, supplier.contact, supplier.tax_group_id
+               FROM ".TB_PREF."purch_orders po,"
+                       .TB_PREF."suppliers supplier,"
+                       .TB_PREF."locations loc
+               WHERE po.supplier_id = supplier.supplier_id
+               AND loc.loc_code = into_stock_location
+               AND po.order_no = ".db_escape($order_no);
        $result = db_query($sql, "The order cannot be retrieved");
     return db_fetch($result);
 }
 
 function get_po_details($order_no)
 {
-       $sql = "SELECT ".TB_PREF."purch_order_details.*, units
-               FROM ".TB_PREF."purch_order_details
-               LEFT JOIN ".TB_PREF."stock_master
-               ON ".TB_PREF."purch_order_details.item_code=".TB_PREF."stock_master.stock_id
+       $sql = "SELECT poline.*, units
+               FROM ".TB_PREF."purch_order_details poline
+                       LEFT JOIN ".TB_PREF."stock_master item ON poline.item_code=item.stock_id
                WHERE order_no =".db_escape($order_no)." ";
        $sql .= " ORDER BY po_detail_item";
        return db_query($sql, "Retreive order Line Items");
@@ -58,7 +59,7 @@ function get_po_details($order_no)
 
 function print_po()
 {
-       global $path_to_root;
+       global $path_to_root, $SysPrefs;
 
        include_once($path_to_root . "/reporting/includes/pdf_report.inc");
 
@@ -67,11 +68,11 @@ function print_po()
        $currency = $_POST['PARAM_2'];
        $email = $_POST['PARAM_3'];
        $comments = $_POST['PARAM_4'];
+       $orientation = $_POST['PARAM_5'];
 
-       if ($from == null)
-               $from = 0;
-       if ($to == null)
-               $to = 0;
+       if (!$from || !$to) return;
+
+       $orientation = ($orientation ? 'L' : 'P');
        $dec = user_price_dec();
 
        $cols = array(4, 60, 225, 300, 340, 385, 450, 515);
@@ -84,34 +85,32 @@ function print_po()
        $cur = get_company_Pref('curr_default');
 
        if ($email == 0)
-       {
-               $rep = new FrontReport(_('PURCHASE ORDER'), "PurchaseOrderBulk", user_pagesize());
-               $rep->SetHeaderType('Header2');
-               $rep->currency = $cur;
-               $rep->Font();
-               $rep->Info($params, $cols, null, $aligns);
-       }
+               $rep = new FrontReport(_('PURCHASE ORDER'), "PurchaseOrderBulk", user_pagesize(), 9, $orientation);
+    if ($orientation == 'L')
+       recalculate_cols($cols);
 
        for ($i = $from; $i <= $to; $i++)
        {
-               $myrow = get_po($i);
+               $myrow = get_supp_po($i);
+               if ($currency != ALL_TEXT && $myrow['curr_code'] != $currency) {
+                       continue;
+               }
                $baccount = get_default_bank_account($myrow['curr_code']);
                $params['bankaccount'] = $baccount['id'];
 
                if ($email == 1)
                {
-                       $rep = new FrontReport("", "", user_pagesize());
-                       $rep->SetHeaderType('Header2');
-                       $rep->currency = $cur;
-                       $rep->Font();
+                       $rep = new FrontReport("", "", user_pagesize(), 9, $orientation);
                        $rep->title = _('PURCHASE ORDER');
                        $rep->filename = "PurchaseOrder" . $i . ".pdf";
-                       $rep->Info($params, $cols, null, $aligns);
-               }
-               else
-                       $rep->title = _('PURCHASE ORDER');
+               }       
+               $rep->currency = $cur;
+               $rep->Font();
+               $rep->Info($params, $cols, null, $aligns);
+
                $contacts = get_supplier_contacts($myrow['supplier_id'], 'order');
                $rep->SetCommonData($myrow, null, $myrow, $baccount, ST_PURCHORDER, $contacts);
+               $rep->SetHeaderType('Header2');
                $rep->NewPage();
 
                $result = get_po_details($i);
@@ -140,8 +139,11 @@ function print_po()
                        $DisplayPrice = price_decimal_format($myrow2["unit_price"],$dec2);
                        $DisplayQty = number_format2($myrow2["quantity_ordered"],get_qty_dec($myrow2['item_code']));
                        $DisplayNet = number_format2($Net,$dec);
-                       //$rep->TextCol(0, 1,   $myrow2['item_code'], -2);
-                       $rep->TextCol(0, 2,     $myrow2['description'], -2);
+                       if ($SysPrefs->show_po_item_codes()) {
+                               $rep->TextCol(0, 1,     $myrow2['item_code'], -2);
+                               $rep->TextCol(1, 2,     $myrow2['description'], -2);
+                       } else
+                               $rep->TextCol(0, 2,     $myrow2['description'], -2);
                        $rep->TextCol(2, 3,     sql2date($myrow2['delivery_date']), -2);
                        $rep->TextCol(3, 4,     $DisplayQty, -2);
                        $rep->TextCol(4, 5,     $myrow2['units'], -2);
@@ -154,39 +156,36 @@ function print_po()
                if ($myrow['comments'] != "")
                {
                        $rep->NewLine();
-                       $rep->TextColLines(1, 5, $myrow['comments'], -2);
+                       $rep->TextColLines(1, 4, $myrow['comments'], -2);
                }
                $DisplaySubTot = number_format2($SubTotal,$dec);
 
                $rep->row = $rep->bottomMargin + (15 * $rep->lineHeight);
-               $linetype = true;
                $doctype = ST_PURCHORDER;
-               include($path_to_root . "/reporting/includes/doctext.inc");
 
-               $rep->TextCol(3, 6, $doc_Sub_total, -2);
+               $rep->TextCol(3, 6, _("Sub-total"), -2);
                $rep->TextCol(6, 7,     $DisplaySubTot, -2);
                $rep->NewLine();
 
                $tax_items = get_tax_for_items($items, $prices, 0,
-                 $myrow['tax_group_id'], $myrow['tax_included'],  null);
+                 $myrow['tax_group_id'], $myrow['tax_included'],  null, TCA_LINES);
                $first = true;
                foreach($tax_items as $tax_item)
                {
+                       if ($tax_item['Value'] == 0)
+                               continue;
                        $DisplayTax = number_format2($tax_item['Value'], $dec);
 
-                       if (isset($suppress_tax_rates) && $suppress_tax_rates == 1)
-                               $tax_type_name = $tax_item['tax_type_name'];
-                       else
-                               $tax_type_name = $tax_item['tax_type_name']." (".$tax_item['rate']."%) ";
+                       $tax_type_name = $tax_item['tax_type_name'];
 
                        if ($myrow['tax_included'])
                        {
-                               if (isset($alternative_tax_include_on_docs) && $alternative_tax_include_on_docs == 1)
+                               if ($SysPrefs->alternative_tax_include_on_docs() == 1)
                                {
                                        if ($first)
                                        {
                                                $rep->TextCol(3, 6, _("Total Tax Excluded"), -2);
-                                               $rep->TextCol(6, 7,     number_format2($sign*$tax_item['net_amount'], $dec), -2);
+                                               $rep->TextCol(6, 7,     number_format2($tax_item['net_amount'], $dec), -2);
                                                $rep->NewLine();
                                        }
                                        $rep->TextCol(3, 6, $tax_type_name, -2);
@@ -194,7 +193,7 @@ function print_po()
                                        $first = false;
                                }
                                else
-                                       $rep->TextCol(3, 7, $doc_Included . " " . $tax_type_name . $doc_Amount . ": " . $DisplayTax, -2);
+                                       $rep->TextCol(3, 7, _("Included") . " " . $tax_type_name . _("Amount") . ": " . $DisplayTax, -2);
                        }
                        else
                        {
@@ -208,7 +207,7 @@ function print_po()
                $rep->NewLine();
                $DisplayTotal = number_format2($SubTotal, $dec);
                $rep->Font('bold');
-               $rep->TextCol(3, 6, $doc_TOTAL_PO, - 2);
+               $rep->TextCol(3, 6, _("TOTAL PO"), - 2);
                $rep->TextCol(6, 7,     $DisplayTotal, -2);
                $words = price_in_words($SubTotal, ST_PURCHORDER);
                if ($words != "")
@@ -223,11 +222,10 @@ function print_po()
 
                        if ($myrow['reference'] == "")
                                $myrow['reference'] = $myrow['order_no'];
-                       $rep->End($email, $doc_Order_no . " " . $myrow['reference'], $myrow);
+                       $rep->End($email);
                }
        }
        if ($email == 0)
                $rep->End();
 }
 
-?>
\ No newline at end of file