Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 960d2ddb

Von Sven Schöling vor etwa 2 Jahren hinzugefügt

  • ID 960d2ddbc22fedcfc37cecdbd238df9f80523020
  • Vorgänger a5b0b43c
  • Nachfolger f9812a52

design40: Kopie der templates

Unterschiede anzeigen:

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
        &nbsp;
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
    &nbsp;|&nbsp;
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>
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff