pago_deuda_wizzard.py 2.43 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError

class asw_pago_deuda_wizzard(models.TransientModel):
    _name = 'asw.pago_deuda_wizzard'
    _inherit = 'asw.pago_cliente_wizzard'

    pcw_totalcobrar = fields.Float(
        string="Total a Cobrar",
        readonly=True,
    )

    pcw_cliente = fields.Many2one(
        string='Cliente',
        comodel_name='asw.cliente',
        readonly=True,
    ) 

    pcw_cobro_deu = fields.Many2one(
        string='Cobro',
        comodel_name='vnt.cobros',
    )

    # Formas de pago
    pcw_che_recibidos = fields.Many2many(
        comodel_name='asw.cheque', 
        relation='pago_cliente_chq_recibido2', 
        column1='asw_cheque_id', 
        column2='asw_cliente_id', 
        string='Cheques Recibidos'
    )
    pcw_chq_emitidos = fields.Many2many(
        comodel_name='asw.cheque', 
        relation='pago_cliente_chq_emitido2', 
        column1='asw_cheque_id', 
        column2='asw_cliente_id', 
        string='Cheques Emitidos'
    )
    pcw_transferencias_recibidas = fields.Many2many(
        comodel_name='asw.valores', 
        relation='pago_cliente_transferencia_recibida2', 
        column1='pago_cliente_id', 
        column2='asw_valores_id', 
        string='Transferencias Recibidas'
    )
    pcw_transferencias_emitidas = fields.Many2many(
        comodel_name='asw.valores', 
        relation='pago_cliente_transferencia_emitida2', 
        column1='pago_cliente_id', 
        column2='asw_valores_id', 
        string='Transferencias Emitidas'
    )

    pcw_tarjetas = fields.Many2many(
        comodel_name='asw.valores', 
        relation='pago_cliente_tarjeta2', 
        column1='pago_cliente_id', 
        column2='asw_valores_id', 
        string='Tarjetas'
    )

    @api.multi
    def generar_recibo(self):  
        lista = [] 
        self.chequear_montos()             
        self.armar_recibo()
        self.validar_afectar(self.pcw_recibo)

        self.pcw_recibo.eliminar_valores_cero()
        self.pcw_recibo.comp_estado = 'p'

        self.pcw_cobro_deu.co_estado = 'p'
        lista.append(self.pcw_recibo.id)
        self.pcw_cobro_deu.co_recibos = lista
        
        accion = self.get_action_navega('asw_recibos_list_action', self.pcw_recibo.id)
        return accion
 

    def chequear_montos(self):
        if self.pcw_totalcobrar > self.pcw_total:
            raise UserError("El monto adeudado aún no fue saldado")