Commit a8461f78 by Juan

A pasar a master

1 parent b64eba18
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
Se Agrega generacion manual para notas de credito y notas Se Agrega generacion manual para notas de credito y notas
de debito de debito
Se agrega soporte a gastos mobil Se agrega soporte a gastos mobil
Se agrega cobro Avanzado
""", """,
'author': 'HGT', 'author': 'HGT',
......
...@@ -26,6 +26,11 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -26,6 +26,11 @@ class hgt_cobro_multiple(models.TransientModel):
string='Caja Efectivo', string='Caja Efectivo',
) )
caja_cheque = fields.Many2one(
comodel_name='asw.caja',
string='Caja Cheques',
)
nota = fields.Text(string='nota',readonly=True) nota = fields.Text(string='nota',readonly=True)
pcw_referencia = fields.Char( pcw_referencia = fields.Char(
...@@ -96,9 +101,17 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -96,9 +101,17 @@ class hgt_cobro_multiple(models.TransientModel):
string='Transferencias Emitidas' string='Transferencias Emitidas'
) )
#pcw_tarjetas = fields.Many2many(
# comodel_name='asw.valores',
# relation='pago_cliente_tarjeta',
# column1='pago_cliente_id',
# column2='asw_valores_id',
# string='Tarjetas'
#)
pcw_tarjetas = fields.Many2many( pcw_tarjetas = fields.Many2many(
comodel_name='asw.valores', comodel_name='asw.valores',
relation='pago_cliente_tarjeta', relation='hgt_pago_cliente_tarjeta',
column1='pago_cliente_id', column1='pago_cliente_id',
column2='asw_valores_id', column2='asw_valores_id',
string='Tarjetas' string='Tarjetas'
...@@ -123,6 +136,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -123,6 +136,7 @@ class hgt_cobro_multiple(models.TransientModel):
comodel_name='asw.comprobante' comodel_name='asw.comprobante'
) )
###########################################Validaciones y calculos ###################################### ###########################################Validaciones y calculos ######################################
@api.depends('pcw_total') @api.depends('pcw_total')
def _compute_cliente(self): def _compute_cliente(self):
if not len(self.pcw_cliente) == 0: if not len(self.pcw_cliente) == 0:
...@@ -146,14 +160,12 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -146,14 +160,12 @@ class hgt_cobro_multiple(models.TransientModel):
Texto = f"{Texto}\n{factura.display_name} {factura.comp_adeudado}" Texto = f"{Texto}\n{factura.display_name} {factura.comp_adeudado}"
if not len(idc) == 1: if not len(idc) == 1:
raise UserError("Solo se puede cobrar a un cliente a la vez, cierre la ventana y seleccione de vuelta los comprobantes a operar") raise UserError("Solo se puede cobrar a un cliente a la vez, cierre la ventana y seleccione de vuelta los comprobantes a operar")
Texto = f"{Texto}\nTotal {Total}" Texto = f"{Texto}\nTotal {Total}".replace(".",",")
self.pcw_cliente = idc[0] self.pcw_cliente = idc[0]
self.nota = Texto self.nota = Texto
@api.depends('pcw_efectivo', 'pcw_che_recibidos', 'pcw_transferencias_recibidas', 'pcw_tarjetas', 'pcw_chq_resiv2', 'pcw_transferencias_emitidas', 'pcw_retencion_recibida','pcw_retenciones') @api.depends('pcw_efectivo', 'pcw_che_recibidos', 'pcw_transferencias_recibidas', 'pcw_tarjetas', 'pcw_chq_resiv2', 'pcw_transferencias_emitidas', 'pcw_retencion_recibida','pcw_retenciones')
def _calcular_total(self): def _calcular_total(self):
total = 0 total = 0
...@@ -193,16 +205,26 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -193,16 +205,26 @@ class hgt_cobro_multiple(models.TransientModel):
if(not factura.comp_talonario.tal_genera_cta_cte): if(not factura.comp_talonario.tal_genera_cta_cte):
raise Warning(f"Factura {factura.display_name} no mueve cuenta corriente no puedo manejarla") raise Warning(f"Factura {factura.display_name} no mueve cuenta corriente no puedo manejarla")
total = self.LogicaFacturas(factura,resivo,total) total = self.LogicaFacturas(factura,resivo,total)
#obserbacion = f"""{obserbacion}\n{factura.display_name}"""
resivo.aumentar_numeracion_talonario() resivo.aumentar_numeracion_talonario()
resivo.comp_fecha_validacion = fields.Datetime.now() resivo.comp_fecha_validacion = fields.Datetime.now()
resivo.generar_monto_adeudado() resivo.generar_monto_adeudado()
resivo.validar_nro_comprobante() resivo.validar_nro_comprobante()
self.ArmarObservaciones(facturas,resivo)
resivo.generar_monto_adeudado()#a prueba
return(resivo) return(resivo)
def ArmarObservaciones(self,facturas,resivo):
obserbacion = "\nFacturas Afectadas | Total | Saldo"
for factura in facturas:
obserbacion = f"""{obserbacion}\n{factura.display_name} | {factura.comp_total} | {factura.comp_adeudado}""".replace(".",",")
resivo.comp_observaciones = obserbacion
@api.multi @api.multi
def generar_recibo(self): def generar_recibo(self):
resivo = self.pago_facturas_masivo() resivo = self.pago_facturas_masivo()
self.ValoresEnCajas(resivo)
return { return {
'view_type': 'form', 'view_type': 'form',
'view_mode': 'form', 'view_mode': 'form',
...@@ -213,10 +235,10 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -213,10 +235,10 @@ class hgt_cobro_multiple(models.TransientModel):
} }
def LogicaFacturas(self,factura,resivo,total): def LogicaFacturas(self,factura,resivo,total):
print(factura.id,factura.comp_adeudado,total ) #print(f"factura {factura.display_name},adeudado {factura.comp_adeudado}, total {total}")
tmp = total tmp = total
total = total - factura.comp_adeudado total = total - factura.comp_adeudado
if total >= 0.0: if tmp >= 0.0:
self.MovimientoCuentaCorriente(factura,resivo,tmp) self.MovimientoCuentaCorriente(factura,resivo,tmp)
#if total < 0.0: #if total < 0.0:
# total = 0.0 # total = 0.0
...@@ -229,7 +251,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -229,7 +251,7 @@ class hgt_cobro_multiple(models.TransientModel):
movimiento = factura.comp_adeudado movimiento = factura.comp_adeudado
if factura.comp_adeudado >= total: #diff < 0.0: if factura.comp_adeudado >= total: #diff < 0.0:
movimiento = total movimiento = total
print( movimiento, factura.display_name) #print( movimiento, factura.display_name)
if movimiento < 0.0: if movimiento < 0.0:
raise Warning("debug") raise Warning("debug")
cta_cte = self.env['asw.cta_cte'].create({ cta_cte = self.env['asw.cta_cte'].create({
...@@ -298,3 +320,42 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -298,3 +320,42 @@ class hgt_cobro_multiple(models.TransientModel):
record.write({'val_comprobante' : self.pcw_recibo.id, 'val_tipo' : tarjeta_credito.id}) record.write({'val_comprobante' : self.pcw_recibo.id, 'val_tipo' : tarjeta_credito.id})
if(record.val_tipo.tv_descripcion == 'Tarjeta de Débito'): if(record.val_tipo.tv_descripcion == 'Tarjeta de Débito'):
record.write({'val_comprobante' : self.pcw_recibo.id, 'val_tipo' : tarjeta_debito.id}) record.write({'val_comprobante' : self.pcw_recibo.id, 'val_tipo' : tarjeta_debito.id})
########################################LOGICA GESTION DE VALORES Y CAJAS ######################################################
def ValoresEnCajas(self,resivo):
#Clasifico el tipo de valor
efectivo = []
cheques = []
transferencias = []
tarjetas = []
for valor in resivo.comp_valores:
if valor.val_tipo.tv_tipo == "ef":
efectivo.append(valor)
if valor.val_tipo.tv_tipo == "chr":
cheques.append(valor)
if valor.val_tipo.tv_tipo == "trr":
transferencias.append(valor)
if valor.val_tipo.tv_tipo == "ta":
tarjetas.append(valor)
#Asocio segun el tipo de valor
self.MoverValores(efectivo, self.caja_efectivo.id)
self.MoverValores(cheques, self.caja_cheque.id)
self.MoverValores(transferencias)
self.MoverValores(tarjetas)
def MoverValores(self, valores, caja_destino_id=True):
"""mueve los valores de los recivos segun se configure"""
for valor in valores:
if caja_destino_id == True:
caja_destino_id = valor.valor_caja_id.id
if caja_destino_id == False:
raise Warning("No esta definida una de las cajas, todos los valores deven tener cajas asignadas")
valor.valor_caja_id.caja_valor_ids = [(3,valor.id,)]#elimino el valor de la caja actual
valor.valor_caja_id = caja_destino_id #cambio la caja en el valor
valor.valor_caja_id.caja_valor_ids = [(4,valor.id,)]#agrego el valor a la caja destino
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<notebook colspan="4"> <notebook colspan="4">
<page string="Cheques Recibidos"> <page string="Cheques Recibidos">
<group col="4"> <group col="4">
<field name="caja_cheque" colspan='4'/>
<field name="pcw_chq_resiv2" colspan='4' nolabel='1' widget='one2many' context="{'default_val_razon_social' : pcw_cli_razon_social}"> <field name="pcw_chq_resiv2" colspan='4' nolabel='1' widget='one2many' context="{'default_val_razon_social' : pcw_cli_razon_social}">
<tree create="1" delete="1" edit="1" editable="bottom"> <tree create="1" delete="1" edit="1" editable="bottom">
<field name="che_banco"/> <field name="che_banco"/>
...@@ -58,6 +59,7 @@ ...@@ -58,6 +59,7 @@
<tree create="1" delete="1" edit="1" editable="bottom"> <tree create="1" delete="1" edit="1" editable="bottom">
<field name="val_tipo" domain="[('tv_tipo','=', 'ta' )]" string='Tarjeta' options="{'no_create': True, 'no_create_edit':True}"/> <field name="val_tipo" domain="[('tv_tipo','=', 'ta' )]" string='Tarjeta' options="{'no_create': True, 'no_create_edit':True}"/>
<field name="val_nro_pago"/> <field name="val_nro_pago"/>
<field name="valor_caja_id"/>
<field name="val_monto" required='1'/> <field name="val_monto" required='1'/>
</tree> </tree>
</field> </field>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!