diff --git a/.gitignore b/.gitignore
index 1ce5a940a..e321dc105 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@ git-svn-diff.py
*.rej
*.orig
*~
+uploads/
diff --git a/application/controllers/items.php b/application/controllers/items.php
index 3c3b2345a..5c56db4af 100644
--- a/application/controllers/items.php
+++ b/application/controllers/items.php
@@ -302,6 +302,8 @@ class Items extends Secure_area implements iData_controller
function save($item_id=-1)
{
+ $upload_success = $this->_handle_image_upload();
+ $upload_data = $this->upload->data();
//Save item data
$item_data = array(
'name'=>$this->input->post('name'),
@@ -328,25 +330,24 @@ class Items extends Secure_area implements iData_controller
'custom10'=>$this->input->post('custom10')/**GARRISON ADDED 4/21/2013**/
);
+ if (!empty($upload_data['raw_name']))
+ {
+ $item_data['pic_id'] = $upload_data['raw_name'];
+ }
+
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$cur_item_info = $this->Item->get_info($item_id);
- $new_item = FALSE;
if($this->Item->save($item_data,$item_id))
{
+ $success = TRUE;
+ $new_item = FALSE;
//New item
if($item_id==-1)
{
- echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_adding').' '.
- $item_data['name'],'item_id'=>$item_data['item_id']));
$item_id = $item_data['item_id'];
$new_item = TRUE;
}
- else //previous item
- {
- echo json_encode(array('success'=>true,'message'=>$this->lang->line('items_successful_updating').' '.
- $item_data['name'],'item_id'=>$item_id));
- }
$items_taxes_data = array();
$tax_names = $this->input->post('tax_names');
@@ -358,7 +359,7 @@ class Items extends Secure_area implements iData_controller
$items_taxes_data[] = array('name'=>$tax_names[$k], 'percent'=>$tax_percents[$k] );
}
}
- $this->Item_taxes->save($items_taxes_data, $item_id);
+ $success &= $this->Item_taxes->save($items_taxes_data, $item_id);
//Save item quantity
@@ -372,7 +373,7 @@ class Items extends Secure_area implements iData_controller
$item_quantity = $this->Item_quantities->get_item_quantity($item_id, $location_data['location_id']);
if ($item_quantity->quantity != $updated_quantity || $new_item)
{
- $this->Item_quantities->save($location_detail, $item_id, $location_data['location_id']);
+ $success &= $this->Item_quantities->save($location_detail, $item_id, $location_data['location_id']);
$inv_data = array
(
@@ -383,18 +384,50 @@ class Items extends Secure_area implements iData_controller
'trans_comment'=>$this->lang->line('items_manually_editing_of_quantity'),
'trans_inventory'=>$updated_quantity - $item_quantity->quantity
);
- $this->Inventory->insert($inv_data);
+ $success &= $this->Inventory->insert($inv_data);
}
}
+
+ if ($success && $upload_success)
+ {
+ $success_message = $this->lang->line('items_successful_' . ($new_item ? 'adding' : 'updating')) .' '. $item_data['name'];
+ echo json_encode(array('success'=>true,'message'=>$success_message,'item_id'=>$item_id));
+ }
+ else
+ {
+ $error_message = $upload_success ?
+ $this->lang->line('items_error_adding_updating') .' '. $item_data['name'] :
+ $this->upload->display_errors();
+ echo json_encode(array('success'=>false,'message'=>$error_message,'item_id'=>$item_id));
+ }
+
}
else//failure
{
echo json_encode(array('success'=>false,'message'=>$this->lang->line('items_error_adding_updating').' '.
- $item_data['name'],'item_id'=>-1));
+ $item_data['name'],'item_id'=>-1));
}
}
+ function _handle_image_upload()
+ {
+ $this->load->helper('directory');
+ $map = directory_map('./uploads/item_pics/', 1);
+ // load upload library
+ $config = array('upload_path' => './uploads/item_pics/',
+ 'allowed_types' => 'gif|jpg|png',
+ 'max_size' => '100',
+ 'max_width' => '640',
+ 'max_height' => '480',
+ 'file_name' => sizeof($map));
+ $this->load->library('upload', $config);
+ $this->upload->do_upload('item_image');
+ return strlen($this->upload->display_errors()) == 0 ||
+ !strcmp($this->upload->display_errors(),
+ '
'.$this->lang->line('upload_no_file_selected').'
');
+ }
+
//Ramel Inventory Tracking
function save_inventory($item_id=-1)
{
@@ -668,7 +701,7 @@ class Items extends Secure_area implements iData_controller
*/
function get_form_width()
{
- return 360;
+ return 400;
}
function item_number_check($item_number)
diff --git a/application/helpers/table_helper.php b/application/helpers/table_helper.php
index 6ecb80354..e1cdf1b52 100644
--- a/application/helpers/table_helper.php
+++ b/application/helpers/table_helper.php
@@ -162,7 +162,8 @@ function get_items_manage_table($items,$controller)
$CI->lang->line('items_quantity'),
$CI->lang->line('items_tax_percents'),
' ',
- $CI->lang->line('items_inventory')
+ ' ',
+ ' '
);
$table.='';
@@ -191,7 +192,7 @@ function get_items_manage_table_data_rows($items,$controller)
if($items->num_rows()==0)
{
- $table_data_rows.="
".$CI->lang->line('items_no_items_to_display')." |
";
+ $table_data_rows.="".$CI->lang->line('items_no_items_to_display')." |
";
}
return $table_data_rows;
@@ -220,7 +221,17 @@ function get_item_data_row($item,$controller)
$table_data_row.=''.to_currency($item->cost_price).' | ';
$table_data_row.=''.to_currency($item->unit_price).' | ';
$table_data_row.=''.$item->quantity.' | ';
- $table_data_row.=''.$tax_percents.' | ';
+ $table_data_row.=''.$tax_percents.' | ';
+ $image = '';
+ if (!empty($item->pic_id))
+ {
+ $images = glob ("uploads/item_pics/" . $item->pic_id . ".*");
+ if (sizeof($images) > 0)
+ {
+ $image.='
';
+ }
+ }
+ $table_data_row.='' . $image . ' | ';
$table_data_row.=''.anchor($controller_name."/view/$item->item_id/width:$width", $CI->lang->line('common_edit'),array('class'=>'thickbox','title'=>$CI->lang->line($controller_name.'_update'))).' | ';
//Ramel Inventory Tracking
diff --git a/application/language/en/items_lang.php b/application/language/en/items_lang.php
index fd8c6473d..cd740d9fd 100644
--- a/application/language/en/items_lang.php
+++ b/application/language/en/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Retail Price is a required field";
$lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "Update Item";
$lang["items_use_inventory_menu"] = "Use Inv. Menu";
+$lang["items_image"] = "Avatar";
diff --git a/application/language/es/items_lang.php b/application/language/es/items_lang.php
index 0a0b51f8b..52724bfb2 100644
--- a/application/language/es/items_lang.php
+++ b/application/language/es/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Precio de Venta es requerido";
$lang["items_upc_database"] = "Base de datos UPC";
$lang["items_update"] = "Actualizar Artículo";
$lang["items_use_inventory_menu"] = "Usar Menú de Inventario";
+$lang["items_image"] = "";
diff --git a/application/language/fr/items_lang.php b/application/language/fr/items_lang.php
index fc0ab0cfb..959b5b265 100644
--- a/application/language/fr/items_lang.php
+++ b/application/language/fr/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Le Prix de revente est requis";
$lang["items_upc_database"] = "Base de Données UPC";
$lang["items_update"] = "Éditer Item";
$lang["items_use_inventory_menu"] = "Utiliser Menu Inv.";
+$lang["items_image"] = "";
diff --git a/application/language/id/items_lang.php b/application/language/id/items_lang.php
index ac3483448..b0142902b 100644
--- a/application/language/id/items_lang.php
+++ b/application/language/id/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Harga Jual wajib diisi";
$lang["items_upc_database"] = "Database UPC";
$lang["items_update"] = "Ubah";
$lang["items_use_inventory_menu"] = "Gunakan Inv. Menu";
+$lang["items_image"] = "";
diff --git a/application/language/nl-BE/items_lang.php b/application/language/nl-BE/items_lang.php
index 5297919e9..7ddf9778f 100755
--- a/application/language/nl-BE/items_lang.php
+++ b/application/language/nl-BE/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Verkoopprijs moet ingevuld worden";
$lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "Bewerk Product";
$lang["items_use_inventory_menu"] = "Use Inv. Menu";
+$lang["items_image"] = "Afbeelding";
diff --git a/application/language/ru/items_lang.php b/application/language/ru/items_lang.php
index 4f2e32216..eba522d8a 100644
--- a/application/language/ru/items_lang.php
+++ b/application/language/ru/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Розничная цена обязате
$lang["items_upc_database"] = "UPC база данных";
$lang["items_update"] = "Обновить Товар";
$lang["items_use_inventory_menu"] = "Используйте меню инвентаря";
+$lang["items_image"] = "";
diff --git a/application/language/th/items_lang.php b/application/language/th/items_lang.php
index 4fe7187b9..f4b3332ac 100644
--- a/application/language/th/items_lang.php
+++ b/application/language/th/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "ราคาต่อหน่วยต้
$lang["items_upc_database"] = "UPC ฐานข้อมูล";
$lang["items_update"] = "ปรับแต่งสินค้า";
$lang["items_use_inventory_menu"] = "ใช้เมนูสินค้าคงเหลือ";
+$lang["items_image"] = "";
diff --git a/application/language/tr/items_lang.php b/application/language/tr/items_lang.php
index f6e4d36e5..87830bd27 100644
--- a/application/language/tr/items_lang.php
+++ b/application/language/tr/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "Satış Fiyatı zorunlu alandır";
$lang["items_upc_database"] = "UPC Veritabanı";
$lang["items_update"] = "Ürün Güncelle";
$lang["items_use_inventory_menu"] = "Stok Menüsünü Kullan";
+$lang["items_image"] = "";
diff --git a/application/language/zh/items_lang.php b/application/language/zh/items_lang.php
index 0298041ab..f3ad71888 100755
--- a/application/language/zh/items_lang.php
+++ b/application/language/zh/items_lang.php
@@ -79,3 +79,4 @@ $lang["items_unit_price_required"] = "單價為必填欄位";
$lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "更新產品";
$lang["items_use_inventory_menu"] = "使用庫存清單";
+$lang["items_image"] = "";
diff --git a/application/models/item_taxes.php b/application/models/item_taxes.php
index 18033baa7..badc43b7a 100644
--- a/application/models/item_taxes.php
+++ b/application/models/item_taxes.php
@@ -21,15 +21,15 @@ class Item_taxes extends CI_Model
$this->db->trans_start();
$this->delete($item_id);
-
+ $result = TRUE;
foreach ($items_taxes_data as $row)
{
$row['item_id'] = $item_id;
- $this->db->insert('items_taxes',$row);
+ $result &= $this->db->insert('items_taxes',$row);
}
$this->db->trans_complete();
- return true;
+ return $result;
}
function save_multiple(&$items_taxes_data, $item_ids)
diff --git a/application/views/items/form.php b/application/views/items/form.php
index 37cd6466d..5313bb009 100644
--- a/application/views/items/form.php
+++ b/application/views/items/form.php
@@ -1,7 +1,7 @@
lang->line('common_fields_required_message'); ?>
item_id,array('id'=>'item_form'));
+echo form_open('items/save/'.$item_info->item_id,array('id'=>'item_form', 'enctype'=>'multipart/form-data'));
?>