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.

221 lines
7.1 KiB

  1. # -*- coding: utf-8 -*-
  2. from datetime import date, datetime
  3. from openerp import SUPERUSER_ID, api
  4. # -*- coding: utf-8 -*-
  5. # © 2016 Taktik
  6. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  7. def post_init_hook(cr, registry):
  8. def update_partners():
  9. """
  10. Set the right account on partners
  11. """
  12. partner_a = env.ref('account_financial_test_data.data_partner_a')
  13. partner_b = env.ref('account_financial_test_data.data_partner_b')
  14. partner_c = env.ref('account_financial_test_data.data_partner_c')
  15. partner_d = env.ref('account_financial_test_data.data_partner_d')
  16. partner_e = env.ref('account_financial_test_data.data_partner_e')
  17. partner_f = env.ref('account_financial_test_data.data_partner_f')
  18. partner_g = env.ref('account_financial_test_data.data_partner_g')
  19. account_a_receivable = env['account.account'].search(
  20. [('code', '=', '411700')]
  21. )
  22. account_receivable = env['account.account'].search(
  23. [('code', '=', '411100')]
  24. )
  25. account_payable = env['account.account'].search(
  26. [('code', '=', '401100')]
  27. )
  28. partner_a.property_account_receivable_id = account_a_receivable[0]
  29. partner_a.property_account_payable_id = account_payable[0]
  30. partners_list = [
  31. partner_b,
  32. partner_c,
  33. partner_d,
  34. partner_e,
  35. partner_f,
  36. partner_g
  37. ]
  38. for partner in partners_list:
  39. partner.property_account_receivable_id = account_receivable[0]
  40. partner.property_account_payable_id = account_payable[0]
  41. return True
  42. def update_account_settings():
  43. """
  44. Configure account settings
  45. """
  46. account_setting_obj = env['account.config.settings']
  47. account_setting = account_setting_obj.create({})
  48. account_setting.group_multi_currency = True
  49. account_setting.default_sale_tax_id = env.ref('l10n_fr.tva_normale').id
  50. account_setting.default_purchase_tax_id = env.ref(
  51. 'l10n_fr.tva_normale').id
  52. account_setting.execute()
  53. return True
  54. def update_account():
  55. """
  56. Change the name and currency of 411700
  57. """
  58. account_to_update = env['account.account'].search(
  59. [('code', '=', '411700')]
  60. )[0]
  61. account_to_update.name = "Clients - USD"
  62. account_to_update.currency_id = env.ref('base.USD').id
  63. return True
  64. def update_product():
  65. """
  66. Update the product with the right settings
  67. """
  68. product = env.ref('account_financial_test_data.data_product_a')
  69. product.standard_price = 1000
  70. product.lst_price = 1000
  71. product.taxes_id = [
  72. (6, 0, [env.ref('l10n_fr.tva_normale').id])
  73. ]
  74. product.supplier_taxes_id = [
  75. (6, 0, [env.ref('l10n_fr.tva_acq_normale_TTC').id])
  76. ]
  77. income_account = env['account.account'].search([
  78. ('code', '=', '707100')
  79. ])[0]
  80. expense_account = env['account.account'].search([
  81. ('code', '=', '607100')
  82. ])[0]
  83. product.property_account_income_id = income_account
  84. product.property_account_expense_id = expense_account
  85. return True
  86. def create_invoices():
  87. """
  88. Creates all necessary invoices
  89. """
  90. now = datetime.now()
  91. this_year = now.year
  92. last_year = now.year - 1
  93. invoice_obj = env['account.invoice']
  94. # invoice_a
  95. invoice_obj.create({
  96. 'partner_id': env.ref(
  97. 'account_financial_test_data.data_partner_c').id,
  98. 'account_id': env.ref(
  99. 'account_financial_test_data.data_partner_c'
  100. ).property_account_receivable_id.id,
  101. 'type': 'out_invoice',
  102. 'date_invoice': date(last_year, 1, 5),
  103. 'date_due': date(last_year, 1, 31),
  104. })
  105. # invoice_b
  106. invoice_obj.create({
  107. 'partner_id': env.ref(
  108. 'account_financial_test_data.data_partner_a').id,
  109. 'type': 'out_invoice',
  110. 'account_id': env.ref(
  111. 'account_financial_test_data.data_partner_a'
  112. ).property_account_receivable_id.id,
  113. 'date_invoice': date(last_year, 1, 5),
  114. 'date_due': date(last_year, 2, 4),
  115. })
  116. # invoice_c
  117. invoice_obj.create({
  118. 'partner_id': env.ref(
  119. 'account_financial_test_data.data_partner_d').id,
  120. 'type': 'out_invoice',
  121. 'account_id': env.ref(
  122. 'account_financial_test_data.data_partner_d'
  123. ).property_account_receivable_id.id,
  124. 'date_invoice': date(last_year, 12, 11),
  125. 'date_due': date(this_year, 3, 10),
  126. })
  127. # invoice_d
  128. invoice_obj.create({
  129. 'partner_id': env.ref(
  130. 'account_financial_test_data.data_partner_g').id,
  131. 'type': 'out_refund',
  132. 'account_id': env.ref(
  133. 'account_financial_test_data.data_partner_g'
  134. ).property_account_receivable_id.id,
  135. 'date_invoice': date(this_year, 1, 3),
  136. 'date_due': date(this_year, 4, 15),
  137. })
  138. # invoice_e
  139. invoice_obj.create({
  140. 'partner_id': env.ref(
  141. 'account_financial_test_data.data_partner_b').id,
  142. 'type': 'out_invoice',
  143. 'account_id': env.ref(
  144. 'account_financial_test_data.data_partner_b'
  145. ).property_account_receivable_id.id,
  146. 'date_invoice': date(this_year, 2, 3),
  147. 'date_due': date(this_year, 2, 15),
  148. })
  149. # invoice_f
  150. invoice_obj.create({
  151. 'partner_id': env.ref(
  152. 'account_financial_test_data.data_partner_a').id,
  153. 'type': 'out_invoice',
  154. 'account_id': env.ref(
  155. 'account_financial_test_data.data_partner_a'
  156. ).property_account_receivable_id.id,
  157. 'date_invoice': date(this_year, 2, 23),
  158. 'date_due': date(this_year, 3, 24),
  159. })
  160. # invoice_g
  161. invoice_obj.create({
  162. 'partner_id': env.ref(
  163. 'account_financial_test_data.data_partner_g').id,
  164. 'type': 'out_invoice',
  165. 'account_id': env.ref(
  166. 'account_financial_test_data.data_partner_g'
  167. ).property_account_receivable_id.id,
  168. 'date_invoice': date(this_year, 3, 17),
  169. 'date_due': date(this_year, 4, 15),
  170. })
  171. # invoice_h
  172. invoice_obj.create({
  173. 'partner_id': env.ref(
  174. 'account_financial_test_data.data_partner_f').id,
  175. 'type': 'out_invoice',
  176. 'account_id': env.ref(
  177. 'account_financial_test_data.data_partner_f'
  178. ).property_account_receivable_id.id,
  179. 'date_invoice': date(this_year, 3, 17),
  180. 'date_due': date(this_year, 4, 15),
  181. })
  182. return True
  183. env = api.Environment(cr, SUPERUSER_ID, {})
  184. update_partners()
  185. update_account_settings()
  186. update_account()
  187. update_product()
  188. create_invoices()