Commit 55cd7c04 by Maria Agustina

cobranzas terminado

1 parent ff983ac4
...@@ -64,7 +64,13 @@ class vnt_cobros(models.Model): ...@@ -64,7 +64,13 @@ class vnt_cobros(models.Model):
) )
co_notasdeb = fields.Many2many( 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', comodel_name='asw.comprobante',
ondelete='restrict', ondelete='restrict',
) )
...@@ -144,6 +150,8 @@ class vnt_cobros(models.Model): ...@@ -144,6 +150,8 @@ class vnt_cobros(models.Model):
def procesar_deuda(self): def procesar_deuda(self):
if self.co_total == 0: if self.co_total == 0:
raise UserError('No hay valores seleccionados a confirmar') 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: else:
for li in self.co_lin_deuda: for li in self.co_lin_deuda:
if li.ld_select: if li.ld_select:
...@@ -181,6 +189,14 @@ class vnt_cobros(models.Model): ...@@ -181,6 +189,14 @@ class vnt_cobros(models.Model):
comp_moneda = fac.comp_moneda.id, comp_moneda = fac.comp_moneda.id,
#comp_nota_credito = fac.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 #crear lineas nd
inter_prod = self.env['asw.producto'].search([('prod_descripcion','=','INTERES')]) inter_prod = self.env['asw.producto'].search([('prod_descripcion','=','INTERES')])
linea_comp = self.env['asw.linea_comprobante'].create({ linea_comp = self.env['asw.linea_comprobante'].create({
......
...@@ -18,6 +18,7 @@ class asw_comprobante(models.Model): ...@@ -18,6 +18,7 @@ class asw_comprobante(models.Model):
def cancelarNotaD(self): def cancelarNotaD(self):
self.cancelar() self.cancelar()
self.comp_estado = 'c'
return { return {
"type": "ir.actions.do_nothing", "type": "ir.actions.do_nothing",
} }
......
...@@ -152,6 +152,7 @@ class vnt_linea_deuda(models.Model): ...@@ -152,6 +152,7 @@ class vnt_linea_deuda(models.Model):
def pagar_facturas(self): def pagar_facturas(self):
self.ld_factura.comp_fecha_validacion = fields.Datetime.now() self.ld_factura.comp_fecha_validacion = fields.Datetime.now()
return (True) return (True)
# def cobrar_todo(self): # def cobrar_todo(self):
# self.ld_cobro = 'todo' # self.ld_cobro = 'todo'
......
...@@ -11,6 +11,7 @@ class vnt_confirmar_cancelacion(models.TransientModel): ...@@ -11,6 +11,7 @@ class vnt_confirmar_cancelacion(models.TransientModel):
cc_notas = fields.Many2many( cc_notas = fields.Many2many(
string=u"Nota Débito", string=u"Nota Débito",
comodel_name='asw.comprobante', comodel_name='asw.comprobante',
domain = [('comp_talonario.tal_codigo','=','NDEB')]
) )
cc_facturas = fields.Many2many( cc_facturas = fields.Many2many(
...@@ -26,19 +27,26 @@ class vnt_confirmar_cancelacion(models.TransientModel): ...@@ -26,19 +27,26 @@ class vnt_confirmar_cancelacion(models.TransientModel):
def cancelar(self): def cancelar(self):
self.chequear_cancelacion_notas() self.chequear_cancelacion_notas()
self.cancelar_facturas() self.cancelar_facturas()
self.cancelar_recibo()
self.crear_notacred() self.crear_notacred()
self.cc_cobro.cancelar_cobro() self.cc_cobro.cancelar_cobro()
def cancelar_facturas(self): def cancelar_facturas(self):
for fac in self.cc_facturas: for fac in self.cc_facturas:
fac.comp_estado = 'a' if fac.comp_talonario.tal_codigo not in ['NDEB']:
fac.comp_estado = 'a'
def chequear_cancelacion_notas(self): def chequear_cancelacion_notas(self):
for nota in self.cc_notas: for nota in self.cc_notas:
if nota.comp_fecha_cancelacion == False: if nota.comp_fecha_cancelacion == False:
raise UserError("Todas las notas deben ser canceladas para continuar con la cancelación") 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): def crear_notacred(self):
lista =[]
comprobante = self.cc_cobro.co_recibos.filtered(lambda t: t.comp_talonario.tal_menu == 'rec') 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 referencia = 'Reintegro del comprobante : ' + comprobante.comp_talonario.tal_codigo + "/" +comprobante.comp_nro_letras
...@@ -58,14 +66,33 @@ class vnt_confirmar_cancelacion(models.TransientModel): ...@@ -58,14 +66,33 @@ class vnt_confirmar_cancelacion(models.TransientModel):
comp_nota_credito = comprobante.id 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.comp_fecha = datetime.today()
contra_comprobante.duplicar_lineas(comprobante)
#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({ comprobante.write({
'comp_nota_credito' : contra_comprobante.id '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: 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ú') 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 \ No newline at end of file
...@@ -36,11 +36,12 @@ class asw_pago_deuda_wizzard(models.TransientModel): ...@@ -36,11 +36,12 @@ class asw_pago_deuda_wizzard(models.TransientModel):
lista.append(self.pcw_recibo.id) lista.append(self.pcw_recibo.id)
self.pcw_cobro_deu.co_recibos = lista self.pcw_cobro_deu.co_recibos = lista
for lin in self.pcw_cobro_deu.co_lin_deuda: #for lin in self.pcw_cobro_deu.co_lin_deuda:
lin.pagar_facturas() #lin.pagar_facturas()
accion = self.get_action_navega('asw_recibos_list_action', self.pcw_recibo.id) accion = self.get_action_navega('asw_recibos_list_action', self.pcw_recibo.id)
return accion return accion
def chequear_montos(self): def chequear_montos(self):
if self.pcw_totalcobrar > self.pcw_total: if self.pcw_totalcobrar > self.pcw_total:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!