You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

281 lines
15 KiB

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