# -*- coding: utf-8 -*- from openerp.http import request _MODEL = 'cash.box.transfer' def create_cashbox_transfer(data): from account_bank_statement import search_account_bank_statement from account_bank_statement_line import create_statement_line ''' Statement Origin ''' statementOrigin = search_account_bank_statement(data['casboxOriginId']) if (not statementOrigin): return { 'state': False, 'message': 'Error. Obtener la Caja' } ''' Statement Destino ''' statementDest = search_account_bank_statement(data['casboxDestID']) if (not statementDest): return { 'state': False, 'message': 'Error. Obtener la Caja' } ''' Caja Origin (line) ''' lineOrigin = create_statement_line({ 'statement_id': statementOrigin['id'], 'name': "TRANSFERIDO A(%s) Ref. %s" % (statementDest['name'], data['description']), 'amount': -data['amount'] , 'ref': 'TRANSFERENCIA', 'account_id': statementOrigin['accountId'], 'journal_id': statementOrigin['journalId'], # 'is_deleted': True }) if (not lineOrigin): return { 'state': False, 'message': 'Error de transferencia, registro de salida de caja.' } ''' Caja Destino (line) ''' lineDest = create_statement_line({ 'statement_id': statementDest['id'], 'name': "TRANSFERIDO DE(%s) Ref. %s" % (statementOrigin['name'], data['description']), 'amount': abs(data['amount']), 'ref': 'TRANSFERENCIA', 'account_id': statementDest['accountId'], 'journal_id': statementDest['journalId'], # 'is_deleted': True }) cash = { 'name': "TRANSFERENCIA %s a %s" %(statementOrigin['name'], statementDest['name']), 'amount': abs(data['amount']), 'ref': data['description'], 'input_line': lineDest.id, 'output_line': lineOrigin.id, 'input_statement': statementDest['id'], 'output_statement': statementOrigin['id'], 'date': lineDest.date } transfer = request.env[_MODEL].sudo().create(cash) result = { 'state': True, 'message': "Transferencia realizada con suceso." } if (not transfer): result = { 'state': False, 'message': "Error.. En la creación de la transferencia." } return result