Commit 336dbb0e by Maria Agustina

terminada 389

1 parent eb046ca0
from . import caja
from . import valores
from . import turno
from . import usuario
\ No newline at end of file
from . import usuario
from . import comprobantes
from . import resumen_comprobante
from . import resumen_recibo
\ No newline at end of file
No preview for this file type
......@@ -9,3 +9,10 @@ class asw_caja(models.Model):
comodel_name = 'asw.turno.caja',
inverse_name = 'turno_caja'
)
def get_caja_default(self):
user = self.env.uid
usuario_obj = self.env['res.users'].search([('id', '=', user)])
turno_act_user = usuario_obj.get_turno_activo()
caja = self.env['asw.caja'].search([('caja_turno', '=', turno_act_user.id)], limit=1)
return caja
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class asw_comprobante(models.Model):
_inherit = 'asw.comprobante'
comp_turno = fields.Many2one(
string='Turno',
comodel_name='asw.turno.caja',
ondelete='set null',
)
@api.onchange('comp_talonario')
def proponer_caja(self):
#cambia el metodo de propuesta de cajas a uno que proponga la caja del turno vigente
result = {
'value' : {
'comprobante_caja_ids': self.env['asw.caja'].get_caja_default()
}
}
return result
@api.onchange('comprobante_caja_ids')
def _onchange_comprobante_caja_ids(self):
#agrega a dominio cajas condicion d que esten activas
result = {}
result['domain'] = []
usuario_log= self.env.uid
registros = self.env['asw.caja'].search([('caja_active', '=', True),'|',('caja_usuario_ids','in',usuario_log),('caja_usuario_ids','=',False)])
result['domain'] = {
'comprobante_caja_ids' : [('id', 'in', registros.ids)]
}
return result
# comp_turno_required = fields.Boolean(
# string='Required?',
# compute='_compute_turno_required'
# )
# @api.depends('comp_tal_menu','comp_fecha','comp_tipo_comp')
# def _compute_turno_required(self):
# for record in self:
# record.comp_turno_required = (
# (record.comp_tal_menu in ['rec', 'fac']) and
# (record.comp_fecha == str(date.today())) and
# (record.comp_tipo_comp in ['e'])
# )
# # evita que se creen comprobantes hasta que no se abra un turno
# @api.model
# def default_get(self,vals):
# result = super(asw_comprobante, self).default_get(vals)
# context = self.env.context
# # si es un comprobante recibido (de compras), no hacer ninguna validcion
# if 'tipo' in context and context['tipo'] == 'r':
# return result
# turnos_del_dia = self.env.user.get_turno_activo()
# if len(turnos_del_dia) > 0:
# result['comp_turno'] = turnos_del_dia[0].id
# return result
# @api.model
# def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
# res = super(asw_comprobante, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar,submenu=submenu)
# if 'comp_turno' in res['fields']:
# turnos_del_dia = self.env.user.get_turno_activo()
# res['fields']['comp_turno']['domain'] = [('id','in',turnos_del_dia.ids)]
# return res
# def agregar_valor(self,importe, valor):
# nvalor = super(asw_comprobante, self).agregar_valor(importe,valor)
# self.asociar_turno(nvalor)
# return nvalor
# def validar(self):
# result = super(asw_comprobante, self).validar()
# self.asociar_valores_turno()
# def asociar_valores_turno(self):
# for val in self.comp_valores:
# self.asociar_turno(val)
# def asociar_turno(self, valor):
# valor.write({ 'val_turno' : self.comp_turno.id, 'val_caja' : self.comp_turno.turno_caja.id })
# def cancelar(self):
# # import ipdb; ipdb.set_trace()
# super(asw_comprobante,self).cancelar()
# # self.comp_turno.unlink()
# for valor in self.comp_valores:
# self.disociar_turno(valor)
# def disociar_turno(self,valor):
# valor.write({ 'val_turno' : False, 'val_caja' : False })
\ No newline at end of file
# -*- coding: utf-8 -*-
###############################################################################
# License, author and contributors information in: #
# __manifest__.py file at the root folder of this module. #
###############################################################################
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
class asw_resumen_comprobante(models.TransientModel):
_name = 'asw.resumen_comprobante'
_description = u'Resumen comprobante'
rcomp_talonario = fields.Many2one(
string = 'Talonario',
comodel_name = 'asw.talonario',
on_delete = 'set null'
)
rcomp_monto = fields.Float(
string = 'Monto'
)
rcomp_adeudado = fields.Float(
string = 'Adeudado'
)
rcomp_cnt_cbte = fields.Integer(
string=u'Cnt. Comp.',
)
\ No newline at end of file
# -*- coding: utf-8 -*-
###############################################################################
# License, author and contributors information in: #
# __manifest__.py file at the root folder of this module. #
###############################################################################
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
class asw_resumen_recibo(models.TransientModel):
_name = 'asw.resumen_recibo'
_description = u'Resumen recibo'
rrec_tipo = fields.Many2one(
string = 'Tipo valor',
comodel_name = 'asw.tipos_valores',
on_delete = 'set null'
)
rrec_monto = fields.Float(
string = 'Monto'
)
rrec_cnt_cbte = fields.Integer(
string=u'Cnt. Comp.',
)
......@@ -47,12 +47,6 @@ class asw_turno(models.Model):
default = True
)
tur_val_ids = fields.One2many(
string=u'Valores',
comodel_name='asw.valores',
inverse_name='val_turno',
)
turno_valor_ids = fields.Many2many(
related='turno_caja.caja_valor_ids'
)
......@@ -86,8 +80,8 @@ class asw_turno(models.Model):
def _compute_turno_turno_monto_final(self):
for record in self:
valores_efectivo = record.tur_val_ids.filtered(lambda val: val.val_tipo_elegido == 'ef' and
(val.val_comprobante.comp_estado == 'p' or len(val.val_comprobante) == 0))
valores_efectivo = record.turno_valor_ids.filtered(lambda val: val.val_tipo_elegido == 'ef' and
(val.val_comprobante.comp_estado == 'p' or len(val.val_comprobante) == 0) and val.val_nro_pago != "Cierre turno de Caja")
#import ipdb; ipdb.set_trace()
record.turno_monto_final = sum(valores_efectivo.mapped('val_monto_valorizado'))
......@@ -150,74 +144,78 @@ class asw_turno(models.Model):
def abrir_turno(self):
self.turno_estado = 'abierto'
# turno_comprobantes = fields.One2many(
# string = 'Comprobantes',
# comodel_name = 'asw.comprobante',
# inverse_name = 'comp_turno'
# )
# turno_resumen_ventas = fields.Many2many(
# string = 'Resumen comp. ventas',
# comodel_name = 'asw.resumen_comprobante',
# relation = 'asw_turno_resumen_ventas',
# column1 = 'turno_id',
# column2 = 'resumen_comprobante_id',
# compute = '_compute_resumen_ventas'
# )
# turno_resumen_recibos = fields.Many2many(
# string = 'Resumen recibos ventas',
# comodel_name = 'asw.resumen_recibo',
# relation = 'asw_turno_resumen_recibos',
# column1 = 'turno_id',
# column2 = 'resumen_recibo_id',
# compute = '_compute_resumen_recibos'
# )
# def _compute_resumen_recibos(self):
# for record in self:
# valores = record.tur_val_ids
# fp = valores.mapped('val_tipo')
# lineas_resumen = []
# for fpago in fp:
# vfpago = record.tur_val_ids.filtered(lambda a: a.val_tipo.id == fpago.id)
# valores = vfpago.mapped('val_monto_valorizado')
# total_valores = sum(valores)
turno_comprobantes = fields.One2many(
string = 'Comprobantes',
comodel_name = 'asw.comprobante',
inverse_name = 'comp_turno'
)
turno_resumen_ventas = fields.Many2many(
string = 'Resumen comp. ventas',
comodel_name = 'asw.resumen_comprobante',
relation = 'asw_turno_resumen_ventas',
column1 = 'turno_id',
column2 = 'resumen_comprobante_id',
compute = '_compute_resumen_ventas'
)
turno_resumen_recibos = fields.Many2many(
string = 'Resumen recibos ventas',
comodel_name = 'asw.resumen_recibo',
relation = 'asw_turno_resumen_recibos',
column1 = 'turno_id',
column2 = 'resumen_recibo_id',
compute = '_compute_resumen_recibos'
)
def _compute_resumen_recibos(self):
#busca valores de entrada que no sean monto inivial de caja y los divide por tipo de valor
for record in self:
valores = record.turno_valor_ids
fp = valores.mapped('val_tipo')
lineas_resumen = []
for fpago in fp:
vfpago = record.turno_valor_ids.filtered(lambda a: a.val_tipo.id == fpago.id and a.val_nro_pago != "Monto Inicial Turno" and a.val_entrada_salida in ['e'])
if vfpago:
valores = vfpago.mapped('val_monto_valorizado')
total_valores = sum(valores)
linea_resumen = self.env['asw.resumen_recibo'].create({
'rrec_tipo': fpago.id,
'rrec_monto': total_valores,
'rrec_cnt_cbte' : len(valores)
})
lineas_resumen.append(linea_resumen.id)
# linea_resumen = self.env['asw.resumen_recibo'].create({
# 'rrec_tipo': fpago.id,
# 'rrec_monto': total_valores,
# 'rrec_cnt_cbte' : len(valores)
# })
# lineas_resumen.append(linea_resumen.id)
# record.turno_resumen_recibos = [(6,0,lineas_resumen)]
record.turno_resumen_recibos = [(6,0,lineas_resumen)]
# def _compute_resumen_ventas(self):
# comprobantes_venta = self.filtrar_comprobantes('fac', 'e')
# lineas_resumen = []
# talonarios = comprobantes_venta.mapped('comp_talonario')
# for tal in talonarios:
# lineas_talonario = comprobantes_venta.filtered(lambda r: r.comp_talonario.id == tal.id)
# linea_resumen = self.env['asw.resumen_comprobante'].create({
# 'rcomp_talonario': tal.id,
# 'rcomp_monto': sum(lineas_talonario.mapped('comp_total_consigno')),
# 'rcomp_adeudado': sum(lineas_talonario.mapped('comp_adeudado_consigno')),
# 'rcomp_cnt_cbte' : len(lineas_talonario)
# })
# lineas_resumen.append(linea_resumen.id)
def _compute_resumen_ventas(self):
comprobantes_venta = self.filtrar_comprobantes('fac', 'e')
print("la cant de compr filtrados: " + str(len(comprobantes_venta)))
lineas_resumen = []
talonarios = comprobantes_venta.mapped('comp_talonario')
for tal in talonarios:
lineas_talonario = comprobantes_venta.filtered(lambda r: r.comp_talonario.id == tal.id)
linea_resumen = self.env['asw.resumen_comprobante'].create({
'rcomp_talonario': tal.id,
'rcomp_monto': sum(lineas_talonario.mapped('comp_total_consigno')),
'rcomp_adeudado': sum(lineas_talonario.mapped('comp_adeudado_consigno')),
'rcomp_cnt_cbte' : len(lineas_talonario)
})
lineas_resumen.append(linea_resumen.id)
# self.turno_resumen_ventas = [(6,0,lineas_resumen)]
self.turno_resumen_ventas = [(6,0,lineas_resumen)]
# def filtrar_comprobantes(self, menu, tipo):
# # : FILTRAR POR COMPROBANTES ADEUDADOS O PAGADOS, los cancelados dejarlos afuera
# comp_filtrados = self.turno_comprobantes.filtered(
# lambda a : (a.comp_tal_menu == menu and a.comp_tipo_comp == tipo))
def filtrar_comprobantes(self, menu, tipo):
# FILTRAR POR COMPROBANTES CORRESPONDIENTES A ESTE TURNO Y ADEUDADOS O PAGADOS, los cancelados dejarlos afuera
lista_comp = self.env['asw.comprobante'].search([('comprobante_caja_ids', '=', self.turno_caja.id),('comp_estado', 'in', ['a','p'])])
comp_filtrados = lista_comp.filtered(
lambda a : (a.comp_tal_menu == menu and a.comp_tipo_comp == tipo))
# return comp_filtrados
\ No newline at end of file
return comp_filtrados
\ No newline at end of file
......@@ -38,7 +38,7 @@
<field name="turno_diferencia" />
</group>
<!-- <group string="Resumen comp. ventas">
<group string="Resumen comp. ventas">
<field name="turno_resumen_ventas" nolabel='1'>
<tree>
<field name="rcomp_talonario"/>
......@@ -58,12 +58,10 @@
</tree>
</field>
</group>
-->
</page>
<page string="Valores" >
<!-- <field name="tur_val_ids" > -->
<field name="turno_valor_ids" >
<tree string="Caption" create="true" delete="true" edit="true">
<field name="val_tipo" />
......
......@@ -54,8 +54,8 @@ class asw_cierre_turno(models.TransientModel):
val_co = self.env['asw.valores'].crear_valor_salida(caja_turno_val_tot,caja_turno.id)
val_de = self.env['asw.valores'].crear_valor_entrada(caja_turno_val_tot,caja_gerencial.id)
val_co.write({'val_nro_pago': 'Cierre turno de '+ str(caja_turno.caja_nombre)})
val_de.write({'val_nro_pago': 'Cierre turno de '+ str(caja_turno.caja_nombre)})
val_co.write({'val_nro_pago': 'Cierre turno de Caja'})
val_de.write({'val_nro_pago': 'Cierre turno de Caja'})
caja_turno.write({
'caja_valor_ids' : [(4,val_co.id)]
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!