Security update merged from 2.1.
[fa-stable.git] / reporting / rep104.php
index 556603319738544e69ff4ae793586d86cb7ccffe..d6249e0d5a5dfeaf109b421c98655f56bcb3f81e 100644 (file)
@@ -1,25 +1,33 @@
 <?php
-
-$page_security = 2;
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_PRICEREP';
 // ----------------------------------------------------------------
 // $ Revision: 2.0 $
 // Creator:    Joe Hunt
 // date_:      2005-05-19
 // Title:      price Listing
 // ----------------------------------------------------------------
-$path_to_root="../";
+$path_to_root="..";
 
-include_once($path_to_root . "includes/session.inc");
-include_once($path_to_root . "includes/date_functions.inc");
-include_once($path_to_root . "includes/ui/ui_input.inc");
-include_once($path_to_root . "includes/data_checks.inc");
-include_once($path_to_root . "gl/includes/gl_db.inc");
-include_once($path_to_root . "sales/includes/db/sales_types_db.inc");
-include_once($path_to_root . "inventory/includes/db/items_category_db.inc");
+include_once($path_to_root . "/includes/session.inc");
+include_once($path_to_root . "/includes/date_functions.inc");
+include_once($path_to_root . "/includes/ui/ui_input.inc");
+include_once($path_to_root . "/includes/data_checks.inc");
+include_once($path_to_root . "/gl/includes/gl_db.inc");
+include_once($path_to_root . "/sales/includes/db/sales_types_db.inc");
+include_once($path_to_root . "/inventory/includes/inventory_db.inc");
 
 //----------------------------------------------------------------------------------------------------
 
-// trial_inquiry_controls();
 print_price_listing();
 
 function fetch_items($category=0)
@@ -32,37 +40,56 @@ function fetch_items($category=0)
                                ".TB_PREF."stock_category
                        WHERE ".TB_PREF."stock_master.category_id=".TB_PREF."stock_category.category_id";
                if ($category != 0)
-                       $sql .= " AND ".TB_PREF."stock_category.category_id = '$category'";
+                       $sql .= " AND ".TB_PREF."stock_category.category_id = ".db_escape($category);
                $sql .= " ORDER BY ".TB_PREF."stock_master.category_id,
                                ".TB_PREF."stock_master.stock_id";
 
     return db_query($sql,"No transactions were returned");
 }
+
+function get_kits($category=0)
+{
+       $sql = "SELECT i.item_code AS kit_code, i.description AS kit_name, c.category_id AS cat_id, c.description AS cat_name, count(*)>1 AS kit
+                       FROM
+                       ".TB_PREF."item_codes i
+                       LEFT JOIN
+                       ".TB_PREF."stock_category c
+                       ON i.category_id=c.category_id";
+       $sql .= " WHERE !i.is_foreign AND i.item_code!=i.stock_id";
+       if ($category != 0)
+               $sql .= " AND c.category_id = ".db_escape($category);
+       $sql .= " GROUP BY i.item_code";
+    return db_query($sql,"No kits were returned");
+}
+
 //----------------------------------------------------------------------------------------------------
 
 function print_price_listing()
 {
     global $comp_path, $path_to_root, $pic_height, $pic_width;
 
-    include_once($path_to_root . "reporting/includes/pdf_report.inc");
-
     $currency = $_POST['PARAM_0'];
     $category = $_POST['PARAM_1'];
     $salestype = $_POST['PARAM_2'];
     $pictures = $_POST['PARAM_3'];
     $showGP = $_POST['PARAM_4'];
     $comments = $_POST['PARAM_5'];
+       $destination = $_POST['PARAM_6'];
+       if ($destination)
+               include_once($path_to_root . "/reporting/includes/excel_report.inc");
+       else
+               include_once($path_to_root . "/reporting/includes/pdf_report.inc");
 
     $dec = user_price_dec();
 
        $home_curr = get_company_pref('curr_default');
-       if ($currency == reserved_words::get_all())
+       if ($currency == ALL_TEXT)
                $currency = $home_curr;
        $curr = get_currency($currency);
        $curr_sel = $currency . " - " . $curr['currency'];
-       if ($category == reserved_words::get_all_numeric())
+       if ($category == ALL_NUMERIC)
                $category = 0;
-       if ($salestype == reserved_words::get_all_numeric())
+       if ($salestype == ALL_NUMERIC)
                $salestype = 0;
        if ($category == 0)
                $cat = _('All');
@@ -94,7 +121,7 @@ function print_price_listing()
        else
                $user_comp = "";
 
-    $rep = new FrontReport(_('Price Listing'), "PriceListing.pdf", user_pagesize());
+    $rep = new FrontReport(_('Price Listing'), "PriceListing", user_pagesize());
 
     $rep->Font();
     $rep->Info($params, $cols, $headers, $aligns);
@@ -120,7 +147,7 @@ function print_price_listing()
                $rep->TextCol(0, 1,     $myrow['stock_id']);
                $rep->TextCol(1, 2, $myrow['name']);
                $price = get_price($myrow['stock_id'], $currency, $salestype);
-               $rep->TextCol(2, 3,     number_format2($price, $dec));
+               $rep->AmountCol(2, 3, $price, $dec);
                if ($showGP)
                {
                        $price2 = get_price($myrow['stock_id'], $home_curr, $salestype);
@@ -132,13 +159,14 @@ function print_price_listing()
                }
                if ($pictures)
                {
-                       $image = $comp_path . '/'. $user_comp . "/images/" . $myrow['stock_id'] . ".jpg";
+                       $image = $comp_path . '/'. $user_comp . "/images/" 
+                               . item_img_name($myrow['stock_id']) . ".jpg";
                        if (file_exists($image))
                        {
                                $rep->NewLine();
                                if ($rep->row - $pic_height < $rep->bottomMargin)
                                        $rep->Header();
-                               $rep->AddImage($image, $rep->cols[1], $rep->row - $pic_height, $pic_width, $pic_height);
+                               $rep->AddImage($image, $rep->cols[1], $rep->row - $pic_height, 0, $pic_height);
                                $rep->row -= $pic_height;
                                $rep->NewLine();
                        }
@@ -147,6 +175,38 @@ function print_price_listing()
                        $rep->NewLine(0, 1);
        }
        $rep->Line($rep->row  - 4);
+
+       $result = get_kits($category);
+
+       $catgor = '';
+       while ($myrow=db_fetch($result))
+       {
+               if ($catgor != $myrow['cat_name'])
+               {
+                       if ($catgor == '')
+                       {
+                               $rep->NewLine(2);
+                               $rep->fontSize += 2;
+                               $rep->TextCol(0, 3, _("Sales Kits"));
+                               $rep->fontSize -= 2;
+                       }       
+                       $rep->Line($rep->row  - $rep->lineHeight);
+                       $rep->NewLine(2);
+                       $rep->fontSize += 2;
+                       $rep->TextCol(0, 3, $myrow['cat_id'] . " - " . $myrow['cat_name']);
+                       $catgor = $myrow['cat_name'];
+                       $rep->fontSize -= 2;
+                       $rep->NewLine();
+               }
+               $rep->NewLine();
+               $rep->TextCol(0, 1,     $myrow['kit_code']);
+               $rep->TextCol(1, 2, $myrow['kit_name']);
+               $price = get_kit_price($myrow['kit_code'], $currency, $salestype);
+               $rep->AmountCol(2, 3, $price, $dec);
+               $rep->NewLine(0, 1);
+       }
+       $rep->Line($rep->row  - 4);
+       $rep->NewLine();
     $rep->End();
 }