New files from unstable branch
[fa-stable.git] / inventory / manage / items.php
index add74834a11a29cb1ad5f70c1fbbee507fcc3e79..1391b825da10ae35f305a6165b31454b3535f813 100644 (file)
@@ -56,7 +56,7 @@ if (isset($_FILES['pic']) && $_FILES['pic']['name'] != '')
        $stock_id = $_POST['NewStockID'];
        $result = $_FILES['pic']['error'];
        $upload_file = 'Yes'; //Assume all is well to start off with
-       $filename = $comp_path . "/$user_comp/images";
+       $filename = company_path().'/images';
        if (!file_exists($filename))
        {
                mkdir($filename);
@@ -155,7 +155,7 @@ if (isset($_POST['addupdate']))
        {
                if (check_value('del_image'))
                {
-                       $filename = $comp_path . "/$user_comp/images/".item_img_name($_POST['NewStockID']).".jpg";
+                       $filename = company_path().'/images/'.item_img_name($_POST['NewStockID']).".jpg";
                        if (file_exists($filename))
                                unlink($filename);
                }
@@ -169,7 +169,7 @@ if (isset($_POST['addupdate']))
                                $_POST['inventory_account'], $_POST['cogs_account'],
                                $_POST['adjustment_account'], $_POST['assembly_account'], 
                                $_POST['dimension_id'], $_POST['dimension2_id'],
-                               check_value('no_sale'));
+                               check_value('no_sale'), check_value('editable'));
                        update_record_status($_POST['NewStockID'], $_POST['inactive'],
                                'stock_master', 'stock_id');
                        update_record_status($_POST['NewStockID'], $_POST['inactive'],
@@ -187,12 +187,12 @@ if (isset($_POST['addupdate']))
                                $_POST['inventory_account'], $_POST['cogs_account'],
                                $_POST['adjustment_account'], $_POST['assembly_account'], 
                                $_POST['dimension_id'], $_POST['dimension2_id'],
-                               check_value('no_sale'));
+                               check_value('no_sale'), check_value('editable'));
 
                        display_notification(_("A new item has been added."));
                        $_POST['stock_id'] = $_POST['NewStockID'] = 
                        $_POST['description'] = $_POST['long_description'] = '';
-                       $_POST['no_sale'] = 0;
+                       $_POST['no_sale'] = $_POST['editable'] = 0;
                        set_focus('NewStockID');
                }
                $Ajax->activate('_page_body');
@@ -210,50 +210,8 @@ if (get_post('clone')) {
 
 function check_usage($stock_id, $dispmsg=true)
 {
-       $sqls=  array(
-       "SELECT COUNT(*) FROM "
-               .TB_PREF."stock_moves WHERE stock_id=".db_escape($stock_id) =>
-        _('Cannot delete this item because there are stock movements that refer to this item.'),
-       "SELECT COUNT(*) FROM "
-               .TB_PREF."bom WHERE component=".db_escape($stock_id)=>
-        _('Cannot delete this item record because there are bills of material that require this part as a component.'),
-       "SELECT COUNT(*) FROM "
-               .TB_PREF."sales_order_details WHERE stk_code=".db_escape($stock_id) =>
-        _('Cannot delete this item because there are existing purchase order items for it.'),
-       "SELECT COUNT(*) FROM "
-               .TB_PREF."purch_order_details WHERE item_code=".db_escape($stock_id)=>
-        _('Cannot delete this item because there are existing purchase order items for it.')
-       );
-
-       $msg = '';
-
-       foreach($sqls as $sql=>$err) {
-               $result = db_query($sql, "could not query stock usage");
-               $myrow = db_fetch_row($result);
-               if ($myrow[0] > 0) 
-               {
-                       $msg = $err; break;
-               }
-       }
-
-       if ($msg == '') {       
-
-               $kits = get_where_used($stock_id);
-               $num_kits = db_num_rows($kits);
-               if ($num_kits) {
-                       $msg = _("This item cannot be deleted because some code aliases 
-                               or foreign codes was entered for it, or there are kits defined 
-                               using this item as component")
-                               .':<br>';
+       $msg = item_in_foreign_codes($stock_id);
 
-                       while($num_kits--) {
-                               $kit = db_fetch($kits);
-                               $msg .= "'".$kit[0]."'";
-                               if ($num_kits) $msg .= ',';
-                       }
-
-               }
-       }
        if ($msg != '') {
                if($dispmsg) display_error($msg);
                return false;
@@ -270,7 +228,7 @@ if (isset($_POST['delete']) && strlen($_POST['delete']) > 1)
 
                $stock_id = $_POST['NewStockID'];
                delete_item($stock_id);
-               $filename = $comp_path . "/$user_comp/images/".item_img_name($stock_id).".jpg";
+               $filename = company_path().'/images/'.item_img_name($stock_id).".jpg";
                if (file_exists($filename))
                        unlink($filename);
                display_notification(_("Selected item has been deleted."));
@@ -287,7 +245,7 @@ start_form(true);
 
 if (db_has_stock_items()) 
 {
-       start_table("class='tablestyle_noborder'");
+       start_table(TABLESTYLE_NOBORDER);
        start_row();
     stock_items_list_cells(_("Select an item:"), 'stock_id', null,
          _('New item'), true, check_value('show_inactive'));
@@ -303,7 +261,7 @@ if (db_has_stock_items())
 }
 
 div_start('details');
-start_outer_table($table_style2, 5);
+start_outer_table(TABLESTYLE2);
 
 table_section(1);
 
@@ -318,7 +276,8 @@ if ($new_item)
 } 
 else 
 { // Must be modifying an existing item
-       if (!isset($_POST['NewStockID'])) {
+       if (get_post('NewStockID') != get_post('stock_id')) { // first item display
+
                $_POST['NewStockID'] = $_POST['stock_id'];
 
                $myrow = get_item($_POST['NewStockID']);
@@ -340,13 +299,14 @@ else
                $_POST['no_sale']       = $myrow['no_sale'];
                $_POST['del_image'] = 0;        
                $_POST['inactive'] = $myrow["inactive"];
+               $_POST['editable'] = $myrow["editable"];
        }
        label_row(_("Item Code:"),$_POST['NewStockID']);
        hidden('NewStockID', $_POST['NewStockID']);
        set_focus('description');
 }
 
-text_row(_("Name:"), 'description', null, 52, 50);
+text_row(_("Name:"), 'description', null, 52, 200);
 
 textarea_row(_('Description:'), 'long_description', null, 42, 3);
 
@@ -367,6 +327,8 @@ if ($new_item && (list_updated('category_id') || !isset($_POST['units']))) {
        $_POST['dimension_id'] = $category_record["dflt_dim1"];
        $_POST['dimension2_id'] = $category_record["dflt_dim2"];
        $_POST['no_sale'] = $category_record["dflt_no_sale"];
+       $_POST['editable'] = 0;
+
 }
 $fresh_item = !isset($_POST['NewStockID']) || $new_item 
        || check_usage($_POST['stock_id'],false);
@@ -377,6 +339,12 @@ stock_item_types_list_row(_("Item Type:"), 'mb_flag', null, $fresh_item);
 
 stock_units_list_row(_('Units of Measure:'), 'units', null, $fresh_item);
 
+check_row(_("Editable description:"), 'editable');
+
+check_row(_("Exclude from sales:"), 'no_sale');
+
+table_section(2);
+
 $dim = get_company_pref('use_dimension');
 if ($dim >= 1)
 {
@@ -391,8 +359,6 @@ if ($dim < 1)
 if ($dim < 2)
        hidden('dimension2_id', 0);
 
-table_section(2);
-
 table_section_title(_("GL Accounts"));
 
 gl_all_accounts_list_row(_("Sales Account:"), 'sales_account', $_POST['sales_account']);
@@ -423,14 +389,14 @@ file_row(_("Image File (.jpg)") . ":", 'pic', 'pic');
 // Add Image upload for New Item  - by Joe
 $stock_img_link = "";
 $check_remove_image = false;
-if (isset($_POST['NewStockID']) && file_exists("$comp_path/$user_comp/images/"
+if (isset($_POST['NewStockID']) && file_exists(company_path().'/images/'
        .item_img_name($_POST['NewStockID']).".jpg")) 
 {
  // 31/08/08 - rand() call is necessary here to avoid caching problems. Thanks to Peter D.
        $stock_img_link .= "<img id='item_img' alt = '[".$_POST['NewStockID'].".jpg".
-               "]' src='$comp_path/$user_comp/images/".item_img_name($_POST['NewStockID']).".jpg?nocache=".rand()."'".
-               " height='$pic_height' border='0'>";
-       $check_remove_image = true;     
+               "]' src='".company_path().'/images/'.item_img_name($_POST['NewStockID']).
+               ".jpg?nocache=".rand()."'"." height='$pic_height' border='0'>";
+       $check_remove_image = true;
 } 
 else 
 {
@@ -441,8 +407,6 @@ label_row("&nbsp;", $stock_img_link);
 if ($check_remove_image)
        check_row(_("Delete Image:"), 'del_image');
        
-check_row(_("Exclude from sales:"), 'no_sale');
-
 record_status_list_row(_("Item status:"), 'inactive');
 end_outer_table(1);
 div_end();