cobros.py 2 KB
# -*- coding: utf-8 -*-
#from odoo.exceptions import UserError
from odoo import models, fields, api
#from datetime import datetime

class vnt_cobros(models.Model):
    _name = 'vnt.cobros'

    co_cliente = fields.Many2one(
        string='Cliente',
        comodel_name='asw.cliente',
    )

    co_lin_deuda = fields.One2many(
        string=u"Línea Deuda",
        comodel_name='vnt.linea_deuda',
        inverse_name='ld_cobros',
        compute='_onchange_ld',
        inverse='_inverse_onchange_ld',
    )

    co_resumen = fields.Text(
        string="Resumen",
    )

    co_total_deuda = fields.Float(
        string="Total Deuda",
        compute="_compute_co_total_deuda",

    )

    co_total_interes = fields.Float(
        string=u"Total Interés",
    )

    co_total = fields.Float(
        string="Total",
        compute="_compute_co_total",
    )


    #Calculos de totales 
    @api.depends('co_lin_deuda')
    def _compute_co_total_deuda(self):
        sumita = 0
        for record in self:
            for lin in record.co_lin_deuda:
                if lin.ld_select == True: 
                    sumita += lin.ld_total
            record.co_total_deuda = sumita 

    @api.depends('co_total_deuda', 'co_total_interes')
    def _compute_co_total(self):
        sumita = 0
        for record in self:
            record.co_total = record.co_total_deuda + record.co_total_interes

    @api.onchange('co_cliente')
    def _onchange_ld(self):
        lista = []
        #recupero comprobantes de venta, adeudados, con el cliente seleccionado
        comp_venta_adeud = self.env['asw.comprobante'].search([('comp_talonario.tal_menu','=','fac'),('comp_tipo_comp','=','e'), ('comp_estado', '=', 'a'), ('comp_cliente', '=', self.co_cliente.id)])
        for comp in comp_venta_adeud:
            nva_linea = self.env['vnt.linea_deuda'].create({
                'ld_factura': comp.id,
            })
            lista.append(nva_linea.id)
        self.co_lin_deuda = lista 

    def _inverse_onchange_ld(self):
        return True