diff --git a/application/controllers/Items.php b/application/controllers/Items.php
index 5700331d8..ea01dd713 100644
--- a/application/controllers/Items.php
+++ b/application/controllers/Items.php
@@ -193,7 +193,7 @@ class Items extends Secure_Controller
$data['item_tax_info'] = $this->xss_clean($this->Item_taxes->get_info($item_id));
$data['default_tax_1_rate'] = '';
$data['default_tax_2_rate'] = '';
- $data['item_type_disabled'] = !$this->Employee->has_grant('item_kits', $this->Employee->get_logged_in_employee_info()->person_id);
+ $data['item_kit_disabled'] = !$this->Employee->has_grant('item_kits', $this->Employee->get_logged_in_employee_info()->person_id);
$data['definition_values'] = $this->Attribute->get_attributes_by_item($item_id);
$data['definition_names'] = $this->Attribute->get_definition_names();
@@ -250,6 +250,10 @@ class Items extends Secure_Controller
}
}
+ $data['standard_item_locked'] = ($data['item_kit_disabled'] && $item_info->item_type == ITEM_KIT
+ && !$data['allow_temp_item']
+ && !($this->config->item('derive_sale_quantity') == '1'));
+
$data['item_info'] = $item_info;
$suppliers = array('' => $this->lang->line('items_none'));
diff --git a/application/views/items/form.php b/application/views/items/form.php
index fb58d68bf..569feccb4 100644
--- a/application/views/items/form.php
+++ b/application/views/items/form.php
@@ -80,24 +80,33 @@
lang->line('items_type'), 'item_type', !empty($basic_version) ? array('class'=>'required control-label col-xs-3') : array('class'=>'control-label col-xs-3')); ?>
config->item('derive_sale_quantity') == '1')
@@ -492,140 +501,140 @@ $(document).ready(function()
}, "lang->line('attributes_attribute_value_invalid_chars'); ?>");
var init_validation = function() {
- $('#item_form').validate($.extend({
- submitHandler: function(form, event) {
- $(form).ajaxSubmit({
- success: function(response) {
- var stay_open = dialog_support.clicked_id() != 'submit';
- if(stay_open)
- {
- // set action of item_form to url without item id, so a new one can be created
- $('#item_form').attr('action', "");
- // use a whitelist of fields to minimize unintended side effects
- $(':text, :password, :file, #description, #item_form').not('.quantity, #reorder_level, #tax_name_1, #receiving_quantity, ' +
- '#tax_percent_name_1, #category, #reference_number, #name, #cost_price, #unit_price, #taxed_cost_price, #taxed_unit_price, #definition_name, [name^="attribute_links"]').val('');
- // de-select any checkboxes, radios and drop-down menus
- $(':input', '#item_form').removeAttr('checked').removeAttr('selected');
- }
- else
- {
- dialog_support.hide();
- }
- table_support.handle_submit('', response, stay_open);
- init_validation();
- },
- dataType: 'json'
- });
- },
+ $('#item_form').validate($.extend({
+ submitHandler: function(form, event) {
+ $(form).ajaxSubmit({
+ success: function(response) {
+ var stay_open = dialog_support.clicked_id() != 'submit';
+ if(stay_open)
+ {
+ // set action of item_form to url without item id, so a new one can be created
+ $('#item_form').attr('action', "");
+ // use a whitelist of fields to minimize unintended side effects
+ $(':text, :password, :file, #description, #item_form').not('.quantity, #reorder_level, #tax_name_1, #receiving_quantity, ' +
+ '#tax_percent_name_1, #category, #reference_number, #name, #cost_price, #unit_price, #taxed_cost_price, #taxed_unit_price, #definition_name, [name^="attribute_links"]').val('');
+ // de-select any checkboxes, radios and drop-down menus
+ $(':input', '#item_form').removeAttr('checked').removeAttr('selected');
+ }
+ else
+ {
+ dialog_support.hide();
+ }
+ table_support.handle_submit('', response, stay_open);
+ init_validation();
+ },
+ dataType: 'json'
+ });
+ },
- errorLabelContainer: '#error_message_box',
+ errorLabelContainer: '#error_message_box',
- rules:
- {
- name: 'required',
- category: 'required',
- item_number:
- {
- required: false,
- remote:
- {
- url: "",
- type: 'POST',
- data: {
- 'item_id' : "item_id; ?>",
- 'item_number' : function()
- {
- return $('#item_number').val();
- },
- }
- }
- },
- cost_price:
- {
- required: true,
- remote: ""
- },
- unit_price:
- {
- required: true,
- remote: ""
- },
- $location_detail)
- {
- ?>
- :
- {
- required: true,
- remote: ""
- },
-
- receiving_quantity:
- {
- required: true,
- remote: ""
- },
- reorder_level:
- {
- required: true,
- remote: ""
- },
- tax_percent:
- {
- required: true,
- remote: ""
- }
- },
+ rules:
+ {
+ name: 'required',
+ category: 'required',
+ item_number:
+ {
+ required: false,
+ remote:
+ {
+ url: "",
+ type: 'POST',
+ data: {
+ 'item_id' : "item_id; ?>",
+ 'item_number' : function()
+ {
+ return $('#item_number').val();
+ },
+ }
+ }
+ },
+ cost_price:
+ {
+ required: true,
+ remote: ""
+ },
+ unit_price:
+ {
+ required: true,
+ remote: ""
+ },
+ $location_detail)
+ {
+ ?>
+ :
+ {
+ required: true,
+ remote: ""
+ },
+
+ receiving_quantity:
+ {
+ required: true,
+ remote: ""
+ },
+ reorder_level:
+ {
+ required: true,
+ remote: ""
+ },
+ tax_percent:
+ {
+ required: true,
+ remote: ""
+ }
+ },
- messages:
- {
- name: "lang->line('items_name_required'); ?>",
- item_number: "lang->line('items_item_number_duplicate'); ?>",
- category: "lang->line('items_category_required'); ?>",
- cost_price:
- {
- required: "lang->line('items_cost_price_required'); ?>",
- number: "lang->line('items_cost_price_number'); ?>"
- },
- unit_price:
- {
- required: "lang->line('items_unit_price_required'); ?>",
- number: "lang->line('items_unit_price_number'); ?>"
- },
- $location_detail)
- {
- ?>
- :
- {
- required: "lang->line('items_quantity_required'); ?>",
- number: "lang->line('items_quantity_number'); ?>"
- },
-
- receiving_quantity:
- {
- required: "lang->line('items_quantity_required'); ?>",
- number: "lang->line('items_quantity_number'); ?>"
- },
- reorder_level:
- {
- required: "lang->line('items_reorder_level_required'); ?>",
- number: "lang->line('items_reorder_level_number'); ?>"
- },
- tax_percent:
- {
- required: "lang->line('items_tax_percent_required'); ?>",
- number: "lang->line('items_tax_percent_number'); ?>"
- }
- }
- }, form_support.error));
- };
+ messages:
+ {
+ name: "lang->line('items_name_required'); ?>",
+ item_number: "lang->line('items_item_number_duplicate'); ?>",
+ category: "lang->line('items_category_required'); ?>",
+ cost_price:
+ {
+ required: "lang->line('items_cost_price_required'); ?>",
+ number: "lang->line('items_cost_price_number'); ?>"
+ },
+ unit_price:
+ {
+ required: "lang->line('items_unit_price_required'); ?>",
+ number: "lang->line('items_unit_price_number'); ?>"
+ },
+ $location_detail)
+ {
+ ?>
+ :
+ {
+ required: "lang->line('items_quantity_required'); ?>",
+ number: "lang->line('items_quantity_number'); ?>"
+ },
+
+ receiving_quantity:
+ {
+ required: "lang->line('items_quantity_required'); ?>",
+ number: "lang->line('items_quantity_number'); ?>"
+ },
+ reorder_level:
+ {
+ required: "lang->line('items_reorder_level_required'); ?>",
+ number: "lang->line('items_reorder_level_number'); ?>"
+ },
+ tax_percent:
+ {
+ required: "lang->line('items_tax_percent_required'); ?>",
+ number: "lang->line('items_tax_percent_number'); ?>"
+ }
+ }
+ }, form_support.error));
+ };
- init_validation();
+ init_validation();
});