|
@@ -735,11 +735,144 @@ class AccountBankStatementUtility(models.Model):
|
|
|
}for line in statement.line_ids]
|
|
|
}for statement in self.env['account.bank.statement'].browse(id)]
|
|
|
|
|
|
+ '''
|
|
|
+ Unlink Line Statement
|
|
|
+ '''
|
|
|
+ def _eiru_unlink_statement_line(self, line):
|
|
|
+ '''
|
|
|
+ Eliminar las lineas de la caja.
|
|
|
+ <-> Actualizar la linea.
|
|
|
+ <-> Cancelar la linea.
|
|
|
+ <-> Eliminar la linea.
|
|
|
+ <-> Retur True
|
|
|
+ '''
|
|
|
+ ### Update Line
|
|
|
+ writeLine = self._write_statement_line_transfer(line)
|
|
|
+ ### Cancelar Line
|
|
|
+ lineCancel = line.cancel()
|
|
|
+ ### Unlink Line
|
|
|
+ lineUnlink = line.unlink()
|
|
|
+
|
|
|
+ return True
|
|
|
+
|
|
|
+ '''
|
|
|
+ Update CashBox
|
|
|
+ '''
|
|
|
+ def _eiru_write_cashbox(self, cashbox, values):
|
|
|
+ return cashbox.write(values)
|
|
|
+
|
|
|
'''
|
|
|
Unlink Statement
|
|
|
'''
|
|
|
@api.model
|
|
|
def eiru_unlink_statement(self, id):
|
|
|
- # print("\n\neiru_unlink_statement\n\n")
|
|
|
+ statement = self._get_statement_transfer(id)
|
|
|
+ if (not statement):
|
|
|
+ return {
|
|
|
+ 'state': False,
|
|
|
+ 'message': 'Error en obtener el registro de caja.'
|
|
|
+ }
|
|
|
+
|
|
|
+ ## User
|
|
|
+ user = self.env.user
|
|
|
+ ## date
|
|
|
+ date_server = self.get_server_datetime()
|
|
|
+ ### FIlter line ids
|
|
|
+ statementLines= map(lambda x: x.id, statement.line_ids)
|
|
|
+ # Get casbox Transfer
|
|
|
+ cashBoxTransfer = self.env['cash.box.transfer'].search(['|',('input_statement.id', '=', statement.id),('output_statement.id', '=', statement.id)])
|
|
|
+ # Get cashBox Input
|
|
|
+ cashBoxIn = self.env['cash.box.in'].search([('statement_id.id', '=', statement.id)])
|
|
|
+ # Get cashBox Output
|
|
|
+ cashBoxOut = self.env['cash.box.out'].search([('statement_id.id', '=', statement.id)])
|
|
|
+ # confirm
|
|
|
+ cashBoxConfirm = self.env['cashbox.statement.confirm'].search([('statement_id.id', '=', statement.id)])
|
|
|
+
|
|
|
+
|
|
|
+ ### Transfer
|
|
|
+ stateTransfer = 'open'
|
|
|
+ ref = ''
|
|
|
+ for transfer in cashBoxTransfer:
|
|
|
+ if (transfer.input_statement):
|
|
|
+ if (transfer.input_statement.state == 'confirm'):
|
|
|
+ stateTransfer = transfer.input_statement.state
|
|
|
+ ref += str(' / ')+ transfer.output_statement.name if (ref) else transfer.output_statement.name
|
|
|
+
|
|
|
+ if (transfer.output_statement):
|
|
|
+ if (transfer.output_statement.state == 'confirm'):
|
|
|
+ stateTransfer = transfer.output_statement.state
|
|
|
+ ref += str(' / ')+ transfer.output_statement.name if (ref) else transfer.output_statement.name
|
|
|
+
|
|
|
+ if (stateTransfer == 'confirm'):
|
|
|
+ return {
|
|
|
+ 'state': False,
|
|
|
+ 'message': 'Existe caja relacionada que ya están cerrada Ref('+str(ref)+')'
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ message_deleted = 'La caja '+str(statement.name)+', Fue eliminada por '+str(user.name)+' en '+str(date_server)
|
|
|
+
|
|
|
+ messageDeletedCashBoxConfirm = {
|
|
|
+ 'active': False,
|
|
|
+ 'state_avaliable': False,
|
|
|
+ 'message_deleted': message_deleted
|
|
|
+ }
|
|
|
|
|
|
- # import web_pdb; web_pdb.set_trace()
|
|
|
+ messageDeletedCashBox = {
|
|
|
+ 'active': False,
|
|
|
+ 'message_deleted': message_deleted
|
|
|
+ }
|
|
|
+
|
|
|
+ for transfer in cashBoxTransfer:
|
|
|
+ lineStatement = transfer.input_line.id in statementLines and transfer.output_line.id or transfer.input_line.id
|
|
|
+
|
|
|
+ bankLine = self.env['account.bank.statement.line'].browse(lineStatement)
|
|
|
+ if (not bankLine):
|
|
|
+ return {
|
|
|
+ 'state': False,
|
|
|
+ 'message': 'Error, No fue posible localizar una de las lineas de la transferencia.'
|
|
|
+ }
|
|
|
+ ### Verificar el estado de la caja
|
|
|
+ if (bankLine.statement_id.state == 'confirm'):
|
|
|
+ return {
|
|
|
+ 'state': False,
|
|
|
+ 'message': 'Error, Una de las caja ya esta cerrada.'
|
|
|
+ }
|
|
|
+ ### Unlink Line Statement
|
|
|
+ lineUnlink = self._eiru_unlink_statement_line(bankLine)
|
|
|
+
|
|
|
+ accountCasboxTransfer = self.env['cash.box.transfer'].browse(transfer.id)
|
|
|
+ if (not accountCasboxTransfer):
|
|
|
+ return {
|
|
|
+ 'state': False,
|
|
|
+ 'message': 'Error, No fue posible localizar la transferencia.'
|
|
|
+ }
|
|
|
+
|
|
|
+ ### Update CashBox transfer
|
|
|
+ boxTransfer = self._eiru_write_cashbox(accountCasboxTransfer,messageDeletedCashBox)
|
|
|
+
|
|
|
+ if (cashBoxIn):
|
|
|
+ boxIn = self._eiru_write_cashbox(cashBoxIn,messageDeletedCashBox)
|
|
|
+
|
|
|
+ if (cashBoxOut):
|
|
|
+ boxOut = self._eiru_write_cashbox(cashBoxOut,messageDeletedCashBox)
|
|
|
+
|
|
|
+ if (cashBoxConfirm):
|
|
|
+ confirm = self._eiru_write_cashbox(cashBoxConfirm,messageDeletedCashBoxConfirm)
|
|
|
+
|
|
|
+
|
|
|
+ ### Cancel statement
|
|
|
+ cancelStatement = self.eiru_button_cancel(statement)
|
|
|
+
|
|
|
+ ### Eliminar las lineas
|
|
|
+ for line in statement.line_ids:
|
|
|
+ writeLine = self._write_statement_line_transfer(line)
|
|
|
+ lineUnlink = line.unlink()
|
|
|
+
|
|
|
+ ## Unlink Statement
|
|
|
+ unlinkStatement = statement.unlink()
|
|
|
+
|
|
|
+ return {
|
|
|
+ 'state': True,
|
|
|
+ 'message': 'Operacion exitosa'
|
|
|
+ }
|