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_STANDARDCOST';
14 if (@$_GET['page_level'] == 1)
15 $path_to_root = "../..";
19 include_once($path_to_root . "/includes/session.inc");
20 include_once($path_to_root . "/includes/date_functions.inc");
21 include_once($path_to_root . "/includes/ui.inc");
22 include_once($path_to_root . "/includes/banking.inc");
23 include_once($path_to_root . "/includes/data_checks.inc");
24 include_once($path_to_root . "/inventory/includes/inventory_db.inc");
25 include_once($path_to_root . "/includes/ui/items_cart.inc");
28 if ($SysPrefs->use_popup_windows)
29 $js .= get_js_open_window(900, 500);
30 page(_($help_context = "Inventory Item Cost Update"), false, false, "", $js);
32 //--------------------------------------------------------------------------------------
34 check_db_has_costable_items(_("There are no costable inventory items defined in the system (Purchased or manufactured items)."));
36 if (isset($_GET['stock_id']))
38 $_POST['stock_id'] = $_GET['stock_id'];
41 //--------------------------------------------------------------------------------------
42 if (isset($_POST['UpdateData']))
45 $old_cost = get_standard_cost($_POST['stock_id']);
47 $new_cost = input_num('material_cost') + input_num('labour_cost')
48 + input_num('overhead_cost');
50 $should_update = true;
52 if (!check_num('material_cost') || !check_num('labour_cost') ||
53 !check_num('overhead_cost'))
55 display_error( _("The entered cost is not numeric."));
56 set_focus('material_cost');
57 $should_update = false;
59 elseif ($old_cost == $new_cost)
61 display_error( _("The new cost is the same as the old cost. Cost was not updated."));
62 $should_update = false;
67 $update_no = stock_cost_update($_POST['stock_id'],
68 input_num('material_cost'), input_num('labour_cost'),
69 input_num('overhead_cost'), $old_cost);
71 display_notification(_("Cost has been updated."));
75 display_notification(get_gl_view_str(ST_COSTUPDATE, $update_no, _("View the GL Journal Entries for this Cost Update")));
81 if (list_updated('stock_id'))
82 $Ajax->activate('cost_table');
83 //-----------------------------------------------------------------------------------------
85 $action = $_SERVER['PHP_SELF'];
87 $action .= "?stock_id=".get_post('stock_id');
88 start_form(false, false, $action);
90 if (!isset($_POST['stock_id']))
91 $_POST['stock_id'] = get_global_stock_item();
95 echo "<center>" . _("Item:"). " ";
96 echo stock_items_list('stock_id', $_POST['stock_id'], false, true);
103 set_global_stock_item($_POST['stock_id']);
105 $myrow = get_item($_POST['stock_id']);
107 div_start('cost_table');
109 start_table(TABLESTYLE2);
110 $dec1 = $dec2 = $dec3 = 0;
111 $_POST['material_cost'] = price_decimal_format($myrow["material_cost"], $dec1);
112 $_POST['labour_cost'] = price_decimal_format($myrow["labour_cost"], $dec2);
113 $_POST['overhead_cost'] = price_decimal_format($myrow["overhead_cost"], $dec3);
115 amount_row(_("Standard Material Cost Per Unit"), "material_cost", null, "class='tableheader2'", null, $dec1);
117 if ($myrow["mb_flag"]=='M')
119 amount_row(_("Standard Labour Cost Per Unit"), "labour_cost", null, "class='tableheader2'", null, $dec2);
120 amount_row(_("Standard Overhead Cost Per Unit"), "overhead_cost", null, "class='tableheader2'", null, $dec3);
124 hidden("labour_cost", 0);
125 hidden("overhead_cost", 0);
130 submit_center('UpdateData', _("Update"), true, false, 'default');