cta_cte.py 2.08 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
from .qr import qrfiscal
from odoo.exceptions import UserError, ValidationError, Warning, RedirectWarning
import base64, datetime

class res_currency(models.Model):
    _inherit = 'asw.cta_cte'

    """Heredo esta classe para modificar el comportamiento de la cuenta corriente
    No quiero que se afecte Factura - Factura"""

    @api.multi
    def afectar(self, id_afectada=False):
        """ si se pasa un id_afectada la afectacion se realiza sobre este
        de otra manera se afecta a todos los comprobantes en orden de aparicion """
        afectaciones = []

        if (id_afectada is not False and isinstance(id_afectada, int)):
            # Solo debe afectar por el monto adeudado del comprobante
            cc_afectadora = self.search([('cc_comprobante', '=', id_afectada)])
            afectacion = self.genera_afectacion(cc_afectadora)
            afectaciones.append(afectacion)
        elif (self.cc_cliente.id is False):
            return

        fac = ["fac","rem","rve","ped","pre","inv"]#Esto cambio el metodo de reintegro hay q pensar q hacemos
        res = ["rec","rem","rve","ped","pre","inv"]
        blokear = [] #Por puta seguridad

        if self.cc_comprobante.comp_talonario.tal_menu == "fac":
            blokear = fac # Si es factura blokea factura
        else:
            blokear = res # si no es factura es recibo blokero recibos
        
            
        cc_cliente = self.search([('cc_cliente','=', self.cc_cliente.id), 
            ('cc_tipo_relacionado','!=', self.cc_tipo_relacionado),
            ('cc_monto_adeudado','!=', 0)])            
        
        for cc_afectada in cc_cliente:

            if cc_afectada.cc_comprobante.comp_talonario.tal_menu in blokear:#si esta en la lista me lo salto
                break

            cc_afectada._compute_cc_monto_adeudado()

            if(self.cc_monto_adeudado != 0):
                afectacion = self.genera_afectacion(cc_afectada)
                afectaciones.append(afectacion)
            else:
                break

        return afectaciones