Fixed many issues in output HTML code according to HTML 4.01 Transitional format.
[fa-stable.git] / inventory / prices.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_SALESPRICE';
13 if (!@$_GET['popup'])
14         $path_to_root = "..";
15 else    
16         $path_to_root = "../..";
17
18 include_once($path_to_root . "/includes/session.inc");
19 include_once($path_to_root . "/sales/includes/sales_db.inc");
20 include_once($path_to_root . "/sales/includes/db/sales_types_db.inc");
21 include_once($path_to_root . "/includes/ui.inc");
22 include_once($path_to_root . "/includes/data_checks.inc");
23 include_once($path_to_root . "/inventory/includes/inventory_db.inc");
24
25 if (!@$_GET['popup'])
26         page(_($help_context = "Inventory Item Sales prices"));
27
28 //---------------------------------------------------------------------------------------------------
29
30 check_db_has_stock_items(_("There are no items defined in the system."));
31
32 check_db_has_sales_types(_("There are no sales types in the system. Please set up sales types befor entering pricing."));
33
34 simple_page_mode(true);
35 //---------------------------------------------------------------------------------------------------
36 $input_error = 0;
37
38 if (isset($_GET['stock_id']))
39 {
40         $_POST['stock_id'] = $_GET['stock_id'];
41 }
42 if (isset($_GET['Item']))
43 {
44         $_POST['stock_id'] = $_GET['Item'];
45 }
46
47 if (!isset($_POST['curr_abrev']))
48 {
49         $_POST['curr_abrev'] = get_company_currency();
50 }
51
52 //---------------------------------------------------------------------------------------------------
53 if (!@$_GET['popup'])
54         start_form();
55
56 if (!isset($_POST['stock_id']))
57         $_POST['stock_id'] = get_global_stock_item();
58
59 if (!@$_GET['popup'])
60 {
61         echo "<center>" . _("Item:"). "&nbsp;";
62         echo sales_items_list('stock_id', $_POST['stock_id'], false, true, '', array('editable' => false));
63         echo "<hr></center>";
64 }
65 else
66         br(2);
67 set_global_stock_item($_POST['stock_id']);
68
69 //----------------------------------------------------------------------------------------------------
70
71 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') 
72 {
73
74         if (!check_num('price', 0))
75         {
76                 $input_error = 1;
77                 display_error( _("The price entered must be numeric."));
78                 set_focus('price');
79         }
80         elseif ($Mode == 'ADD_ITEM' && get_stock_price_type_currency($_POST['stock_id'], $_POST['sales_type_id'], $_POST['curr_abrev']))
81         {
82         $input_error = 1;
83         display_error( _("The sales pricing for this item, sales type and currency has already been added."));
84                 set_focus('supplier_id');
85         }
86
87         if ($input_error != 1)
88         {
89
90         if ($selected_id != -1) 
91                 {
92                         //editing an existing price
93                         update_item_price($selected_id, $_POST['sales_type_id'],
94                         $_POST['curr_abrev'], input_num('price'));
95
96                         $msg = _("This price has been updated.");
97                 }
98                 else
99                 {
100
101                         add_item_price($_POST['stock_id'], $_POST['sales_type_id'],
102                             $_POST['curr_abrev'], input_num('price'));
103
104                         $msg = _("The new price has been added.");
105                 }
106                 display_notification($msg);
107                 $Mode = 'RESET';
108         }
109
110 }
111
112 //------------------------------------------------------------------------------------------------------
113
114 if ($Mode == 'Delete')
115 {
116         //the link to delete a selected record was clicked
117         delete_item_price($selected_id);
118         display_notification(_("The selected price has been deleted."));
119         $Mode = 'RESET';
120 }
121
122 if ($Mode == 'RESET')
123 {
124         $selected_id = -1;
125 }
126
127 if (list_updated('stock_id')) {
128         $Ajax->activate('price_table');
129         $Ajax->activate('price_details');
130 }
131 if (list_updated('stock_id') || isset($_POST['_curr_abrev_update']) || isset($_POST['_sales_type_id_update'])) {
132         // after change of stock, currency or salestype selector
133         // display default calculated price for new settings. 
134         // If we have this price already in db it is overwritten later.
135         unset($_POST['price']);
136         $Ajax->activate('price_details');
137 }
138
139 //---------------------------------------------------------------------------------------------------
140
141 $prices_list = get_prices($_POST['stock_id']);
142
143 div_start('price_table');
144 start_table(TABLESTYLE, "width='30%'");
145
146 $th = array(_("Currency"), _("Sales Type"), _("Price"), "", "");
147 table_header($th);
148 $k = 0; //row colour counter
149 $calculated = false;
150 while ($myrow = db_fetch($prices_list))
151 {
152
153         alt_table_row_color($k);
154
155         label_cell($myrow["curr_abrev"]);
156     label_cell($myrow["sales_type"]);
157     amount_cell($myrow["price"]);
158         edit_button_cell("Edit".$myrow['id'], _("Edit"));
159         delete_button_cell("Delete".$myrow['id'], _("Delete"));
160     end_row();
161
162 }
163 end_table();
164 if (db_num_rows($prices_list) == 0)
165 {
166         if (get_company_pref('add_pct') != -1)
167                 $calculated = true;
168         display_note(_("There are no prices set up for this part."), 1);
169 }
170 div_end();
171 //------------------------------------------------------------------------------------------------
172
173 echo "<br>";
174
175 if ($Mode == 'Edit')
176 {
177         $myrow = get_stock_price($selected_id);
178         $_POST['curr_abrev'] = $myrow["curr_abrev"];
179         $_POST['sales_type_id'] = $myrow["sales_type_id"];
180         $_POST['price'] = price_format($myrow["price"]);
181 }
182
183 hidden('selected_id', $selected_id);
184 if (@$_GET['popup'])
185 {
186         hidden('_tabs_sel', get_post('_tabs_sel'));
187         hidden('popup', @$_GET['popup']);
188 }
189 div_start('price_details');
190 start_table(TABLESTYLE2);
191
192 currencies_list_row(_("Currency:"), 'curr_abrev', null, true);
193
194 sales_types_list_row(_("Sales Type:"), 'sales_type_id', null, true);
195
196 if (!isset($_POST['price'])) {
197         $_POST['price'] = price_format(get_kit_price(get_post('stock_id'), 
198                 get_post('curr_abrev'), get_post('sales_type_id')));
199 }
200
201 $kit = get_item_code_dflts($_POST['stock_id']);
202 small_amount_row(_("Price:"), 'price', null, '', _('per') .' '.$kit["units"]);
203
204 end_table(1);
205 if ($calculated)
206         display_note(_("The price is calculated."), 0, 1);
207
208 submit_add_or_update_center($selected_id == -1, '', 'both');
209 div_end();
210
211 if (!@$_GET['popup'])
212 {
213         end_form();
214         end_page(@$_GET['popup'], false, false);
215 }       
216 ?>