# -*- coding: utf-8 -*- from openerp import models, fields, tools, api import openerp.addons.decimal_precision as dp class cashbox_statement_confirm(models.Model): _name = "cashbox.statement.confirm" name = fields.Char('name', required=True) ref = fields.Char('Ref') date = fields.Date() active = fields.Boolean('Active', default=True) message_confirm = fields.Text('Message Confirm') ### Statement confirm - open statement_id = fields.Many2one('account.bank.statement', 'Bank Statement Confirm') statement_open = fields.Many2one('account.bank.statement', 'Bank Statement Open') ## User statement - User Confirm user_statement = fields.Many2one('res.users', 'Res user') user_confirm = fields.Many2one('res.users', 'Res user') ## Journal journal_id = fields.Many2one('account.journal', 'Journal') ## Line line_difference = fields.Many2one('account.bank.statement.line', 'Bank statement line difference') line_next_open = fields.Many2one('account.bank.statement.line', 'Bank statement line next open statement') ### Amount amount_statement = fields.Float('Amount Statement', digits_compute=dp.get_precision('Account'), required=True) amount_real = fields.Float('Amount Real', digits_compute=dp.get_precision('Account'), required=True) amount_difference = fields.Float('Amount Difference', digits_compute=dp.get_precision('Account'), required=True) amount_next_open = fields.Float('Amount Next open statement', digits_compute=dp.get_precision('Account'), required=True) ## estado del regsitro state_avaliable = fields.Boolean('Avaliable', default=True, help="True : disponible, False : Utilizado") casbox_transfer_id =fields.Many2one('cash.box.transfer', 'cashBox transfer') ''' @fields statement_id = Id de la caja que se esta cerrando. @fields user_statement = Id del propietario de la caja. @fields journal_id = Id del diario de la caja. @fields line_difference = Id de la linea de la caja donde se registro la diferencia del cierre. @fields line_next_open = Id de la linea donde se registro el monto de próxima apertura de caja. @fields amount_statement = Monto en la caja del sistema. @fields amount_real = Monto real del cierre de la caja. @fields amount_difference = Monto de la diferencia del cierre. @fields amount_next_open = Monto de la próxima apertura de caja. @fields user_confirm = Usuario que cerro la caja @fields statement_open = Id de la caja que utilize el saldo disponible para proxima apertura @fields state_avaliable = 'True': disponible, 'False': Utilizado @fields casbox_transfer_id = id transferencia ''' @api.model def get_cashbox_statement_confirm(self, statementId): return[{ 'id': casBox.id, 'name': casBox.name, 'statement': { 'id': casBox.statement_id.id, 'name': casBox.statement_id.name, 'dateOpen': casBox.statement_id.date, 'dateConfirm': casBox.statement_id.closing_date, 'typeStatementID': casBox.statement_id.type_statement.id, 'typeStatementName': casBox.statement_id.type_statement.name, 'userId': casBox.statement_id.user_id.id, 'userName': casBox.statement_id.user_id.name, 'currencystatement': { 'id': casBox.statement_id.currency.id, 'name': casBox.statement_id.currency.name, 'symbol': casBox.statement_id.currency.symbol, 'rate': casBox.statement_id.currency.rate, 'thousandsSeparator': casBox.statement_id.currency.thousands_separator, 'decimalSeparator': casBox.statement_id.currency.decimal_separator, 'decimalPlaces': casBox.statement_id.currency.decimal_places, 'position': casBox.statement_id.currency.position, }, }, 'userStatementName': casBox.user_statement.name, 'userStatementLogin': casBox.user_statement.login, 'userConfirmName': casBox.user_confirm.name, 'userConfirmLogin': casBox.user_confirm.login, 'amountStatement': casBox.amount_statement, 'amountReal': casBox.amount_real, 'amountDifference': casBox.amount_difference if (casBox.amount_real >= casBox.amount_statement) else (-casBox.amount_difference), 'amountNextOpen': casBox.amount_next_open, 'transferCasBox': { 'id': casBox.casbox_transfer_id.id if(casBox.casbox_transfer_id) else '', 'name': casBox.casbox_transfer_id.name if(casBox.casbox_transfer_id) else '', 'amount': casBox.casbox_transfer_id.amount if(casBox.casbox_transfer_id) else 0 }, } for casBox in self.env['cashbox.statement.confirm'].search([('statement_id.id', '=', statementId), ('active', '=', True)])]