Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / templates / webpages / acctranscorrections / assistant_for_wrong_taxkeys.html
1 [%- USE T8 %]
2 [% USE HTML %][% USE LxERP %]
3 <h1>[% title %]</h1>
4
5  <p>
6   [% 'The following transaction contains wrong taxkeys:' | $T8 %]
7   <a href="[% problem.link %]">
8    [%- IF problem.data.module == 'ar' %]
9    [% 'AR Transaction' | $T8 %]
10    [%- ELSIF problem.data.module == 'ap' %]
11    [% 'AP Transaction' | $T8 %]
12    [%- ELSE %]
13    [% 'General Ledger Transaction' | $T8 %]
14    [%- END %]
15    [% HTML.escape(problem.data.reference) %]
16   </a>
17  </p>
18
19  <p>
20   [% 'This could have happened for two reasons:' | $T8 %]
21
22   [% 'The first reason is that kivitendo contained a bug which resulted in the wrong taxkeys being recorded for transactions in which two entries are posted for the same chart with different taxkeys.' | $T8 %]
23
24   [% 'The second reason is that kivitendo allowed the user to enter the tax amount manually regardless of the taxkey used.' | $T8 %]
25
26   [% 'The third reason is that wrong (taxkey) settings for the credit / debit CSV-import were used.' | $T8 %]
27
28   [% 'Such entries cannot be exported into the DATEV format and have to be fixed as well.' | $T8 %]
29  </p>
30
31  <p>
32   [% 'The transaction is shown below in its current state.' | $T8 %]
33
34   [% 'You can correct this transaction by chosing the correct taxkeys from the drop down boxes and hitting the button "Fix transaction" afterwards.' | $T8 %]
35
36   [%- 'It is possible that even after such a correction there is something wrong with this transaction (e.g. taxes that don\'t match the selected taxkey). Therefore you should re-run the general ledger analysis.' | $T8 %]
37  </p>
38
39  <p>
40   [% 'You can also delete this transaction and re-enter it manually.' | $T8 %]
41
42   [% 'In order to do that hit the button "Delete transaction".' | $T8 %]
43  </p>
44
45  <p>[% 'At the moment the transaction looks like this:' | $T8 %]</p>
46
47  <form method="post" action="acctranscorrections.pl" name="Form">
48   <p>
49    <table>
50     <tr>
51      <th class="listheading">[% 'Account' | $T8 %]</th>
52      <th class="listheading">[% 'Debit' | $T8 %]</th>
53      <th class="listheading">[% 'Credit' | $T8 %]</th>
54      <th class="listheading">[% 'Recorded Tax' | $T8 %]</th>
55      <th class="listheading">[% 'Recorded taxkey' | $T8 %]</th>
56      <th class="listheading">[% 'Expected Tax' | $T8 %]</th>
57      <th class="listheading"></th>
58      <th class="listheading">[% 'Correct taxkey' | $T8 %]</th>
59     </tr>
60
61     [%- SET curr_row = 0 %]
62     [%- IF (problem.data.module == 'ar') || ((problem.data.module == 'gl') && (problem.acc_trans.credit.entries.first.acc_trans_id < problem.acc_trans.debit.entries.first.acc_trans_id)) %]
63      [%- SET order = [ 'credit', 'debit' ] %]
64      [%- SET other_side = 'debit' %]
65     [%- ELSE %]
66      [%- SET order = [ 'debit', 'credit' ] %]
67      [%- SET other_side = 'credit' %]
68     [%- END %]
69
70
71     [%- IF problem.acc_trans.credit.entries.size > problem.acc_trans.debit.entries.size %]
72     [%- ELSE %]
73     [%- END %]
74
75
76     [%- FOREACH idx = order %]
77      [%- FOREACH row = problem.acc_trans.$idx.entries %]
78       [%- SET curr_row = curr_row + 1 %]
79       <tr class="listrow[% curr_row % 2 %]">
80        <td>[% HTML.escape(row.accno) %]--[% HTML.escape(row.chartdescription) %]</td>
81        <td align="right">
82         [%- IF idx == 'debit' %]
83          [% LxERP.format_amount(row.display_amount, 2) %]
84         [%- END %]
85        </td>
86        <td align="right">
87         [%- IF idx == 'credit' %]
88          [% LxERP.format_amount(row.display_amount, 2) %]
89         [%- END %]
90        </td>
91        <td align="right">[% IF row.actual_tax %][% LxERP.format_amount(row.display_actual_tax, 2) %][% END %]</td>
92        <td>[% IF (problem.data.module == 'gl') || (idx != other_side) %][% HTML.escape(row.taxdescription) %][% END %]</td>
93        <td align="right">[% IF row.expected_tax %][% LxERP.format_amount(row.display_expected_tax, 2) %][% END %]</td>
94        <td align="center" valign="center"><img src="image/[% IF row.taxkey_error %]error[% ELSE %]ok[% END %].png"></td>
95
96        <td>
97         [%- IF row.taxkey_error %]
98          <input type="hidden" name="fixes[+].acc_trans_id" value="[% HTML.escape(row.acc_trans_id) %]">
99          <input type="hidden" name="fixes[].tax_entry_acc_trans_id" value="[% HTML.escape(row.tax_entry_acc_trans_id) %]">
100          <select name="fixes[].taxkey" style="width: 250px" onchange="enable_fix_button_maybe()">
101           <option value="">[% '---please select---' | $T8 %]</option>
102           [%- FOREACH taxkey = row.correct_taxkeys %]
103            <option value="[% HTML.escape(taxkey.taxkey) %]">[% HTML.escape(taxkey.description) %]</option>
104           [%- END %]
105         [%- ELSE %]
106         &nbsp;
107         [%- END %]
108       </tr>
109      [%- END %]
110     [%- END %]
111
112    </table>
113   </p>
114   <hr>
115
116   <p>
117    <input type="hidden" name="callback" value="[% HTML.escape(callback) %]">
118
119    <input type="hidden" name="action" value="dispatcher">
120    <input type="hidden" name="trans_id" value="[% HTML.escape(problem.data.trans_id) %]">
121    <input type="hidden" name="module" value="[% HTML.escape(problem.data.module) %]">
122    <input type="hidden" name="reference" value="[% HTML.escape(problem.data.reference) %]">
123    <input type="submit" class="submit" id="fix_transaction_button" name="action_fix_wrong_taxkeys" value="[% 'Fix transaction' | $T8 %]" disabled>
124    <input type="submit" class="submit" name="action_delete_transaction" value="[% 'Delete transaction' | $T8 %]">
125    <input type="button" class="submit" onclick="history.back()" value="[% 'Back' | $T8 %]">
126   </p>
127  </form>
128
129  <script type="text/javascript">
130   <!--
131     function enable_fix_button_maybe() {
132       $("#fix_transaction_button").prop('disabled', $("[name='fixes[].taxkey'][value='']").size() != 0);
133     }
134     -->
135  </script>