*** empty log message ***
[fa-stable.git] / reporting / rep301.php
1 <?php
2
3 $page_security = 2;
4 // ----------------------------------------------------------------
5 // $ Revision:  2.0 $
6 // Creator:     Joe Hunt
7 // date_:       2005-05-19
8 // Title:       Supplier Balances
9 // ----------------------------------------------------------------
10 $path_to_root="../";
11
12 include_once($path_to_root . "includes/session.inc");
13 include_once($path_to_root . "includes/date_functions.inc");
14 include_once($path_to_root . "includes/data_checks.inc");
15 include_once($path_to_root . "gl/includes/gl_db.inc");
16 include_once($path_to_root . "inventory/includes/db/items_category_db.inc");
17
18 //----------------------------------------------------------------------------------------------------
19
20 // trial_inquiry_controls();
21 print_inventory_valuation_report();
22
23 function getTransactions($category, $location)
24 {
25         $sql = "SELECT ".TB_PREF."stock_master.category_id,
26                         ".TB_PREF."stock_category.description AS cat_description,
27                         ".TB_PREF."stock_master.stock_id,
28                         ".TB_PREF."stock_master.description,
29                         ".TB_PREF."stock_moves.loc_code,
30                         SUM(".TB_PREF."stock_moves.qty) AS QtyOnHand,
31                         ".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost AS UnitCost,
32                         SUM(".TB_PREF."stock_moves.qty) *(".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost) AS ItemTotal
33                 FROM ".TB_PREF."stock_master,
34                         ".TB_PREF."stock_category,
35                         ".TB_PREF."stock_moves
36                 WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."stock_moves.stock_id
37                 AND ".TB_PREF."stock_master.category_id=".TB_PREF."stock_category.category_id
38                 GROUP BY ".TB_PREF."stock_master.category_id,
39                         ".TB_PREF."stock_category.description, ";
40                 if ($location != 'all')
41                         $sql .= TB_PREF."stock_moves.loc_code, ";
42                 $sql .= "UnitCost,
43                         ".TB_PREF."stock_master.stock_id,
44                         ".TB_PREF."stock_master.description
45                 HAVING SUM(".TB_PREF."stock_moves.qty) != 0";
46                 if ($category != 0)
47                         $sql .= " AND ".TB_PREF."stock_master.category_id = '$category'";
48                 if ($location != 'all')
49                         $sql .= " AND ".TB_PREF."stock_moves.loc_code = '$location'";
50                 $sql .= " ORDER BY ".TB_PREF."stock_master.category_id,
51                         ".TB_PREF."stock_master.stock_id";
52
53     return db_query($sql,"No transactions were returned");
54 }
55
56 //----------------------------------------------------------------------------------------------------
57
58 function print_inventory_valuation_report()
59 {
60     global $path_to_root;
61
62     include_once($path_to_root . "reporting/includes/pdf_report.inc");
63
64     $category = $_POST['PARAM_0'];
65     $location = $_POST['PARAM_1'];
66     $detail = $_POST['PARAM_2'];
67     $comments = $_POST['PARAM_3'];
68
69     $dec = user_price_dec();
70
71         if ($category == reserved_words::get_all_numeric())
72                 $category = 0;
73         if ($category == 0)
74                 $cat = _('All');
75         else
76                 $cat = get_category_name($category);
77
78         if ($location == reserved_words::get_all())
79                 $location = 'all';
80         if ($location == 'all')
81                 $loc = _('All');
82         else
83                 $loc = $location;
84
85         $cols = array(0, 100, 250, 350, 450,    515);
86
87         $headers = array(_('Category'), '', _('Quantity'), _('Unit Cost'), _('Value'));
88
89         $aligns = array('left', 'left', 'right', 'right', 'right');
90
91     $params =   array(  0 => $comments,
92                                     1 => array('text' => _('Category'), 'from' => $cat, 'to' => ''),
93                                     2 => array('text' => _('Location'), 'from' => $loc, 'to' => ''));
94
95     $rep = new FrontReport(_('Inventory Valuation Report'), "InventoryValReport.pdf", user_pagesize());
96
97     $rep->Font();
98     $rep->Info($params, $cols, $headers, $aligns);
99     $rep->Header();
100
101         $res = getTransactions($category, $location);
102         $total = $grandtotal = 0.0;
103         $catt = '';
104         while ($trans=db_fetch($res))
105         {
106                 if ($catt != $trans['cat_description'])
107                 {
108                         if ($catt != '')
109                         {
110                                 if ($detail)
111                                 {
112                                         $rep->NewLine(2, 3);
113                                         $rep->TextCol(0, 4, _('Total'));
114                                 }
115                                 $rep->Textcol(4, 5, number_format2($total, $dec));
116                                 if ($detail)
117                                 {
118                                         $rep->Line($rep->row - 2);
119                                         $rep->NewLine();
120                                 }
121                                 $rep->NewLine();
122                                 $total = 0.0;
123                         }
124                         $rep->TextCol(0, 1, $trans['category_id']);
125                         $rep->TextCol(1, 2, $trans['cat_description']);
126                         $catt = $trans['cat_description'];
127                         if ($detail)
128                                 $rep->NewLine();
129                 }
130                 if ($detail)
131                 {
132                         $rep->NewLine();
133                         $rep->fontsize -= 2;
134                         $rep->TextCol(0, 1, $trans['stock_id']);
135                         $rep->TextCol(1, 2, $trans['description']);
136                         $rep->TextCol(2, 3, number_format2($trans['QtyOnHand'], get_qty_dec($trans['stock_id'])));
137                         $rep->TextCol(3, 4, number_format2($trans['UnitCost'], $dec));
138                         $rep->TextCol(4, 5, number_format2($trans['ItemTotal'], $dec));
139                         $rep->fontsize += 2;
140                 }
141                 $total += $trans['ItemTotal'];
142                 $grandtotal += $trans['ItemTotal'];
143         }
144         if ($detail)
145         {
146                 $rep->NewLine(2, 3);
147                 $rep->TextCol(0, 4, _('Total'));
148         }
149         $rep->Textcol(4, 5, number_format2($total, $dec));
150         if ($detail)
151         {
152                 $rep->Line($rep->row - 2);
153                 $rep->NewLine();
154         }
155         $rep->NewLine(2, 1);
156         $rep->TextCol(0, 4, _('Grand Total'));
157         $rep->TextCol(4, 5, number_format2($grandtotal, $dec));
158         $rep->Line($rep->row  - 4);
159     $rep->End();
160 }
161
162 ?>