+
+ // 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();
+ };
+
+ this.submit_custom_shipto = function(id_selector) {
+ id_selector = id_selector || '#shipto_id';
+ $(id_selector).val('');
+ $('#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,
+ }
+ });
+ };
+
+ 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.
+ this.check_required_email_fields = function() {
+ var unset = $('#email_form_to,#email_form_subject,#email_form_message').filter(function(idx, elt) {
+ return $(elt).val() === '';
+ });
+
+ if (unset.length === 0)
+ return true;
+
+ alert(kivi.t8("The recipient, subject or body is missing."));
+ $(unset[0]).focus();
+
+ return false;
+ };
+
+ this.send_email = function() {
+ if (!kivi.SalesPurchase.check_required_email_fields())
+ return false;
+
+ // 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();
+
+ $('#send_email_dialog').children().remove().appendTo('#email_inputs');
+ $('#send_email_dialog').dialog('close');
+
+ $('#email_form_message').val(message);
+
+ kivi.submit_form_with_action('#form', $('#form').data('send-email-action'));
+
+ 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');
+
+ kivi.reinit_widgets();
+
+ 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;
+ };
+
+ this.show_email_dialog = function(send_action) {
+ $('#form').data('send-email-action', send_action || 'send_sales_purchase_email');
+
+ var vc = $('#vc').val();
+ var data = {
+ action: 'show_sales_purchase_email_dialog',
+ cp_id: $('#cp_id').val(),
+ direct_debit: $('#direct_debit').prop('checked') ? 1 : 0,
+ 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(),
+ cusordnumber: $('#cusordnumber').val(),
+ rowcount: $('#rowcount').val(),
+ quonumber: $('#quonumber').val(),
+ type: $('#type').val(),
+ vc: vc,
+ vc_id: $('#' + vc + '_id').val(),
+ project_id: $('#globalproject_id').val(),
+ };
+
+ $('[name^=id_],[name^=partnumber_]').each(function(idx, elt) {
+ var val = $(elt).val() || '';
+ if (val !== '')
+ data[ $(elt).attr('name') ] = val;
+ });
+
+ kivi.popup_dialog({
+ id: 'send_email_dialog',
+ url: 'io.pl',
+ load: kivi.SalesPurchase.setup_send_email_dialog,
+ data: data,
+ dialog: {
+ height: 600,
+ title: kivi.t8('Send email'),
+ beforeClose: kivi.SalesPurchase.finish_send_email_dialog
+ }
+ });
+
+ return true;
+ };
+
+ 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']();
+ $('#email_form_print_options')[selected !== 'no_file' ? 'show' : 'hide']();
+ };
+
+ // 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');
+
+ var action = $('#form').data('print-action');
+ if (action.match("^js:"))
+ return kivi.run(action.substring(3));
+
+ kivi.submit_form_with_action('#form', action);
+ };
+
+ this.show_print_dialog = function(print_action) {
+ $('#form').data('print-action', print_action || 'print');
+
+ 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,
+ }
+ });
+ };