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.

232 lines
12 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 accounts(data):
  56. ${', '.join([account.code for account in accounts(data)])}
  57. %else:
  58. ${_('All')}
  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. <!-- we use div with css instead of table for tabular data because div do not cut rows at half at page breaks -->
  66. %for account in objects:
  67. <%
  68. 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)
  69. display_ledger_lines = account.ledger_lines
  70. %>
  71. %if display_account_raw(data) == 'all' or (display_ledger_lines or display_initial_balance):
  72. <%
  73. cumul_debit = 0.0
  74. cumul_credit = 0.0
  75. cumul_balance = 0.0
  76. cumul_balance_curr = 0.0
  77. %>
  78. <div class="act_as_table list_table" style="margin-top: 10px;">
  79. <div class="act_as_caption account_title">
  80. ${account.code} - ${account.name}
  81. </div>
  82. <div class="act_as_thead">
  83. <div class="act_as_row labels">
  84. ## date
  85. <div class="act_as_cell first_column" style="width: 50px;">${_('Date')}</div>
  86. ## period
  87. <div class="act_as_cell" style="width: 50px;">${_('Period')}</div>
  88. ## move
  89. <div class="act_as_cell" style="width: 60px;">${_('Entry')}</div>
  90. ## journal
  91. <div class="act_as_cell" style="width: 70px;">${_('Journal')}</div>
  92. ## account code
  93. <div class="act_as_cell" style="width: 65px;">${_('Account')}</div>
  94. ## partner
  95. <div class="act_as_cell" style="width: 120px;">${_('Partner')}</div>
  96. ## label
  97. <div class="act_as_cell" style="width: 200px;">${_('Label')}</div>
  98. ## counterpart
  99. <div class="act_as_cell" style="width: 100px;">${_('Counter part')}</div>
  100. ## debit
  101. <div class="act_as_cell amount" style="width: 75px;">${_('Debit')}</div>
  102. ## credit
  103. <div class="act_as_cell amount" style="width: 75px;">${_('Credit')}</div>
  104. ## balance cumulated
  105. <div class="act_as_cell amount" style="width: 75px;">${_('Cumul. Bal.')}</div>
  106. %if amount_currency(data):
  107. ## currency balance
  108. <div class="act_as_cell amount sep_left" style="width: 75px;">${_('Curr. Balance')}</div>
  109. ## curency code
  110. <div class="act_as_cell amount" style="width: 30px; text-align: right;">${_('Curr.')}</div>
  111. %endif
  112. </div>
  113. </div>
  114. <div class="act_as_tbody">
  115. %if display_initial_balance:
  116. <%
  117. cumul_debit = account.init_balance.get('debit') or 0.0
  118. cumul_credit = account.init_balance.get('credit') or 0.0
  119. cumul_balance = account.init_balance.get('init_balance') or 0.0
  120. cumul_balance_curr = account.init_balance.get('init_balance_currency') or 0.0
  121. %>
  122. <div class="act_as_row initial_balance">
  123. ## date
  124. <div class="act_as_cell first_column"></div>
  125. ## period
  126. <div class="act_as_cell"></div>
  127. ## move
  128. <div class="act_as_cell"></div>
  129. ## journal
  130. <div class="act_as_cell"></div>
  131. ## account code
  132. <div class="act_as_cell"></div>
  133. ## partner
  134. <div class="act_as_cell"></div>
  135. ## label
  136. <div class="act_as_cell">${_('Initial Balance')}</div>
  137. ## counterpart
  138. <div class="act_as_cell"></div>
  139. ## debit
  140. <div class="act_as_cell amount">${formatLang(account.init_balance.get('debit')) | amount}</div>
  141. ## credit
  142. <div class="act_as_cell amount">${formatLang(account.init_balance.get('credit')) | amount}</div>
  143. ## balance cumulated
  144. <div class="act_as_cell amount" style="padding-right: 1px;">${formatLang(cumul_balance) | amount }</div>
  145. %if amount_currency(data):
  146. ## currency balance
  147. <div class="act_as_cell amount sep_left">${formatLang(cumul_balance_curr) | amount }</div>
  148. ## curency code
  149. <div class="act_as_cell amount"></div>
  150. %endif
  151. </div>
  152. %endif
  153. %for line in account.ledger_lines:
  154. <%
  155. cumul_debit += line.get('debit') or 0.0
  156. cumul_credit += line.get('credit') or 0.0
  157. cumul_balance_curr += line.get('amount_currency') or 0.0
  158. cumul_balance += line.get('balance') or 0.0
  159. label_elements = [line.get('lname') or '']
  160. if line.get('invoice_number'):
  161. label_elements.append("(%s)" % (line['invoice_number'],))
  162. label = ' '.join(label_elements)
  163. %>
  164. <div class="act_as_row lines">
  165. ## date
  166. <div class="act_as_cell first_column">${formatLang(line.get('ldate') or '', date=True)}</div>
  167. ## period
  168. <div class="act_as_cell">${line.get('period_code') or ''}</div>
  169. ## move
  170. <div class="act_as_cell">${line.get('move_name') or ''}</div>
  171. ## journal
  172. <div class="act_as_cell">${line.get('jcode') or ''}</div>
  173. ## account code
  174. <div class="act_as_cell">${account.code}</div>
  175. ## partner
  176. <div class="act_as_cell overflow_ellipsis">${line.get('partner_name') or ''}</div>
  177. ## label
  178. <div class="act_as_cell">${label}</div>
  179. ## counterpart
  180. <div class="act_as_cell">${line.get('counterparts') or ''}</div>
  181. ## debit
  182. <div class="act_as_cell amount">${ formatLang(line.get('debit', 0.0)) | amount }</div>
  183. ## credit
  184. <div class="act_as_cell amount">${ formatLang(line.get('credit', 0.0)) | amount }</div>
  185. ## balance cumulated
  186. <div class="act_as_cell amount" style="padding-right: 1px;">${ formatLang(cumul_balance) | amount }</div>
  187. %if amount_currency(data):
  188. ## currency balance
  189. <div class="act_as_cell amount sep_left">${formatLang(line.get('amount_currency') or 0.0) | amount }</div>
  190. ## curency code
  191. <div class="act_as_cell amount" style="text-align: right;">${line.get('currency_code') or ''}</div>
  192. %endif
  193. </div>
  194. %endfor
  195. </div>
  196. <div class="act_as_table list_table">
  197. <div class="act_as_row labels" style="font-weight: bold;">
  198. ## date
  199. <div class="act_as_cell first_column" style="width: 350px;">${account.code} - ${account.name}</div>
  200. <div class="act_as_cell" style="width: 365px;">${_("Cumulated Balance on Account")}</div>
  201. ## debit
  202. <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_debit) | amount }</div>
  203. ## credit
  204. <div class="act_as_cell amount" style="width: 75px;">${ formatLang(cumul_credit) | amount }</div>
  205. ## balance cumulated
  206. <div class="act_as_cell amount" style="width: 75px; padding-right: 1px;">${ formatLang(cumul_balance) | amount }</div>
  207. %if amount_currency(data):
  208. %if account.currency_id:
  209. ## currency balance
  210. <div class="act_as_cell amount sep_left" style="width: 75px;">${formatLang(cumul_balance_curr) | amount }</div>
  211. %else:
  212. <div class="act_as_cell amount sep_left" style="width: 75px;">-</div>
  213. %endif
  214. ## curency code
  215. <div class="act_as_cell amount" style="width: 30px; text-align: right;"></div>
  216. %endif
  217. </div>
  218. </div>
  219. </div>
  220. %endif
  221. %endfor
  222. </body>
  223. </html>