Revision 324a2c61
Von Sven Schöling vor etwa 2 Jahren hinzugefügt
templates/design40_webpages/acc_trans/_mini_ledger.html | ||
---|---|---|
1 |
[% USE L %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE HTML %] |
|
4 |
|
|
5 |
<div class="wrapper"> |
|
6 |
|
|
7 |
<table id="acc_trans" class="tbl-list"> |
|
8 |
<caption>[% HTML.escape(title) %]</caption> |
|
9 |
<thead> |
|
10 |
<tr> |
|
11 |
<th class="date">[% LxERP.t8("Date") %]</th> |
|
12 |
<th class="center">[% LxERP.t8("Chart") %]</th> |
|
13 |
<th>[% LxERP.t8("Description") %]</th> |
|
14 |
<th class="right">[% LxERP.t8("Debit") %]</th> |
|
15 |
<th class="right">[% LxERP.t8("Credit") %]</th> |
|
16 |
</tr> |
|
17 |
</thead> |
|
18 |
<tbody> |
|
19 |
[% FOREACH transaction = TRANSACTIONS %] |
|
20 |
<tr> |
|
21 |
<td class="date">[% transaction.transdate.to_kivitendo %]</td> |
|
22 |
<td class="center">[% transaction.chart.accno %]</td> |
|
23 |
<td>[% transaction.chart.description %]</td> |
|
24 |
<td class="numeric">[% IF transaction.amount < 0 %] [% LxERP.format_amount(transaction.amount * -1, 2) %] [% END %]</td> |
|
25 |
<td class="numeric">[% IF transaction.amount > 0 %] [% LxERP.format_amount(transaction.amount , 2) %] [% END %]</td> |
|
26 |
</tr> |
|
27 |
[% END %] |
|
28 |
</tbody> |
|
29 |
<tfoot> |
|
30 |
<td colspan="2"></td> |
|
31 |
<th>[% LxERP.t8("Total") %]</th> |
|
32 |
<td class="numeric">[% LxERP.format_amount(debit_sum * -1, 2) %]</td> |
|
33 |
<td class="numeric">[% LxERP.format_amount(credit_sum, 2) %]</td> |
|
34 |
</tr> |
|
35 |
</tfoot> |
|
36 |
</table> |
|
37 |
|
|
38 |
</div><!-- /.wrapper --> |
|
39 |
|
templates/design40_webpages/acc_trans/_mini_trial_balance.html | ||
---|---|---|
1 |
[% USE L %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE HTML %] |
|
4 |
|
|
5 |
<div class="wrapper"> |
|
6 |
|
|
7 |
<table id="balances" class="tbl-list"> |
|
8 |
<caption>[% HTML.escape(title) %]</caption> |
|
9 |
<thead> |
|
10 |
<tr> |
|
11 |
<th class="numeric-centered">[% LxERP.t8("Chart") %]</th> |
|
12 |
<th>[% LxERP.t8("Description") %]</th> |
|
13 |
<th class="right">[% LxERP.t8("Debit") %]</th> |
|
14 |
<th class="right">[% LxERP.t8("Credit") %]</th> |
|
15 |
</tr> |
|
16 |
</thead> |
|
17 |
<tbody> |
|
18 |
[% FOREACH balance = BALANCES %] |
|
19 |
<tr> |
|
20 |
<td class="numeric-centered">[% balance.accno %]</td> |
|
21 |
<td>[% balance.description %]</td> |
|
22 |
<td class="numeric">[% IF balance.balance < 0 %] [% LxERP.format_amount(balance.balance * -1, 2) %] [% END %]</td> |
|
23 |
<td class="numeric">[% IF balance.balance > 0 %] [% LxERP.format_amount(balance.balance, 2) %] [% END %]</td> |
|
24 |
</tr> |
|
25 |
[% END %] |
|
26 |
</tbody> |
|
27 |
</table> |
|
28 |
|
|
29 |
</div><!-- /.wrapper --> |
|
30 |
</div> |
templates/design40_webpages/acc_trans/acc_trans.html | ||
---|---|---|
1 |
[% acc_trans_table %] |
|
2 |
<p></p> |
|
3 |
[% balances_table %] |
|
4 |
|
templates/design40_webpages/acctranscorrections/analyze_filter.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[%- USE L %] |
|
4 |
<h1>[% title %]</h1> |
|
5 |
|
|
6 |
<p> |
|
7 |
[% 'Earlier versions of kivitendo contained bugs which might have led to wrong entries in the general ledger.' | $T8 %] |
|
8 |
[% 'These wrong entries cannot be fixed automatically.' | $T8 %] |
|
9 |
[% 'This module can help you identify and correct such entries by analyzing the general ledger and presenting you likely solutions but also allowing you to fix problems yourself.' | $T8 %] |
|
10 |
</p> |
|
11 |
|
|
12 |
<form name="filter" method="post" action="acctranscorrections.pl" id="form"> |
|
13 |
|
|
14 |
<p>[% 'Time period for the analysis:' | $T8 %]</p> |
|
15 |
|
|
16 |
<p> |
|
17 |
<table> |
|
18 |
<tr> |
|
19 |
<td><input type="radio" name="scope" id="scope_full" value="full" checked></td> |
|
20 |
<td><label for="scope_full">[% 'All general ledger entries' | $T8 %]</label></td> |
|
21 |
</tr> |
|
22 |
|
|
23 |
<tr> |
|
24 |
<td><input type="radio" name="scope" id="scope_period" value="period"></td> |
|
25 |
<td> |
|
26 |
[% 'Period:' | $T8 %] |
|
27 |
[% 'from (time)' | $T8 %] |
|
28 |
[% L.date_tag('transdate_from') %] |
|
29 |
[% 'to (time)' | $T8 %] |
|
30 |
[% L.date_tag('transdate_to') %] |
|
31 |
</td> |
|
32 |
</tr> |
|
33 |
</table> |
|
34 |
</p> |
|
35 |
|
|
36 |
<input type="hidden" name="action" value="analyze"> |
|
37 |
</form> |
templates/design40_webpages/acctranscorrections/analyze_overview.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %][% USE LxERP %] |
|
3 |
<h1>[% title %]</h1> |
|
4 |
|
|
5 |
<p>[% 'kivitendo has found one or more problems in the general ledger.' | $T8 %]</p> |
|
6 |
|
|
7 |
<p> |
|
8 |
[% 'Period' | $T8 %]: |
|
9 |
[% IF transdate_from || transdate_to %] |
|
10 |
[% IF transdate_from %] |
|
11 |
[% 'from (time)' | $T8 %] [% transdate_from %] |
|
12 |
[% END %] |
|
13 |
[% IF transdate_to %] |
|
14 |
[% 'to (time)' | $T8 %] [% transdate_to %] |
|
15 |
[% END %] |
|
16 |
[% ELSE %] |
|
17 |
[% 'all entries' | $T8 %] |
|
18 |
[% END %] |
|
19 |
</p> |
|
20 |
|
|
21 |
<table width="100%"> |
|
22 |
<tr> |
|
23 |
<th>[% 'Transaction' | $T8 %]</th> |
|
24 |
<th>[% 'Problem' | $T8 %]</th> |
|
25 |
<th>[% 'Solution' | $T8 %]</th> |
|
26 |
</tr> |
|
27 |
|
|
28 |
[% FOREACH problem = PROBLEMS %] |
|
29 |
<tr class="listrow[% loop.count % 2 %]"> |
|
30 |
<td> |
|
31 |
[% IF problem.type == 'ap_ar_wrong_taxkeys' %] |
|
32 |
[% IF problem.ap_problems.size %] |
|
33 |
[% 'AP Transactions' | $T8 %] |
|
34 |
[% FOREACH ap = problem.ap_problems %] |
|
35 |
[% UNLESS loop.first %], [% END %] |
|
36 |
<a href="[% ap.link %]">[% HTML.escape(ap.data.reference) %]</a> |
|
37 |
[% END %] |
|
38 |
[% END %] |
|
39 |
|
|
40 |
[% IF problem.ar_problems.size %] |
|
41 |
[% IF problem.ap_problems.size %]; [% END %] |
|
42 |
[% 'AR Transactions' | $T8 %] |
|
43 |
[% FOREACH ar = problem.ar_problems %] |
|
44 |
[% UNLESS loop.first %], [% END %] |
|
45 |
<a href="[% ar.link %]">[% HTML.escape(ar.data.reference) %]</a> |
|
46 |
[% END %] |
|
47 |
[% END %] |
|
48 |
|
|
49 |
|
|
50 |
[% ELSIF problem.type == 'invoice_inventory_with_taxkeys' %] |
|
51 |
[% IF problem.ar_problems.size %] |
|
52 |
[% 'Sales invoices' | $T8 %] |
|
53 |
[% FOREACH subproblem = problem.ar_problems %] |
|
54 |
[% UNLESS loop.first %], [% END %] |
|
55 |
<a href="[% subproblem.link %]">[% HTML.escape(subproblem.data.reference) %]</a> |
|
56 |
[% END %] |
|
57 |
[% END %] |
|
58 |
|
|
59 |
[% IF problem.ap_problems.size %] |
|
60 |
[% IF problem.ar_problems.size %]; [% END %] |
|
61 |
[% 'Purchase invoices' | $T8 %] |
|
62 |
[% FOREACH subproblem = problem.ap_problems %] |
|
63 |
[% UNLESS loop.first %], [% END %] |
|
64 |
<a href="[% subproblem.link %]">[% HTML.escape(subproblem.data.reference) %]</a> |
|
65 |
[% END %] |
|
66 |
[% END %] |
|
67 |
|
|
68 |
[% ELSIF problem.type == 'missing_taxkeys_in_invoices' %] |
|
69 |
[% IF problem.ar_problems.size %] |
|
70 |
[% 'Sales invoices' | $T8 %] |
|
71 |
[% FOREACH subproblem = problem.ar_problems %] |
|
72 |
[% UNLESS loop.first %], [% END %] |
|
73 |
<a href="[% subproblem.link %]">[% HTML.escape(subproblem.data.reference) %]</a> |
|
74 |
[% END %] |
|
75 |
[% END %] |
|
76 |
|
|
77 |
[% IF problem.ap_problems.size %] |
|
78 |
[% IF problem.ar_problems.size %]; [% END %] |
|
79 |
[% 'Purchase invoices' | $T8 %] |
|
80 |
[% FOREACH subproblem = problem.ap_problems %] |
|
81 |
[% UNLESS loop.first %], [% END %] |
|
82 |
<a href="[% subproblem.link %]">[% HTML.escape(subproblem.data.reference) %]</a> |
|
83 |
[% END %] |
|
84 |
[% END %] |
|
85 |
|
|
86 |
[% ELSE %] |
|
87 |
|
|
88 |
<a href="[% problem.link %]"> |
|
89 |
[% IF problem.data.module == 'ar' %] |
|
90 |
[% 'AR Transaction' | $T8 %] |
|
91 |
[% ELSIF problem.data.module == 'ap' %] |
|
92 |
[% 'AP Transaction' | $T8 %] |
|
93 |
[% ELSE %] |
|
94 |
[% 'General Ledger Transaction' | $T8 %] |
|
95 |
[% END %] |
|
96 |
[% HTML.escape(problem.data.reference) %] |
|
97 |
</a> |
|
98 |
|
|
99 |
<!-- ( [% problem.data.module %].id = acc_trans.trans_id = [% HTML.escape(problem.data.trans_id) %] ) --> |
|
100 |
|
|
101 |
[% END %] |
|
102 |
</td> |
|
103 |
|
|
104 |
<td> |
|
105 |
[% IF problem.type == 'split_multiple_credit_and_debit' %] |
|
106 |
[% 'Transaction has been split on both the credit and the debit side' | $T8 %] |
|
107 |
|
|
108 |
[% ELSIF problem.type == 'wrong_taxkeys' %] |
|
109 |
[% 'Wrong tax keys recorded' | $T8 %] |
|
110 |
|
|
111 |
[% ELSIF problem.type == 'wrong_taxes' %] |
|
112 |
[% 'Wrong taxes recorded' | $T8 %] |
|
113 |
|
|
114 |
[% ELSIF problem.type == 'ap_ar_wrong_taxkeys' %] |
|
115 |
[% 'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' | $T8 %] |
|
116 |
|
|
117 |
[% ELSIF problem.type == 'invoice_inventory_with_taxkeys' %] |
|
118 |
[% 'Sales and purchase invoices with inventory transactions with taxkeys' | $T8 %] |
|
119 |
|
|
120 |
[% ELSIF problem.type == 'missing_taxkeys_in_invoices' %] |
|
121 |
[% 'Missing taxkeys in invoices with taxes.' | $T8 %] |
|
122 |
|
|
123 |
[% END %] |
|
124 |
</td> |
|
125 |
|
|
126 |
<td> |
|
127 |
[% IF problem.type == 'split_multiple_credit_and_debit' %] |
|
128 |
[% 'This transaction has to be split into several transactions manually.' | $T8 %] |
|
129 |
|
|
130 |
[% ELSIF (problem.type == 'wrong_taxkeys') || (problem.type == 'wrong_taxes') %] |
|
131 |
<a href="acctranscorrections.pl?action=assistant&trans_id=[% HTML.url(problem.data.trans_id) %]&trans_module=[% HTML.url(problem.data.module) %]&trans_reference=[% HTML.url(problem.data.reference) %]&callback=[% callback %]"> |
|
132 |
[% 'Start the correction assistant' | $T8 %] |
|
133 |
</a> |
|
134 |
|
|
135 |
[% ELSIF problem.type == 'ap_ar_wrong_taxkeys' %] |
|
136 |
<a href="acctranscorrections.pl?action=assistant_for_ap_ar_wrong_taxkeys&callback=[% callback %]"> |
|
137 |
[% 'Start the correction assistant' | $T8 %] |
|
138 |
</a> |
|
139 |
|
|
140 |
[% ELSIF problem.type == 'invoice_inventory_with_taxkeys' %] |
|
141 |
<a href="acctranscorrections.pl?action=assistant_for_invoice_inventory_with_taxkeys&callback=[% callback %]"> |
|
142 |
[% 'Start the correction assistant' | $T8 %] |
|
143 |
</a> |
|
144 |
|
|
145 |
[% END %] |
|
146 |
</td> |
|
147 |
</tr> |
|
148 |
[% END %] |
|
149 |
|
|
150 |
</table> |
|
151 |
|
|
152 |
|
|
153 |
<hr> |
|
154 |
|
templates/design40_webpages/acctranscorrections/assistant_for_ap_ar_wrong_taxkeys.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
<h1>[% title %]</h1> |
|
6 |
|
|
7 |
<p> |
|
8 |
[% 'There is at least one transaction for which the user has chosen a logically wrong taxkey.' | $T8 %] |
|
9 |
[% 'This means that the user has created an AP transaction and chosen a taxkey for sales taxes, or that he has created an AR transaction and chosen a taxkey for input taxes.' | $T8 %] |
|
10 |
</p> |
|
11 |
<p> |
|
12 |
[% 'kivitendo can fix these problems automatically.' | $T8 %] |
|
13 |
[% 'For AP transactions it will replace the sales taxkeys with input taxkeys with the same tax rate.' | $T8 %] |
|
14 |
[% 'For AR transactions it will replace the input taxkeys with sales taxkeys with the same tax rate.' | $T8 %] |
|
15 |
</p> |
|
16 |
|
|
17 |
<form name="Form" action="acctranscorrections.pl" method="post"> |
|
18 |
|
|
19 |
<p> |
|
20 |
<input type="hidden" name="action" value="fix_ap_ar_wrong_taxkeys"> |
|
21 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
22 |
<input type="submit" class="submit" value="[% 'Fix transactions' | $T8 %]"> |
|
23 |
<input type="button" class="submit" onclick="history.back()" value="[% 'Back' | $T8 %]"> |
|
24 |
</p> |
|
25 |
</form> |
|
26 |
|
templates/design40_webpages/acctranscorrections/assistant_for_invoice_inventory_with_taxkeys.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
<h1>[% title %]</h1> |
|
6 |
|
|
7 |
<p>[% 'There is at least one sales or purchase invoice for which kivitendo recorded an inventory transaction with taxkeys even though no tax was recorded.' | $T8 %] </p> |
|
8 |
<p>[% 'kivitendo can fix these problems automatically.' | $T8 %] [% 'It will simply set the taxkey to 0 (meaning "no taxes") which is the correct value for such inventory transactions.' | $T8 %] </p> |
|
9 |
|
|
10 |
<form name="Form" action="acctranscorrections.pl" method="post"> |
|
11 |
<div class="buttons"> |
|
12 |
<input type="hidden" name="action" value="fix_invoice_inventory_with_taxkeys"> |
|
13 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
14 |
<input type="submit" value="[% 'Fix transactions' | $T8 %]"> |
|
15 |
<input type="button" onclick="history.back()" value="[% 'Back' | $T8 %]"> |
|
16 |
</div> |
|
17 |
</form> |
|
18 |
|
templates/design40_webpages/acctranscorrections/assistant_for_wrong_taxes.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
<h1>[% title %]</h1> |
|
6 |
|
|
7 |
<p>[% 'The following transaction contains wrong taxes:' | $T8 %] <a href="[% problem.link %]"> |
|
8 |
[% IF problem.data.module == 'ar' %][% 'AR Transaction' | $T8 %] |
|
9 |
[% ELSIF problem.data.module == 'ap' %][% 'AP Transaction' | $T8 %] |
|
10 |
[% ELSE %][% 'General Ledger Transaction' | $T8 %][% END %] |
|
11 |
[% HTML.escape(problem.data.reference) %] |
|
12 |
</a></p> |
|
13 |
|
|
14 |
<p>[% 'At the moment the transaction looks like this:' | $T8 %]</p> |
|
15 |
|
|
16 |
<table class="tbl-List"> |
|
17 |
<thead> |
|
18 |
<tr> |
|
19 |
<th>[% 'Account' | $T8 %]</th> |
|
20 |
<th>[% 'Debit' | $T8 %]</th> |
|
21 |
<th>[% 'Credit' | $T8 %]</th> |
|
22 |
<th>[% 'Taxkey' | $T8 %]</th> |
|
23 |
<th>[% 'Recorded Tax' | $T8 %]</th> |
|
24 |
<th>[% 'Expected Tax' | $T8 %]</th> |
|
25 |
<th></th> |
|
26 |
</tr> |
|
27 |
</thead> |
|
28 |
|
|
29 |
[% SET curr_row = 0 %] |
|
30 |
[% IF problem.acc_trans.credit.entries.size > problem.acc_trans.debit.entries.size %] |
|
31 |
[% SET order = [ 'credit', 'debit' ] %] |
|
32 |
[% SET other_side = 'debit' %] |
|
33 |
[% ELSE %] |
|
34 |
[% SET order = [ 'debit', 'credit' ] %] |
|
35 |
[% SET other_side = 'credit' %] |
|
36 |
[% END %] |
|
37 |
|
|
38 |
<tbody> |
|
39 |
[% FOREACH idx = order %] |
|
40 |
[% FOREACH row = problem.acc_trans.$idx.entries %] |
|
41 |
[% SET curr_row = curr_row + 1 %] |
|
42 |
<tr class="listrow[% curr_row % 2 %]"> |
|
43 |
<td>[% HTML.escape(row.accno) %]--[% HTML.escape(row.chartdescription) %]</td> |
|
44 |
<td>[% IF idx == 'debit' %][% LxERP.format_amount(row.display_amount, 2) %][% END %]</td> |
|
45 |
<td>[% IF idx == 'credit' %][% LxERP.format_amount(row.display_amount, 2) %][% END %]</td> |
|
46 |
<td>[% IF idx != other_side %][% HTML.escape(row.taxdescription) %][% END %]</td> |
|
47 |
<td>[% IF row.actual_tax %][% LxERP.format_amount(row.actual_tax, 2) %][% END %]</td> |
|
48 |
<td>[% IF row.expected_tax %][% LxERP.format_amount(row.expected_tax, 2) %][% END %]</td> |
|
49 |
<td><img src="image/[% IF row.tax_error %]error[% ELSE %]ok[% END %].png"></td> |
|
50 |
</tr> |
|
51 |
[% END %] |
|
52 |
[% END %] |
|
53 |
</tbody> |
|
54 |
</table> |
|
55 |
|
|
56 |
<form method="post" action="acctranscorrections.pl"> |
|
57 |
<div class="buttons"> |
|
58 |
<input type="hidden" name="action" value="delete_transaction"> |
|
59 |
<input type="hidden" name="trans_id" value="[% HTML.escape(problem.data.trans_id) %]"> |
|
60 |
<input type="submit" value="[% 'Delete transaction' | $T8 %]"> |
|
61 |
<input type="button" onclick="history.back()" value="[% 'Back' | $T8 %]"> |
|
62 |
</div> |
|
63 |
</form> |
|
64 |
|
templates/design40_webpages/acctranscorrections/assistant_for_wrong_taxkeys.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
<h1>[% title %]</h1> |
|
6 |
|
|
7 |
<p>[% 'The following transaction contains wrong taxkeys:' | $T8 %]<a href="[% problem.link %]"> |
|
8 |
[% IF problem.data.module == 'ar' %][% 'AR Transaction' | $T8 %] |
|
9 |
[% ELSIF problem.data.module == 'ap' %][% 'AP Transaction' | $T8 %] |
|
10 |
[% ELSE %][% 'General Ledger Transaction' | $T8 %][% END %] |
|
11 |
[% HTML.escape(problem.data.reference) %] |
|
12 |
</a></p> |
|
13 |
|
|
14 |
<p> |
|
15 |
[% 'This could have happened for two reasons:' | $T8 %] |
|
16 |
[% '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 %] |
|
17 |
[% 'The second reason is that kivitendo allowed the user to enter the tax amount manually regardless of the taxkey used.' | $T8 %] |
|
18 |
[% 'The third reason is that wrong (taxkey) settings for the credit / debit CSV-import were used.' | $T8 %] |
|
19 |
[% 'Such entries cannot be exported into the DATEV format and have to be fixed as well.' | $T8 %] |
|
20 |
</p> |
|
21 |
<p> |
|
22 |
[% 'The transaction is shown below in its current state.' | $T8 %] |
|
23 |
[% 'You can correct this transaction by chosing the correct taxkeys from the drop down boxes and hitting the button "Fix transaction" afterwards.' | $T8 %] |
|
24 |
[% '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 %] |
|
25 |
</p> |
|
26 |
<p> |
|
27 |
[% 'You can also delete this transaction and re-enter it manually.' | $T8 %] |
|
28 |
[% 'In order to do that hit the button "Delete transaction".' | $T8 %] |
|
29 |
</p> |
|
30 |
<p>[% 'At the moment the transaction looks like this:' | $T8 %]</p> |
|
31 |
|
|
32 |
<form method="post" action="acctranscorrections.pl" name="Form"> |
|
33 |
<table> |
|
34 |
<tr> |
|
35 |
<th>[% 'Account' | $T8 %]</th> |
|
36 |
<th>[% 'Debit' | $T8 %]</th> |
|
37 |
<th>[% 'Credit' | $T8 %]</th> |
|
38 |
<th>[% 'Recorded Tax' | $T8 %]</th> |
|
39 |
<th>[% 'Recorded taxkey' | $T8 %]</th> |
|
40 |
<th>[% 'Expected Tax' | $T8 %]</th> |
|
41 |
<th></th> |
|
42 |
<th>[% 'Correct taxkey' | $T8 %]</th> |
|
43 |
</tr> |
|
44 |
|
|
45 |
[% SET curr_row = 0 %] |
|
46 |
[% 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)) %] |
|
47 |
[% SET order = [ 'credit', 'debit' ] %] |
|
48 |
[% SET other_side = 'debit' %] |
|
49 |
[% ELSE %] |
|
50 |
[% SET order = [ 'debit', 'credit' ] %] |
|
51 |
[% SET other_side = 'credit' %] |
|
52 |
[% END %] |
|
53 |
|
|
54 |
|
|
55 |
[% IF problem.acc_trans.credit.entries.size > problem.acc_trans.debit.entries.size %] |
|
56 |
[% ELSE %] |
|
57 |
[% END %] |
|
58 |
|
|
59 |
|
|
60 |
[% FOREACH idx = order %] |
|
61 |
[% FOREACH row = problem.acc_trans.$idx.entries %] |
|
62 |
[% SET curr_row = curr_row + 1 %] |
|
63 |
<tr class="listrow[% curr_row % 2 %]"> |
|
64 |
<td>[% HTML.escape(row.accno) %]--[% HTML.escape(row.chartdescription) %]</td> |
|
65 |
<td> |
|
66 |
[% IF idx == 'debit' %] |
|
67 |
[% LxERP.format_amount(row.display_amount, 2) %] |
|
68 |
[% END %] |
|
69 |
</td> |
|
70 |
<td> |
|
71 |
[% IF idx == 'credit' %] |
|
72 |
[% LxERP.format_amount(row.display_amount, 2) %] |
|
73 |
[% END %] |
|
74 |
</td> |
|
75 |
<td>[% IF row.actual_tax %][% LxERP.format_amount(row.display_actual_tax, 2) %][% END %]</td> |
|
76 |
<td>[% IF (problem.data.module == 'gl') || (idx != other_side) %][% HTML.escape(row.taxdescription) %][% END %]</td> |
|
77 |
<td>[% IF row.expected_tax %][% LxERP.format_amount(row.display_expected_tax, 2) %][% END %]</td> |
|
78 |
<td><img src="image/[% IF row.taxkey_error %]error[% ELSE %]ok[% END %].png"></td> |
|
79 |
|
|
80 |
<td> |
|
81 |
[% IF row.taxkey_error %] |
|
82 |
<input type="hidden" name="fixes[+].acc_trans_id" value="[% HTML.escape(row.acc_trans_id) %]"> |
|
83 |
<input type="hidden" name="fixes[].tax_entry_acc_trans_id" value="[% HTML.escape(row.tax_entry_acc_trans_id) %]"> |
|
84 |
<select name="fixes[].taxkey" style="width: 250px" onchange="enable_fix_button_maybe()"> |
|
85 |
<option value="">[% '---please select---' | $T8 %]</option> |
|
86 |
[% FOREACH taxkey = row.correct_taxkeys %] |
|
87 |
<option value="[% HTML.escape(taxkey.taxkey) %]">[% HTML.escape(taxkey.description) %]</option> |
|
88 |
[% END %] |
|
89 |
[% ELSE %] |
|
90 |
|
|
91 |
[% END %] |
|
92 |
</tr> |
|
93 |
[% END %] |
|
94 |
[% END %] |
|
95 |
|
|
96 |
</table> |
|
97 |
<hr> |
|
98 |
|
|
99 |
<p> |
|
100 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
101 |
<input type="hidden" name="action" value="dispatcher"> |
|
102 |
<input type="hidden" name="trans_id" value="[% HTML.escape(problem.data.trans_id) %]"> |
|
103 |
<input type="hidden" name="module" value="[% HTML.escape(problem.data.module) %]"> |
|
104 |
<input type="hidden" name="reference" value="[% HTML.escape(problem.data.reference) %]"> |
|
105 |
<input type="submit" id="fix_transaction_button" name="action_fix_wrong_taxkeys" value="[% 'Fix transaction' | $T8 %]" disabled> |
|
106 |
<input type="submit" name="action_delete_transaction" value="[% 'Delete transaction' | $T8 %]"> |
|
107 |
<input type="button" onclick="history.back()" value="[% 'Back' | $T8 %]"> |
|
108 |
</p> |
|
109 |
</form> |
|
110 |
|
|
111 |
<script type="text/javascript"> |
|
112 |
<!-- |
|
113 |
function enable_fix_button_maybe() { |
|
114 |
$("#fix_transaction_button").prop('disabled', $("[name='fixes[].taxkey'][value='']").size() != 0); |
|
115 |
} |
|
116 |
--> |
|
117 |
</script> |
templates/design40_webpages/acctranscorrections/delete_transaction.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
<h1>[% title %]</h1> |
|
5 |
|
|
6 |
<p> |
|
7 |
[%- IF module == 'ar' %] |
|
8 |
[%- LxERP.t8('The AR transaction #1 has been deleted.', reference) | html %] |
|
9 |
[%- ELSIF module == 'ap' %] |
|
10 |
[%- LxERP.t8('The AP transaction #1 has been deleted.', reference) | html %] |
|
11 |
[%- ELSE %] |
|
12 |
[%- LxERP.t8('The GL transaction #1 has been deleted.', reference) | html %] |
|
13 |
[%- END %] |
|
14 |
</p> |
|
15 |
|
|
16 |
<p> |
|
17 |
<form method="post" action="acctranscorrections.pl"> |
|
18 |
|
|
19 |
<input type="hidden" name="action" value="redirect"> |
|
20 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
21 |
<input type="submit" value="[% 'Re-run analysis' | $T8 %]"> |
|
22 |
</form> |
|
23 |
</p> |
templates/design40_webpages/acctranscorrections/delete_transaction_confirmation.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
<h1>[% title %]</h1> |
|
5 |
|
|
6 |
<p> |
|
7 |
[%- IF module == 'ar' %] |
|
8 |
[%- LxERP.t8('Do you really want to delete AR transaction #1?', reference) | html %] |
|
9 |
[%- ELSIF module == 'ap' %] |
|
10 |
[%- LxERP.t8('Do you really want to delete AP transaction #1?', reference) | html %] |
|
11 |
[%- ELSE %] |
|
12 |
[%- LxERP.t8('Do you really want to delete GL transaction #1?', reference) | html %] |
|
13 |
[%- END %] |
|
14 |
</p> |
|
15 |
|
|
16 |
<p> |
|
17 |
<form method="post" action="acctranscorrections.pl"> |
|
18 |
|
|
19 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
20 |
<input type="hidden" name="trans_id" value="[% HTML.escape(trans_id) %]"> |
|
21 |
<input type="hidden" name="module" value="[% HTML.escape(module) %]"> |
|
22 |
<input type="hidden" name="reference" value="[% HTML.escape(reference) %]"> |
|
23 |
|
|
24 |
<input type="hidden" name="confirmation" value="1"> |
|
25 |
<input type="hidden" name="action" value="delete_transaction"> |
|
26 |
|
|
27 |
<input type="submit" value="[% 'Yes' | $T8 %]"> |
|
28 |
<input type="button" onclick="history.back()" value="[% 'No' | $T8 %]"> |
|
29 |
</form> |
|
30 |
</p> |
templates/design40_webpages/acctranscorrections/fix_ap_ar_wrong_taxkeys.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
<h1>[% title %]</h1> |
|
4 |
|
|
5 |
<p> |
|
6 |
[% 'The wrong taxkeys for AP and AR transactions have been fixed.' | $T8 %] |
|
7 |
|
|
8 |
[% 'Please re-run the analysis for broken general ledger entries by clicking this button:' | $T8 %] |
|
9 |
</p> |
|
10 |
|
|
11 |
<p> |
|
12 |
<form action="acctranscorrections.pl" method="post"> |
|
13 |
|
|
14 |
<input type="hidden" name="action" value="redirect"> |
|
15 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
16 |
<input type="submit" value="[% 'Re-run analysis' | $T8 %]"> |
|
17 |
</form> |
|
18 |
</p> |
|
19 |
|
templates/design40_webpages/acctranscorrections/fix_invoice_inventory_with_taxkeys.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
<h1>[% title %]</h1> |
|
4 |
|
|
5 |
<p> |
|
6 |
[% 'The wrong taxkeys for inventory transactions for sales and purchase invoices have been fixed.' | $T8 %] |
|
7 |
|
|
8 |
[% 'Please re-run the analysis for broken general ledger entries by clicking this button:' | $T8 %] |
|
9 |
</p> |
|
10 |
|
|
11 |
<p> |
|
12 |
<form action="acctranscorrections.pl" method="post"> |
|
13 |
|
|
14 |
<input type="hidden" name="action" value="redirect"> |
|
15 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
16 |
<input type="submit" value="[% 'Re-run analysis' | $T8 %]"> |
|
17 |
</form> |
|
18 |
</p> |
|
19 |
|
templates/design40_webpages/acctranscorrections/fix_wrong_taxkeys.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
<h1>[% title %]</h1> |
|
4 |
|
|
5 |
<p> |
|
6 |
[% 'The wrong taxkeys have been fixed.' | $T8 %] |
|
7 |
|
|
8 |
[% 'Please re-run the analysis for broken general ledger entries by clicking this button:' | $T8 %] |
|
9 |
</p> |
|
10 |
|
|
11 |
<p> |
|
12 |
<form action="acctranscorrections.pl" method="post"> |
|
13 |
|
|
14 |
<input type="hidden" name="action" value="redirect"> |
|
15 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
16 |
<input type="submit" value="[% 'Re-run analysis' | $T8 %]"> |
|
17 |
</form> |
|
18 |
</p> |
|
19 |
|
templates/design40_webpages/admin/adminlogin.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE L -%] |
|
5 |
<div class="login" id="login"> |
|
6 |
<h1>[% LxERP.t8('kivitendo v#1 administration', version) %]</h1> |
|
7 |
<div class="logo"> |
|
8 |
<a href="http://www.kivitendo.de"><img src="image/kivitendo.png"></a> |
|
9 |
|
|
10 |
[% IF error %] |
|
11 |
<div class="message_error_login">[% HTML.escape(error) %]</div> |
|
12 |
[% END %] |
|
13 |
</div> |
|
14 |
|
|
15 |
|
|
16 |
<form method="post" action="controller.pl"> |
|
17 |
[% L.hidden_tag("action", 'Admin/login') %] |
|
18 |
[% L.hidden_tag("do_login", 1) %] |
|
19 |
<div class="separate-form"> |
|
20 |
<table class="tbl-horizontal login"> |
|
21 |
<caption>[% 'Admin Login' | $T8 %]</caption> |
|
22 |
<colgroup><col class="wi-small"><col class="wi-normal"></colgroup> |
|
23 |
<tbody> |
|
24 |
<tr> |
|
25 |
<th>[% 'Password' | $T8 %]</th> |
|
26 |
<td>[%- L.input_tag("{AUTH}admin_password", '', type="password", class="initial_focus", id="admin_password") %]</td> |
|
27 |
</tr> |
|
28 |
<tr> |
|
29 |
<th></th> |
|
30 |
<td>[% L.submit_tag('dummy', LxERP.t8('Login')) %]</td> |
|
31 |
</tr> |
|
32 |
</tbody> |
|
33 |
</table> |
|
34 |
</div> |
|
35 |
</form> |
|
36 |
|
|
37 |
<p style="text-align:center;"> |
|
38 |
<a href="controller.pl?action=LoginScreen/user_login" target="_top">[%- LxERP.t8('User login') %]</a> |
|
39 |
| |
|
40 |
<a href="doc/kivitendo-Dokumentation.pdf" target="_top">[%- LxERP.t8('Documentation') %]</a> |
|
41 |
</p> |
|
42 |
</div><!-- /.login --> |
templates/design40_webpages/admin/check_auth_database.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE L %] |
|
4 |
[% USE LxERP %] |
|
5 |
|
|
6 |
<h1>[% title %]</h1> |
|
7 |
|
|
8 |
<form method="post" action="controller.pl"> |
|
9 |
[% L.hidden_tag("action", 'Admin/create_auth_db') %] |
|
10 |
[% L.hidden_tag("{AUTH}admin_password", LXCONFIG.authentication.admin_password) %] |
|
11 |
|
|
12 |
<p>[% 'The database for user management and authentication does not exist. You can create let kivitendo create it with the following parameters:' | $T8 %]</p> |
|
13 |
|
|
14 |
<table class="tbl-horizontal"> |
|
15 |
<tr> |
|
16 |
<th>[% 'Host' | $T8 %]:</th> |
|
17 |
<td>[% HTML.escape(SELF.db_cfg.host) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th>[% 'Port' | $T8 %]:</th> |
|
21 |
<td>[% HTML.escape(SELF.db_cfg.port) %]</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<th>[% 'User name' | $T8 %]:</th> |
|
25 |
<td>[% HTML.escape(SELF.db_cfg.user) %]</td> |
|
26 |
</tr> |
|
27 |
<tr> |
|
28 |
<th>[% 'Database name' | $T8 %]:</th> |
|
29 |
<td>[% HTML.escape(SELF.db_cfg.db) %]</td> |
|
30 |
</tr> |
|
31 |
</table> |
|
32 |
|
|
33 |
<p>[% 'Please enter the name of the database that will be used as the template for the new database:' | $T8 %]</p> |
|
34 |
|
|
35 |
<p>[% 'Template database' | $T8 %]: [% L.input_tag('db_template', "template1") %]</p> |
|
36 |
|
|
37 |
<p>[% 'If the database user listed above does not have the right to create a database then enter the name and password of the superuser below:' | $T8 %]</p> |
|
38 |
|
|
39 |
<table class="tbl-horizontal"> |
|
40 |
<tr> |
|
41 |
<th>[% 'Superuser name' | $T8 %]:</th> |
|
42 |
<td>[% L.input_tag('db_superuser', AUTH.DB_config.user, class="initial_focus") %]</td> |
|
43 |
</tr> |
|
44 |
<tr> |
|
45 |
<th>[% 'Password' | $T8 %]:</th> |
|
46 |
<td>[% L.input_tag('db_superuser_password', AUTH.DB_config.password, type='password') %]</td> |
|
47 |
</tr> |
|
48 |
</table> |
|
49 |
|
|
50 |
[% L.submit_tag("dummy", LxERP.t8("Create Dataset")) %] |
|
51 |
[% L.button_tag("history.back()", LxERP.t8("Back")) %] |
|
52 |
</form> |
|
53 |
|
templates/design40_webpages/admin/check_auth_tables.html | ||
---|---|---|
1 |
[% USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE L %] |
|
5 |
|
|
6 |
<h1>[% title %]</h1> |
|
7 |
|
|
8 |
<p>[% 'The tables for user management and authentication do not exist. They will be created in the next step in the following database:' | $T8 %]</p> |
|
9 |
|
|
10 |
<table> |
|
11 |
<tr> |
|
12 |
<td>[% 'Host' | $T8 %]:</td> |
|
13 |
<td>[% HTML.escape(SELF.db_cfg.host) %]</td> |
|
14 |
</tr> |
|
15 |
<tr> |
|
16 |
<td>[% 'Port' | $T8 %]:</td> |
|
17 |
<td>[% HTML.escape(SELF.db_cfg.port) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<td>[% 'User name' | $T8 %]:</td> |
|
21 |
<td>[% HTML.escape(SELF.db_cfg.user) %]</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<td>[% 'Database name' | $T8 %]:</td> |
|
25 |
<td>[% HTML.escape(SELF.db_cfg.db) %]</td> |
|
26 |
</tr> |
|
27 |
</table> |
|
28 |
|
|
29 |
<p>[% 'If you want to change any of these parameters then press the "Back" button, edit the file "config/kivitendo.conf" and login into the admin module again.' | $T8 %]</p> |
|
30 |
|
|
31 |
<form method="post" action="controller.pl"> |
|
32 |
[% L.hidden_tag("action", 'Admin/create_auth_tables') %] |
|
33 |
[% L.hidden_tag("{AUTH}admin_password", LXCONFIG.authentication.admin_password) %] |
|
34 |
[% L.submit_tag("dummy", LxERP.t8("Create tables")) %] |
|
35 |
[% L.button_tag("history.back()", LxERP.t8("Back")) %] |
|
36 |
</form> |
|
37 |
|
templates/design40_webpages/admin/create_dataset.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE T8 %] |
|
4 |
[% USE L %] |
|
5 |
|
|
6 |
[% INCLUDE 'common/flash.html' %] |
|
7 |
|
|
8 |
<h1>[% HTML.escape(title) %]</h1> |
|
9 |
|
|
10 |
<form method="post" action="controller.pl"> |
|
11 |
|
|
12 |
<div class="wrapper"> |
|
13 |
|
|
14 |
<p> |
|
15 |
[% LxERP.t8('You can either create a new database or chose an existing database.') %] |
|
16 |
[% LxERP.t8('In the latter case the tables needed by kivitendo will be created in that database.') %] |
|
17 |
</p> |
|
18 |
|
|
19 |
[% IF !superuser.have_privileges %] |
|
20 |
<p> |
|
21 |
[% LxERP.t8("Database superuser privileges are required for parts of the database modifications.") %] |
|
22 |
[% LxERP.t8("Please provide corresponding credentials.") %] |
|
23 |
</p> |
|
24 |
[% END %] |
|
25 |
|
|
26 |
|
|
27 |
<table class="tbl-horizontal"> |
|
28 |
<tbody> |
|
29 |
<tr> |
|
30 |
<th>[% LxERP.t8('Existing Datasets') %]</th> |
|
31 |
<td>[% FOREACH db = SELF.all_dbsources %][% UNLESS loop.first %] [% END %][[% HTML.escape(db) %]][% END %]</td> |
|
32 |
</tr> |
|
33 |
<tr> |
|
34 |
<th>[% LxERP.t8('Create Dataset') %]</th> |
|
35 |
<td>[% L.input_tag('db', FORM.db, class="initial_focus") %]</td> |
|
36 |
</tr> |
|
37 |
[% IF !superuser.have_privileges %] |
|
38 |
<tr> |
|
39 |
<th>[% LxERP.t8("Database Superuser") %]</th> |
|
40 |
<td>[% L.input_tag("database_superuser_user", superuser.username) %]</td> |
|
41 |
</tr> |
|
42 |
<tr> |
|
43 |
<th>[% LxERP.t8("Password") %]</th> |
|
44 |
<td>[% L.input_tag("database_superuser_password", superuser.password, type="password") %]</td> |
|
45 |
</tr> |
|
46 |
[% END %] |
|
47 |
<tr> |
|
48 |
<th>[% LxERP.t8('Default currency') %]</th> |
|
49 |
<td>[% L.input_tag('defaultcurrency', FORM.defaultcurrency) %]</td> |
|
50 |
</tr> |
|
51 |
<tr> |
|
52 |
<th>[% LxERP.t8('Precision') %]</th> |
|
53 |
<td>[% L.input_tag('precision_as_number', LxERP.format_amount(FORM.precision, 2)) %] [% LxERP.t8('Precision Note') %]</td> |
|
54 |
</tr> |
|
55 |
<tr> |
|
56 |
<th>[% LxERP.t8('Create Chart of Accounts') %]</th> |
|
57 |
<td>[% L.select_tag('chart', SELF.all_charts, default=(FORM.chart), onchange='comment_selected_chart(this.value)') %]</td> |
|
58 |
</tr> |
|
59 |
<tr> |
|
60 |
<th>[% LxERP.t8('Accounting method') %]</th> |
|
61 |
<td>[% L.select_tag('accounting_method', SELF.all_accounting_methods, title_key='name', default=(FORM.accounting_method)) %]</td> |
|
62 |
</tr> |
|
63 |
<tr> |
|
64 |
<th>[% LxERP.t8('Inventory system') %]</th> |
|
65 |
<td>[% L.select_tag('inventory_system', SELF.all_inventory_systems, title_key='name', default=(FORM.inventory_system)) %]</td> |
|
66 |
</tr> |
|
67 |
<tr> |
|
68 |
<th>[% LxERP.t8('Profit determination') %]</th> |
|
69 |
<td>[% L.select_tag('profit_determination', SELF.all_profit_determinations, title_key='name', default=(FORM.profit_determination)) %]</td> |
|
70 |
</tr> |
|
71 |
</tbody> |
|
72 |
</table> |
|
73 |
|
|
74 |
[% L.hidden_tag("dbhost", FORM.dbhost) %] |
|
75 |
[% L.hidden_tag("dbport", FORM.dbport) %] |
|
76 |
[% L.hidden_tag("dbuser", FORM.dbuser) %] |
|
77 |
[% L.hidden_tag("dbpasswd", FORM.dbpasswd) %] |
|
78 |
[% L.hidden_tag("dbdefault", FORM.dbdefault) %] |
|
79 |
[% L.hidden_tag("action", "Admin/do_create_dataset") %] |
|
80 |
[% L.hidden_tag("feature_balance", FORM.feature_balance) %] |
|
81 |
[% L.hidden_tag("feature_datev", FORM.feature_datev) %] |
|
82 |
[% L.hidden_tag("feature_erfolgsrechnung", FORM.feature_erfolgsrechnung) %] |
|
83 |
[% L.hidden_tag("feature_eurechnung", FORM.feature_eurechnung) %] |
|
84 |
[% L.hidden_tag("feature_ustva", FORM.feature_ustva) %] |
|
85 |
|
|
86 |
<div class="buttons"> |
|
87 |
[% L.submit_tag('dummy', LxERP.t8('Create Dataset')) %] |
|
88 |
</div> |
|
89 |
|
|
90 |
</div><!-- /.wrapper --> |
|
91 |
|
|
92 |
</form> |
|
93 |
|
|
94 |
<script type="text/javascript"><!-- |
|
95 |
|
|
96 |
function comment_selected_chart(s) { |
|
97 |
if (s == 'Austria') { |
|
98 |
alert("SKR07 Austria ist noch Stand 2002." + |
|
99 |
"\n" + |
|
100 |
"Die Buchungsgruppen sind nicht korrekt vorkonfiguriert" + |
|
101 |
"\n" + |
|
102 |
"fuer Kunden im Ausland." + |
|
103 |
"\n" + |
|
104 |
"Hinweis vom 20.09.2011"); |
|
105 |
} |
|
106 |
return true; |
|
107 |
} |
|
108 |
|
|
109 |
function select_country_defaults(country) { |
|
110 |
if (/^CH/.test(country)) { |
|
111 |
document.getElementById('defaultcurrency').value='CHF'; |
|
112 |
document.getElementById('precision').value='0.05'; |
|
113 |
document.getElementById('chart').value='Switzerland-deutsch-MWST-2014'; |
|
114 |
document.getElementById('accounting_method').value='accrual'; |
|
115 |
document.getElementById('inventory_system').value='periodic'; |
|
116 |
document.getElementById('profit_determination').value='balance'; |
|
117 |
} else { |
|
118 |
document.getElementById('defaultcurrency').value='EUR'; |
|
119 |
document.getElementById('precision').value='0.01'; |
|
120 |
document.getElementById('chart').value='Germany-DATEV-SKR03EU'; |
|
121 |
document.getElementById('accounting_method').value='cash'; |
|
122 |
document.getElementById('inventory_system').value='periodic'; |
|
123 |
document.getElementById('profit_determination').value='income'; |
|
124 |
} |
|
125 |
return true; |
|
126 |
} |
|
127 |
|
|
128 |
--></script> |
templates/design40_webpages/admin/dbadmin.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
|
|
5 |
[% INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<h1>[% LxERP.t8("Database login (#1)", title) %]</h1> |
|
8 |
|
|
9 |
<div class="wrapper"> |
|
10 |
<form method="post" action="controller.pl"> |
|
11 |
<p> |
|
12 |
[% LxERP.t8('Here you only provide the credentials for logging into the database.') %] |
|
13 |
[% LxERP.t8('Nothing will be created or deleted at this stage!') %] |
|
14 |
</p> |
|
15 |
|
|
16 |
<table class="tbl-horizontal"> |
|
17 |
<tbody> |
|
18 |
<tr> |
|
19 |
<th>[% LxERP.t8('Host') %]</th> |
|
20 |
<td>[% L.input_tag('dbhost', dbhost, size=30, class="initial_focus wi-wide") %]</td> |
|
21 |
</tr> |
|
22 |
<tr> |
|
23 |
<th>[% LxERP.t8('Port') %]</th> |
|
24 |
<td>[% L.input_tag('dbport', dbport, class="wi-verysmall") %]</td> |
|
25 |
</tr> |
|
26 |
<tr> |
|
27 |
<th>[% LxERP.t8('Database User') %]</th> |
|
28 |
<td>[% L.input_tag("dbuser", dbuser, class="wi-wide") %]</td> |
|
29 |
</tr> |
|
30 |
<tr> |
|
31 |
<th>[% LxERP.t8('Password') %]</th> |
|
32 |
<td>[% L.input_tag("dbpasswd", dbpasswd, type='password', class="wi-wide") %]</td> |
|
33 |
</tr> |
|
34 |
<tr> |
|
35 |
<th>[% LxERP.t8('Database template') %]</th> |
|
36 |
<td>[% L.input_tag("dbdefault", dbdefault, class="wi-wide") %]</td> |
|
37 |
</tr> |
|
38 |
</tbody> |
|
39 |
</table> |
|
40 |
|
|
41 |
[% L.hidden_tag("action", 'Admin/dispatch') %] |
|
42 |
|
|
43 |
<div class="buttons">[% L.submit_tag('action_' _ next_action, LxERP.t8('Login')) %]</div> |
|
44 |
|
|
45 |
</div><!-- /.wrapper --> |
|
46 |
</form> |
templates/design40_webpages/admin/delete_dataset.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
[% USE JavaScript %] |
|
5 |
|
|
6 |
[% INCLUDE 'common/flash.html' %] |
|
7 |
|
|
8 |
<h1>[% HTML.escape(title) %]</h1> |
|
9 |
|
|
10 |
<p> |
|
11 |
[% LxERP.t8('You can only delete datasets that are not in use.') %] |
|
12 |
[% LxERP.t8('If you want to delete such a dataset you have to edit the client(s) that are using the dataset in question and have them use another dataset.') %] |
|
13 |
</p> |
|
14 |
|
|
15 |
[% IF SELF.all_dbsources.size %] |
|
16 |
|
|
17 |
<form method="post" action="controller.pl"> |
|
18 |
<p> |
|
19 |
[% LxERP.t8('Please select the dataset you want to delete:') %] |
|
20 |
[% L.select_tag('db', SELF.all_dbsources, class="initial_focus") %] |
|
21 |
</p> |
|
22 |
|
|
23 |
[% L.hidden_tag("dbhost", FORM.dbhost) %] |
|
24 |
[% L.hidden_tag("dbport", FORM.dbport) %] |
|
25 |
[% L.hidden_tag("dbuser", FORM.dbuser) %] |
|
26 |
[% L.hidden_tag("dbpasswd", FORM.dbpasswd) %] |
|
27 |
[% L.hidden_tag("dbdefault", FORM.dbdefault) %] |
|
28 |
[% L.hidden_tag("action", "Admin/do_delete_dataset") %] |
|
29 |
|
|
30 |
<div class="buttons">[% L.submit_tag('dummy', LxERP.t8('Delete Dataset'), id='submit') %]</div> |
|
31 |
|
|
32 |
</form> |
|
33 |
|
|
34 |
<script type="text/javascript"><!-- |
|
35 |
|
|
36 |
var used_dbsources = {[% FOREACH client = SELF.all_clients %] |
|
37 |
"[% JavaScript.escape(client.dbhost || 'localhost') %]:[% JavaScript.escape(client.dbport || '5432') %]:[% JavaScript.escape(client.dbname || 'localhost') %]": "[% JavaScript.escape(client.name) %]"[% UNLESS loop.last %],[% END %][% END %] |
|
38 |
}; |
|
39 |
|
|
40 |
$(function() { |
|
41 |
$('#submit').click(function() { |
|
42 |
var client = used_dbsources[$('#dbhost').val() + ':' + $('#dbport').val() + ':' + $('#db').val()]; |
|
43 |
var question = !client ? kivi.t8('Are you sure?') : kivi.t8('The selected database is still configured for client "#1". If you delete the database that client will stop working until you re-configure it. Do you still want to delete the database?', [ client ]); |
|
44 |
|
|
45 |
return confirm(question); |
|
46 |
}); |
|
47 |
}); |
|
48 |
|
|
49 |
--></script> |
|
50 |
|
|
51 |
[% END %] |
templates/design40_webpages/admin/edit_client.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
[% INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<h1>[% HTML.escape(title) %]</h1> |
|
8 |
|
|
9 |
<form method="post" action="controller.pl" id="form"> |
|
10 |
[% L.hidden_tag("client.id", SELF.client.id) %] |
|
11 |
[% L.hidden_tag("action", "") %] |
|
12 |
|
|
13 |
<div class="wrapper"> |
|
14 |
|
|
15 |
<table class="tbl-horizontal"> |
|
16 |
<caption>[% LxERP.t8("Settings") %]</caption> |
|
17 |
<colgroup><col class="wi-normal"><col class="wi-normal"></colgroup> |
|
18 |
<tbody> |
|
19 |
[% IF SELF.client.id %] |
|
20 |
<tr> |
|
21 |
<th>[% LxERP.t8('Database ID') %]</th> |
|
22 |
<td>[% HTML.escape(SELF.client.id) %]</td> |
|
23 |
</tr> |
|
24 |
[% END %] |
|
25 |
<tr> |
|
26 |
<th>[% LxERP.t8('Client name') %]</th> |
|
27 |
<td>[% L.input_tag("client.name", SELF.client.name, class="initial_focus") %]</td> |
|
28 |
</tr> |
|
29 |
<tr> |
|
30 |
<th>[% LxERP.t8('Default client') %]</th> |
|
31 |
<td>[% L.checkbox_tag("client.is_default", label=LxERP.t8('This is the client to be selected by default on the login screen.'), checked=SELF.client.is_default) %]</td> |
|
32 |
</tr> |
|
33 |
<tr> |
|
34 |
<th>[% LxERP.t8('Database name') %]</th> |
|
35 |
<td>[% L.input_tag("client.dbname", SELF.client.dbname, class="contains_dbsettings") %]</td> |
|
36 |
</tr> |
|
37 |
<tr> |
|
38 |
<th>[% LxERP.t8('Database host and port') %]</th> |
|
39 |
<td> [% L.input_tag("client.dbhost", SELF.client.dbhost, class="contains_dbsettings") %] [% L.input_tag("client.dbport", SELF.client.dbport, class="contains_dbsettings", size=6) %] </td> |
|
40 |
</tr> |
|
41 |
<tr> |
|
42 |
<th>[% LxERP.t8('Database user and password') %]</th> |
|
43 |
<td>[% L.input_tag("client.dbuser", SELF.client.dbuser, class="contains_dbsettings") %] [% L.input_tag("client.dbpasswd", SELF.client.dbpasswd, class="contains_dbsettings", type="password") %] </td> |
|
44 |
</tr> |
|
45 |
<tr> |
|
46 |
<th>[% LxERP.t8("Run task server for this client with the following user") %]</th> |
|
47 |
<td>[% L.select_tag("client.task_server_user_id", SELF.all_users, with_empty=1, empty_title=LxERP.t8("Do not run the task server for this client"), title_key="login", default=SELF.client.task_server_user_id) %] </td> |
|
48 |
</tr> |
|
49 |
</tbody> |
|
50 |
</table> |
|
51 |
|
|
52 |
</div><!-- /.cols --> |
|
53 |
|
|
54 |
<div class="buttons">[% L.button_tag("test_database_connectivity()", LxERP.t8("Test database connectivity")) %] </div> |
|
55 |
|
|
56 |
|
|
57 |
<div class="wrapper"> |
|
58 |
|
|
59 |
<div class="col"> |
|
60 |
|
|
61 |
<h3>[% LxERP.t8("Access to clients") %]</h3> |
|
62 |
|
|
63 |
[% IF SELF.all_users.size %] |
|
64 |
<p> [% LxERP.t8("The following users will have access to this client") %]: </p> |
|
65 |
<div class="clearfix"> |
|
66 |
[% L.select_tag("client.users[]", SELF.all_users, id="client_users", title_key="login", default=SELF.client.users, default_value_key='id', multiple=1) %] |
|
67 |
[% L.multiselect2side("client_users", labelsx => LxERP.t8("All users"), labeldx => LxERP.t8("Users that have access to this client")) %] |
|
68 |
</div> |
|
69 |
|
|
70 |
[% ELSE %] |
|
71 |
<p> [% LxERP.t8("No users have been created yet.") %] </p> |
|
72 |
[% END %] |
|
73 |
|
|
74 |
</div> |
|
75 |
|
|
76 |
|
|
77 |
<div class="col"> |
|
78 |
|
|
79 |
<h3>[% LxERP.t8("Group assignment") %]</h3> |
|
80 |
|
|
81 |
[% IF SELF.all_groups.size %] |
|
82 |
<p> [% LxERP.t8("The following groups are valid for this client") %]: </p> |
|
83 |
<div class="clearfix"> |
|
84 |
[% L.select_tag("client.groups[]", SELF.all_groups, id="client_groups", title_key="name", default=SELF.client.groups, default_value_key='id', multiple=1) %] |
|
85 |
[% L.multiselect2side("client_groups", labelsx => LxERP.t8("All groups"), labeldx => LxERP.t8("Groups valid for this client")) %] |
|
86 |
</div> |
|
87 |
|
|
88 |
[% ELSE %] |
|
89 |
<p> [% LxERP.t8("No groups have been created yet.") %] </p> |
|
90 |
[% END %] |
|
91 |
|
|
92 |
</div> |
|
93 |
|
|
94 |
</div><!-- /.cols --> |
|
95 |
|
|
96 |
|
|
97 |
<div class="buttons"> |
|
98 |
[% L.link(SELF.url_for(action="show"), LxERP.t8("Back"), class="button neutral") %] |
|
99 |
[% L.button_tag("submit_with_action('save_client')", LxERP.t8("Save")) %] |
|
100 |
[% IF SELF.client.id %] |
|
101 |
[% L.button_tag("save_as_new()", LxERP.t8("Save as new")) %] |
|
102 |
[% L.button_tag("submit_with_action('delete_client')", LxERP.t8("Delete"), confirm=LxERP.t8("Are you sure?")) %] |
|
103 |
[% END %] |
|
104 |
</div> |
|
105 |
|
|
106 |
</form> |
|
107 |
|
|
108 |
<script type="text/javascript"> |
|
109 |
<!-- |
|
110 |
function submit_with_action(action) { |
|
111 |
$("#action").val("Admin/" + action); |
|
112 |
$("#form").submit(); |
|
113 |
} |
|
114 |
|
|
115 |
function save_as_new() { |
|
116 |
var new_client_name = prompt("[% LxERP.t8("Please enter the name for the new client.") %]", ""); |
|
117 |
if (!new_client_name) |
|
118 |
return; |
|
119 |
|
|
120 |
$("#client_name").val(new_client_name); |
|
121 |
$("#client_id").val(""); |
|
122 |
submit_with_action("save_client"); |
|
123 |
} |
|
124 |
|
|
125 |
function test_database_connectivity() { |
|
126 |
kivi.popup_dialog({ |
|
127 |
url: 'controller.pl?action=Admin/test_database_connectivity', |
|
128 |
data: $(".contains_dbsettings").serialize(), |
|
129 |
type: 'POST', |
|
130 |
id: 'test_db_connection_window', |
|
131 |
dialog: { title: kivi.t8('Database Connection Test') } |
|
132 |
}); |
|
133 |
return true; |
|
134 |
} |
|
135 |
--> |
|
136 |
</script> |
templates/design40_webpages/admin/edit_group.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
4 |
|
|
5 |
[% INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<h1>[% HTML.escape(title) %]</h1> |
|
8 |
|
|
9 |
|
|
10 |
<form method="post" action="controller.pl" id="form"> |
|
11 |
[% L.hidden_tag("group.id", SELF.group.id) %] |
|
12 |
[% L.hidden_tag("action", "") %] |
|
13 |
|
|
14 |
<div class="wrapper"> |
|
15 |
|
|
16 |
<div class="col wi-wide"> |
|
17 |
<h2>[% LxERP.t8("Settings") %]</h2> |
|
18 |
|
|
19 |
<table class="tbl-horizontal"> |
|
20 |
<tbody> |
|
21 |
<tr> |
|
22 |
<th>[% LxERP.t8('Name') %]</th> |
|
23 |
<td>[% L.input_tag("group.name", SELF.group.name, class="initial_focus") %]</td> |
|
24 |
</tr> |
|
25 |
<tr> |
|
26 |
<th>[% LxERP.t8('Description') %]</th> |
|
27 |
<td>[% L.input_tag("group.description", SELF.group.description) %]</td> |
|
28 |
</tr> |
|
29 |
</tbody> |
|
30 |
</table> |
|
31 |
|
|
32 |
<h2>[% LxERP.t8("Access rights") %]</h2> |
|
33 |
|
|
34 |
[% SET granted_rights = SELF.group.rights_map %] |
|
35 |
|
|
36 |
[% FOREACH section = SELF.all_rights %] |
|
37 |
[% SET section_number = loop.count %] |
|
38 |
[% SET num_checked = 0 %] |
|
39 |
[% FOREACH right = section.rights %] |
|
40 |
[% SET name = right.name %] |
|
41 |
[% IF granted_rights.$name %][% SET num_checked = num_checked + 1 %][% END %] |
|
42 |
[% END %] |
|
43 |
|
|
44 |
<div class="boxes"> |
|
45 |
<h3 title="[% LxERP.t8('Select/Deselect all') %]">[% L.checkbox_tag('dummy' _ section_number, label=LxERP.t8('Section "#1"', section.description), checkall='.checkallgroup' _ section_number, checked=(num_checked == section.rights.size), title=LxERP.t8("Select/Deselect")) %]</h3> |
|
46 |
[% FOREACH right = section.rights %] |
|
47 |
[% SET name = right.name %] |
|
48 |
<div>[% L.checkbox_tag("group.rights_map." _ name, label=right.description, checked=granted_rights.$name, class="checkallgroup" _ section_number) %]</div> |
|
49 |
[% END %] |
|
50 |
</div> |
|
51 |
[% END %] |
|
52 |
|
|
53 |
</div><!-- /.col --> |
|
54 |
|
|
55 |
<div class="col"> |
|
56 |
<h2>[% LxERP.t8("Group membership") %]</h2> |
|
57 |
|
|
58 |
[% IF SELF.all_users.size %] |
|
59 |
<div class="ms2side"> |
|
60 |
<p>[% LxERP.t8("The following users are a member of this group") %]:</p> |
|
61 |
<!-- vormals:.clearfix --> |
|
62 |
[% L.select_tag("group.users[]", SELF.all_users, id="group_users", title_key="login", default=SELF.group.users, default_value_key='id', multiple=1) %] |
|
63 |
[% L.multiselect2side("group_users", labelsx => LxERP.t8("All users"), labeldx => LxERP.t8("Users that are a member in this group")) %] |
|
64 |
</div> |
|
65 |
[% ELSE %] |
|
66 |
<p>[% LxERP.t8("No users have been created yet.") %]</p> |
|
67 |
[% END %] |
|
68 |
|
|
69 |
|
|
70 |
<h2>[% LxERP.t8("Client assignment") %]</h2> |
|
71 |
|
|
72 |
[% IF SELF.all_clients.size %] |
|
73 |
<div class="ms2side"> |
|
74 |
<p>[% LxERP.t8("This group is valid for the following clients") %]:</p> |
|
75 |
<!-- vormals:.clearfix --> |
|
76 |
[% L.select_tag("group.clients[]", SELF.all_clients, id="group_clients", title_key="name", default=SELF.group.clients, default_value_key='id', multiple=1) %] |
|
77 |
[% L.multiselect2side("group_clients", labelsx => LxERP.t8("All clients"), labeldx => LxERP.t8("Clients this Group is valid for")) %] |
|
78 |
</div> |
|
79 |
|
|
80 |
[% ELSE %] |
|
81 |
<p>[% LxERP.t8("No clients have been created yet.") %]</p> |
|
82 |
[% END %] |
|
83 |
|
|
84 |
|
|
85 |
<div class="buttons"> |
|
86 |
[% L.link(SELF.url_for(action="show"), LxERP.t8("Back"), class="button neutral") %] |
|
87 |
|
|
88 |
[% L.button_tag("submit_with_action('save_group')", LxERP.t8("Save")) %] |
|
89 |
[% IF SELF.group.id %] |
|
90 |
[% L.button_tag("save_as_new()", LxERP.t8("Save as new")) %] |
|
91 |
[% L.button_tag("submit_with_action('delete_group')", LxERP.t8("Delete"), confirm=LxERP.t8("Are you sure?")) %] |
|
92 |
[% END %] |
|
93 |
</div> |
|
94 |
|
|
95 |
</div><!-- /.col --> |
|
96 |
|
|
97 |
</div><!-- /.wrapper --> |
|
98 |
</form> |
|
99 |
|
|
100 |
<script type="text/javascript"> |
|
101 |
<!-- |
|
102 |
function submit_with_action(action) { |
|
103 |
$("#action").val("Admin/" + action); |
|
104 |
$("#form").submit(); |
|
105 |
} |
|
106 |
|
|
107 |
function save_as_new() { |
|
108 |
var new_group_name = prompt("[% LxERP.t8("Please enter the name for the new group.") %]", ""); |
|
109 |
if (!new_group_name) |
|
110 |
return; |
|
111 |
|
|
112 |
$("#group_name").val(new_group_name); |
|
113 |
$("#group_id").val(""); |
|
114 |
submit_with_action("save_group"); |
|
115 |
} |
|
116 |
--> |
|
117 |
</script> |
templates/design40_webpages/admin/edit_printer.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE L %] |
|
4 |
|
|
5 |
<h1>[% HTML.escape(title) %]</h1> |
|
6 |
|
|
7 |
<div class="wrapper"> |
|
8 |
|
|
9 |
[% INCLUDE 'common/flash.html' %] |
|
10 |
|
|
11 |
[% IF !SELF.all_clients.size %] |
|
12 |
<div class="message message_error"> |
|
13 |
<b>[% LxERP.t8("Error") %]:</b> [% LxERP.t8("No clients have been created yet.") %] |
|
14 |
</div> |
|
15 |
|
|
16 |
[% ELSE %] |
|
17 |
|
|
18 |
<form method="post"> |
|
19 |
[% L.hidden_tag("action", 'Admin/dispatch') %] |
|
20 |
[% L.hidden_tag("printer.id", SELF.printer.id) %] |
|
21 |
|
|
22 |
<table class="tbl-horizontal"> |
|
23 |
<tbody> |
|
24 |
<tr> |
|
25 |
<th>[% LxERP.t8('Client') %]</th> |
|
26 |
<td>[% L.select_tag("client.id", SELF.all_clients, default=SELF.client.id, title_key='name') %]</td> |
|
27 |
</tr> |
|
28 |
<tr> |
|
29 |
<th>[% LxERP.t8('Printer Description') %]</th> |
|
30 |
<td>[% L.input_tag("printer.printer_description", SELF.printer.printer_description, size=30, class="initial_focus") %]</td> |
|
31 |
</tr> |
|
32 |
<tr> |
|
33 |
<th>[% LxERP.t8('Printer Command') %]</th> |
|
34 |
<td>[% L.input_tag("printer.printer_command", SELF.printer.printer_command, size=30) %]</td> |
|
35 |
</tr> |
|
36 |
<tr> |
|
37 |
<th>[% LxERP.t8('Template Code') %]</th> |
|
38 |
<td>[% L.input_tag("printer.template_code", SELF.printer.template_code, size=8) %]</td> |
|
39 |
</tr> |
|
40 |
</tbody> |
|
41 |
</table> |
|
42 |
|
|
43 |
<div class="buttons"> |
|
44 |
<a href="[% SELF.url_for(action='list_printers', 'client.id'=SELF.client.id) %]" class="button neutral">[% LxERP.t8("Back") %]</a> |
|
45 |
[% L.submit_tag("action_save_printer", LxERP.t8("Save"), class="button") %] |
|
46 |
[% IF SELF.printer.id %] |
|
47 |
[% L.submit_tag("action_delete_printer", LxERP.t8("Delete"), confirm=LxERP.t8("Are you sure?")) %] |
|
48 |
[% END %] |
|
49 |
</div> |
|
50 |
|
|
51 |
</form> |
|
52 |
|
|
53 |
</div><!-- /.wrapper --> |
|
54 |
|
|
55 |
|
|
56 |
[% END %] |
templates/design40_webpages/admin/edit_user.html | ||
---|---|---|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE JavaScript %] |
|
5 |
|
|
6 |
[% INCLUDE 'common/flash.html' %] |
|
7 |
|
|
8 |
<h1>[% HTML.escape(title) %]</h1> |
|
9 |
|
|
10 |
<form method="post" action="controller.pl" id="form"> |
|
11 |
[% L.hidden_tag("user.id", SELF.user.id) %] |
|
12 |
[% L.hidden_tag("action", "") %] |
|
13 |
[% SET props=SELF.user.config_values %] |
|
14 |
|
|
15 |
<!-- <h2>[% #LxERP.t8("Settings") %]</h2> --> |
|
16 |
<div class="wrapper"> |
|
17 |
|
|
18 |
|
|
19 |
<table class="tbl-horizontal"> |
|
20 |
<caption>[% LxERP.t8("User & Communication") %]</caption> |
|
21 |
<colgroup><col class="wi-small"><col class="wi-wide"></colgroup> |
|
22 |
<tbody> |
|
23 |
<tr> |
|
24 |
<th>[% LxERP.t8('Login Name') %]</th> |
|
25 |
<td>[% L.input_tag("user.login", SELF.user.login, class="initial_focus wi-wide") %]</td> |
|
26 |
</tr> |
|
27 |
[% IF AUTH.can_change_password %] |
|
28 |
<tr> |
|
29 |
<th>[% LxERP.t8("New Password") %]</th> |
|
30 |
<td>[% L.input_tag("new_password", "", type="password", class="wi-wide") %]</td> |
|
31 |
</tr> |
|
32 |
[% END %] |
|
33 |
<tr> |
|
34 |
<th>[% LxERP.t8("Name") %]</th> |
|
35 |
<td>[% L.input_tag("user.config_values.name", props.name, class="wi-wide") %]</td> |
|
36 |
</tr> |
|
37 |
<tr> |
|
38 |
<th>[% LxERP.t8('E-mail') %]</th> |
|
39 |
<td>[% L.input_tag("user.config_values.email", props.email, class="wi-wide") %]</td> |
|
40 |
</tr> |
|
41 |
<tr> |
|
42 |
<th>[% LxERP.t8('Signature') %]</th> |
|
43 |
<td>[% L.textarea_tag("user.config_values.signature", props.signature, rows=3, cols=24, class="wi-wide") %]</td> |
|
44 |
</tr> |
|
45 |
<tr> |
|
46 |
<th>[% LxERP.t8('Phone') %]</th> |
|
47 |
<td>[% L.input_tag("user.config_values.tel", props.tel, class="wi-wide") %]</td> |
|
48 |
</tr> |
|
49 |
<tr> |
|
50 |
<th>[% LxERP.t8('Fax') %]</th> |
|
51 |
<td>[% L.input_tag("user.config_values.fax", props.fax, class="wi-wide") %]</td> |
|
52 |
</tr> |
|
53 |
</tbody> |
|
54 |
</table> |
|
55 |
|
|
56 |
<table class="tbl-horizontal"> |
|
57 |
<caption>[% LxERP.t8("Formats & Language") %]</caption> |
|
58 |
<colgroup><col class="wi-mediumsmall"><col class="wi-normal"></colgroup> |
|
59 |
<tbody> |
|
60 |
<tr> |
|
61 |
<th>[% LxERP.t8("Date Format") %]</th> |
|
62 |
<td>[% L.select_tag("user.config_values.dateformat", SELF.all_dateformats, default=props.dateformat, class="wi-normal") %]</td> |
|
63 |
</tr> |
|
64 |
<tr> |
|
65 |
<th>[% LxERP.t8("Number Format") %]</th> |
|
66 |
<td>[% L.select_tag("user.config_values.numberformat", SELF.all_numberformats, default=props.numberformat, class="wi-normal") %]</td> |
|
67 |
</tr> |
|
68 |
<tr> |
|
69 |
<th>[% LxERP.t8("Language") %]</th> |
|
70 |
<td>[% L.select_tag("user.config_values.countrycode", SELF.all_countrycodes, title_key="title", default=props.countrycode, class="wi-normal") %]</td> |
|
71 |
</tr> |
|
72 |
<tr> |
|
73 |
<th>[% LxERP.t8("Stylesheet") %]</th> |
|
74 |
<td>[% L.select_tag("user.config_values.stylesheet", SELF.all_stylesheets, default=props.stylesheet, class="wi-normal") %]</td> |
|
75 |
</tr> |
|
76 |
<tr> |
|
77 |
<th>[% LxERP.t8("Setup Menu") %]</th> |
|
78 |
<td>[% L.select_tag("user.config_values.menustyle", SELF.all_menustyles, title_key="title", default=props.menustyle, class="wi-normal") %]</td> |
|
79 |
</tr> |
|
80 |
<tr> |
|
81 |
<th>[% LxERP.t8("Mandatory Departments") %]</th> |
|
82 |
<td> |
|
83 |
[% L.radio_button_tag('user.config_values.mandatory_departments', value='0', id='user.config_values.mandatory_departments_0', label=LxERP.t8('No'), checked=!props.mandatory_departments) %] <br> |
|
84 |
[% L.radio_button_tag('user.config_values.mandatory_departments', value='1', id='user.config_values.mandatory_departments_1', label=LxERP.t8('Yes'), checked= props.mandatory_departments) %] </td> |
|
85 |
</tr> |
|
86 |
</tbody> |
Auch abrufbar als: Unified diff
design40: Kopie der templates