prod_pfinal.py 1.81 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api

class asw_prod_pfinal(models.TransientModel):
    _name = 'asw.prod_pfinal'
    _description = 'Producto Precio Final' 

    ppf_producto = fields.Many2one(
        string=u'Producto',
        comodel_name='asw.producto',
        ondelete='set null',
    )

    ppf_descripcion_producto = fields.Text(
        string='Descripcion',
    )

    ppf_comprobante = fields.Many2one(
        string=u'Comprobante',
        comodel_name='asw.comprobante',
        ondelete='cascade',
    )

    ppf_cantidad = fields.Float(
        string=u'Cantidad',
        default=1,
    )

    ppf_precio= fields.Monetary(
        string=u'Precio',
        currency_field='ppf_moneda',
        store=True
    )
    
    ppf_moneda = fields.Many2one(
        string=u'Moneda del Producto',
        comodel_name='res.currency',
        ondelete='set null',        
        default=lambda self: self.env.user.company_id.currency_id,
    )

    #metodo para obtener el dominio de prods
    def get_domain_producto(self):
        domain = []
        if(self.ppf_comprobante.comp_tipo_comp == 'e'):
            return [('pro_puede_ser_vendido','=', True)]
        if(self.ppf_comprobante.comp_tipo_comp == 'r'):
            return [('pro_puede_ser_comprado','=', True)]
        return domain

    #metodo de creacion de linea de factura y su asociacion al comprobante en curso
    def crear_linea(self):
        vals = {
            'lcp_producto' : self.ppf_producto.id,
            'lcp_descripcion_producto' : self.ppf_descripcion_producto,
            'lcp_comprobante': self.ppf_comprobante.id,
            'lcp_cantidad': self.ppf_cantidad,
            'lcp_precio': self.ppf_precio,
            'lcp_moneda': self.ppf_moneda.id,
        }
        nva_lineaf = self.env['asw.linea_comprobante'].create(vals)