Hola quiero necesito ayuda quiero saber cual seria el mejor metodo a utilzar y como realizarlo.
tengo una clase heredada del empleado y tengo una clase de facturacion....
====== clase empleado =======
class claseempleado(models.Model):
_rec_name = 'ficha'
_inherit = ['hr.employee']
ficha = fields.Integer(string='Ficha', required=True)
prueba = fields.Char(string='Base imponible', compute='_amount_all' )
fact_id = fields.Many2one('dining.room', 'factura' )
@api.multi
def _amount_all(self):
for r in self:
# prueba = 0.0
for l in r.fact_id:
prueba = l.name
r.update({
'prueba': prueba,
})
========= clase factura =======
class DiningRoom(models.Model):
_name = 'dining.room'
_order = 'create_date desc'
_rec_name = 'name'
@api.depends('product_ids', 'state')
def _amount_all(self):
for r in self:
amount_untaxed = 0.0
for l in r.product_ids:
amount_untaxed += l.price_subtotal
r.update({
'amount_untaxed': amount_untaxed,
'amount_total': amount_untaxed,
})
#dining_id = fields.Many2one('dining.room.id')
name = fields.Char(default=lambda self: _('New'), required=True, string='Nro. de Factura')
amount_untaxed = fields.Monetary(string='Base imponible', readonly=True, track_visibility='always', compute='_amount_all', store=True)
amount_total = fields.Monetary(string='Total', readonly=True, track_visibility='always', compute='_amount_all', store=True)
worker = fields.Many2one('hr.employee', 'Ficha del Trabajador:')
client = fields.Many2one('dining.room.client', 'Cedula del Cliente:')
currency_id = fields.Many2one('res.currency', 'Currency',
default=lambda self: self.env.user.company_id.currency_id.id, required=True)
product_id = fields.Many2one('dining.products', related='product_ids.product_id', string='Comida')
product_ids = fields.One2many('dining.room.order', 'order_id', string='Productos', required=True, copy=True, store=True)
state = fields.Selection([
('draft', 'Borrador'),
('done', 'Vendido'),
], string=_('Status'), readonly=True, copy=False, index=True, default='draft')
model_room = fields.Selection([
('efec','Efectivo'),
('trans','Tranferencia'),
('debi','Credito'),
],string="Pago", required=True)
date = fields.Datetime(string='Fecha', default=fields.Datetime.now)
date2 = fields.Date(string='Fecha')
option = fields.Selection([
('worker','trabajador'),
('client','cliente')
],string="opcion", required=True, default='worker')
lo que deseo saber es como puedo recorrer la tabla de las facturas y octener una suma total de todas las facturas que pertenescan un empleado en espesifico
ejemplo quiero ver buscar a jose y saber cuantas facturas tiene y sumar el total de cada factura para saber cuanto gasto..
==== clase de prueba ====
cree una clase de prueba y utilizo este metodo:
worker = fields.Many2one('hr.employee', 'Ficha del Trabajador:', compute='_get_vehicle' )
fact_id = fields.Many2one('dining.room', 'factura', )
# fact = fields.Many2one('dining.room', 'factura', )
ficha = fields.Char(string='ficha', compute='_get_vehicle')
con ete metodo accedo a la clasefactura y al selecionar una factura automaticamente me retorna el empledo perteneciente a esta factura
@api.one
@api.depends('fact_id')
def _get_vehicle(self):
if self.fact_id:
self.worker = self.fact_id.worker
# self.factura = self.fact_id.factura
else:
self.fact_id = None
Espero que alguien sepa como quiero realizar esta operacion.