Commit 336dbb0e by Maria Agustina

terminada 389

1 parent eb046ca0
......@@ -2,3 +2,6 @@ from . import caja
from . import valores
from . import turno
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
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
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)
# 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)]
# 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)
# 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))
# return comp_filtrados
\ No newline at end of file
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)
record.turno_resumen_recibos = [(6,0,lineas_resumen)]
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)]
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
......@@ -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!