cashbox_statement_confirm.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, tools, api
  3. import openerp.addons.decimal_precision as dp
  4. class cashbox_statement_confirm(models.Model):
  5. _name = "cashbox.statement.confirm"
  6. name = fields.Char('name', required=True)
  7. ref = fields.Char('Ref')
  8. date = fields.Date()
  9. active = fields.Boolean('Active', default=True)
  10. message_confirm = fields.Text('Message Confirm')
  11. ### Statement confirm - open
  12. statement_id = fields.Many2one('account.bank.statement', 'Bank Statement Confirm')
  13. statement_open = fields.Many2one('account.bank.statement', 'Bank Statement Open')
  14. ## User statement - User Confirm
  15. user_statement = fields.Many2one('res.users', 'Res user')
  16. user_confirm = fields.Many2one('res.users', 'Res user')
  17. ## Journal
  18. journal_id = fields.Many2one('account.journal', 'Journal')
  19. ## Line
  20. line_difference = fields.Many2one('account.bank.statement.line', 'Bank statement line difference')
  21. line_next_open = fields.Many2one('account.bank.statement.line', 'Bank statement line next open statement')
  22. ### Amount
  23. amount_statement = fields.Float('Amount Statement', digits_compute=dp.get_precision('Account'), required=True)
  24. amount_real = fields.Float('Amount Real', digits_compute=dp.get_precision('Account'), required=True)
  25. amount_difference = fields.Float('Amount Difference', digits_compute=dp.get_precision('Account'), required=True)
  26. amount_next_open = fields.Float('Amount Next open statement', digits_compute=dp.get_precision('Account'), required=True)
  27. ## estado del regsitro
  28. state_avaliable = fields.Boolean('Avaliable', default=True, help="True : disponible, False : Utilizado")
  29. casbox_transfer_id =fields.Many2one('cash.box.transfer', 'cashBox transfer')
  30. '''
  31. @fields statement_id = Id de la caja que se esta cerrando.
  32. @fields user_statement = Id del propietario de la caja.
  33. @fields journal_id = Id del diario de la caja.
  34. @fields line_difference = Id de la linea de la caja donde se registro la diferencia del cierre.
  35. @fields line_next_open = Id de la linea donde se registro el monto de próxima apertura de caja.
  36. @fields amount_statement = Monto en la caja del sistema.
  37. @fields amount_real = Monto real del cierre de la caja.
  38. @fields amount_difference = Monto de la diferencia del cierre.
  39. @fields amount_next_open = Monto de la próxima apertura de caja.
  40. @fields user_confirm = Usuario que cerro la caja
  41. @fields statement_open = Id de la caja que utilize el saldo disponible para proxima apertura
  42. @fields state_avaliable = 'True': disponible, 'False': Utilizado
  43. @fields casbox_transfer_id = id transferencia
  44. '''
  45. @api.model
  46. def get_cashbox_statement_confirm(self, statementId):
  47. return[{
  48. 'id': casBox.id,
  49. 'name': casBox.name,
  50. 'statement': {
  51. 'id': casBox.statement_id.id,
  52. 'name': casBox.statement_id.name,
  53. 'dateOpen': casBox.statement_id.date,
  54. 'dateConfirm': casBox.statement_id.closing_date,
  55. 'typeStatementID': casBox.statement_id.type_statement.id,
  56. 'typeStatementName': casBox.statement_id.type_statement.name,
  57. 'userId': casBox.statement_id.user_id.id,
  58. 'userName': casBox.statement_id.user_id.name,
  59. 'currencystatement': {
  60. 'id': casBox.statement_id.currency.id,
  61. 'name': casBox.statement_id.currency.name,
  62. 'symbol': casBox.statement_id.currency.symbol,
  63. 'rate': casBox.statement_id.currency.rate,
  64. 'thousandsSeparator': casBox.statement_id.currency.thousands_separator,
  65. 'decimalSeparator': casBox.statement_id.currency.decimal_separator,
  66. 'decimalPlaces': casBox.statement_id.currency.decimal_places,
  67. 'position': casBox.statement_id.currency.position,
  68. },
  69. },
  70. 'userStatementName': casBox.user_statement.name,
  71. 'userStatementLogin': casBox.user_statement.login,
  72. 'userConfirmName': casBox.user_confirm.name,
  73. 'userConfirmLogin': casBox.user_confirm.login,
  74. 'amountStatement': casBox.amount_statement,
  75. 'amountReal': casBox.amount_real,
  76. 'amountDifference': casBox.amount_difference if (casBox.amount_real >= casBox.amount_statement) else (-casBox.amount_difference),
  77. 'amountNextOpen': casBox.amount_next_open,
  78. 'transferCasBox': {
  79. 'id': casBox.casbox_transfer_id.id if(casBox.casbox_transfer_id) else '',
  80. 'name': casBox.casbox_transfer_id.name if(casBox.casbox_transfer_id) else '',
  81. 'amount': casBox.casbox_transfer_id.amount if(casBox.casbox_transfer_id) else 0
  82. },
  83. } for casBox in self.env['cashbox.statement.confirm'].search([('statement_id.id', '=', statementId), ('active', '=', True)])]