Kontoauszug verbuchen: »Beleg«/»Memo« bei Vorschlägen angeben können
[kivitendo-erp.git] / js / kivi.BankTransaction.js
1 namespace('kivi.BankTransaction', function(ns) {
2   "use strict";
3
4   ns.assign_invoice = function(bank_transaction_id) {
5     kivi.popup_dialog({
6       url:    'controller.pl?action=BankTransaction/assign_invoice',
7       data:   '&bt_id=' + bank_transaction_id,
8       type:   'POST',
9       id:     'assign_invoice_window',
10       dialog: { title: kivi.t8('Assign invoice') }
11     });
12     return true;
13   };
14
15   ns.add_invoices = function(bank_transaction_id, proposal_id) {
16     $('[data-proposal-id=' + proposal_id + ']').hide();
17
18     $.ajax({
19       url: 'controller.pl?action=BankTransaction/ajax_payment_suggestion&bt_id=' + bank_transaction_id  + '&prop_id=' + proposal_id,
20       success: function(data) {
21         $('#assigned_invoices_' + bank_transaction_id).append(data.html);
22         ns.update_invoice_amount(bank_transaction_id);
23       }
24     });
25   };
26
27   ns.delete_invoice = function(bank_transaction_id, proposal_id) {
28     $( "#" + bank_transaction_id + "\\." + proposal_id ).remove();
29     $('[data-proposal-id=' + proposal_id + ']').show();
30     ns.update_invoice_amount(bank_transaction_id);
31   };
32
33   ns.create_invoice = function(bank_transaction_id) {
34     kivi.popup_dialog({
35       url:    'controller.pl?action=BankTransaction/create_invoice',
36       data:   '&bt_id=' + bank_transaction_id + "&filter.bank_account=" + $('#filter_bankaccount').val() + '&filter.fromdate=' + $('#filter_fromdate').val() + '&filter.todate=' + $('#filter_todate').val(),
37       type:   'POST',
38       id:     'create_invoice_window',
39       dialog: { title: kivi.t8('Create invoice') }
40     });
41     return true;
42   };
43
44
45   ns.filter_invoices = function() {
46     var url="controller.pl?action=BankTransaction/ajax_add_list&" + $("#assign_invoice_window form").serialize();
47     $.ajax({
48       url: url,
49       success: function(data) {
50         $("#record_list_filtered_list").html(data.html);
51       }
52     });
53   }
54
55   ns.add_selected_invoices = function() {
56     var bank_transaction_id = $("#assign_invoice_window_form").data("bank-transaction-id");
57     var url                 ="controller.pl?action=BankTransaction/ajax_accept_invoices&bt_id=" + bank_transaction_id + '&' + $("#assign_invoice_window form").serialize();
58
59     $.ajax({
60       url: url,
61       success: function(new_html) {
62         $('#assigned_invoices_' + bank_transaction_id).append(new_html);
63         $('#assign_invoice_window').dialog('close');
64         ns.update_invoice_amount(bank_transaction_id);
65       }
66     });
67   }
68
69   ns.update_invoice_amount = function(bank_transaction_id) {
70     var $container = $('#invoice_amount_' + bank_transaction_id);
71     var amount     = $container.data('invoice-amount') * 1;
72
73     $('[id^="' + bank_transaction_id + '."]').each(function(idx, elt) {
74       amount += $(elt).data('invoice-amount');
75     });
76
77     $container.html(kivi.format_amount(amount, 2));
78   };
79
80   ns.init_list = function(ui_tab) {
81     $('#check_all').checkall('INPUT[name^="proposal_ids"]');
82
83     $('.sort_link').each(function() {
84       var _href = $(this).attr("href");
85       $(this).attr("href", _href + "&filter.fromdate=" + $('#filter_fromdate').val() + "&filter.todate=" + $('#filter_todate').val());
86     });
87
88     $.cookie('jquery_ui_tab_bt_tabs', ui_tab);
89   };
90
91   ns.show_set_all_sources_memos_dialog = function(sources_selector, memos_selector) {
92     var dlg_id = 'set_all_sources_memos_dialog';
93     var $dlg   = $('#' + dlg_id);
94
95     $dlg.data('sources-selector', sources_selector);
96     $dlg.data('memos-selector',   memos_selector);
97
98     $('#set_all_sources').val('');
99     $('#set_all_memos').val('');
100
101     kivi.popup_dialog({
102       id: dlg_id,
103       dialog: {
104         title: kivi.t8('Set all source and memo fields')
105       }
106     });
107   };
108
109   ns.set_all_sources_memos = function(sources_selector, memos_selector) {
110     var $dlg = $('#set_all_sources_memos_dialog');
111
112     ['sources', 'memos'].forEach(function(type) {
113       var value = $('#set_all_' + type).val();
114       if (value !== '')
115         $($dlg.data(type + '-selector')).each(function(idx, input) {
116           $(input).val(value);
117         });
118     });
119
120     $dlg.dialog('close');
121   };
122 });