Revision 53da6c9e
Von Sven Schöling vor mehr als 2 Jahren hinzugefügt
- ID 53da6c9e375d7374b28df693ca4042f8f71da864
- Vorgänger b7aa64b4
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/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/ar/ar_transactions_header.html | ||
---|---|---|
1 |
<form method="post" action="controller.pl" id="report_form"> |
templates/design40_webpages/chart/_chart_picker_result.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE LxERP %] |
|
5 |
|
|
6 |
[% FOREACH chart = SELF.charts %] |
|
7 |
<div class='chart_picker_chart [% FORM.hide_chart_details ? 'cpc_line' : 'cpc_block' %]'> |
|
8 |
<input type='hidden' class='chart_picker_id' value='[% chart.id %]'> |
|
9 |
<input type='hidden' class='chart_picker_description' value='[% chart.displayable_name %]'> |
|
10 |
<span class='cpc_block_number'>[% chart.accno | html %]</span> |
|
11 |
<span class='cpc_block_description'>[% chart.description | html %]</span> |
|
12 |
[% UNLESS FORM.hide_chart_details %] |
|
13 |
<span class='cpc_block_balance'>[% chart.formatted_balance_dc | html %]</span> |
|
14 |
<div style='clear:both;'></div> |
|
15 |
<span class='cpc_block_second_row'>[% LxERP.t8("Chart Type") %]: [% chart.displayable_category %] [% IF chart.has_transaction %][% LxERP.t8("Last transaction")%]: [% chart.date_of_last_transaction.to_kivitendo %][% END %]</span> |
|
16 |
[% END %] |
|
17 |
</div> |
|
18 |
[%- END %] |
|
19 |
|
|
20 |
<div style='clear:both'></div> |
|
21 |
|
|
22 |
[% L.paginate_controls(target='#chart_picker_result', selector='#chart_picker_result', models=SELF.models) %] |
|
23 |
<script type='text/javascript'> |
|
24 |
kivi.ChartPicker($('#'+$('#chart_picker_real_id').val())).init_results() |
|
25 |
</script> |
templates/design40_webpages/chart/test_page.html | ||
---|---|---|
1 |
[% USE L %] |
|
2 |
[% USE P %] |
|
3 |
[% SET style="width: 400px" %] |
|
4 |
|
|
5 |
<h1>Chart Picker Testpage</h1> |
|
6 |
|
|
7 |
<div> |
|
8 |
|
|
9 |
<p> |
|
10 |
All charts: [% P.chart.picker('chart_id', '', style=style) %]text after icon<br> |
|
11 |
Only booked charts: [% P.chart.picker('chart_id_booked', '', booked=1, style=style) %]<br> |
|
12 |
All charts choose: [% P.chart.picker('chart_id_choose', '', choose=1, style=style) %]<br> |
|
13 |
</p> |
|
14 |
|
|
15 |
<p> |
|
16 |
Filter by link:<br> |
|
17 |
AR_paid: [% P.chart.picker('chart_id_ar_paid', undef, type='AR_paid', category='I,A' style=style) %]<br> |
|
18 |
AR: [% P.chart.picker('chart_id_ar', undef, type='AR', style=style) %]<br> |
|
19 |
AP: [% P.chart.picker('chart_id_ap', undef, type='AP', style=style) %]<br> |
|
20 |
AR or AP: [% P.chart.picker('chart_id_arap', undef, type='AR,AP', style=style) %]<br> |
|
21 |
IC_income,IC_sale: [% P.chart.picker('chart_id_icis', undef, type='IC_income,IC_sale', style=style) %]<br> |
|
22 |
IC_expense,IC_cogs: [% P.chart.picker('chart_id_icco', undef, type='IC_expense,IC_cogs', style=style) %]<br> |
|
23 |
IC: [% P.chart.picker('chart_id_ic', undef, type='IC', style=style) %]<br> |
|
24 |
</p> |
|
25 |
|
|
26 |
<p> |
|
27 |
Filter by category:<br> |
|
28 |
I: [% P.chart.picker('chart_id_i', undef, category='I', style=style) %]<br> |
|
29 |
IE: [% P.chart.picker('chart_id_ie', undef, category='I,E', style=style) %]<br> |
|
30 |
AQL: [% P.chart.picker('chart_id_aql', undef, category='A,Q,L', style=style) %]<br> |
|
31 |
</p> |
|
32 |
|
|
33 |
<p> |
|
34 |
Filter by special type:<br> |
|
35 |
GuV: [% P.chart.picker('chart_id_guv', undef, type='guv', style=style) %]<br> |
|
36 |
</p> |
|
37 |
|
|
38 |
<p>bank (fat): [% P.chart.picker('bank_id', '', type='bank', fat_set_item=1, choose=1, style=style) %] |
|
39 |
</p> |
|
40 |
<p id="banktext"></p> |
|
41 |
|
|
42 |
|
|
43 |
<p> |
|
44 |
[% FOREACH i IN [ 1 2 3 4 5 6 ] %] |
|
45 |
S [% i %]: [% P.chart.picker('credit_' _ i) %] - H [% i %]: [% P.chart.picker('debit' _ i) %] <br> |
|
46 |
[% END %] |
|
47 |
</p> |
|
48 |
|
|
49 |
<p> |
|
50 |
Pre-filled chart object: [% P.chart.picker('pre_filled_chart_object', pre_filled_chart, style=style) %]<br> |
|
51 |
Pre-filled chart ID: [% P.chart.picker('pre_filled_chart_id', pre_filled_chart.id, style=style) %]<br> |
|
52 |
</p> |
|
53 |
|
|
54 |
</div> |
|
55 |
|
|
56 |
<script type='text/javascript'> |
|
57 |
$(function(){ |
|
58 |
// do something when a chartpicker with fat_set_item and a certain id changes |
|
59 |
$('#bank_id').on('set_item:ChartPicker', function (e, item) { |
|
60 |
console.log(item) |
|
61 |
$('#banktext').html('Selected fat item with category ' + item.category); |
|
62 |
}) |
|
63 |
}); |
|
64 |
|
|
65 |
</script> |
templates/design40_webpages/common/search_history.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE L %] |
|
3 |
[% USE HTML %] |
|
4 |
<h1>[% 'history search engine' | $T8 %]</h1> |
|
5 |
|
|
6 |
<form method="post" action="am.pl" id="form"> |
|
7 |
|
|
8 |
<input type="hidden" name="action" value="show_am_history"> |
|
9 |
|
|
10 |
<table> |
|
11 |
<tr> |
|
12 |
<td>[% '<b>What</b> do you want to look for?' | $T8 %]:</td> |
|
13 |
<td> |
|
14 |
<select name="what2search" id="what2search"> |
|
15 |
<option name="Artikelnummer" value="Artikelnummer" id="Artikelnummer">[% 'Part Number' | $T8 %]</option> |
|
16 |
<option name="Kundennummer" value="Kundennummer" id="Kundennummer">[% 'Customer Number' | $T8 %]</option> |
|
17 |
<option name="Lieferantennummer" value="Lieferantennummer" id="Lieferantennummer">[% 'Vendor Number' | $T8 %]</option> |
|
18 |
<option name="Projektnummer" value="Projektnummer" id="Projektnummer">[% 'Project Number' | $T8 %]</option> |
|
19 |
<option name="Auftragsnummer" value="Auftragsnummer" id="Auftragsnummer">[% 'Order Number' | $T8 %]</option> |
|
20 |
<option name="Angebotsnummer" value="Angebotsnummer" id="Angebotsnummer">[% 'Quotation Number' | $T8 %]</option> |
|
21 |
<option name="Eingangsrechnungnummer" value="Eingangsrechnungnummer" id="Eingangsrechnungnummer">[% 'Incoming invoice number' | $T8 %]</option> |
|
22 |
<option name="Ausgangsrechnungnummer" value="Ausgangsrechnungnummer" id="Ausgangsrechnungnummer">[% 'Sales invoice number' | $T8 %]</option> |
|
23 |
<option name="Mahnungsnummer" value="Mahnungsnummer" id="Mahnungsnummer">[% 'Dunning number' | $T8 %]</option> |
|
24 |
<option name="Buchungsnummer" value="Buchungsnummer" id="Buchungsnummer">[% 'ID' | $T8 %]</option> |
|
25 |
</select> |
|
26 |
</td> |
|
27 |
</tr> |
|
28 |
<tr> |
|
29 |
<td>[% 'What <b>term</b> you are looking for?' | $T8 %]</td> |
|
30 |
<td><input type="text" name="searchid" id="searchid" value="[% searchid | html %]"></td> |
|
31 |
</tr> |
|
32 |
<tr> |
|
33 |
<td valign="top">[% 'Do you want to <b>limit</b> your search?' | $T8 %]</td> |
|
34 |
<td> |
|
35 |
<table> |
|
36 |
<tr> |
|
37 |
<td> |
|
38 |
<div id="initForm"> |
|
39 |
<a id='show_extended_options' href='#'>[% 'Yes' | $T8 %]</a> |
|
40 |
</div> |
|
41 |
<div id="selectTable" style="display:none;"> |
|
42 |
<select id='selectForm'> |
|
43 |
</select> |
|
44 |
</div> |
|
45 |
<div id="inputHead" style="display:none;"><b>[% 'You\'ve already chosen the following limitations:' | $T8 %]</b></div> |
|
46 |
<div id="inputText" style="display:none;"></div> |
|
47 |
</td> |
|
48 |
</tr> |
|
49 |
<tr> |
|
50 |
<td> |
|
51 |
<div id="selectEmployee" style="display:none;"> |
|
52 |
<b>Mitarbeiter:</b> <input type="text" name="mitarbeiter" id="mitarbeiter"> |
|
53 |
</div> |
|
54 |
</td> |
|
55 |
</tr> |
|
56 |
<tr> |
|
57 |
<td> |
|
58 |
<div id="selectDate" style="display:none;"> |
|
59 |
<b>[% 'Period' | $T8 %]: </b> |
|
60 |
[% 'from (time)' | $T8 %]: [% L.date_tag('fromdate', todate) %] |
|
61 |
[% 'to (time)' | $T8 %]: [% L.date_tag('todate', todate) %] |
|
62 |
</div> |
|
63 |
</td> |
|
64 |
</tr> |
|
65 |
</table> |
|
66 |
<input type="hidden" name="einschraenkungen" id="einschraenkungen" value=""> |
|
67 |
</td> |
|
68 |
</tr> |
|
69 |
</table> |
|
70 |
</form> |
|
71 |
|
|
72 |
<script type="text/javascript"> |
|
73 |
<!-- |
|
74 |
var defaults = ['SAVED', 'DELETED', 'ADDED', 'PAYMENT POSTED', 'POSTED', |
|
75 |
'POSTED AS NEW', 'SAVED FOR DUNNING', 'DUNNING STARTED', 'PRINTED', |
|
76 |
'QUEUED', 'CANCELED' ,'IMPORT', 'UNIMPORT' ]; |
|
77 |
var available; |
|
78 |
var selected; |
|
79 |
var translated = { |
|
80 |
'SAVED' : '[% 'SAVED' | $T8 %]', |
|
81 |
'SCREENED' : '[% 'SCREENED' | $T8 %]', |
|
82 |
'DELETED' : '[% 'DELETED' | $T8 %]', |
|
83 |
'ADDED' : '[% 'ADDED' | $T8 %]', |
|
84 |
'PAYMENT POSTED' : '[% 'PAYMENT POSTED' | $T8 %]', |
|
85 |
'POSTED' : '[% 'POSTED' | $T8 %]', |
|
86 |
'POSTED AS NEW' : '[% 'POSTED AS NEW' | $T8 %]', |
|
87 |
'SAVED FOR DUNNING' : '[% 'SAVED FOR DUNNING' | $T8 %]', |
|
88 |
'DUNNING STARTED' : '[% 'DUNNING STARTED' | $T8 %]', |
|
89 |
'PRINTED' : '[% 'PRINTED' | $T8 %]', |
|
90 |
'QUEUED' : '[% 'QUEUED' | $T8 %]', |
|
91 |
'CANCELED' : '[% 'CANCELED' | $T8 %]', |
|
92 |
'IMPORT' : '[% 'IMPORT' | $T8 %]', |
|
93 |
'UNIMPORT' : '[% 'UNIMPORT' | $T8 %]', |
|
94 |
}; |
|
95 |
|
|
96 |
function addForm(index) { |
|
97 |
$('#inputHead').show(); |
|
98 |
selected.push(available.splice(index.index-1, 1)); |
|
99 |
$('#inputText').html($(selected).map(function(){ return translated[this]; }).get().join('<br>')); |
|
100 |
$('#einschraenkungen').val(selected.join(',')); |
|
101 |
|
|
102 |
showForm(); |
|
103 |
} |
|
104 |
|
|
105 |
function showForm() { |
|
106 |
$('#selectForm').empty(); |
|
107 |
$('<option/>').appendTo('#selectForm'); |
|
108 |
$(available).map(function(){ |
|
109 |
$('<option/>').val(this).text(translated[this]).click(function(){ addForm(this) }).appendTo('#selectForm'); |
|
110 |
}); |
|
111 |
} |
|
112 |
|
|
113 |
function resetAll() { |
|
114 |
available = defaults.slice(0); |
|
115 |
selected = []; |
|
116 |
initForm(); |
|
117 |
|
|
118 |
$('#inputForm').empty(); |
|
119 |
$('#inputText').html(''); |
|
120 |
$('#selectTable, #inputHead, #inputText, #selectEmployee, #selectDate').hide(); |
|
121 |
$('#initForm').show(); |
|
122 |
} |
|
123 |
|
|
124 |
function initForm() { |
|
125 |
showForm(); |
|
126 |
|
|
127 |
$('#selectTable, #inputText, #selectEmployee, #selectDate').show(); |
|
128 |
$('#initForm').hide(); |
|
129 |
} |
|
130 |
|
|
131 |
$(function(){ |
|
132 |
resetAll(); |
|
133 |
$('#show_extended_options').click(initForm); |
|
134 |
$('#reset_button').click(resetAll); |
|
135 |
}); |
|
136 |
//--> |
|
137 |
</script> |
templates/design40_webpages/common/select_warehouse_bin.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE JavaScript -%] |
|
5 |
<script type="text/javascript" src="js/common.js"></script> |
|
6 |
<script type="text/javascript"> |
|
7 |
<!-- |
|
8 |
warehouses = new Array(); |
|
9 |
[%- USE WAREHOUSES_it = Iterator(WAREHOUSES) %][%- FOREACH warehouse = WAREHOUSES_it %] |
|
10 |
warehouses[[% WAREHOUSES_it.count - 1 %]] = new Array(); |
|
11 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['id'] = [% warehouse.id %]; |
|
12 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'] = new Array(); |
|
13 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][0] = new Array(); |
|
14 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][0]['description'] = "---"; |
|
15 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][0]['id'] = ""; |
|
16 |
[% USE BINS_it = Iterator(warehouse.BINS) %][% FOREACH bin = BINS_it %] |
|
17 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][[% BINS_it.count %]] = new Array(); |
|
18 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][[% BINS_it.count %]]['description'] = "[% JavaScript.escape(bin.description) %]"; |
|
19 |
warehouses[[% WAREHOUSES_it.count - 1 %]]['bins'][[% BINS_it.count %]]['id'] = [% bin.id %]; |
|
20 |
[% END %] |
|
21 |
[% END %] |
|
22 |
|
|
23 |
function warehouse_selected(warehouse_id, bin_id) { |
|
24 |
var control = document.getElementById("bin_id"); |
|
25 |
|
|
26 |
for (var i = control.options.length - 1; i >= 0; i--) { |
|
27 |
control.options[i] = null; |
|
28 |
} |
|
29 |
|
|
30 |
var warehouse_index = 0; |
|
31 |
|
|
32 |
for (i = 0; i < warehouses.length; i++) |
|
33 |
if (warehouses[i]['id'] == warehouse_id) { |
|
34 |
warehouse_index = i; |
|
35 |
break; |
|
36 |
} |
|
37 |
|
|
38 |
var warehouse = warehouses[warehouse_index]; |
|
39 |
var bin_index = 0; |
|
40 |
|
|
41 |
for (i = 0; i < warehouse['bins'].length; i++) |
|
42 |
if (warehouse['bins'][i]['id'] == bin_id) { |
|
43 |
bin_index = i; |
|
44 |
break; |
|
45 |
} |
|
46 |
|
|
47 |
for (i = 0; i < warehouse['bins'].length; i++) { |
|
48 |
control.options[i] = new Option(warehouse['bins'][i]['description'], warehouse['bins'][i]['id']); |
|
49 |
} |
|
50 |
|
|
51 |
|
|
52 |
control.options[bin_index].selected = true; |
|
53 |
} |
|
54 |
|
|
55 |
$(function() { |
|
56 |
warehouse_selected([% warehouse_id %], [% bin_id %]); |
|
57 |
}) |
|
58 |
--> |
|
59 |
</script> |
templates/design40_webpages/csv_import/_deferred_report.html | ||
---|---|---|
1 |
[% INCLUDE 'common/flash.html' %] |
|
2 |
<div id='csv_import_report'></div> |
|
3 |
|
|
4 |
<script type='text/javascript'> |
|
5 |
function get_report(target, source, data){ |
|
6 |
$.ajax({ |
|
7 |
url: source, |
|
8 |
success: function (rsp) { |
|
9 |
$(target).html(rsp); |
|
10 |
$(target).find('.paginate').find('a').click(function(event){ redirect_event(event, target) }); |
|
11 |
}, |
|
12 |
data: data, |
|
13 |
}); |
|
14 |
}; |
|
15 |
|
|
16 |
function redirect_event(event, target){ |
|
17 |
event.preventDefault(); |
|
18 |
get_report(target, event.target + '', {}); |
|
19 |
} |
|
20 |
|
|
21 |
$(document).ready(function(){ |
|
22 |
[%- IF SELF.background_job.data_as_hash.report_id %] |
|
23 |
get_report('#csv_import_report', 'controller.pl', { action: 'CsvImport/report', 'no_layout': 1, 'id': [% SELF.background_job.data_as_hash.report_id %] }); |
|
24 |
[%- END %] |
|
25 |
}); |
|
26 |
|
|
27 |
|
|
28 |
</script> |
templates/design40_webpages/csv_import/_form_artransactions.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE L %] |
|
3 |
<tr> |
|
4 |
<th align="right">[%- LxERP.t8('AR Transaction/AccTrans Item row names') %]:</th> |
|
5 |
<td colspan="10"> |
|
6 |
[% L.input_tag('settings.ar_column', SELF.profile.get('ar_column'), size => "10") %] |
|
7 |
[% L.input_tag('settings.transaction_column', SELF.profile.get('transaction_column'), size => "20") %] |
|
8 |
</td> |
|
9 |
|
|
10 |
<tr> |
|
11 |
<th align="right">[%- LxERP.t8('Maximal amount difference') %]:</th> |
|
12 |
<td colspan="10"> |
|
13 |
[% L.input_tag('settings.max_amount_diff', LxERP.format_amount(SELF.profile.get('max_amount_diff')), size => "5") %] |
|
14 |
</td> |
|
15 |
</tr> |
templates/design40_webpages/csv_import/_form_contacts.html | ||
---|---|---|
1 |
[%- USE LxERP -%][%- USE L -%] |
|
2 |
<tr> |
|
3 |
<th align="right">[%- LxERP.t8("Existing contacts (with column 'cp_id')") %]:</th> |
|
4 |
<td colspan="10"> |
|
5 |
[% opts = [ [ 'update_existing', LxERP.t8('Update properties of existing entries') ], [ 'insert_new', LxERP.t8('Insert with new database ID') ], [ 'skip', LxERP.t8('Skip entry') ] ] %] |
|
6 |
[% L.select_tag('settings.update_policy', opts, default = SELF.profile.get('update_policy'), style = 'width: 300px') %] |
|
7 |
</td> |
|
8 |
</tr> |
templates/design40_webpages/csv_import/_form_delivery_orders.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE L %] |
|
3 |
<tr> |
|
4 |
<th align="right">[%- LxERP.t8('Order/Item/Stock row name') %]:</th> |
|
5 |
<td colspan="10"> |
|
6 |
[% L.input_tag('settings.order_column', SELF.profile.get('order_column'), size => "10") %] |
|
7 |
[% L.input_tag('settings.item_column', SELF.profile.get('item_column'), size => "10") %] |
|
8 |
[% L.input_tag('settings.stock_column', SELF.profile.get('stock_column'), size => "10") %] |
|
9 |
</td> |
|
10 |
<tr> |
|
11 |
<th align="right">[%- LxERP.t8('Error handling') %]:</th> |
|
12 |
<td colspan="10"> |
|
13 |
[% L.checkbox_tag('settings.ignore_faulty_positions', |
|
14 |
label => LxERP.t8('Ignore faulty positions'), |
|
15 |
checked => SELF.profile.get('ignore_faulty_positions')) %] |
|
16 |
</td> |
|
17 |
</tr> |
templates/design40_webpages/csv_import/_form_inventories.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE L %] |
|
3 |
<tr> |
|
4 |
<th align="right" valign="top">[%- LxERP.t8('Warehouse') %]/[%- LxERP.t8('Bin') %]:</th> |
|
5 |
<td colspan="2" valign="top"> |
|
6 |
[% L.input_tag('settings.warehouse', SELF.profile.get('warehouse'), style = 'width: 300px') %] |
|
7 |
<br> |
|
8 |
[% opts = [ [ 'never', LxERP.t8('Do not set this warehouse') ],[ 'missing', LxERP.t8('Apply to transfers without warehouse') ], [ 'all', LxERP.t8('Apply to all transfers') ] ] %] |
|
9 |
[% L.select_tag('settings.apply_warehouse', opts, default = SELF.profile.get('apply_warehouse'), style = 'width: 300px') %] |
|
10 |
</td> |
|
11 |
<td colspan="8" valign="top"> |
|
12 |
[% L.input_tag('settings.bin', SELF.profile.get('bin'), style = 'width: 300px') %] |
|
13 |
<br> |
|
14 |
[% opts = [ [ 'never', LxERP.t8('Do not set this bin') ], [ 'missing', LxERP.t8('Apply to transfers without bin') ], [ 'all', LxERP.t8('Apply to all transfers') ] ] %] |
|
15 |
[% L.select_tag('settings.apply_bin', opts, default = SELF.profile.get('apply_bin'), style = 'width: 300px') %] |
|
16 |
</td> |
|
17 |
</tr> |
|
18 |
|
|
19 |
<tr> |
|
20 |
</tr> |
|
21 |
|
|
22 |
<tr> |
|
23 |
<th align="right" valign="top">[%- LxERP.t8('Comment') %]:</th> |
|
24 |
<td colspan="10" valign="top"> |
|
25 |
[% L.input_tag('settings.comment', SELF.profile.get('comment'), style = 'width: 300px') %] |
|
26 |
<br> |
|
27 |
[% opts = [ [ 'never', LxERP.t8('Do not set this comment') ], [ 'missing', LxERP.t8('Apply to transfers without comment') ], [ 'all', LxERP.t8('Apply to all transfers') ] ] %] |
|
28 |
[% L.select_tag('settings.apply_comment', opts, default = SELF.profile.get('apply_comment'), style = 'width: 300px') %] |
|
29 |
</td> |
|
30 |
</tr> |
templates/design40_webpages/csv_import/_form_orders.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE L %] |
|
3 |
<tr> |
|
4 |
<th align="right">[%- LxERP.t8('Order/Item row name') %]:</th> |
|
5 |
<td colspan="10"> |
|
6 |
[% L.input_tag('settings.order_column', SELF.profile.get('order_column'), size => "10") %] |
|
7 |
[% L.input_tag('settings.item_column', SELF.profile.get('item_column'), size => "10") %] |
|
8 |
</td> |
|
9 |
</tr> |
|
10 |
|
|
11 |
<tr> |
|
12 |
<th align="right">[%- LxERP.t8('Maximal amount difference') %]:</th> |
|
13 |
<td colspan="10"> |
|
14 |
[% L.input_tag('settings.max_amount_diff', LxERP.format_amount(SELF.profile.get('max_amount_diff')), size => "5") %] |
|
15 |
</td> |
|
16 |
</tr> |
templates/design40_webpages/csv_import/_form_parts.html | ||
---|---|---|
1 |
[% USE LxERP %] |
|
2 |
[% USE L %] |
|
3 |
[% USE P %] |
|
4 |
<tr> |
|
5 |
<th align="right">[%- LxERP.t8('Parts with existing part numbers') %]:</th> |
|
6 |
<td colspan="10"> |
|
7 |
[% opts = [[ 'update_parts', LxERP.t8('Update properties of existing entries') ], [ 'update_parts_sn', LxERP.t8('Update properties of existing entries / skip non-existent') ], [ 'update_prices', LxERP.t8('Update prices of existing entries') ],[ 'update_prices_sn', LxERP.t8('Update prices of existing entries / skip non-existent') ] ,[ 'insert_new', LxERP.t8('Insert with new part number') ], [ 'skip', LxERP.t8('Skip entry') ] ] %] |
|
8 |
[% L.select_tag('settings.article_number_policy', opts, default = SELF.profile.get('article_number_policy'), style = 'width: 300px') %] |
|
9 |
</td> |
|
10 |
</tr> |
|
11 |
|
|
12 |
<tr> |
|
13 |
<th align="right">[%- LxERP.t8('Sellprice significant places') %]:</th> |
|
14 |
<td colspan="10"> |
|
15 |
[% L.select_tag('settings.sellprice_places', [ 0, 1, 2, 3, 4, 5 ], default = SELF.profile.get('sellprice_places'), style = 'width: 300px') %] |
|
16 |
</td> |
|
17 |
</tr> |
|
18 |
|
|
19 |
<tr> |
|
20 |
<th align="right">[%- LxERP.t8('Sellprice adjustment') %]:</th> |
|
21 |
<td colspan="10"> |
|
22 |
[% L.input_tag('settings.sellprice_adjustment', LxERP.format_amount(SELF.profile.get('sellprice_adjustment')), size => "5") %] |
|
23 |
[% opts = [ [ 'percent', LxERP.t8('percental') ], [ 'absolute', LxERP.t8('absolute') ] ] %] |
|
24 |
[% L.select_tag('settings.sellprice_adjustment_type', opts, default = SELF.profile.get('sellprice_adjustment_type')) %] |
|
25 |
</td> |
|
26 |
</tr> |
|
27 |
|
|
28 |
<tr> |
|
29 |
<th align="right">[%- LxERP.t8('Mark as shop article if column missing') %]:</th> |
|
30 |
<td colspan="10"> |
|
31 |
[% opts = [ [ '1', LxERP.t8('yes') ], [ '0', LxERP.t8('no') ] ] %] |
|
32 |
[% L.select_tag('settings.shoparticle_if_missing', opts, default = SELF.profile.get('shoparticle_if_missing'), style = 'width: 300px') %] |
|
33 |
</td> |
|
34 |
</tr> |
|
35 |
|
|
36 |
<tr> |
|
37 |
<th align="right">[%- LxERP.t8('Type') %]:</th> |
|
38 |
<td colspan="10"> |
|
39 |
[% opts = [ [ 'part', LxERP.t8('Parts') ], [ 'service', LxERP.t8('Services') ], [ 'mixed', LxERP.t8('Mixed (requires column "type" or "pclass")') ] ] %] |
|
40 |
[% L.select_tag('settings.part_type', opts, default = SELF.profile.get('part_type'), style = 'width: 300px') %] |
|
41 |
</td> |
|
42 |
</tr> |
|
43 |
<tr> |
|
44 |
<th align="right">[%- LxERP.t8('Parts Classification') %]:</th> |
|
45 |
<td colspan="10"> |
|
46 |
[% P.part.select_classification('settings.part_classification', default = SELF.profile.get('part_classification'), style = 'width: 300px') %] |
|
47 |
</td> |
|
48 |
</tr> |
|
49 |
|
|
50 |
<tr> |
|
51 |
<th align="right" valign="top">[%- LxERP.t8('Default booking group') %]:</th> |
|
52 |
<td colspan="10" valign="top"> |
|
53 |
[% L.select_tag('settings.default_buchungsgruppe', SELF.all_buchungsgruppen, title_key = 'description', default = SELF.profile.get('default_buchungsgruppe'), style => 'width: 300px') %] |
|
54 |
<br> |
|
55 |
[% opts = [ [ 'never', LxERP.t8('Do not set default booking group') ], [ 'all', LxERP.t8('Apply to all parts') ], [ 'missing', LxERP.t8('Apply to parts without booking group') ] ] %] |
|
56 |
[% L.select_tag('settings.apply_buchungsgruppe', opts, default = SELF.profile.get('apply_buchungsgruppe'), style = 'width: 300px') %] |
|
57 |
</td> |
|
58 |
</tr> |
|
59 |
|
|
60 |
<tr> |
|
61 |
<th align="right" valign="top">[%- LxERP.t8('Default unit') %]:</th> |
|
62 |
<td colspan="10" valign="top"> |
|
63 |
[% L.select_tag('settings.default_unit', SELF.all_units, title_key='name', value_key='name', default=SELF.profile.get('default_unit'), style = 'width: 300px') %] |
|
64 |
</td> |
|
65 |
</tr> |
templates/design40_webpages/cti/calling.html | ||
---|---|---|
1 |
<body> |
|
2 |
[% INCLUDE 'common/flash.html' %] |
|
3 |
</body> |
|
4 |
</html> |
templates/design40_webpages/custom_data_export/empty_result_set.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<p> |
|
8 |
[% LxERP.t8("The query did not return any data.") %] |
|
9 |
</p> |
templates/design40_webpages/custom_data_export/export.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<form method="post" action="controller.pl" id="form"> |
|
8 |
[% L.hidden_tag("id", SELF.query.id) %] |
|
9 |
[% L.hidden_tag("format", "csv") %] |
|
10 |
|
|
11 |
[% IF !SELF.parameters.size %] |
|
12 |
<p> |
|
13 |
[% LxERP.t8("The SQL query does not contain any parameter that need to be configured.") %] |
|
14 |
</p> |
|
15 |
|
|
16 |
[% ELSE %] |
|
17 |
|
|
18 |
<table> |
|
19 |
<thead> |
|
20 |
<tr class="listheading"> |
|
21 |
<th>[% LxERP.t8("Variable Name") %]</th> |
|
22 |
<th>[% LxERP.t8("Type") %]</th> |
|
23 |
<th>[% LxERP.t8("Value") %]</th> |
|
24 |
<th>[% LxERP.t8("Description") %]</th> |
|
25 |
</tr> |
|
26 |
</thead> |
|
27 |
|
|
28 |
<tbody> |
|
29 |
[% FOREACH parameter = SELF.parameters %] |
|
30 |
<tr class="listrow"> |
|
31 |
<td> |
|
32 |
[% HTML.escape(parameter.name) %] |
|
33 |
</td> |
|
34 |
|
|
35 |
[% SET value = parameter.calculate_default_value %] |
|
36 |
|
|
37 |
[% IF parameter.parameter_type == "number" %] |
|
38 |
<td>[% LxERP.t8("Number") %]</td> |
|
39 |
<td>[% L.input_tag("parameters." _ parameter.name, value, style="width: 300px", "data-validate"="required") %]</td> |
|
40 |
|
|
41 |
[% ELSIF parameter.parameter_type == "date" %] |
|
42 |
<td>[% LxERP.t8("Date") %]</td> |
|
43 |
<td>[% L.date_tag("parameters." _ parameter.name, value, style="width: 300px", "data-validate"="required") %]</td> |
|
44 |
|
|
45 |
[% ELSE %] |
|
46 |
<td>[% LxERP.t8("Text") %]</td> |
|
47 |
<td>[% L.input_tag("parameters." _ parameter.name, value, style="width: 300px", "data-validate"="required") %]</td> |
|
48 |
[% END %] |
|
49 |
|
|
50 |
<td>[% HTML.escape(parameter.description) %]</td> |
|
51 |
</tr> |
|
52 |
[% END %] |
|
53 |
</tbody> |
|
54 |
[% END %] |
|
55 |
</form> |
templates/design40_webpages/custom_data_export/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
[% IF !SELF.queries.size %] |
|
8 |
<p> |
|
9 |
[%- LxERP.t8("You do not have access to any custom data export.") %] |
|
10 |
</p> |
|
11 |
|
|
12 |
[%- ELSE %] |
|
13 |
<table width="100%"> |
|
14 |
<thead> |
|
15 |
<tr class="listheading"> |
|
16 |
<th>[% LxERP.t8("Name") %]</th> |
|
17 |
<th>[% LxERP.t8("Description") %]</th> |
|
18 |
</tr> |
|
19 |
</thead> |
|
20 |
|
|
21 |
<tbody> |
|
22 |
[%- FOREACH query = SELF.queries %] |
|
23 |
<tr class="listrow"> |
|
24 |
<td>[% L.link(SELF.url_for(action="export", id=query.id), query.name) %]</td> |
|
25 |
<td>[% IF query.description %][% L.link(SELF.url_for(action="export", id=query.id), query.description) %][% END %]</td> |
|
26 |
</tr> |
|
27 |
[%- END %] |
|
28 |
</tbody> |
|
29 |
</table> |
|
30 |
[%- END %] |
templates/design40_webpages/custom_data_export_designer/edit.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %] — [% LxERP.t8("Step #1/#2", 1, 2) %] — [% LxERP.t8("Basic Data") %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<form method="post" action="controller.pl" id="form"> |
|
8 |
[% L.hidden_tag("id", SELF.query.id) %] |
|
9 |
|
|
10 |
<table> |
|
11 |
<tr> |
|
12 |
<th align="right">[%- LxERP.t8("Name") %]</th> |
|
13 |
<td>[% L.input_tag("query.name", SELF.query.name, style="width: 800px", "data-validate"="required") %]</td> |
|
14 |
</tr> |
|
15 |
|
|
16 |
<tr> |
|
17 |
<th align="right">[%- LxERP.t8("Required access right") %]</th> |
|
18 |
<td>[% L.select_tag("query.access_right", SELF.access_rights, default=SELF.query.access_right, style="width: 800px") %]</td> |
|
19 |
</tr> |
|
20 |
|
|
21 |
<tr> |
|
22 |
<th valign="top" align="right">[%- LxERP.t8("Description") %]</th> |
|
23 |
<td valign="top">[% L.textarea_tag("query.description", SELF.query.description, rows=5, style="width: 800px") %]</td> |
|
24 |
</tr> |
|
25 |
|
|
26 |
<tr> |
|
27 |
<th valign="top" align="right">[%- LxERP.t8("SQL query") %]</th> |
|
28 |
<td valign="top">[% L.textarea_tag("query.sql_query", SELF.query.sql_query, rows=20, style="width: 800px", "data-validate"="required") %]</td> |
|
29 |
</tr> |
|
30 |
</table> |
|
31 |
</form> |
|
32 |
|
|
33 |
<p> |
|
34 |
[% LxERP.t8("The SQL query can be parameterized with variables named as follows: <%name%>.") %] |
|
35 |
[% LxERP.t8("On the next page the type of all variables can be set.") %] |
|
36 |
[% LxERP.t8("Note that parameter names must not be quoted.") %] |
|
37 |
[% LxERP.t8("Example") %]: |
|
38 |
</p> |
|
39 |
|
|
40 |
<pre> |
|
41 |
SELECT extract(YEAR FROM oe.transdate) AS "Jahr", SUM(oe.amount) AS "Angebotssumme" |
|
42 |
FROM oe |
|
43 |
LEFT JOIN employee ON (oe.employee_id = employee.id) |
|
44 |
WHERE (oe.customer_id IS NOT NULL) |
|
45 |
AND COALESCE(oe.quotation, FALSE) |
|
46 |
AND (employee.login = <%Benutzer-Login%>) |
|
47 |
GROUP BY "Jahr" |
|
48 |
ORDER BY "Jahr" |
|
49 |
</pre> |
templates/design40_webpages/custom_data_export_designer/edit_parameters.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %] — [% LxERP.t8("Step #1/#2", 2, 2) %] — [% LxERP.t8("Query parameters") %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
<form method="post" action="controller.pl" id="form"> |
|
8 |
[% L.hidden_tag("id", SELF.query.id) %] |
|
9 |
[% L.hidden_tag("query.name", SELF.query.name) %] |
|
10 |
[% L.hidden_tag("query.access_right", SELF.query.access_right) %] |
|
11 |
[% L.hidden_tag("query.description", SELF.query.description) %] |
|
12 |
[% L.hidden_tag("query.sql_query", SELF.query.sql_query) %] |
|
13 |
|
|
14 |
[% IF !PARAMETERS.size %] |
|
15 |
<p> |
|
16 |
[% LxERP.t8("The SQL query does not contain any parameter that need to be configured.") %] |
|
17 |
</p> |
|
18 |
|
|
19 |
[% ELSE %] |
|
20 |
|
|
21 |
<table> |
|
22 |
<thead> |
|
23 |
<tr class="listheading"> |
|
24 |
<th>[% LxERP.t8("Variable Name") %]</th> |
|
25 |
<th>[% LxERP.t8("Type") %]</th> |
|
26 |
<th>[% LxERP.t8("Description") %]</th> |
|
27 |
<th colspan="2">[% LxERP.t8("Default value") %]</th> |
|
28 |
</tr> |
|
29 |
</thead> |
|
30 |
|
|
31 |
<tbody> |
|
32 |
[% FOREACH parameter = PARAMETERS %] |
|
33 |
<tr class="listrow"> |
|
34 |
<td valign="top"> |
|
35 |
[% L.hidden_tag("parameters[+].name", parameter.name) %] |
|
36 |
[% HTML.escape(parameter.name) %] |
|
37 |
</td> |
|
38 |
<td valign="top"> |
|
39 |
[% L.select_tag("parameters[].parameter_type", [ [ "text", LxERP.t8("Text") ], [ "number", LxERP.t8("Number") ], [ "date", LxERP.t8("Date") ] ], default=parameter.parameter_type) %] |
|
40 |
</td> |
|
41 |
<td valign="top">[% L.input_tag("parameters[].description", parameter.description, size=100) %]</td> |
|
42 |
<td valign="top"> |
|
43 |
[% L.select_tag("parameters[].default_value_type", |
|
44 |
[ [ "none", LxERP.t8("No default value") ], [ "current_user_login", LxERP.t8("Current user's login") ], [ "sql_query", LxERP.t8("Result of SQL query") ], |
|
45 |
[ "fixed_value", LxERP.t8("Fixed value") ] ], |
|
46 |
default=parameter.default_value_type, |
|
47 |
id="default_value_type_" _ loop.count) %] |
|
48 |
</td> |
|
49 |
<td valign="top"> |
|
50 |
[% SET disabled = (parameter.default_value_type == "none") || (parameter.default_value_type == "current_user_login") ? "disabled" : "" %] |
|
51 |
[% L.textarea_tag("parameters[].default_value", parameter.default_value, id="default_value_" _ loop.count, cols=80, rows=3, disabled=disabled) %] |
|
52 |
</td> |
|
53 |
</tr> |
|
54 |
[% END %] |
|
55 |
</tbody> |
|
56 |
[% END %] |
|
57 |
</form> |
templates/design40_webpages/custom_data_export_designer/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
|
|
3 |
<h1>[% FORM.title %]</h1> |
|
4 |
|
|
5 |
[%- INCLUDE 'common/flash.html' %] |
|
6 |
|
|
7 |
[% IF !SELF.queries.size %] |
|
8 |
<p> |
|
9 |
[%- LxERP.t8("No custom data exports have been created yet.") %] |
|
10 |
</p> |
|
11 |
|
|
12 |
[%- ELSE %] |
|
13 |
<table width="100%"> |
|
14 |
<thead> |
|
15 |
<tr class="listheading"> |
|
16 |
<th>[% LxERP.t8("Name") %]</th> |
|
17 |
<th>[% LxERP.t8("Description") %]</th> |
|
18 |
</tr> |
|
19 |
</thead> |
|
20 |
|
|
21 |
<tbody> |
|
22 |
[%- FOREACH query = SELF.queries %] |
|
23 |
<tr class="listrow"> |
|
24 |
<td>[% L.link(SELF.url_for(action="edit", id=query.id), query.name) %]</td> |
|
25 |
<td>[% IF query.description %][% L.link(SELF.url_for(action="edit", id=query.id), query.description) %][% END %]</td> |
|
26 |
</tr> |
|
27 |
[%- END %] |
|
28 |
</tbody> |
|
29 |
</table> |
|
30 |
[%- END %] |
templates/design40_webpages/customer_vendor/tabs/price_list.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE HTML %] |
|
4 |
[%- USE L %] |
|
5 |
|
|
6 |
<div id="price_list"> |
|
7 |
[%- LxERP.t8("Loading...") %] |
|
8 |
</div> |
templates/design40_webpages/customer_vendor_turnover/_list_open_items.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
|
|
6 |
<div id="sales_report"> |
|
7 |
<table width="100%"> |
|
8 |
<caption class="listtop">[%- HTML.escape(title) %]</caption> |
|
9 |
<tbody> |
|
10 |
<tr> |
|
11 |
<td class="listheading">[% 'Type' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Invoice Number' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Invoice Date' | $T8 %]</td> |
|
14 |
<td class="listheading">[% 'Amount' | $T8 %]</td> |
|
15 |
<td class="listheading">[% 'Inv. Duedate' | $T8 %]</td> |
|
16 |
<td class="listheading">[% 'Paid' | $T8 %]</td> |
|
17 |
<td class="listheading">[% 'Open Amount' | $T8 %]</td> |
|
18 |
[% IF FORM.db == 'customer' %] |
|
19 |
<td class="listheading">[% 'Dunnings (Id -- Dunning Date --Dunning Level -- Dunning Fee)' | $T8 %]</td> |
|
20 |
[% END %] |
|
21 |
</tr> |
|
22 |
|
|
23 |
[%- FOREACH row = OPEN_ITEMS %] |
|
24 |
[% IF FORM.db == 'customer' %] |
|
25 |
[% IF row.type == 'invoice' %] |
|
26 |
[% SET type = 'Invoice (one letter abbreviation)' %] |
|
27 |
[% SET link = 'is.pl' %] |
|
28 |
[% ELSIF row.type == 'credit_note' %] |
|
29 |
[% SET type = 'Credit note (one letter abbreviation)' %] |
|
30 |
[% SET link = 'is.pl' %] |
|
31 |
[% ELSE %] |
|
32 |
[% SET type = 'AR Transaction (abbreviation)' %] |
|
33 |
[% SET link = 'ar.pl' %] |
|
34 |
[% END %] |
|
35 |
[% ELSE %] |
|
36 |
[% IF row.invoice %] |
|
37 |
[% SET type = 'Invoice (one letter abbreviation)' %] |
|
38 |
[% SET link = 'ir.pl' %] |
|
39 |
[% ELSE %] |
|
40 |
[% SET type = 'AP Transaction (abbreviation)' %] |
|
41 |
[% SET link = 'ap.pl' %] |
|
42 |
[% END %] |
|
43 |
[% END %] |
|
44 |
<tr class="listrow[% loop.count % 2 %]"> |
|
45 |
<td>[% type | $T8 %]</td> |
|
46 |
<td><a href="[% link %]?action=edit&id=[% row.id %]">[% row.invnumber | html %]</a></td> |
|
47 |
<td>[% row.transdate.to_kivitendo | html %]</td> |
|
48 |
<td class="numeric">[%- LxERP.format_amount(row.amount, 2) %]</td> |
|
49 |
<td>[% row.duedate.to_kivitendo | html %]</td> |
|
50 |
<td class="numeric">[%- LxERP.format_amount(row.paid, 2) %]</td> |
|
51 |
<td class="numeric">[%- LxERP.format_amount(row.amount - row.paid,2) %] |
|
52 |
[% IF FORM.db == 'customer' %] |
|
53 |
<td> |
|
54 |
[%- IF row.dunning_config_id != '' %] |
|
55 |
[%- FOREACH dun = row.dunnings %] |
|
56 |
[% dun.dunning_id | html %] -- [% dun.transdate.to_kivitendo | html %] -- [% dun.dunning_level | html %] -- [%- LxERP.format_amount(dun.fee, 2) %]<br> |
|
57 |
[% END %] |
|
58 |
[% END %] |
|
59 |
</td> |
|
60 |
[% END %] |
|
61 |
</tr> |
|
62 |
[% END %] |
|
63 |
</tbody> |
|
64 |
</table> |
|
65 |
</div> |
templates/design40_webpages/customer_vendor_turnover/_list_open_orders.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
|
|
6 |
<div id="orders_report"> |
|
7 |
<table width="100%"> |
|
8 |
<caption class="listtop">[%- HTML.escape(title) %]</caption> |
|
9 |
<tbody> |
|
10 |
<tr> |
|
11 |
<td class="listheading">[% 'Type' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Order/RFQ Number' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Date' | $T8 %]</td> |
|
14 |
<td class="listheading">[% 'Amount' | $T8 %]</td> |
|
15 |
<td class="listheading">[% 'Salesman' | $T8 %]</td> |
|
16 |
<td class="listheading">[% 'Transaction description' | $T8 %]</td> |
|
17 |
</tr> |
|
18 |
|
|
19 |
[%- FOREACH row = orders %] |
|
20 |
<tr class="listrow[% loop.count % 2 %]"> |
|
21 |
<td>[% IF row.quotation %] |
|
22 |
[% IF FORM.db == 'customer' %][% 'Sales quotation' | $T8 %][% ELSE %][% 'RFQ' | $T8 %][% END %]</td> |
|
23 |
[%- IF INSTANCE_CONF.get_feature_experimental_order -%] |
|
24 |
<td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&id=[% HTML.escape(row.id) %]'> |
|
25 |
[% END %][% HTML.escape(row.quonumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
26 |
[%- ELSE -%] |
|
27 |
<td>[% IF row.id %]<a href='oe.pl?action=edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&vc=[% FORM.db %]&id=[% HTML.escape(row.oe_id) %]'> |
|
28 |
[% END %][% HTML.escape(row.quonumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
29 |
[%- END -%] |
|
30 |
[% ELSE %] |
|
31 |
[% IF FORM.db == 'customer' %][% 'Sales Order' | $T8 %][% ELSE %][% 'Purchase Order' | $T8 %][% END %]</td> |
|
32 |
[%- IF INSTANCE_CONF.get_feature_experimental_order -%] |
|
33 |
<td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&id=[% HTML.escape(row.id) %]'> |
|
34 |
[% END %][% HTML.escape(row.ordnumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
35 |
[%- ELSE -%] |
|
36 |
<td>[% IF row.id %]<a href='oe.pl?action=edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&vc=[% FORM.db %]&id=[% HTML.escape(row.oe_id) %]'> |
|
37 |
[% END %][% HTML.escape(row.ordnumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
38 |
[%- END -%] |
|
39 |
[% END %] |
|
40 |
<td>[% row.transdate.to_kivitendo | html %]</td> |
|
41 |
<td class="numeric">[%- LxERP.format_amount(row.amount, 2) %]</td> |
|
42 |
<td>[% row.employee.name | html %]</td> |
|
43 |
<td>[% row.transaction_description | html %]</td> |
|
44 |
</tr> |
|
45 |
[% END %] |
|
46 |
</tbody> |
|
47 |
</table> |
|
48 |
</div> |
templates/design40_webpages/customer_vendor_turnover/_statistic_tabs.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<script type="text/javascript"> |
|
6 |
$(function() { |
|
7 |
$ ( "#statistic_tabs" ).tabs(); |
|
8 |
}); |
|
9 |
</script> |
|
10 |
<div class="tabwidget" id="statistic_tabs"> |
|
11 |
<ul> |
|
12 |
<li><a href="#turnover_stat">[% 'Turnoverstatistic' | $T8 %]</a></li> |
|
13 |
[% IF FORM.db == "customer" %]<li><a href="#dun_stat">[% 'Dunningstatistic' | $T8 %]</a></li>[% END %] |
|
14 |
<li><a href="#quotations" onclick="kivi.CustomerVendorTurnover.get_sales_quotations();">[% IF FORM.db == "customer" %][% 'Sales Quotations' | $T8 %][% ELSE %][% 'Request Quotations' | $T8 %][% END %]</a></li> |
|
15 |
<li><a href="#orders" onclick="kivi.CustomerVendorTurnover.get_orders();">[% 'Orders' | $T8 %]</a></li> |
|
16 |
<li><a href="#invoices" onclick="kivi.CustomerVendorTurnover.get_invoices();">[% 'Invoices' | $T8 %]</a></li> |
|
17 |
<li><a href="#mails" onclick="kivi.CustomerVendorTurnover.get_mails();">[% 'Mails' | $T8 %]</a></li> |
|
18 |
<li><a href="#letters" onclick="kivi.CustomerVendorTurnover.get_letters();">[% 'Letters' | $T8 %]</a></li> |
|
19 |
</ul> |
|
20 |
<div id="turnover_stat">[% PROCESS "customer_vendor_turnover/turnover_statistic.html" %]</div> |
|
21 |
<div id="dun_stat">[% PROCESS "customer_vendor_turnover/dun_statistic.html" %]</div> |
|
22 |
<div id="quotations"></div> |
|
23 |
<div id="orders"></div> |
|
24 |
<div id="invoices"></div> |
|
25 |
<div id="mails"></div> |
|
26 |
<div id="letters"></div> |
|
27 |
</div> |
templates/design40_webpages/customer_vendor_turnover/count_open_items_by_year.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<div id="dun_statistic"> |
|
6 |
<table width="100%"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<td class="listheading">[% 'Month/Year' | $T8 %]</td> |
|
10 |
<td class="listheading">[% 'Dunnings' | $T8 %]</td> |
|
11 |
<td class="listheading">[% 'Highest Dunninglevel' | $T8 %]</td> |
|
12 |
</tr> |
|
13 |
|
|
14 |
[%- FOREACH row = SELF.dun_statistic %] |
|
15 |
<tr class="listrow[% loop.count % 2 %]"> |
|
16 |
<td>[% row.date_part | html %]</td> |
|
17 |
<td>[% row.count | html %]</td> |
|
18 |
<td>[% row.max | html %]</td> |
|
19 |
</tr> |
|
20 |
[% END %] |
|
21 |
</tbody> |
|
22 |
</table> |
|
23 |
</div> |
templates/design40_webpages/customer_vendor_turnover/count_turnover.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<div id="turnover_statistic"> |
|
6 |
<table width="100%"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<td class="listheading">[% 'Month/Year' | $T8 %]</td> |
|
10 |
<td class="listheading">[% 'Invoices' | $T8 %]</td> |
|
11 |
<td class="listheading">[% 'Turnover' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Net.Turnover' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Paid' | $T8 %]</td> |
|
14 |
</tr> |
|
15 |
[%- FOREACH row = SELF.turnover_statistic %] |
|
16 |
<tr class="listrow[% loop.count % 2 %]"> |
|
17 |
<td>[% row.date_part | html %]</td> |
|
18 |
<td>[% row.count | html %]</td> |
|
19 |
<td class="numeric">[%- LxERP.format_amount(row.amount,2) %]</td> |
|
20 |
<td class="numeric">[%- LxERP.format_amount(row.netamount,2) %]</td> |
|
21 |
<td class="numeric">[%- LxERP.format_amount(row.paid,2) %]</td> |
|
22 |
</tr> |
|
23 |
[% END %] |
|
24 |
|
|
25 |
</tbody> |
|
26 |
</table> |
|
27 |
</div> |
templates/design40_webpages/customer_vendor_turnover/dun_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
|
|
6 |
<p> |
|
7 |
[% L.radio_button_tag('period', value='year', label= LxERP.t8('Year'), onclick='kivi.CustomerVendorTurnover.show_dun_stat("y");') %] |
|
8 |
|
|
9 |
[% L.radio_button_tag('period', value='month', label= LxERP.t8('Month'), onclick='kivi.CustomerVendorTurnover.show_dun_stat("m");') %] |
|
10 |
</p> |
|
11 |
<div id="duns"></div> |
templates/design40_webpages/customer_vendor_turnover/email_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
[%- USE Dumper %] |
|
6 |
|
|
7 |
<div id="invoice_statistic"> |
|
8 |
<table width="100%"> |
|
9 |
<tbody> |
|
10 |
<tr> |
|
11 |
<td class="listheading">[% 'Sent on' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Subject' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Record Type' | $T8 %]</td> |
|
14 |
<td class="listheading">[% 'Record number' | $T8 %]</td> |
|
15 |
<td class="listheading">[% 'From' | $T8 %]</td> |
|
16 |
<td class="listheading">[% 'To' | $T8 %]</td> |
|
17 |
<td class="listheading">[% 'Status' | $T8 %]</td> |
|
18 |
</tr> |
|
19 |
|
|
20 |
[%- FOREACH row = emails %] |
|
21 |
<tr class="listrow[% loop.count % 2 %]"> |
|
22 |
<td>[% row.sent_on | html %]</td> |
|
23 |
<td> |
|
24 |
<a href="[% SELF.url_for(controller='controller.pl', action => 'EmailJournal/show', id => row.id, back_to => SELF.get_callback) %]"> |
|
25 |
[%- HTML.escape(row.subject) %] |
|
26 |
</a></td> |
|
27 |
<td>[% row.type | $T8 %]</td> |
|
28 |
<td>[% row.recordnumber | html %]</td> |
|
29 |
<td>[% row.from %]</td> |
|
30 |
<td>[% row.recipients %]</td> |
|
31 |
<td>[% row.status %]</td> |
|
32 |
</tr> |
|
33 |
[% END %] |
|
34 |
</tbody> |
|
35 |
</table> |
|
36 |
|
|
37 |
|
|
38 |
</tbody> |
|
39 |
</table> |
|
40 |
</div> |
templates/design40_webpages/customer_vendor_turnover/invoices_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<div id="invoice_statistic"> |
|
6 |
<table width="100%"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<td class="listheading">[% 'Type' | $T8 %]</td> |
|
10 |
<td class="listheading">[% 'Invoice Number' | $T8 %]</td> |
|
11 |
<td class="listheading">[% 'Invoice Date' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Amount' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Inv. Duedate' | $T8 %]</td> |
|
14 |
<td class="listheading">[% 'Paid' | $T8 %]</td> |
|
15 |
<td class="listheading">[% 'Open Amount' | $T8 %]</td> |
|
16 |
</tr> |
|
17 |
|
|
18 |
[%- FOREACH row = invoices %] |
|
19 |
[% IF FORM.db == 'customer' %] |
|
20 |
[% IF row.type == 'invoice' %] |
|
21 |
[% SET type = 'Invoice (one letter abbreviation)' %] |
|
22 |
[% SET link = 'is.pl' %] |
|
23 |
[% ELSIF row.type == 'credit_note' %] |
|
24 |
[% SET type = 'Credit note (one letter abbreviation)' %] |
|
25 |
[% SET link = 'is.pl' %] |
|
26 |
[% ELSE %] |
|
27 |
[% SET type = 'AR Transaction (abbreviation)' %] |
|
28 |
[% SET link = 'ar.pl' %] |
|
29 |
[% END %] |
|
30 |
[% ELSE %] |
|
31 |
[% IF row.invoice %] |
|
32 |
[% SET type = 'Invoice (one letter abbreviation)' %] |
|
33 |
[% SET link = 'ir.pl' %] |
|
34 |
[% ELSE %] |
|
35 |
[% SET type = 'AP Transaction (abbreviation)' %] |
|
36 |
[% SET link = 'ap.pl' %] |
|
37 |
[% END %] |
|
38 |
[% END %] |
|
39 |
<tr class="listrow[% loop.count % 2 %]"> |
|
40 |
<td>[% type | $T8 %]</td> |
|
41 |
<td><a href="[% link %]?action=edit&id=[% row.id %]">[% row.invnumber | html %]</a></td> |
|
42 |
<td>[% row.transdate.to_kivitendo | html %]</td> |
|
43 |
<td class="numeric">[%- LxERP.format_amount(row.amount, 2) %]</td> |
|
44 |
<td>[% row.duedate.to_kivitendo | html %]</td> |
|
45 |
<td class="numeric">[%- LxERP.format_amount(row.paid, 2) %]</td> |
|
46 |
<td class="numeric">[%- LxERP.format_amount(row.amount - row.paid, 2) %] |
|
47 |
</tr> |
|
48 |
[% END %] |
|
49 |
</tbody> |
|
50 |
</table> |
|
51 |
|
|
52 |
|
|
53 |
</tbody> |
|
54 |
</table> |
|
55 |
</div> |
templates/design40_webpages/customer_vendor_turnover/letter_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
[%- USE Dumper %] |
|
6 |
|
|
7 |
<div id="invoice_statistic"> |
|
8 |
<table width="100%"> |
|
9 |
<tbody> |
|
10 |
<tr> |
|
11 |
<td class="listheading">[% 'Date' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Subject' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Letternumber' | $T8 %]</td> |
|
14 |
<td class="listheading">[% 'Contact' | $T8 %]</td> |
|
15 |
<td class="listheading">[% 'Author' | $T8 %]</td> |
|
16 |
</tr> |
|
17 |
|
|
18 |
[%- FOREACH row = letters %] |
|
19 |
[% IF row.customer_id %] |
|
20 |
[% SET is_sales = 1 %] |
|
21 |
[% ELSE %] |
|
22 |
[% SET is_sales = 0 %] |
|
23 |
[% END %] |
|
24 |
<tr class="listrow[% loop.count % 2 %]"> |
|
25 |
<td>[% row.date.to_kivitendo | html %]</td> |
|
26 |
<td> |
|
27 |
<a href="[% SELF.url_for(controller='controller.pl', action => 'Letter/edit', 'letter.id' => row.id, is_sales=is_sales, back_to => SELF.get_callback) %]"> |
|
28 |
[%- HTML.escape(row.subject) %] |
|
29 |
</a> |
|
30 |
</td> |
|
31 |
<td> |
|
32 |
<a href="[% SELF.url_for(controller='controller.pl', action => 'Letter/edit', 'letter.id' => row.id, is_sales=is_sales, back_to => SELF.get_callback) %]"> |
|
33 |
[% row.letternumber | html %] |
|
34 |
</a> |
|
35 |
</td> |
|
36 |
<td>[% row.contact.cp_givenname %] [% row.contact.cp_name %]</td> |
|
37 |
<td>[% row.employee.name %]</td> |
|
38 |
</tr> |
|
39 |
[% END %] |
|
40 |
</tbody> |
|
41 |
</table> |
|
42 |
|
|
43 |
|
|
44 |
</tbody> |
|
45 |
</table> |
|
46 |
</div> |
templates/design40_webpages/customer_vendor_turnover/order_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<div id="invoice_statistic"> |
|
6 |
<table width="100%"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<td class="listheading">[% 'Order Number' | $T8 %]</td> |
|
10 |
<td class="listheading">[% 'Order Date' | $T8 %]</td> |
|
11 |
<td class="listheading">[% 'Amount' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Delivery Date' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Transaction description' | $T8 %]</td> |
|
14 |
</tr> |
|
15 |
|
|
16 |
[%- FOREACH row = orders %] |
|
17 |
<tr class="listrow[% loop.count % 2 %]"> |
|
18 |
[%- IF INSTANCE_CONF.get_feature_experimental_order -%] |
|
19 |
<td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.ordnumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
20 |
[%- ELSE -%] |
|
21 |
<td>[% IF row.id %]<a href='oe.pl?action=edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&vc=[% FORM.db %]&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.ordnumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
22 |
[%- END -%] |
|
23 |
<td>[% row.transdate.to_kivitendo | html %]</td> |
|
24 |
<td class="numeric">[%- LxERP.format_amount(row.amount, 2) %]</td> |
|
25 |
<td>[% row.reqdate.to_kivitendo | html %]</td> |
|
26 |
<td>[% row.transaction_description %]</td> |
|
27 |
</tr> |
|
28 |
[% END %] |
|
29 |
</tbody> |
|
30 |
</table> |
|
31 |
|
|
32 |
|
|
33 |
</tbody> |
|
34 |
</table> |
|
35 |
</div> |
templates/design40_webpages/customer_vendor_turnover/quotation_statistic.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
<div id="invoice_statistic"> |
|
6 |
<table width="100%"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<td class="listheading">[% IF FORM.db == 'customer' %][% 'Quotation Number' | $T8 %][% ELSE %][% 'RFQ Number' | $T8 %][% END %]</td> |
|
10 |
<td class="listheading">[% IF FORM.db == 'customer' %][% 'Quotation Date' | $T8 %][% ELSE %][% 'RFQ Date' | $T8 %][% END %]</td> |
|
11 |
<td class="listheading">[% 'Amount' | $T8 %]</td> |
|
12 |
<td class="listheading">[% 'Delivery Date' | $T8 %]</td> |
|
13 |
<td class="listheading">[% 'Transaction description' | $T8 %]</td> |
|
14 |
</tr> |
|
15 |
|
|
16 |
[%- FOREACH row = orders %] |
|
17 |
<tr class="listrow[% loop.count % 2 %]"> |
|
18 |
[%- IF INSTANCE_CONF.get_feature_experimental_order -%] |
|
19 |
<td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&id=[% HTML.escape(row.id) %]'> |
|
20 |
[% END %][% HTML.escape(row.quonumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
21 |
[%- ELSE -%] |
|
22 |
<td>[% IF row.id %]<a href='oe.pl?action=edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&vc=[% FORM.db %]&id=[% HTML.escape(row.id) %]'> |
|
23 |
[% END %][% HTML.escape(row.quonumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
24 |
[%- END -%] |
|
25 |
<td>[% row.transdate.to_kivitendo | html %]</td> |
|
26 |
<td class="numeric">[%- LxERP.format_amount(row.amount, 2) %]</td> |
Auch abrufbar als: Unified diff
design40: nicht angepasste templates dedupliziert.
Generiert mit:
$ cd templates/design_webpages
$ find . -type f -exec diff -s -q -u {} ../webpages/{} \; 2> /dev/null | grep identical | sed -e 's/Files \(.*\) and .*$/\1/' | xargs git rm