Massenerstellen von Rechnungen aus LS: Aktion nur einmal ausführen
[kivitendo-erp.git] / js / kivi.MassInvoiceCreatePrint.js
1 namespace('kivi.MassInvoiceCreatePrint', function(ns) {
2   this.checkSalesOrderSelection = function() {
3     if ($("[data-checkall=1]:checked").size() > 0)
4       return true;
5     alert(kivi.t8('No delivery orders have been selected.'));
6     return false;
7   };
8
9   this.checkDeliveryOrderSelection = function() {
10     if ($("[data-checkall=1]:checked").size() > 0)
11       return true;
12     alert(kivi.t8('No delivery orders have been selected.'));
13     return false;
14   };
15
16   this.checkInvoiceSelection = function() {
17     if ($("[data-checkall=1]:checked").size() > 0)
18       return true;
19     alert(kivi.t8('No invoices have been selected.'));
20     return false;
21   };
22
23   this.submitMassCreationForm = function() {
24     $('body').addClass('loading');
25     kivi.submit_form_with_action('form', 'MassInvoiceCreatePrint/create_invoices');
26     return false;
27   };
28
29   this.createPrintAllInitialize = function() {
30     kivi.popup_dialog({
31       id: 'create_print_all_dialog',
32       dialog: {
33         title: kivi.t8('Create and print all invoices')
34       }
35     });
36   };
37
38   this.createPrintAllStartProcess = function() {
39     $('#cpa_start_process_button,.ui-dialog-titlebar button.ui-dialog-titlebar-close').prop('disabled', 'disabled');
40     $('#cpa_start_process_abort_link').remove();
41
42     var filter = $('[name^=filter\\.]').serializeArray();
43     var data = {
44       action:             'MassInvoiceCreatePrint/create_print_all_start',
45       number_of_invoices: $('#cpa_number_of_invoices').val(),
46       bothsided:          $('#cpa_bothsided').val(),
47       printer_id:         $('#cpa_printer_id').val(),
48       copy_printer_id:    $('#cpa_copy_printer_id').val(),
49       transdate:          $('#transdate').val()
50     };
51
52     $(filter).each(function(index, obj){ data[obj.name] = obj.value; });
53
54     $.post('controller.pl', data, kivi.eval_json_result);
55   };
56
57   this.createPrintAllFinishProcess = function() {
58     $('#create_print_all_dialog').dialog('close');
59     window.location.href = 'controller.pl?action=MassInvoiceCreatePrint%2flist_invoices&noshow=1';
60   };
61
62   this.massConversionStarted = function() {
63     $('#create_print_all_dialog').data('timerId', setInterval(function() {
64       $.get("controller.pl", {
65         action: 'MassInvoiceCreatePrint/create_print_all_status',
66         job_id: $('#cpa_job_id').val()
67       }, kivi.eval_json_result);
68     }, 5000));
69   };
70
71   this.massConversionFinished = function() {
72     clearInterval($('#create_print_all_dialog').data('timerId'));
73     $('.ui-dialog-titlebar button.ui-dialog-titlebar-close').prop('disabled', '')
74   };
75
76   ns.showMassPrintOptions = function() {
77     $('#printer_options_printer_id').val($('#printer_id').val());
78
79     kivi.popup_dialog({
80       id: 'print_options',
81       dialog: {
82         title: kivi.t8('Print options'),
83         width:  600,
84         height: 200
85       }
86     });
87
88     return true;
89   };
90
91   ns.showMassPrintOptionsOrDownloadDirectly = function() {
92     if (!kivi.MassInvoiceCreatePrint.checkInvoiceSelection())
93       return false;
94
95     if ($('#print_options_printer_id').length === 0)
96       return kivi.MassInvoiceCreatePrint.massPrint();
97     return kivi.MassInvoiceCreatePrint.showMassPrintOptions();
98   };
99
100   ns.massPrint = function() {
101     $('#print_options').dialog('close');
102
103     $('#printer_id').val($('#print_options_printer_id').val());
104     $('#bothsided').val($('#print_options_bothsided').prop('checked') ? 1 : 0);
105     $('#action').val('MassInvoiceCreatePrint/print');
106
107     $('#report_form').submit();
108
109     return true;
110   };
111
112   this.resetSearchForm = function() {
113     $("#filter_table input").val("");
114   };
115 });