Commit 55cd7c04 by Maria Agustina

cobranzas terminado

1 parent ff983ac4
......@@ -64,7 +64,13 @@ class vnt_cobros(models.Model):
)
co_notasdeb = fields.Many2many(
string='Notas Débito',
string=u'Notas Débito',
comodel_name='asw.comprobante',
ondelete='restrict',
)
co_notascred = fields.Many2many(
string=u'Notas Crédito',
comodel_name='asw.comprobante',
ondelete='restrict',
)
......@@ -144,6 +150,8 @@ class vnt_cobros(models.Model):
def procesar_deuda(self):
if self.co_total == 0:
raise UserError('No hay valores seleccionados a confirmar')
if self.co_total_interes == 0:
raise UserError('No hay intereses a cobrar, proceda al cobro de la factura en el modo habitual')
else:
for li in self.co_lin_deuda:
if li.ld_select:
......@@ -181,6 +189,14 @@ class vnt_cobros(models.Model):
comp_moneda = fac.comp_moneda.id,
#comp_nota_credito = fac.id,
)
nota_debito.write({
'referencia_orig_ptv': tal_pto,
'referencia_orig_numero': fac.comp_nro,
'referencia_orig_letra': tal_letra,
'referencia_orig_fact': fac.id,
})
#crear lineas nd
inter_prod = self.env['asw.producto'].search([('prod_descripcion','=','INTERES')])
linea_comp = self.env['asw.linea_comprobante'].create({
......
......@@ -18,6 +18,7 @@ class asw_comprobante(models.Model):
def cancelarNotaD(self):
self.cancelar()
self.comp_estado = 'c'
return {
"type": "ir.actions.do_nothing",
}
......
......@@ -152,6 +152,7 @@ class vnt_linea_deuda(models.Model):
def pagar_facturas(self):
self.ld_factura.comp_fecha_validacion = fields.Datetime.now()
return (True)
# def cobrar_todo(self):
# self.ld_cobro = 'todo'
......
......@@ -11,6 +11,7 @@ class vnt_confirmar_cancelacion(models.TransientModel):
cc_notas = fields.Many2many(
string=u"Nota Débito",
comodel_name='asw.comprobante',
domain = [('comp_talonario.tal_codigo','=','NDEB')]
)
cc_facturas = fields.Many2many(
......@@ -26,11 +27,13 @@ class vnt_confirmar_cancelacion(models.TransientModel):
def cancelar(self):
self.chequear_cancelacion_notas()
self.cancelar_facturas()
self.cancelar_recibo()
self.crear_notacred()
self.cc_cobro.cancelar_cobro()
def cancelar_facturas(self):
for fac in self.cc_facturas:
if fac.comp_talonario.tal_codigo not in ['NDEB']:
fac.comp_estado = 'a'
def chequear_cancelacion_notas(self):
......@@ -38,7 +41,12 @@ class vnt_confirmar_cancelacion(models.TransientModel):
if nota.comp_fecha_cancelacion == False:
raise UserError("Todas las notas deben ser canceladas para continuar con la cancelación")
def cancelar_recibo(self):
comprobante = self.cc_cobro.co_recibos.filtered(lambda t: t.comp_talonario.tal_menu == 'rec')
comprobante.comp_fecha_cancelacion = datetime.today()
def crear_notacred(self):
lista =[]
comprobante = self.cc_cobro.co_recibos.filtered(lambda t: t.comp_talonario.tal_menu == 'rec')
referencia = 'Reintegro del comprobante : ' + comprobante.comp_talonario.tal_codigo + "/" +comprobante.comp_nro_letras
......@@ -58,14 +66,33 @@ class vnt_confirmar_cancelacion(models.TransientModel):
comp_nota_credito = comprobante.id
)
contra_comprobante.write({
'referencia_orig_ptv': comprobante.comp_talonario.tal_pto_vta,
'referencia_orig_numero': comprobante.comp_nro,
'referencia_orig_letra': comprobante.comp_talonario.tal_letra,
'referencia_orig_fact': comprobante.id,
})
contra_comprobante.comp_fecha = datetime.today()
contra_comprobante.duplicar_lineas(comprobante)
comprobante.write({
'comp_nota_credito' : contra_comprobante.id
#linea de NCred
inter_prod = self.env['asw.producto'].search([('prod_descripcion','=','INTERES')])
linea_comp = self.env['asw.linea_comprobante'].create({
'lcp_producto': inter_prod.id,
'lcp_comprobante': contra_comprobante.id,
'lcp_precio': comprobante.comp_total,
'lcp_importe': comprobante.comp_total,
})
contra_comprobante.validar()
#se agrega al recibo original
comprobante.write({
'comp_nota_credito' : contra_comprobante.id
})
#La agrego a lista de faturas en cobro
lista.append(contra_comprobante.id)
self.cc_cobro.co_notascred = lista
else:
raise UserError('No existe talonario para la Nota de Crédito correspondiente. Créelo o diríjase a soporte para que lo haga, y vuelva a este menú')
\ No newline at end of file
......@@ -36,12 +36,13 @@ class asw_pago_deuda_wizzard(models.TransientModel):
lista.append(self.pcw_recibo.id)
self.pcw_cobro_deu.co_recibos = lista
for lin in self.pcw_cobro_deu.co_lin_deuda:
lin.pagar_facturas()
#for lin in self.pcw_cobro_deu.co_lin_deuda:
#lin.pagar_facturas()
accion = self.get_action_navega('asw_recibos_list_action', self.pcw_recibo.id)
return accion
def chequear_montos(self):
if self.pcw_totalcobrar > self.pcw_total:
raise UserError("El monto adeudado aún no fue saldado")
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!