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">
5 <style type="text/css">
7 text-overflow: ellipsis;
17 return text.replace('-', '‑') # replace by a non-breaking hyphen (it will not word-wrap between hyphen and numbers)
20 <%setLang(user.lang)%>
23 initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')}
26 %if amount_currency(data):
27 <div class="act_as_table data_table" style="width: 1205px;">
29 <div class="act_as_table data_table" style="width: 1100px;">
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':
38 ${_('Periods Filter')}
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>
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">
50 %if filter_form(data) == 'filter_date':
51 ${formatLang(start_date, date=True) if start_date else u'' }
53 ${start_period.name if start_period else u''}
56 %if filter_form(data) == 'filter_date':
57 ${ formatLang(stop_date, date=True) if stop_date else u'' }
59 ${stop_period.name if stop_period else u'' }
62 <div class="act_as_cell">
64 ${', '.join([account.code for account in accounts(data)])}
70 <div class="act_as_cell">${ display_target_move(data) }</div>
71 <div class="act_as_cell">${ initial_balance_text[initial_balance_mode] }</div>
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:
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
81 %if display_account_raw(data) == 'all' or (display_ledger_lines or display_initial_balance):
86 cumul_balance_curr = 0.0
88 <div class="act_as_table list_table" style="margin-top: 10px;">
90 <div class="act_as_caption account_title">
91 ${account.code} - ${account.name}
93 <div class="act_as_thead">
94 <div class="act_as_row labels">
96 <div class="act_as_cell first_column" style="width: 50px;">${_('Date')}</div>
98 <div class="act_as_cell" style="width: 50px;">${_('Period')}</div>
100 <div class="act_as_cell" style="width: 100px;">${_('Entry')}</div>
102 <div class="act_as_cell" style="width: 70px;">${_('Journal')}</div>
104 <div class="act_as_cell" style="width: 65px;">${_('Account')}</div>
106 <div class="act_as_cell" style="width: 140px;">${_('Partner')}</div>
108 <div class="act_as_cell" style="width: 140px;">${_('Reference')}</div>
110 <div class="act_as_cell" style="width: 160px;">${_('Label')}</div>
112 <div class="act_as_cell" style="width: 100px;">${_('Counter part')}</div>
114 <div class="act_as_cell amount" style="width: 75px;">${_('Debit')}</div>
116 <div class="act_as_cell amount" style="width: 75px;">${_('Credit')}</div>
118 <div class="act_as_cell amount" style="width: 75px;">${_('Cumul. Bal.')}</div>
119 %if amount_currency(data):
121 <div class="act_as_cell amount sep_left" style="width: 75px;">${_('Curr. Balance')}</div>
123 <div class="act_as_cell amount" style="width: 30px; text-align: right;">${_('Curr.')}</div>
128 <div class="act_as_tbody">
129 %if display_initial_balance:
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
136 <div class="act_as_row initial_balance">
138 <div class="act_as_cell first_column"></div>
140 <div class="act_as_cell"></div>
142 <div class="act_as_cell"></div>
144 <div class="act_as_cell"></div>
146 <div class="act_as_cell"></div>
148 <div class="act_as_cell"></div>
150 <div class="act_as_cell"></div>
152 <div class="act_as_cell">${_('Initial Balance')}</div>
154 <div class="act_as_cell"></div>
156 <div class="act_as_cell amount">${formatLang(account.init_balance.get('debit')) | amount}</div>
158 <div class="act_as_cell amount">${formatLang(account.init_balance.get('credit')) | amount}</div>
160 <div class="act_as_cell amount" style="padding-right: 1px;">${formatLang(cumul_balance) | amount }</div>
161 %if amount_currency(data):
163 <div class="act_as_cell amount sep_left">${formatLang(cumul_balance_curr) | amount }</div>
165 <div class="act_as_cell amount"></div>
170 %for line in account.ledger_lines:
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)
182 <div class="act_as_row lines">
184 <div class="act_as_cell first_column">${formatLang(line.get('ldate') or '', date=True)}</div>
186 <div class="act_as_cell">${line.get('period_code') or ''}</div>
188 <div class="act_as_cell">${line.get('move_name') or ''}</div>
190 <div class="act_as_cell">${line.get('jcode') or ''}</div>
192 <div class="act_as_cell">${account.code}</div>
194 <div class="act_as_cell overflow_ellipsis">${line.get('partner_name') or ''}</div>
196 <div class="act_as_cell">${line.get('lref') or ''}</div>
198 <div class="act_as_cell">${label}</div>
200 <div class="act_as_cell">${line.get('counterparts') or ''}</div>
202 <div class="act_as_cell amount">${ formatLang(line.get('debit', 0.0)) | amount }</div>
204 <div class="act_as_cell amount">${ formatLang(line.get('credit', 0.0)) | amount }</div>
206 <div class="act_as_cell amount" style="padding-right: 1px;">${ formatLang(cumul_balance) | amount }</div>
207 %if amount_currency(data):
209 <div class="act_as_cell amount sep_left">${formatLang(line.get('amount_currency') or 0.0) | amount }</div>
211 <div class="act_as_cell amount" style="text-align: right;">${line.get('currency_code') or ''}</div>
216 <div class="act_as_table list_table">
217 <div class="act_as_row labels" style="font-weight: bold;">
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>
222 <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_debit) | amount }</div>
224 <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_credit) | amount }</div>
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:
230 <div class="act_as_cell amount sep_left" style="width: 75px;">${formatLang(cumul_balance_curr) | amount }</div>
232 <div class="act_as_cell amount sep_left" style="width: 75px;">-</div>
235 <div class="act_as_cell amount" style="width: 30px; text-align: right;"></div>