namespace('kivi.Order', function(ns) {
ns.check_cv = function() {
if ($('#type').val() == 'sales_order') {
- if ($('#order_customer_id').val() == '') {
+ if ($('#order_customer_id').val() === '') {
alert(kivi.t8('Please select a customer.'));
return false;
}
} else {
- if ($('#order_vendor_id').val() == '') {
+ if ($('#order_vendor_id').val() === '') {
alert(kivi.t8('Please select a vendor.'));
return false;
}
return true;
};
- ns.save = function() {
+ ns.check_save_duplicate_parts = function() {
+ var id_arr = $('[name="order.orderitems[].parts_id"]').map(function() {return this.value;}).get();
+
+ var i, obj = {}, pos = [];
+
+ for (i = 0; i < id_arr.length; i++) {
+ var id = id_arr[i];
+ if (obj.hasOwnProperty(id)) {
+ pos.push(i + 1);
+ }
+ obj[id] = 0;
+ }
+
+ if (pos.length > 0) {
+ return confirm(kivi.t8("There are duplicate parts at positions") + "\n"
+ + pos.join(', ') + "\n"
+ + kivi.t8("Do you really want to save?"));
+ }
+ return true;
+ };
+
+ ns.save = function(warn_on_duplicates) {
if (!ns.check_cv()) return;
+ if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return;
var data = $('#order_form').serializeArray();
data.push({ name: 'action', value: 'Order/save' });
$.post("controller.pl", data, kivi.eval_json_result);
};
- ns.save_and_delivery_order = function() {
+ ns.save_and_delivery_order = function(warn_on_duplicates) {
if (!ns.check_cv()) return;
+ if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return;
var data = $('#order_form').serializeArray();
data.push({ name: 'action', value: 'Order/save_and_delivery_order' });
email_dialog.dialog("close");
};
- ns.reload_cv_dependend_selections = function() {
+ ns.reload_cv_dependant_selections = function() {
var data = $('#order_form').serializeArray();
data.push({ name: 'action', value: 'Order/customer_vendor_changed' });
kivi.run_once_for('.row_entry', 'on_kbd_click_show_hide', function(elt) {
$(elt).keydown(function(event) {
- if(event.keyCode == 40 && event.shiftKey == true) {
+ var row;
+ if(event.keyCode == 40 && event.shiftKey === true) {
// shift arrow down
event.preventDefault();
- var row = $(event.target).parents(".row_entry").first();
+ row = $(event.target).parents(".row_entry").first();
$(row).children().not(':first').show();
return false;
}
- if(event.keyCode == 38 && event.shiftKey == true) {
+ if(event.keyCode == 38 && event.shiftKey === true) {
// shift arrow up
event.preventDefault();
- var row = $(event.target).parents(".row_entry").first();
+ row = $(event.target).parents(".row_entry").first();
$(row).children().not(':first').hide();
return false;
}
} else {
dir = "1";
src = "image/down.png";
- };
+ }
$('#' + order_by + '_header_id a').append('<img border=0 data-sort-dir=' + dir + ' src=' + src + ' alt="' + kivi.t8('sort items') + '">');
};
ns.add_item = function() {
- if ($('#add_item_parts_id').val() == '') return;
+ if ($('#add_item_parts_id').val() === '') return;
if (!ns.check_cv()) return;
$('#row_table_id thead a img').remove();
var editable_div_elt = $(row).find('[name="editable_price"]');
var not_editable_div_elt = $(row).find('[name="not_editable_price"]');
- if (price_editable == 1 && source == '') {
+ if (price_editable == 1 && source === '') {
// editable
$(editable_div_elt).show();
$(not_editable_div_elt).hide();
var editable_div_elt = $(row).find('[name="editable_discount"]');
var not_editable_div_elt = $(row).find('[name="not_editable_discount"]');
- if (price_editable == 1 && source == '') {
+ if (price_editable == 1 && source === '') {
// editable
$(editable_div_elt).show();
$(not_editable_div_elt).hide();
$(function(){
if ($('#type').val() == 'sales_order') {
- $('#order_customer_id').change(kivi.Order.reload_cv_dependend_selections);
+ $('#order_customer_id').change(kivi.Order.reload_cv_dependant_selections);
} else {
- $('#order_vendor_id').change(kivi.Order.reload_cv_dependend_selections);
+ $('#order_vendor_id').change(kivi.Order.reload_cv_dependant_selections);
}
if ($('#type').val() == 'sales_order') {