[MODULE] +v1.1.0 from https://www.odoo.com/apps/7.0/account_financial_report_webkit/
[burette/account_financial_report_webkit.git] / report / templates / account_report_general_ledger.mako
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <style type="text/css">
6 .overflow_ellipsis {
7 text-overflow: ellipsis;
8 overflow: hidden;
9 white-space: nowrap;
10 }
11 ${css}
12 </style>
13 </head>
14 <body>
15 <%!
16 def amount(text):
17 return text.replace('-', '&#8209;') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers)
18 %>
19
20 <%setLang(user.lang)%>
21
22 <%
23 initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')}
24 %>
25
26 %if amount_currency(data):
27 <div class="act_as_table data_table" style="width: 1205px;">
28 %else:
29 <div class="act_as_table data_table" style="width: 1100px;">
30 %endif
31 <div class="act_as_row labels">
32 <div class="act_as_cell">${_('Chart of Account')}</div>
33 <div class="act_as_cell">${_('Fiscal Year')}</div>
34 <div class="act_as_cell">
35 %if filter_form(data) == 'filter_date':
36 ${_('Dates Filter')}
37 %else:
38 ${_('Periods Filter')}
39 %endif
40 </div>
41 <div class="act_as_cell">${_('Accounts Filter')}</div>
42 <div class="act_as_cell">${_('Target Moves')}</div>
43 <div class="act_as_cell">${_('Initial Balance')}</div>
44 </div>
45 <div class="act_as_row">
46 <div class="act_as_cell">${ chart_account.name }</div>
47 <div class="act_as_cell">${ fiscalyear.name if fiscalyear else '-' }</div>
48 <div class="act_as_cell">
49 ${_('From:')}
50 %if filter_form(data) == 'filter_date':
51 ${formatLang(start_date, date=True) if start_date else u'' }
52 %else:
53 ${start_period.name if start_period else u''}
54 %endif
55 ${_('To:')}
56 %if filter_form(data) == 'filter_date':
57 ${ formatLang(stop_date, date=True) if stop_date else u'' }
58 %else:
59 ${stop_period.name if stop_period else u'' }
60 %endif
61 </div>
62 <div class="act_as_cell">
63 %if accounts(data):
64 ${', '.join([account.code for account in accounts(data)])}
65 %else:
66 ${_('All')}
67 %endif
68
69 </div>
70 <div class="act_as_cell">${ display_target_move(data) }</div>
71 <div class="act_as_cell">${ initial_balance_text[initial_balance_mode] }</div>
72 </div>
73 </div>
74
75 <!-- we use div with css instead of table for tabular data because div do not cut rows at half at page breaks -->
76 %for account in objects:
77 <%
78 display_initial_balance = account.init_balance and (account.init_balance.get('debit', 0.0) != 0.0 or account.init_balance.get('credit', 0.0) != 0.0)
79 display_ledger_lines = account.ledger_lines
80 %>
81 %if display_account_raw(data) == 'all' or (display_ledger_lines or display_initial_balance):
82 <%
83 cumul_debit = 0.0
84 cumul_credit = 0.0
85 cumul_balance = 0.0
86 cumul_balance_curr = 0.0
87 %>
88 <div class="act_as_table list_table" style="margin-top: 10px;">
89
90 <div class="act_as_caption account_title">
91 ${account.code} - ${account.name}
92 </div>
93 <div class="act_as_thead">
94 <div class="act_as_row labels">
95 ## date
96 <div class="act_as_cell first_column" style="width: 50px;">${_('Date')}</div>
97 ## period
98 <div class="act_as_cell" style="width: 50px;">${_('Period')}</div>
99 ## move
100 <div class="act_as_cell" style="width: 100px;">${_('Entry')}</div>
101 ## journal
102 <div class="act_as_cell" style="width: 70px;">${_('Journal')}</div>
103 ## account code
104 <div class="act_as_cell" style="width: 65px;">${_('Account')}</div>
105 ## partner
106 <div class="act_as_cell" style="width: 140px;">${_('Partner')}</div>
107 ## move reference
108 <div class="act_as_cell" style="width: 140px;">${_('Reference')}</div>
109 ## label
110 <div class="act_as_cell" style="width: 160px;">${_('Label')}</div>
111 ## counterpart
112 <div class="act_as_cell" style="width: 100px;">${_('Counter part')}</div>
113 ## debit
114 <div class="act_as_cell amount" style="width: 75px;">${_('Debit')}</div>
115 ## credit
116 <div class="act_as_cell amount" style="width: 75px;">${_('Credit')}</div>
117 ## balance cumulated
118 <div class="act_as_cell amount" style="width: 75px;">${_('Cumul. Bal.')}</div>
119 %if amount_currency(data):
120 ## currency balance
121 <div class="act_as_cell amount sep_left" style="width: 75px;">${_('Curr. Balance')}</div>
122 ## curency code
123 <div class="act_as_cell amount" style="width: 30px; text-align: right;">${_('Curr.')}</div>
124 %endif
125 </div>
126 </div>
127
128 <div class="act_as_tbody">
129 %if display_initial_balance:
130 <%
131 cumul_debit = account.init_balance.get('debit') or 0.0
132 cumul_credit = account.init_balance.get('credit') or 0.0
133 cumul_balance = account.init_balance.get('init_balance') or 0.0
134 cumul_balance_curr = account.init_balance.get('init_balance_currency') or 0.0
135 %>
136 <div class="act_as_row initial_balance">
137 ## date
138 <div class="act_as_cell first_column"></div>
139 ## period
140 <div class="act_as_cell"></div>
141 ## move
142 <div class="act_as_cell"></div>
143 ## journal
144 <div class="act_as_cell"></div>
145 ## account code
146 <div class="act_as_cell"></div>
147 ## partner
148 <div class="act_as_cell"></div>
149 ## move reference
150 <div class="act_as_cell"></div>
151 ## label
152 <div class="act_as_cell">${_('Initial Balance')}</div>
153 ## counterpart
154 <div class="act_as_cell"></div>
155 ## debit
156 <div class="act_as_cell amount">${formatLang(account.init_balance.get('debit')) | amount}</div>
157 ## credit
158 <div class="act_as_cell amount">${formatLang(account.init_balance.get('credit')) | amount}</div>
159 ## balance cumulated
160 <div class="act_as_cell amount" style="padding-right: 1px;">${formatLang(cumul_balance) | amount }</div>
161 %if amount_currency(data):
162 ## currency balance
163 <div class="act_as_cell amount sep_left">${formatLang(cumul_balance_curr) | amount }</div>
164 ## curency code
165 <div class="act_as_cell amount"></div>
166 %endif
167
168 </div>
169 %endif
170 %for line in account.ledger_lines:
171 <%
172 cumul_debit += line.get('debit') or 0.0
173 cumul_credit += line.get('credit') or 0.0
174 cumul_balance_curr += line.get('amount_currency') or 0.0
175 cumul_balance += line.get('balance') or 0.0
176 label_elements = [line.get('lname') or '']
177 if line.get('invoice_number'):
178 label_elements.append("(%s)" % (line['invoice_number'],))
179 label = ' '.join(label_elements)
180 %>
181
182 <div class="act_as_row lines">
183 ## date
184 <div class="act_as_cell first_column">${formatLang(line.get('ldate') or '', date=True)}</div>
185 ## period
186 <div class="act_as_cell">${line.get('period_code') or ''}</div>
187 ## move
188 <div class="act_as_cell">${line.get('move_name') or ''}</div>
189 ## journal
190 <div class="act_as_cell">${line.get('jcode') or ''}</div>
191 ## account code
192 <div class="act_as_cell">${account.code}</div>
193 ## partner
194 <div class="act_as_cell overflow_ellipsis">${line.get('partner_name') or ''}</div>
195 ## move reference
196 <div class="act_as_cell">${line.get('lref') or ''}</div>
197 ## label
198 <div class="act_as_cell">${label}</div>
199 ## counterpart
200 <div class="act_as_cell">${line.get('counterparts') or ''}</div>
201 ## debit
202 <div class="act_as_cell amount">${ formatLang(line.get('debit', 0.0)) | amount }</div>
203 ## credit
204 <div class="act_as_cell amount">${ formatLang(line.get('credit', 0.0)) | amount }</div>
205 ## balance cumulated
206 <div class="act_as_cell amount" style="padding-right: 1px;">${ formatLang(cumul_balance) | amount }</div>
207 %if amount_currency(data):
208 ## currency balance
209 <div class="act_as_cell amount sep_left">${formatLang(line.get('amount_currency') or 0.0) | amount }</div>
210 ## curency code
211 <div class="act_as_cell amount" style="text-align: right;">${line.get('currency_code') or ''}</div>
212 %endif
213 </div>
214 %endfor
215 </div>
216 <div class="act_as_table list_table">
217 <div class="act_as_row labels" style="font-weight: bold;">
218 ## date
219 <div class="act_as_cell first_column" style="width: 615px;">${account.code} - ${account.name}</div>
220 <div class="act_as_cell" style="width: 260px;">${_("Cumulated Balance on Account")}</div>
221 ## debit
222 <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_debit) | amount }</div>
223 ## credit
224 <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_credit) | amount }</div>
225 ## balance cumulated
226 <div class="act_as_cell amount" style="width: 75px; padding-right: 1px;">${ formatLang(cumul_balance) | amount }</div>
227 %if amount_currency(data):
228 %if account.currency_id:
229 ## currency balance
230 <div class="act_as_cell amount sep_left" style="width: 75px;">${formatLang(cumul_balance_curr) | amount }</div>
231 %else:
232 <div class="act_as_cell amount sep_left" style="width: 75px;">-</div>
233 %endif
234 ## curency code
235 <div class="act_as_cell amount" style="width: 30px; text-align: right;"></div>
236 %endif
237 </div>
238 </div>
239 </div>
240 %endif
241 %endfor
242 </body>
243 </html>