Projekt

Allgemein

Profil

Herunterladen (12,8 KB) Statistiken
| Zweig: | Markierung: | Revision:
ff058663 Moritz Bunkus
namespace('kivi.SalesPurchase', function(ns) {
94f5cb15 Bernd Bleßmann
this.longdescription_dialog_size_percentage = 0;

ff058663 Moritz Bunkus
this.edit_longdescription = function(row) {
var $element = $('#longdescription_' + row);

if (!$element.length) {
console.error("kivi.SalesPurchase.edit_longdescription: Element #longdescription_" + row + " not found");
return;
}

08899a32 Bernd Bleßmann
var params = { element: $element,
runningnumber: row,
partnumber: $('#partnumber_' + row).val() || '',
description: $('#description_' + row).val() || '',
default_longdescription: $('#longdescription_' + row).val() || ''
};
this.edit_longdescription_with_params(params);
};

this.edit_longdescription_with_params = function(params) {
94f5cb15 Bernd Bleßmann
var dialog_width = 800;
var dialog_height = 500;
var textarea_width = 750;
var textarea_height = 220;
if (this.longdescription_dialog_size_percentage != 0) {
dialog_width = Math.ceil(window.innerWidth * this.longdescription_dialog_size_percentage/100);
dialog_height = Math.ceil(window.innerHeight * this.longdescription_dialog_size_percentage/100);
textarea_width = Math.ceil(dialog_width * 95/100);
textarea_height = dialog_height - 220;
if (textarea_height <= 0) textarea_height = 220;
}

c3d10ace Moritz Bunkus
var $container = $('#popup_edit_longdescription_input_container');
ecbe5887 Cem Aydin
var $edit = $('<textarea id="popup_edit_longdescription_input" class="texteditor-in-dialog texteditor-space-for-toolbar" style="width: ' + textarea_width + 'px; height: ' + textarea_height + 'px;"></textarea>');
c3d10ace Moritz Bunkus
$container.children().remove();
$container.append($edit);

08899a32 Bernd Bleßmann
if (params.element) {
$container.data('element', params.element);
}
a84a030e Bernd Bleßmann
if (params.set_function) {
$container.data('setFunction', params.set_function);
}
08899a32 Bernd Bleßmann
$edit.val(params.default_longdescription);
ff058663 Moritz Bunkus
08899a32 Bernd Bleßmann
$('#popup_edit_longdescription_runningnumber').html(params.runningnumber);
$('#popup_edit_longdescription_partnumber').html(params.partnumber);
ff058663 Moritz Bunkus
08899a32 Bernd Bleßmann
var description = params.description.replace(/[\n\r]+/, '');
ff058663 Moritz Bunkus
if (description.length >= 50)
description = description.substring(0, 50) + "";
$('#popup_edit_longdescription_description').html(description);

kivi.popup_dialog({
id: 'edit_longdescription_dialog',
dialog: {
5f6d6d4e Moritz Bunkus
title: kivi.t8('Enter longdescription'),
94f5cb15 Bernd Bleßmann
width: dialog_width,
height: dialog_height,
c3d10ace Moritz Bunkus
open: function() { kivi.focus_ckeditor_when_ready('#popup_edit_longdescription_input'); },
close: function() { $('#popup_edit_longdescription_input_container').children().remove(); }
ff058663 Moritz Bunkus
}
});
};

this.set_longdescription = function() {
a84a030e Bernd Bleßmann
if ($('#popup_edit_longdescription_input_container').data('setFunction')) {
$('#popup_edit_longdescription_input_container').data('setFunction')($('#popup_edit_longdescription_input').val());
} else {
$('#popup_edit_longdescription_input_container')
.data('element')
.val( $('#popup_edit_longdescription_input').val() );
}
ff058663 Moritz Bunkus
$('#edit_longdescription_dialog').dialog('close');
};
ffbde3ef Moritz Bunkus
this.delivery_order_check_transfer_qty = function() {
var all_match = true;
var rowcount = $('input[name=rowcount]').val();
for (var i = 1; i < rowcount; i++)
if ($('#stock_in_out_qty_matches_' + i).val() != 1)
all_match = false;

if (all_match)
return true;

return confirm(kivi.t8('There are still transfers not matching the qty of the delivery order. Stock operations can not be changed later. Do you really want to proceed?'));
};

a0d3ac64 Moritz Bunkus
this.oe_warn_save_active_periodic_invoice = function() {
return confirm(kivi.t8('This sales order has an active configuration for periodic invoices. If you save then all subsequently created invoices will contain those changes as well, but not those that have already been created. Do you want to continue?'));
};

0194799c Moritz Bunkus
this.check_transaction_description = function() {
6bcabf17 Moritz Bunkus
if ($('#transaction_description').val() !== '')
0194799c Moritz Bunkus
return true;

alert(kivi.t8('A transaction description is required.'));
return false;
};

6f1da6d4 Moritz Bunkus
this.check_transport_cost_article_presence = function() {
var $form = $('#form');
var wanted_part_id = $form.data('transport-cost-reminder-article-id');

if (!wanted_part_id)
return true;

var rowcount = $('#rowcount').val() * 1;
for (var row = 1; row <= rowcount; row++)
if ( (($('#id_' + row).val() * 1) === wanted_part_id)
&& (($('#partnumber_' + row).val() || '') !== ''))
return true;

var description = $form.data('transport-cost-reminder-article-description');
return confirm(kivi.t8("The transport cost article '#1' is missing. Do you want to continue anyway?", [ description ]));
};

ffbde3ef Moritz Bunkus
this.on_submit_checks = function() {
var $button = $(this);
if (($button.data('check-transfer-qty') == 1) && !kivi.SalesPurchase.delivery_order_check_transfer_qty())
return false;

a0d3ac64 Moritz Bunkus
if (($button.data('warn-save-active-periodic-invoice') == 1) && !kivi.SalesPurchase.oe_warn_save_active_periodic_invoice())
return false;

0194799c Moritz Bunkus
if (($button.data('require-transaction-description') == 1) && !kivi.SalesPurchase.check_transaction_description())
return false;

ffbde3ef Moritz Bunkus
return true;
};

this.init_on_submit_checks = function() {
$('input[type=submit]').click(kivi.SalesPurchase.on_submit_checks);
};
5bc87ade Moritz Bunkus
this.set_duedate_on_reference_date_change = function(reference_field_id) {
setTimeout(function() {
var data = {
action: 'set_duedate',
invdate: $('#' + reference_field_id).val(),
duedate: $('#duedate').val(),
payment_id: $('#payment_id').val(),
};
$.post('is.pl', data, kivi.eval_json_result);
});
};
4cb932ab Moritz Bunkus
// Functions dialog with entering shipping addresses.
this.shipto_addresses = [];

this.copy_shipto_address = function () {
var shipto = this.shipto_addresses[ $('#shipto_to_copy').val() ];
for (var key in shipto)
$('#' + key).val(shipto[key]);
};

this.clear_shipto_fields = function() {
var shipto = this.shipto_addresses[0];
for (var key in shipto)
$('#' + key).val('');
$('#shiptocp_gender').val('m');
};

this.clear_shipto_id_before_submit = function() {
var shipto = this.shipto_addresses[0];
for (var key in shipto)
if ((key != 'shiptocp_gender') && ($('#' + key).val() !== '')) {
$('#shipto_id').val('');
break;
}
};

this.setup_shipto_dialog = function() {
var $dlg = $('#shipto_dialog');

$('#shipto_dialog [name^="shipto"]').each(function(idx, elt) {
$dlg.data("original-" + $(elt).prop("name"), $(elt).val());
});

$dlg.data('confirmed', false);

$('#shiptoname').focus();
};

199bd497 Bernd Bleßmann
this.submit_custom_shipto = function(id_selector) {
id_selector = id_selector || '#shipto_id';
$(id_selector).val('');
4cb932ab Moritz Bunkus
$('#shipto_dialog').data('confirmed', true);
$('#shipto_dialog').dialog('close');
};

this.reset_shipto_fields = function() {
var $dlg = $('#shipto_dialog');

$('#shipto_dialog [name^="shipto"]').each(function(idx, elt) {
$(elt).val($dlg.data("original-" + $(elt).prop("name")));
});
};

this.finish_shipto_dialog = function() {
if (!$('#shipto_dialog').data('confirmed'))
kivi.SalesPurchase.reset_shipto_fields();

$('#shipto_dialog').children().remove().appendTo('#shipto_inputs');

return true;
};

this.edit_custom_shipto = function() {
$('#shipto_inputs').children().remove().appendTo('#shipto_dialog');

kivi.popup_dialog({
id: 'shipto_dialog',
dialog: {
height: 600,
title: kivi.t8('Edit custom shipto'),
open: kivi.SalesPurchase.setup_shipto_dialog,
close: kivi.SalesPurchase.finish_shipto_dialog,
}
});
};
22bcb6b1 Moritz Bunkus
this.show_print_options_elements = function(elements, show) {
$(elements).each(function(idx, elt) {
var $elements = $('#print_options_header_' + elt + ',#print_options_input_' + elt);
if (show)
$elements.show();
else
$elements.hide();
});
};

this.show_all_print_options_elements = function() {
kivi.SalesPurchase.show_print_options_elements([ 'formname', 'language_id', 'format', 'sendmode', 'media', 'printer_id', 'copies', 'groupitems', 'remove_draft' ], true);
};

// Sending records via email.
6d9d1fbf Moritz Bunkus
this.check_required_email_fields = function() {
22bcb6b1 Moritz Bunkus
var unset = $('#email_form_to,#email_form_subject,#email_form_message').filter(function(idx, elt) {
return $(elt).val() === '';
});

6d9d1fbf Moritz Bunkus
if (unset.length === 0)
return true;

alert(kivi.t8("The recipient, subject or body is missing."));
$(unset[0]).focus();

return false;
};
22bcb6b1 Moritz Bunkus
6d9d1fbf Moritz Bunkus
this.send_email = function() {
if (!kivi.SalesPurchase.check_required_email_fields())
22bcb6b1 Moritz Bunkus
return false;

824735fc Moritz Bunkus
// ckeditor gets de-initialized when removing the children from
// the DOM. Therefore we have to manually preserve its content
// over the children's relocation.

var message = $('#email_form_message').val();

22bcb6b1 Moritz Bunkus
$('#send_email_dialog').children().remove().appendTo('#email_inputs');
$('#send_email_dialog').dialog('close');

824735fc Moritz Bunkus
$('#email_form_message').val(message);

ac1a9e8e Moritz Bunkus
kivi.submit_form_with_action('#form', $('#form').data('send-email-action'));
22bcb6b1 Moritz Bunkus
return true;
};

this.setup_send_email_dialog = function() {
kivi.SalesPurchase.show_all_print_options_elements();
kivi.SalesPurchase.show_print_options_elements([ 'sendmode', 'media', 'copies', 'remove_draft' ], false);

$('#print_options').children().remove().appendTo('#email_form_print_options');

824735fc Moritz Bunkus
kivi.reinit_widgets();

22bcb6b1 Moritz Bunkus
var to_focus = $('#email_form_to').val() === '' ? 'to' : 'subject';
$('#email_form_' + to_focus).focus();
};

this.finish_send_email_dialog = function() {
$('#email_form_print_options').children().remove().appendTo('#print_options');
return true;
};

43816cb7 Bernd Bleßmann
this.show_email_dialog = function(send_action, vc, vc_id_selector) {
ac1a9e8e Moritz Bunkus
$('#form').data('send-email-action', send_action || 'send_sales_purchase_email');

43816cb7 Bernd Bleßmann
vc = vc || $('#vc').val();
vc_id_selector = vc_id_selector || '#' + vc + '_id';
var vc_id = $(vc_id_selector).val();

dd33cbec Moritz Bunkus
var data = {
2338103b Bernd Bleßmann
action: 'show_sales_purchase_email_dialog',
cp_id: $('#cp_id').val(),
d9ff130d Moritz Bunkus
direct_debit: $('#direct_debit').prop('checked') ? 1 : 0,
2338103b Bernd Bleßmann
donumber: $('#donumber').val(),
format: $('#format').val(),
formname: $('#formname').val(),
id: $('#id').val(),
invnumber: $('#invnumber').val(),
language_id: $('#language_id').val(),
media: 'email',
ordnumber: $('#ordnumber').val(),
17c2f7bd Bernd Bleßmann
cusordnumber: $('#cusordnumber').val(),
2338103b Bernd Bleßmann
rowcount: $('#rowcount').val(),
quonumber: $('#quonumber').val(),
type: $('#type').val(),
vc: vc,
43816cb7 Bernd Bleßmann
vc_id: vc_id,
bc0386a4 Jan Büren
project_id: $('#globalproject_id').val(),
dd33cbec Moritz Bunkus
};

$('[name^=id_],[name^=partnumber_]').each(function(idx, elt) {
var val = $(elt).val() || '';
if (val !== '')
data[ $(elt).attr('name') ] = val;
});

22bcb6b1 Moritz Bunkus
kivi.popup_dialog({
id: 'send_email_dialog',
url: 'io.pl',
load: kivi.SalesPurchase.setup_send_email_dialog,
dd33cbec Moritz Bunkus
data: data,
22bcb6b1 Moritz Bunkus
dialog: {
height: 600,
title: kivi.t8('Send email'),
beforeClose: kivi.SalesPurchase.finish_send_email_dialog
}
});

return true;
};
dfa741a1 Moritz Bunkus
dd33cbec Moritz Bunkus
this.activate_send_email_actions_regarding_printout = function() {
var selected = $('#email_form_attachment_policy').val();
$('#email_form_attachment_filename').parents('tr')[selected !== 'no_file' ? 'show' : 'hide']();
a40c356e Bernd Bleßmann
$('#email_form_print_options')[selected !== 'no_file' ? 'show' : 'hide']();
dd33cbec Moritz Bunkus
};

dfa741a1 Moritz Bunkus
// Printing records.
this.setup_print_dialog = function() {
kivi.SalesPurchase.show_all_print_options_elements();

$('#print_options').children().remove().appendTo('#print_dialog_print_options');

$('#print_dialog_print_button').focus();
};

this.finish_print_dialog = function() {
$('#print_dialog_print_options').children().remove().appendTo('#print_options');
};

this.print_record = function() {
$('#print_dialog').dialog('close');

6a75dc1c Moritz Bunkus
var action = $('#form').data('print-action');
if (action.match("^js:"))
return kivi.run(action.substring(3));

kivi.submit_form_with_action('#form', action);
dfa741a1 Moritz Bunkus
};

10852277 Moritz Bunkus
this.show_print_dialog = function(print_action) {
$('#form').data('print-action', print_action || 'print');

dfa741a1 Moritz Bunkus
kivi.popup_dialog({
id: 'print_dialog',
dialog: {
height: 600,
title: kivi.t8('Print record'),
open: kivi.SalesPurchase.setup_print_dialog,
close: kivi.SalesPurchase.finish_print_dialog,
}
});
};
ff058663 Moritz Bunkus
});