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 function update_item($stock_id, $description, $long_description, $category_id,
13 $tax_type_id, $units='', $mb_flag='', $sales_account, $inventory_account,
14 $cogs_account, $adjustment_account, $assembly_account, $dimension_id,
15 $dimension2_id, $no_sale)
17 $sql = "UPDATE ".TB_PREF."stock_master SET long_description=".db_escape($long_description).",
18 description=".db_escape($description).",
19 category_id=".db_escape($category_id).",
20 sales_account=".db_escape($sales_account).",
21 inventory_account=".db_escape($inventory_account).",
22 cogs_account=".db_escape($cogs_account).",
23 adjustment_account=".db_escape($adjustment_account).",
24 assembly_account=".db_escape($assembly_account).",
25 dimension_id=".db_escape($dimension_id).",
26 dimension2_id=".db_escape($dimension2_id).",
27 tax_type_id=".db_escape($tax_type_id).",
28 no_sale=".db_escape($no_sale);
31 $sql .= ", units='$units'";
34 $sql .= ", mb_flag='$mb_flag'";
36 $sql .= " WHERE stock_id=".db_escape($stock_id);
38 db_query($sql, "The item could not be updated");
40 update_item_code(-1, $stock_id, $stock_id, $description, $category_id, 1, 0);
43 function add_item($stock_id, $description, $long_description, $category_id,
44 $tax_type_id, $units, $mb_flag, $sales_account, $inventory_account,
45 $cogs_account, $adjustment_account, $assembly_account, $dimension_id,
46 $dimension2_id, $no_sale)
48 $sql = "INSERT INTO ".TB_PREF."stock_master (stock_id, description, long_description, category_id,
49 tax_type_id, units, mb_flag, sales_account, inventory_account, cogs_account,
50 adjustment_account, assembly_account, dimension_id, dimension2_id, no_sale)
51 VALUES (".db_escape($stock_id).", ".db_escape($description).", ".db_escape($long_description).",
52 ".db_escape($category_id).", ".db_escape($tax_type_id).", "
53 .db_escape($units).", ".db_escape($mb_flag).",
54 ".db_escape($sales_account).", ".db_escape($inventory_account)
55 .", ".db_escape($cogs_account).",".db_escape($adjustment_account)
56 .", ".db_escape($assembly_account).", "
57 .db_escape($dimension_id).", ".db_escape($dimension2_id).","
58 .db_escape($no_sale).")";
60 db_query($sql, "The item could not be added");
62 $sql = "INSERT INTO ".TB_PREF."loc_stock (loc_code, stock_id)
63 SELECT ".TB_PREF."locations.loc_code, ".db_escape($stock_id)
64 ." FROM ".TB_PREF."locations";
66 db_query($sql, "The item locstock could not be added");
68 add_item_code($stock_id, $stock_id, $description, $category_id, 1, 0);
71 function delete_item($stock_id)
73 $sql="DELETE FROM ".TB_PREF."stock_master WHERE stock_id=".db_escape($stock_id);
74 db_query($sql, "could not delete stock item");
76 /*and cascade deletes in loc_stock */
77 $sql ="DELETE FROM ".TB_PREF."loc_stock WHERE stock_id=".db_escape($stock_id);
78 db_query($sql, "could not delete stock item loc stock");
80 /*and cascade deletes in purch_data */
81 $sql ="DELETE FROM ".TB_PREF."purch_data WHERE stock_id=".db_escape($stock_id);
82 db_query($sql, "could not delete stock item purch data");
84 /*and cascade deletes in prices */
85 $sql ="DELETE FROM ".TB_PREF."prices WHERE stock_id=".db_escape($stock_id);
86 db_query($sql, "could not delete stock item prices");
88 /*and cascade delete the bill of material if any */
89 $sql = "DELETE FROM ".TB_PREF."bom WHERE parent=".db_escape($stock_id);
90 db_query($sql, "could not delete stock item bom");
92 delete_item_kit($stock_id);
95 function get_item($stock_id)
97 $sql = "SELECT ".TB_PREF."stock_master.*,".TB_PREF."item_tax_types.name AS tax_type_name
98 FROM ".TB_PREF."stock_master,".TB_PREF."item_tax_types
99 WHERE ".TB_PREF."item_tax_types.id=".TB_PREF."stock_master.tax_type_id
100 AND stock_id=".db_escape($stock_id);
101 $result = db_query($sql,"an item could not be retreived");
103 return db_fetch($result);
108 $sql = "SELECT * FROM ".TB_PREF."stock_master";
109 return db_query($sql,"items could not be retreived");
112 function item_in_foreign_codes($stock_id)
115 "SELECT COUNT(*) FROM "
116 .TB_PREF."stock_moves WHERE stock_id=".db_escape($stock_id) =>
117 _('Cannot delete this item because there are stock movements that refer to this item.'),
118 "SELECT COUNT(*) FROM "
119 .TB_PREF."bom WHERE component=".db_escape($stock_id)=>
120 _('Cannot delete this item record because there are bills of material that require this part as a component.'),
121 "SELECT COUNT(*) FROM "
122 .TB_PREF."sales_order_details WHERE stk_code=".db_escape($stock_id) =>
123 _('Cannot delete this item because there are existing purchase order items for it.'),
124 "SELECT COUNT(*) FROM "
125 .TB_PREF."purch_order_details WHERE item_code=".db_escape($stock_id)=>
126 _('Cannot delete this item because there are existing purchase order items for it.')
131 foreach($sqls as $sql=>$err) {
132 $result = db_query($sql, "could not query stock usage");
133 $myrow = db_fetch_row($result);
141 $kits = get_where_used($stock_id);
142 $num_kits = db_num_rows($kits);
144 $msg = _("This item cannot be deleted because some code aliases
145 or foreign codes was entered for it, or there are kits defined
146 using this item as component")
150 $kit = db_fetch($kits);
151 $msg .= "'".$kit[0]."'";
152 if ($num_kits) $msg .= ',';