prod_pfinal.py
2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# -*- 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 Final',
currency_field='ppf_moneda',
store=True
)
ppf_precio_bruto= fields.Monetary(
string=u'Precio Bruto',
currency_field='ppf_moneda',
readonly=True,
store=True,
compute="obtener_ppf_precio_bruto"
)
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,
)
ppf_impuesto = fields.Many2one(
string=u'IVA',
comodel_name='asw.impuesto',
ondelete='set null',
)
#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):
pb = self.ppf_precio_bruto
print("pb es "+ str(pb))
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': pb,
'lcp_importe': self.ppf_precio,
'lcp_moneda': self.ppf_moneda.id,
'lcp_iva': self.ppf_impuesto.id,
}
nva_lineaf = self.env['asw.linea_comprobante'].create(vals)
@api.depends('ppf_impuesto','ppf_precio')
def obtener_ppf_precio_bruto(self):
pnet= self.ppf_precio
iva = self.ppf_impuesto.imp_porcentaje
self.ppf_precio_bruto = ((100-iva)/100)*self.ppf_precio