Show proper error message on upload misconfiguration

Use jquery-validation to do item_number check
Fix invoice_number validation in sale edit form
This commit is contained in:
jekkos-t520
2015-02-11 11:32:58 +01:00
parent 9191eb4535
commit f021215cbb
16 changed files with 47 additions and 58 deletions

View File

@@ -366,8 +366,7 @@ class Items extends Secure_area implements iData_controller
$employee_id=$this->Employee->get_logged_in_employee_info()->person_id;
$cur_item_info = $this->Item->get_info($item_id);
$validated = $this->validate_item() || $item_id != -1;
if($validated && $this->Item->save($item_data,$item_id))
if($this->Item->save($item_data,$item_id))
{
$success = TRUE;
$new_item = FALSE;
@@ -428,37 +427,23 @@ class Items extends Secure_area implements iData_controller
$this->lang->line('items_error_adding_updating') .' '. $item_data['name'] :
$this->upload->display_errors();
echo json_encode(array('success'=>false,
'error_messages'=>array($this->upload->display_errors()),
'message'=>$error_message,'item_id'=>$item_id));
}
}
else//failure
{
$error_messages = $this->form_validation->get_error_messages();
echo json_encode(array('success'=>false,
'error_messages'=>$error_messages,
'message'=>$this->lang->line('items_error_adding_updating').' '
.$item_data['name'],'item_id'=>-1));
}
}
function validate_item()
function check_item_number()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('item_number', 'lang:items_item_number', 'callback_item_number_check');
return $this->form_validation->run();
}
function item_number_check($item_number)
{
if ($this->Item->get_item_id($item_number) != FALSE)
{
$this->form_validation->set_message('item_number_check', $this->lang->line('items_item_number_exists'));
return FALSE;
}
return TRUE;
$exists = $this->Item->item_number_exists($this->input->post('item_number'),$this->input->post('item_id'));
echo json_encode(array('success'=>!$exists,'message'=>$this->lang->line('items_item_number_duplicate')));
}
function _handle_image_upload()

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "Update Item";
$lang["items_use_inventory_menu"] = "Use Inv. Menu";
$lang["items_image"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $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"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $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"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "Database UPC";
$lang["items_update"] = "Ubah";
$lang["items_use_inventory_menu"] = "Gunakan Inv. Menu";
$lang["items_image"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "Bewerk Product";
$lang["items_use_inventory_menu"] = "Use Inv. Menu";
$lang["items_image"] = "Afbeelding";
$lang["items_item_number_exists"] = "De barcode nummer is reeds aanwezig in de database";
$lang["items_item_number_duplicate"] = "De barcode nummer is reeds aanwezig in de database";

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "UPC база данных";
$lang["items_update"] = "Обновить Товар";
$lang["items_use_inventory_menu"] = "Используйте меню инвентаря";
$lang["items_image"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "UPC ฐานข้อมูล";
$lang["items_update"] = "ปรับแต่งสินค้า";
$lang["items_use_inventory_menu"] = "ใช้เมนูสินค้าคงเหลือ";
$lang["items_image"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $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"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -81,4 +81,4 @@ $lang["items_upc_database"] = "UPC Database";
$lang["items_update"] = "更新產品";
$lang["items_use_inventory_menu"] = "使用庫存清單";
$lang["items_image"] = "Avatar";
$lang["items_item_number_exists"] = "The item number is already present in the database";
$lang["items_item_number_duplicate"] = "The item number is already present in the database";

View File

@@ -12,6 +12,15 @@ class Item extends CI_Model
return ($query->num_rows()==1);
}
function item_number_exists($item_number, $item_id)
{
$this->db->from('items');
$this->db->where('item_number', $item_number);
$this->db->where('item_id !=', $item_id);
$query=$this->db->get();
return ($query->num_rows()==1);
}
/*
Returns all the items

View File

@@ -11,6 +11,7 @@ echo form_open('items/save/'.$item_info->item_id,array('id'=>'item_form', 'encty
<div class='form_field'>
<?php echo form_input(array(
'name'=>'item_number',
'class'=>'item_number',
'id'=>'item_number',
'value'=>$item_info->item_number)
);?>
@@ -398,6 +399,22 @@ $(document).ready(function()
}
?>
$.validator.addMethod("item_number", function(value, element)
{
return JSON.parse($.ajax(
{
type: 'POST',
url: '<?php echo site_url($controller_name . "/check_item_number")?>',
data: {'item_id' : '<?php echo $item_info->item_id; ?>', 'item_number' : $(element).val() },
success: function(response)
{
success=response.success;
},
async:false,
dataType: 'json'
}).responseText).success;
}, '<?php echo $this->lang->line("items_item_number_duplicate"); ?>');
$('#item_form').validate({
submitHandler:function(form)
@@ -405,11 +422,8 @@ $(document).ready(function()
$(form).ajaxSubmit({
success:function(response)
{
if (handle_validation(response))
{
tb_remove();
post_item_form_submit(response);
}
tb_remove();
post_item_form_submit(response);
},
dataType:'json'
});
@@ -421,6 +435,7 @@ $(document).ready(function()
{
name:"required",
category:"required",
item_number: { item_number: true },
cost_price:
{
required:true,

View File

@@ -63,7 +63,7 @@ html {
?>
<div class="menu_item">
<a href="<?php echo site_url("$module->module_id");?>">
<img src="<?php echo base_url().'images/menubar/'.$module->module_id.'.png';?>" border="0" alt="Menubar Image"></a><br />
<!-- img src="<?php echo base_url().'images/menubar/'.$module->module_id.'.png';?>" border="0" alt="Menubar Image"--></a><br>
<a href="<?php echo site_url("$module->module_id");?>"><?php echo $this->lang->line("module_".$module->module_id) ?></a>
</div>
<?php

View File

@@ -77,20 +77,18 @@ $(document).ready(function()
$.validator.addMethod("invoice_number", function(value, element)
{
var id = $("input[name='sale_id']").val();
return JSON.parse($.ajax(
{
type: 'POST',
url: '<?php echo site_url($controller_name . "/check_invoice_number")?>',
data: {'sale_id' : id, 'invoice_number' : $(element).val() },
data: {'sale_id' : <?php echo $sale_info['sale_id']; ?>, 'invoice_number' : $(element).val() },
success: function(response)
{
success=response.success;
},
async:false,
dataType: 'json'
}).response).success;
}).responseText).success;
}, '<?php echo $this->lang->line("sales_invoice_number_duplicate"); ?>');
$('#date').datePicker({startDate: '01/01/1970'});

View File

@@ -23,7 +23,7 @@ function set_feedback(text, classname, keep_displayed)
{
if(text)
{
$('#feedback_bar').removeClass().addClass(classname).text(text).css('opacity','1');
$('#feedback_bar').removeClass().addClass(classname).html(text).css('opacity','1');
if(!keep_displayed)
{
@@ -47,21 +47,3 @@ $.each(['customers', 'items', 'reports', 'receivings', 'sales', 'employees', 'co
window.location = BASE_URL + '/' + value + ' /index';
});
});
function handle_validation(response)
{
if (!response.success)
{
var error_message_box = '.error_message_box';
// server side validation failed.. record won't be saved
$(error_message_box).empty();
for(var index in response.error_messages)
{
// get validation messages from array and show those to the user
var message = response.error_messages[index];
$(error_message_box).append("<li>" + message + "</li>").css("display", "");
}
return false;
}
return true;
}

View File

@@ -80,4 +80,4 @@ items_upc_database,UPC Database,Base de datos UPC,UPC Database,Base de Données
items_update,Bewerk Product,Actualizar Artículo,Update Item,Éditer Item,更新產品,Обновить Товар,ปรับแต่งสินค้า,Ürün Güncelle,Ubah
items_use_inventory_menu,Use Inv. Menu,Usar Menú de Inventario,Use Inv. Menu,Utiliser Menu Inv.,使用庫存清單,Используйте меню инвентаря,ใช้เมนูสินค้าคงเหลือ,Stok Menüsünü Kullan,Gunakan Inv. Menu
items_image,Afbeelding,Avatar,Avatar,Avatar,Avatar,Avatar,Avatar,Avatar,Avatar
items_item_number_exists,De barcode nummer is reeds aanwezig in de database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database
items_item_number_duplicate,De barcode nummer is reeds aanwezig in de database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database,The item number is already present in the database
1 label nl-BE es en fr zh ru th tr id
80 items_update Bewerk Product Actualizar Artículo Update Item Éditer Item 更新產品 Обновить Товар ปรับแต่งสินค้า Ürün Güncelle Ubah
81 items_use_inventory_menu Use Inv. Menu Usar Menú de Inventario Use Inv. Menu Utiliser Menu Inv. 使用庫存清單 Используйте меню инвентаря ใช้เมนูสินค้าคงเหลือ Stok Menüsünü Kullan Gunakan Inv. Menu
82 items_image Afbeelding Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar
83 items_item_number_exists items_item_number_duplicate De barcode nummer is reeds aanwezig in de database The item number is already present in the database The item number is already present in the database The item number is already present in the database The item number is already present in the database The item number is already present in the database The item number is already present in the database The item number is already present in the database The item number is already present in the database