Commit ad666c58 by Juan

correcciones a nd y nc

1 parent 3e2b4bf7
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
'views/gastosmobil.xml', 'views/gastosmobil.xml',
'views/comprobante.xml', 'views/comprobante.xml',
'views/referencia_compra.xml', 'views/referencia_compra.xml',
'views/relaciones_talonarios.xml',
'views/menu_compras.xml', 'views/menu_compras.xml',
'views/pago_discriminado.xml', 'views/pago_discriminado.xml',
'wizard/vista_cobro_discriminado.xml', 'wizard/vista_cobro_discriminado.xml',
......
...@@ -8,4 +8,5 @@ from . import currency ...@@ -8,4 +8,5 @@ from . import currency
from . import pago_discriminado from . import pago_discriminado
from . import cheque from . import cheque
from . import valor from . import valor
from . import cta_cte
\ No newline at end of file \ No newline at end of file
from . import cta_cte
from . import ralaciones_talonarios
\ No newline at end of file \ No newline at end of file
...@@ -285,6 +285,7 @@ class hgt_cobro_multiple(models.Model): ...@@ -285,6 +285,7 @@ class hgt_cobro_multiple(models.Model):
resivo = self.pago_facturas_masivo() resivo = self.pago_facturas_masivo()
self.ValoresEnCajas(resivo) self.ValoresEnCajas(resivo)
self.estado = "aprobado" self.estado = "aprobado"
self.BuscarChequesCajas()#Saca el cheque de la caja donde esta
return { return {
'view_type': 'form', 'view_type': 'form',
'view_mode': 'form', 'view_mode': 'form',
...@@ -384,8 +385,18 @@ class hgt_cobro_multiple(models.Model): ...@@ -384,8 +385,18 @@ class hgt_cobro_multiple(models.Model):
#Buscar cheques y desvincular de la caja #Buscar cheques y desvincular de la caja
#los cheques propios no impactan en las cajas #los cheques propios no impactan en las cajas
#las tarjetas de credito no0 impactan en las cajas luego se creare un modelo de convenios de pagos #las tarjetas de credito no0 impactan en las cajas luego se creare un modelo de convenios de pagos
def BuscarChequesCajas(self):
"""Busco los cheques de terceros de las cajas y los desvinculo para que no afecten la sumatoria"""
for cheque in self.pcw_chq_terceros:
valores = self.env["asw.valores"].search([["val_cheque","=",cheque.id]])
self.BuscarValorEnCaja(valores,cheque)
def BuscarValorEnCaja(self,valores,cheque):
mod_cajas = self.env["asw.caja"]
for valor in valores:
cajas = mod_cajas.search([["caja_valor_ids","in",valor.id]])
for caja in cajas: # por si acaso, se puede dar que no tenga caja asignado
caja.caja_valor_ids = [(3,valor.id)]
def ValoresEnCajas(self,resivo): def ValoresEnCajas(self,resivo):
...@@ -482,6 +493,14 @@ class hgt_cobro_multiple(models.Model): ...@@ -482,6 +493,14 @@ class hgt_cobro_multiple(models.Model):
values["name"] = name values["name"] = name
return super(hgt_cobro_multiple, self).write(values) return super(hgt_cobro_multiple, self).write(values)
def cancel(self): def cancelar(self):
if self.pcw_recibo.comp_estado in ["a","p"]:
self.pcw_recibo.cancelar()
self.estado = "cancelado" self.estado = "cancelado"
\ No newline at end of file \ No newline at end of file
def Ayuda(self):
return {
'type': 'ir.actions.act_url',
'url': f"""https://hgt.hgt.com.ar/markdown_read?id=22&tipo=publicado""",
'target': 'new',
}
\ No newline at end of file \ No newline at end of file
# -*- coding: utf-8 -*-
###############################################################################
# License, author and contributors information in: #
# __manifest__.py file at the root folder of this module. #
###############################################################################
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError, Warning
import datetime
class hgt_cobro_multiple(models.Model):
_name = 'hgt.relaciones_talonarios'
_description = 'Relaciones de cancelacion en talonarios'
_order = "id desc"
talonario_origen = fields.Many2one('asw.talonario',
string='Talonario Origen',)
talonario_debito = fields.Many2one('asw.talonario',
string='Talonario Nota Debito',)
talonario_credito = fields.Many2one('asw.talonario',
string='Talonario Nota Credito',)
habilitado = fields.Boolean(string='Activo', default=False)
def Credito(self,origen_id):
rta = self.BuscarRelacion(origen_id)
return(rta)
def Dedito(self,origen_id):
rta = self.BuscarRelacion(origen_id,talonario="debito")
return(rta)
def BuscarRelacion(self,origen_id,talonario="credito"):
rta = self.sudo().search([["habilitado","=",True],
["talonario_origen","=",origen_id]
], limit=1)
if len(rta) == 0:
rta = False
else:
sb = {"credito":rta.talonario_credito,
"debito":rta.talonario_debito}
return(sb[talonario])
return(rta)
\ No newline at end of file \ No newline at end of file
...@@ -2,4 +2,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink ...@@ -2,4 +2,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_asw_referencias,access_asw_referencias,model_asw_referencias,asw_tpv.module_category_asw_falange_usuario,1,1,1,0 access_asw_referencias,access_asw_referencias,model_asw_referencias,asw_tpv.module_category_asw_falange_usuario,1,1,1,0
access_hgt_refcompra,access_hgt_refcompra,model_hgt_refcompra,asw_tpv.module_category_asw_falange_usuario,1,1,1,0 access_hgt_refcompra,access_hgt_refcompra,model_hgt_refcompra,asw_tpv.module_category_asw_falange_usuario,1,1,1,0
access_hgt_mobil_gastos_config,access_hgt_mobil_gastos_config,model_hgt_mobil_gastos_config,,1,1,1,0 access_hgt_mobil_gastos_config,access_hgt_mobil_gastos_config,model_hgt_mobil_gastos_config,,1,1,1,0
access_hgt_pago_multiple_avanzado,access_hgt_pago_multiple_avanzado,model_hgt_pago_multiple_avanzado,asw_tpv.module_category_asw_falange_usuario,1,1,1,0
\ No newline at end of file \ No newline at end of file
access_hgt_pago_multiple_avanzado,access_hgt_pago_multiple_avanzado,model_hgt_pago_multiple_avanzado,asw_tpv.module_category_asw_falange_usuario,1,1,1,0
access_hgt_relaciones_talonarios,access_hgt_relaciones_talonarios,model_hgt_relaciones_talonarios,,1,0,0,0
access_hgt_relaciones_talonarios_admin,access_hgt_relaciones_talonarios_admin,model_hgt_relaciones_talonarios,asw_tpv.module_category_asw_falange_administrador,1,1,1,1
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<xpath expr="//button[@name='validar']" position="before"> <xpath expr="//button[@name='validar']" position="before">
<button name="abrir_wizard_ppf" class='btn btn-success' string="+ Producto por precio final" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/> <button name="abrir_wizard_ppf" class='btn btn-success' string="+ Producto por precio final" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/>
<button name="recalcularTotal" class='btn btn-warning' string="Recalcular Monto" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/> <button name="recalcularTotal" class='btn btn-warning' string="Recalcular Monto" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/>
<button name="generarNota" class='btn btn-success' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','c','r'])]}"/> <button name="generarNota" class='btn btn-success' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','c'])]}"/>
</xpath> </xpath>
<xpath expr="//group[1]" position="after"> <xpath expr="//group[1]" position="after">
<group string="Referencias" col="2"> <group string="Referencias" col="2">
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<button name="recalcularTotal" class='btn btn-warning' string="Recalcular Monto" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/> <button name="recalcularTotal" class='btn btn-warning' string="Recalcular Monto" type="object" attrs="{'invisible':[('comp_estado','!=','b')]}"/>
<button name="impresion_directa" class='btn btn-info' string="Impresion directa" type="object" attrs="{'invisible':[('comp_estado','=','b')]}"/> <button name="impresion_directa" class='btn btn-info' string="Impresion directa" type="object" attrs="{'invisible':[('comp_estado','=','b')]}"/>
<button name="abrir_wizard_cn" type="object" class="btn btn-info" string="Corregir núm. AFIP"/>> <button name="abrir_wizard_cn" type="object" class="btn btn-info" string="Corregir núm. AFIP"/>>
<button name="generarNota" class='btn btn-success' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','c','r'])]}"/> <button name="generarNota" class='btn btn-success' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','c'])]}"/>
</xpath> </xpath>
</data> </data>
......
...@@ -4,5 +4,6 @@ ...@@ -4,5 +4,6 @@
<menuitem name="Referencias de Compras" id="asw_tpv_compras_referencias_refcompras" parent="asw_tpv_compras_referencias" action="hgt_refcompra_list_action"/> <menuitem name="Referencias de Compras" id="asw_tpv_compras_referencias_refcompras" parent="asw_tpv_compras_referencias" action="hgt_refcompra_list_action"/>
<menuitem name="Pagos avanzados" sequence="70" id="hgt_pago_proveedor_avanzado_menu" parent="asw_tpv.asw_tpv_compras_compras" action="hgt_pago_proveedor_avanzado_accion"/>/> <menuitem name="Pagos avanzados" sequence="70" id="hgt_pago_proveedor_avanzado_menu" parent="asw_tpv.asw_tpv_compras_compras" action="hgt_pago_proveedor_avanzado_accion"/>/>
<!-- <menuitem name="Configuracion Mobil" sequence="99" id="asw_tpv_gasto_mobil_config" parent="asw_tpv.asw_tpv_compras_gastos" action="hgt_gastos_mobil_list_action" groups="hgt_dispositivos.group_administrador_dispositivos"/> --> <!-- <menuitem name="Configuracion Mobil" sequence="99" id="asw_tpv_gasto_mobil_config" parent="asw_tpv.asw_tpv_compras_gastos" action="hgt_gastos_mobil_list_action" groups="hgt_dispositivos.group_administrador_dispositivos"/> -->
<menuitem sequence='55' name="Talonario cancelacion" id="hgt_tpv_fcamcelcacionm_talonario" parent="asw_tpv.asw_tpv_configuracion_gestion" action="hgt_relaciones_talonarios_list_action"/>
</data> </data>
</odoo> </odoo>
...@@ -107,8 +107,12 @@ ...@@ -107,8 +107,12 @@
</group> </group>
<h4>Nota 4: La diferencia si es negativa implica que se esta abonando más que lo adeudado en las facturas seleccionadas impactando un saldo a favor de la empresa en la cta cte del proveedor, de existir facturas pendientes no seleccionadas dicho saldo se aplicará a la más vieja</h4> <h4>Nota 4: La diferencia si es negativa implica que se esta abonando más que lo adeudado en las facturas seleccionadas impactando un saldo a favor de la empresa en la cta cte del proveedor, de existir facturas pendientes no seleccionadas dicho saldo se aplicará a la más vieja</h4>
<footer> <footer>
<button name="generar_recibo" string="Generar Recibo" type="object" class="btn btn-success" attrs="{ 'invisible':[('estado', '!=', 'borrador')]}"/> <button name="generar_recibo" string="Generar Recibo" type="object" class="btn btn-success"
<button special="cancel" string="Cancel" attrs="{ 'invisible':[('estado', '=', 'cancelado')]}"/> attrs="{ 'invisible':[('estado', '!=', 'borrador')]}"/>
<!--<button special="cancel" string="Cancel" attrs="{ 'invisible':[('estado', '=', 'cancelado')]}"/>-->
<button name="cancelar" class="btn btn-danger" string="Cancelar operacion" type="object"
attrs="{ 'invisible':[('estado', '=', 'cancelado')]}"/>
<button name="Ayuda" class="oe_right oe_button_box" icon='fa-exclamation-circle' string="Ayuda" type="object" />
</footer> </footer>
</form> </form>
</field> </field>
......
<odoo>
<data>
<record model="ir.actions.act_window" id="hgt_relaciones_talonarios_list_action">
<field name="name">Relaciones de cancelacion de facturas</field>
<field name="res_model">hgt.relaciones_talonarios</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Configure las cancelaciones de facturas</p>
</field>
</record>
<record id="view_tree_hgt_relaciones_talonarios_ui" model="ir.ui.view">
<field name="name">Relaciones de cancelacion de facturas</field>
<field name="model">hgt.relaciones_talonarios</field>
<field name="arch" type="xml">
<tree>
<field name="talonario_origen"/>
<field name="talonario_credito"/>
<field name="talonario_debito"/>
<field name="habilitado" />
</tree>
</field>
</record>
<record id="view_form_hgt_relaciones_talonarios_ui" model="ir.ui.view">
<field name="name">Relaciones de cancelacion de facturas</field>
<field name="model">hgt.relaciones_talonarios</field>
<field name="arch" type="xml">
<form>
<sheet>
<group col='4'>
<field name="habilitado" colspan="2"/>
</group>
<group col='2' string="Talonarios a relacionar">
<field name="talonario_origen"/>
<field name="talonario_credito"/>
<field name="talonario_debito"/>
</group>
</sheet>
</form>
</field>
</record>
</data>
</odoo>
\ No newline at end of file \ No newline at end of file
...@@ -13,11 +13,16 @@ class tpv_generar_nota(models.TransientModel): ...@@ -13,11 +13,16 @@ class tpv_generar_nota(models.TransientModel):
comodel_name='asw.comprobante', comodel_name='asw.comprobante',
) )
def iva_21(self):
return(self.env["asw.impuesto"].search([["name","=","21%"]], limit=1).id)
def generar_notaCred(self): def generar_notaCred(self):
comprobante = self.gn_comprobante comprobante = self.gn_comprobante
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
talonario = self.env['asw.talonario'].search([('tal_pto_vta','=',comprobante.comp_talonario.tal_pto_vta),('tal_letra','=', comprobante.comp_talonario.tal_letra),('tal_codigo','in',['NCAE','NCBE'])])#es variable mover a preferecias talonario = self.env["hgt.relaciones_talonarios"].Credito(comprobante.comp_talonario.id)
if talonario == False:
talonario = self.env['asw.talonario'].search([('tal_pto_vta','=',comprobante.comp_talonario.tal_pto_vta),('tal_letra','=', comprobante.comp_talonario.tal_letra),('tal_codigo','in',['NCAE','NCBE'])])#es variable mover a preferecias
if talonario: if talonario:
contra_comprobante = self.generar_comprobante( contra_comprobante = self.generar_comprobante(
...@@ -47,11 +52,13 @@ class tpv_generar_nota(models.TransientModel): ...@@ -47,11 +52,13 @@ class tpv_generar_nota(models.TransientModel):
linea_comp = self.env['asw.linea_comprobante'].create({ linea_comp = self.env['asw.linea_comprobante'].create({
'lcp_producto': inter_prod.id, 'lcp_producto': inter_prod.id,
'lcp_comprobante': contra_comprobante.id, 'lcp_comprobante': contra_comprobante.id,
'lcp_precio': comprobante.comp_total, 'lcp_precio': comprobante.comp_total / (121/100),
'lcp_importe': comprobante.comp_total, 'lcp_importe': comprobante.comp_total / (121/100),
'lcp_iva': self.iva_21(),
}) })
linea_comp._onchange_precio_venta()
#contra_comprobante.validar() contra_comprobante.recalcularTotal()
#contra_comprobante._onchange_precio_venta()
#se agrega al recibo original #se agrega al recibo original
#comprobante.write({ #comprobante.write({
...@@ -65,7 +72,7 @@ class tpv_generar_nota(models.TransientModel): ...@@ -65,7 +72,7 @@ class tpv_generar_nota(models.TransientModel):
'view_mode': 'form', 'view_mode': 'form',
'view_type': 'form', 'view_type': 'form',
'res_id': contra_comprobante.id, 'res_id': contra_comprobante.id,
'target': 'new', 'target': 'self',
} }
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ú')
...@@ -74,7 +81,9 @@ class tpv_generar_nota(models.TransientModel): ...@@ -74,7 +81,9 @@ class tpv_generar_nota(models.TransientModel):
comprobante = self.gn_comprobante comprobante = self.gn_comprobante
referencia = 'Nota de débito del comprobante : ' + comprobante.comp_talonario.tal_codigo + "/" +comprobante.comp_nro_letras referencia = 'Nota de débito del comprobante : ' + comprobante.comp_talonario.tal_codigo + "/" +comprobante.comp_nro_letras
talonario = self.env['asw.talonario'].search([('tal_pto_vta','=',comprobante.comp_talonario.tal_pto_vta),('tal_letra','=', comprobante.comp_talonario.tal_letra),('tal_codigo','in',['NDAN','NDBN','NDAE', 'NDBE'])]) talonario = self.env["hgt.relaciones_talonarios"].Dedito(comprobante.comp_talonario.id)
if talonario == False:
talonario = self.env['asw.talonario'].search([('tal_pto_vta','=',comprobante.comp_talonario.tal_pto_vta),('tal_letra','=', comprobante.comp_talonario.tal_letra),('tal_codigo','in',['NDAN','NDBN','NDAE', 'NDBE'])])
if talonario: if talonario:
contra_comprobante = self.generar_comprobante( contra_comprobante = self.generar_comprobante(
...@@ -103,12 +112,12 @@ class tpv_generar_nota(models.TransientModel): ...@@ -103,12 +112,12 @@ class tpv_generar_nota(models.TransientModel):
linea_comp = self.env['asw.linea_comprobante'].create({ linea_comp = self.env['asw.linea_comprobante'].create({
'lcp_producto': inter_prod.id, 'lcp_producto': inter_prod.id,
'lcp_comprobante': contra_comprobante.id, 'lcp_comprobante': contra_comprobante.id,
'lcp_precio': comprobante.comp_total, 'lcp_precio': comprobante.comp_total / (121/100),
'lcp_importe': comprobante.comp_total, 'lcp_importe': comprobante.comp_total / (121/100),
}) })
#contra_comprobante.validar() linea_comp._onchange_precio_venta()
contra_comprobante.recalcularTotal()
return { return {
'name': "Nota de Débito", 'name': "Nota de Débito",
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
...@@ -116,7 +125,7 @@ class tpv_generar_nota(models.TransientModel): ...@@ -116,7 +125,7 @@ class tpv_generar_nota(models.TransientModel):
'view_mode': 'form', 'view_mode': 'form',
'view_type': 'form', 'view_type': 'form',
'res_id': contra_comprobante.id, 'res_id': contra_comprobante.id,
'target': 'new', 'target': 'self',
} }
else: else:
raise UserError('No existe talonario para la Nota de Débito 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 Débito correspondiente. Créelo o diríjase a soporte para que lo haga, y vuelva a este menú')
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!