From fffb70933d5c16b8aa6d775dcf6756851947897b Mon Sep 17 00:00:00 2001 From: SteveIreland Date: Sun, 10 Nov 2019 19:40:57 -0500 Subject: [PATCH] Fix item type maintenance issue regardless. --- application/controllers/Items.php | 6 +- application/views/items/form.php | 285 +++++++++++++++--------------- 2 files changed, 152 insertions(+), 139 deletions(-) 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(); });