Commit 8b63cdeb by Juan

retomamos trabajo

1 parent 45fda01b
...@@ -16,9 +16,13 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -16,9 +16,13 @@ class hgt_cobro_multiple(models.TransientModel):
# Informacion pago # Informacion pago
pcw_cliente = fields.Many2one( pcw_cliente = fields.Many2one(
comodel_name='asw.cliente', comodel_name='asw.cliente',
string='Cliente' string='Cliente',
readonly=True,
compute='_compute_cliente',
) )
nota = fields.Text(string='nota',readonly=True)
pcw_referencia = fields.Char( pcw_referencia = fields.Char(
string=u'Referencia', string=u'Referencia',
) )
...@@ -54,6 +58,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -54,6 +58,7 @@ class hgt_cobro_multiple(models.TransientModel):
column2='asw_cliente_id', column2='asw_cliente_id',
string='Cheques Recibidos' string='Cheques Recibidos'
) )
pcw_chq_emitidos = fields.Many2many( pcw_chq_emitidos = fields.Many2many(
comodel_name='asw.cheque', comodel_name='asw.cheque',
relation='pago_cliente_chq_emitido', relation='pago_cliente_chq_emitido',
...@@ -61,6 +66,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -61,6 +66,7 @@ class hgt_cobro_multiple(models.TransientModel):
column2='asw_cliente_id', column2='asw_cliente_id',
string='Cheques Emitidos' string='Cheques Emitidos'
) )
pcw_transferencias_recibidas = fields.Many2many( pcw_transferencias_recibidas = fields.Many2many(
comodel_name='asw.valores', comodel_name='asw.valores',
relation='pago_cliente_transferencia_recibida', relation='pago_cliente_transferencia_recibida',
...@@ -68,6 +74,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -68,6 +74,7 @@ class hgt_cobro_multiple(models.TransientModel):
column2='asw_valores_id', column2='asw_valores_id',
string='Transferencias Recibidas' string='Transferencias Recibidas'
) )
pcw_transferencias_emitidas = fields.Many2many( pcw_transferencias_emitidas = fields.Many2many(
comodel_name='asw.valores', comodel_name='asw.valores',
relation='pago_cliente_transferencia_emitida', relation='pago_cliente_transferencia_emitida',
...@@ -75,6 +82,7 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -75,6 +82,7 @@ class hgt_cobro_multiple(models.TransientModel):
column2='asw_valores_id', column2='asw_valores_id',
string='Transferencias Emitidas' string='Transferencias Emitidas'
) )
pcw_tarjetas = fields.Many2many( pcw_tarjetas = fields.Many2many(
comodel_name='asw.valores', comodel_name='asw.valores',
relation='pago_cliente_tarjeta', relation='pago_cliente_tarjeta',
...@@ -83,17 +91,52 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -83,17 +91,52 @@ class hgt_cobro_multiple(models.TransientModel):
string='Tarjetas' string='Tarjetas'
) )
pcw_retenciones = fields.Many2many(
comodel_name='asw.valores',
relation='pago_cliente_retencion',
column1='pago_cliente_id',
column2='asw_valores_id',
string='Retenciones'
)
# Total de pago # Total de pago
pcw_total = fields.Monetary( pcw_total = fields.Monetary(
string='Total Recibido', string='Total Recibido',
compute='_calcular_total', compute='_calcular_total',
currency_field='cli_moneda_empresa' currency_field='cli_moneda_empresa'
) )
pcw_recibo = fields.Many2one( pcw_recibo = fields.Many2one(
string='Recibo', string='Recibo',
comodel_name='asw.comprobante' comodel_name='asw.comprobante'
) )
@api.depends('pcw_total')
def _compute_cliente(self):
if not len(self.pcw_cliente) == 0:
return(None)
context = self.env.context
active_ids = context.get('active_ids')
facturas = self.env['asw.comprobante'].search([('id', 'in', active_ids)])
idc = []
Texto = "Facturas que se abonaran:"
Total = 0
for factura in facturas:
if not factura.comp_cliente.id in idc:
idc.append(factura.comp_cliente.id)
if not factura.comp_adeudado > 0:
raise UserError(f"Factura {factura.display_name} ya esta pagada o valor nulo")
if factura.comp_estado in ["b","c"]:
raise UserError(f"Factura {factura.display_name} en estado invalido para cobrar")
#if (factura.comp_talonario.tal_tipo == "e"):
# raise UserError(f"El comprobante {factura.display_name} no es de venta")
Total = Total + factura.comp_adeudado
Texto = f"{Texto}\n{factura.display_name} {factura.comp_adeudado}"
if not len(idc) == 1:
raise UserError("Solo se puede cobrar a un cliente a la vez")
Texto = f"{Texto}\nTotal {Total}"
self.pcw_cliente = idc[0]
self.nota = Texto
...@@ -107,3 +150,20 @@ class hgt_cobro_multiple(models.TransientModel): ...@@ -107,3 +150,20 @@ class hgt_cobro_multiple(models.TransientModel):
for factura in facturas: for factura in facturas:
if factura.comp_adeudado > 0: if factura.comp_adeudado > 0:
factura.pago_rapido(self.forma_pago) factura.pago_rapido(self.forma_pago)
@api.depends('pcw_efectivo', 'pcw_che_recibidos', 'pcw_transferencias_recibidas', 'pcw_tarjetas', 'pcw_chq_emitidos', 'pcw_transferencias_emitidas', 'pcw_retencion_recibida','pcw_retenciones')
def _calcular_total(self):
total = 0
for record in self.pcw_che_recibidos:
total = total + record.che_monto
for record in self.pcw_transferencias_recibidas:
total = total + record.val_monto
for record in self.pcw_chq_emitidos:
total = total + record.che_monto
for record in self.pcw_transferencias_emitidas:
total = total + record.val_monto
for record in self.pcw_tarjetas:
total = total + record.val_monto
for record in self.pcw_retenciones:
total = total + record.val_monto
self.pcw_total = total + self.pcw_efectivo + self.pcw_retencion_recibida
\ No newline at end of file \ No newline at end of file
...@@ -6,11 +6,18 @@ ...@@ -6,11 +6,18 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<field name="pcw_cli_razon_social" invisible='1'/> <field name="pcw_cli_razon_social" invisible='1'/>
<group col="4"> <group col="2">
<field name="pcw_cliente" colspan='4' domain="[('cli_es_cliente','=', True )]"/> <group col="2" >
<field name="pcw_efectivo" colspan='2'/> <field name="pcw_cliente" colspan='2' domain="[('cli_es_cliente','=', True )]"/>
<field name="pcw_retencion_recibida" colspan="2"/>
<field name="pcw_referencia" /> <field name="pcw_referencia" />
<field name="pcw_efectivo" colspan='2'/>
</group>
<group string="Detalles" >
<field name="nota" nolabel="1"/>
</group>
</group>
<group col="4">
<!-- <field name="pcw_retencion_recibida" colspan="2"/>-->
<notebook colspan="4"> <notebook colspan="4">
<page string="Cheques Recibidos"> <page string="Cheques Recibidos">
<group col="4"> <group col="4">
...@@ -51,6 +58,18 @@ ...@@ -51,6 +58,18 @@
</field> </field>
</group> </group>
</page> </page>
<page string="Retenciones">
<group col="4">
<field name="pcw_retenciones" colspan='4' nolabel='1' widget='one2many' >
<tree create="1" delete="1" edit="1" editable="bottom">
<field name="val_tipo" domain="[('tv_tipo','=', 'rr' )]" string='Retencion' options="{'no_create': True, 'no_create_edit':True}"/>
<field name="val_nro_pago"/>
<field name="val_monto" required='1'/>
</tree>
</field>
</group>
</page>
</notebook> </notebook>
<br/> <br/>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!