Commit fc49c37f by Juan

Creo que anda

1 parent ad0e7c7d
...@@ -159,6 +159,19 @@ class hgt_cobro_multiple(models.Model): ...@@ -159,6 +159,19 @@ class hgt_cobro_multiple(models.Model):
], ],
readonly=True, readonly=True,
default="b") default="b")
rechasadas = fields.Char(string='Facturas que se ignoraran, interno',
readonly=True)
autorelacionadas = fields.Char(string='Facturas que se relacionaron forzado',
readonly=True)
total_temporal = fields.Float(string='Tatal uso interno',
readonly=True)
marcar_todos_detalles = fields.Boolean(string='Marcar todo los detalles en resivo',
default=True)
###########################################Validaciones y calculos ###################################### ###########################################Validaciones y calculos ######################################
...@@ -208,10 +221,11 @@ class hgt_cobro_multiple(models.Model): ...@@ -208,10 +221,11 @@ class hgt_cobro_multiple(models.Model):
facturas = self.pcw_comprobante#self.env['asw.comprobante'].search([('id', 'in', active_ids)],order="id asc") facturas = self.pcw_comprobante#self.env['asw.comprobante'].search([('id', 'in', active_ids)],order="id asc")
if len(facturas) == 0:#no hay facturas seleccionadas if len(facturas) == 0:#no hay facturas seleccionadas
raise Warning("No se seleccionaron facturas") raise Warning("No se seleccionaron facturas")
resivo = self.CrearValidarResivoMultiple() resivo = self.CrearValidarResivoMultiple()#Creo recibo
if self.pcw_total != resivo.comp_total: if self.pcw_total != resivo.comp_total:
raise Warning("Error al procesar el pago informar a soporte") raise Warning("Error al procesar el pago informar a soporte")#Validacion al pedo
total = self.pcw_total total = self.pcw_total
facturas = self.AgregarFacturasExtras()
for factura in facturas: for factura in facturas:
if factura.comp_estado in ["c","b"]: if factura.comp_estado in ["c","b"]:
raise Warning(f"Factura {factura.display_name} esta cancelada o sin validar no se puede Cobrar") raise Warning(f"Factura {factura.display_name} esta cancelada o sin validar no se puede Cobrar")
...@@ -226,20 +240,69 @@ class hgt_cobro_multiple(models.Model): ...@@ -226,20 +240,69 @@ class hgt_cobro_multiple(models.Model):
resivo.generar_monto_adeudado() resivo.generar_monto_adeudado()
resivo.validar_nro_comprobante() resivo.validar_nro_comprobante()
self.ArmarObservaciones(facturas,resivo) self.ArmarObservaciones(facturas,resivo)
self.AsignarSaldoPositivo(resivo)
resivo.generar_monto_adeudado()#a prueba resivo.generar_monto_adeudado()#a prueba
return(resivo) return(resivo)
def AsignarSaldoPositivo(self, recibo):
"""Luego de asignar movimientos de cuenta corrientes a las facturas seleccionada
Genero un movimiento si tengo saldo positivo para que se refleje en la cuenta corriente"""
if self.total_temporal >= self.pcw_total:#Si se adeuda mas o igual que lo pagado
return()#Corto ejecuciono
Total = self.pcw_total - self.total_temporal#Calculo cuanto sobra de lo que pago el cliente
#Metodo tomado de asw_tpv.asw.comprobantes por si queres revisar a futuro
cta_cte = self.env['asw.cta_cte'].create({
'cc_cliente' : self.pcw_cliente.id,
'cc_comprobante' : recibo.id,#Aca puede que falle
'cc_moneda' : self.pcw_cliente.create_uid.company_id.currency_id.id,# moneda de la compáñia
'cc_monto' : Total
})
def AgregarFacturasExtras(self):
"""En este paso completaremos el saldo positivo con facturas antiguas"""
self.BuscarFacturasLimite = True
#Calculo el saldo actual de la operacion seleccionada por el operador
for factura in self.pcw_comprobante:#esto deveria llamarlo con un onchange por las dudas o un boton mas seguro
self.total_temporal = self.total_temporal + factura.comp_adeudado
while (self.total_temporal < self.pcw_total) and self.BuscarFacturasLimite:#Si me sobra plata agrego una factura desde las mas viejas
self._AgregarFacturasExtras()
return(self.pcw_comprobante)
def _AgregarFacturasExtras(self):
#print("264", self.total_temporal, self.pcw_total, self.BuscarFacturasLimite)
actuales = self.pcw_comprobante.ids
dominio = [["comp_estado","not in", ["c","b"]],
["id","not in", actuales],
["comp_estado","in", ["a"]],#Se agrega reintegrado???
["comp_cliente","=",self.pcw_cliente.id],
["comp_tipo_comp","=","e"],
["comp_tal_menu","=","fac"]]
facturas = self.env["asw.comprobante"].search(dominio,order="id asc",limit=1)
#print(274, facturas, dominio)
if len(facturas) == 1:
actuales.append(facturas.id)#Si hay facturas a agregar se agrega
if self.autorelacionadas == False:#Registro las agregadas por si no quiero mostrarlas en las observaciones
self.autorelacionadas = str(facturas.id)
else:
self.autorelacionadas = f"{str(facturas.id)}, {self.autorelacionadas}"
self.total_temporal = self.total_temporal + facturas.comp_adeudado
self.pcw_comprobante = actuales
else:
self.BuscarFacturasLimite = False
return(self.pcw_comprobante)
def ArmarObservaciones(self,facturas,resivo): def ArmarObservaciones(self,facturas,resivo):
obserbacion = "\nFacturas Afectadas | Total | Saldo" obserbacion = "\nFacturas Afectadas | Total | Saldo"
for factura in facturas: for factura in facturas:
obserbacion = f"""{obserbacion}\n{factura.display_name} | {factura.comp_total} | {factura.comp_adeudado}""".replace(".",self.PuntoDecimal()) obserbacion = f"""{obserbacion}\n{factura.display_name} | {round(factura.comp_total,2)} | {round(factura.comp_adeudado,2)}""".replace(".",self.PuntoDecimal())
resivo.comp_observaciones = obserbacion resivo.comp_observaciones = obserbacion
@api.multi @api.multi
def generar_recibo(self): def generar_recibo(self):
#print(self._fields)
#raise Warning("Desarrollo")
resivo = self.pago_facturas_masivo() resivo = self.pago_facturas_masivo()
self.ValoresEnCajas(resivo) self.ValoresEnCajas(resivo)
return { return {
......
...@@ -54,6 +54,12 @@ ...@@ -54,6 +54,12 @@
<field name="bitacora" nolabel="1" colspan='2'/> <field name="bitacora" nolabel="1" colspan='2'/>
</group> </group>
</group> </group>
<group string="Configuracion" col="4">
<field name="marcar_todos_detalles"/>
<field name="total_temporal"/>
<field name="autorelacionadas"/>
<field name="rechasadas"/>
</group>
<group col="4" string="Detalles de valores" > <group col="4" string="Detalles de valores" >
<!-- <field name="pcw_retencion_recibida" colspan="2"/>--> <!-- <field name="pcw_retencion_recibida" colspan="2"/>-->
<notebook colspan="4"> <notebook colspan="4">
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!