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.

130 lines
3.6 KiB

  1. # Copyright 2019 Tecnativa - Vicent Cubells
  2. # Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
  3. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
  4. from odoo import api, fields, models
  5. class AccountBankStatementImportPayPalMapping(models.Model):
  6. _name = 'account.bank.statement.import.paypal.mapping'
  7. _description = 'Account Bank Statement Import PayPal Mapping'
  8. name = fields.Char(
  9. required=True,
  10. )
  11. float_thousands_sep = fields.Selection(
  12. string='Thousands Separator',
  13. selection=[
  14. ('dot', 'dot (.)'),
  15. ('comma', 'comma (,)'),
  16. ('none', 'none'),
  17. ],
  18. default='dot',
  19. required=True,
  20. )
  21. float_decimal_sep = fields.Selection(
  22. string='Decimals Separator',
  23. selection=[
  24. ('dot', 'dot (.)'),
  25. ('comma', 'comma (,)'),
  26. ('none', 'none'),
  27. ],
  28. default='comma',
  29. required=True,
  30. )
  31. date_format = fields.Char(
  32. string='Date Format',
  33. required=True,
  34. )
  35. time_format = fields.Char(
  36. string='Time Format',
  37. required=True,
  38. )
  39. date_column = fields.Char(
  40. string='"Date" column',
  41. required=True,
  42. )
  43. time_column = fields.Char(
  44. string='"Time" column',
  45. required=True,
  46. )
  47. tz_column = fields.Char(
  48. string='"Timezone" column',
  49. required=True,
  50. )
  51. name_column = fields.Char(
  52. string='"Name" column',
  53. required=True,
  54. )
  55. currency_column = fields.Char(
  56. string='"Currency" column',
  57. required=True,
  58. )
  59. gross_column = fields.Char(
  60. string='"Gross" column',
  61. required=True,
  62. )
  63. fee_column = fields.Char(
  64. string='"Fee" column',
  65. required=True,
  66. )
  67. balance_column = fields.Char(
  68. string='"Balance" column',
  69. required=True,
  70. )
  71. transaction_id_column = fields.Char(
  72. string='"Transaction ID" column',
  73. required=True,
  74. )
  75. description_column = fields.Char(
  76. string='"Description" column',
  77. )
  78. type_column = fields.Char(
  79. string='"Type" column',
  80. )
  81. from_email_address_column = fields.Char(
  82. string='"From Email Address" column',
  83. )
  84. to_email_address_column = fields.Char(
  85. string='"To Email Address" column',
  86. )
  87. invoice_id_column = fields.Char(
  88. string='"Invoice ID" column',
  89. )
  90. subject_column = fields.Char(
  91. string='"Subject" column',
  92. )
  93. note_column = fields.Char(
  94. string='"Note" column',
  95. )
  96. bank_name_column = fields.Char(
  97. string='"Bank Name" column',
  98. )
  99. bank_account_column = fields.Char(
  100. string='"Bank Account" column',
  101. )
  102. @api.onchange('float_thousands_sep')
  103. def onchange_thousands_separator(self):
  104. if 'dot' == self.float_thousands_sep == self.float_decimal_sep:
  105. self.float_decimal_sep = 'comma'
  106. elif 'comma' == self.float_thousands_sep == self.float_decimal_sep:
  107. self.float_decimal_sep = 'dot'
  108. @api.onchange('float_decimal_sep')
  109. def onchange_decimal_separator(self):
  110. if 'dot' == self.float_thousands_sep == self.float_decimal_sep:
  111. self.float_thousands_sep = 'comma'
  112. elif 'comma' == self.float_thousands_sep == self.float_decimal_sep:
  113. self.float_thousands_sep = 'dot'
  114. @api.multi
  115. def _get_float_separators(self):
  116. self.ensure_one()
  117. separators = {
  118. 'dot': '.',
  119. 'comma': ',',
  120. 'none': '',
  121. }
  122. return (separators[self.float_thousands_sep],
  123. separators[self.float_decimal_sep])