Commit ad666c58 by Juan

correcciones a nd y nc

1 parent 3e2b4bf7
......@@ -46,6 +46,7 @@
'views/gastosmobil.xml',
'views/comprobante.xml',
'views/referencia_compra.xml',
'views/relaciones_talonarios.xml',
'views/menu_compras.xml',
'views/pago_discriminado.xml',
'wizard/vista_cobro_discriminado.xml',
......
......@@ -8,4 +8,5 @@ from . import currency
from . import pago_discriminado
from . import cheque
from . import valor
from . import cta_cte
\ No newline at end of file
from . import cta_cte
from . import ralaciones_talonarios
\ No newline at end of file
......@@ -285,6 +285,7 @@ class hgt_cobro_multiple(models.Model):
resivo = self.pago_facturas_masivo()
self.ValoresEnCajas(resivo)
self.estado = "aprobado"
self.BuscarChequesCajas()#Saca el cheque de la caja donde esta
return {
'view_type': 'form',
'view_mode': 'form',
......@@ -384,8 +385,18 @@ class hgt_cobro_multiple(models.Model):
#Buscar cheques y desvincular de la caja
#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
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):
......@@ -482,6 +493,14 @@ class hgt_cobro_multiple(models.Model):
values["name"] = name
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"
\ 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
# -*- 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
......@@ -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_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_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
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
......@@ -9,7 +9,7 @@
<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="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 expr="//group[1]" position="after">
<group string="Referencias" col="2">
......@@ -33,7 +33,7 @@
<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="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>
</data>
......
......@@ -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="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 sequence='55' name="Talonario cancelacion" id="hgt_tpv_fcamcelcacionm_talonario" parent="asw_tpv.asw_tpv_configuracion_gestion" action="hgt_relaciones_talonarios_list_action"/>
</data>
</odoo>
......@@ -107,8 +107,12 @@
</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>
<footer>
<button name="generar_recibo" string="Generar Recibo" type="object" class="btn btn-success" attrs="{ 'invisible':[('estado', '!=', 'borrador')]}"/>
<button special="cancel" string="Cancel" attrs="{ 'invisible':[('estado', '=', 'cancelado')]}"/>
<button name="generar_recibo" string="Generar Recibo" type="object" class="btn btn-success"
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>
</form>
</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
......@@ -13,11 +13,16 @@ class tpv_generar_nota(models.TransientModel):
comodel_name='asw.comprobante',
)
def iva_21(self):
return(self.env["asw.impuesto"].search([["name","=","21%"]], limit=1).id)
def generar_notaCred(self):
comprobante = self.gn_comprobante
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:
contra_comprobante = self.generar_comprobante(
......@@ -47,11 +52,13 @@ class tpv_generar_nota(models.TransientModel):
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,
'lcp_precio': comprobante.comp_total / (121/100),
'lcp_importe': comprobante.comp_total / (121/100),
'lcp_iva': self.iva_21(),
})
#contra_comprobante.validar()
linea_comp._onchange_precio_venta()
contra_comprobante.recalcularTotal()
#contra_comprobante._onchange_precio_venta()
#se agrega al recibo original
#comprobante.write({
......@@ -65,7 +72,7 @@ class tpv_generar_nota(models.TransientModel):
'view_mode': 'form',
'view_type': 'form',
'res_id': contra_comprobante.id,
'target': 'new',
'target': 'self',
}
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ú')
......@@ -74,7 +81,9 @@ class tpv_generar_nota(models.TransientModel):
comprobante = self.gn_comprobante
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:
contra_comprobante = self.generar_comprobante(
......@@ -103,12 +112,12 @@ class tpv_generar_nota(models.TransientModel):
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,
'lcp_precio': comprobante.comp_total / (121/100),
'lcp_importe': comprobante.comp_total / (121/100),
})
#contra_comprobante.validar()
linea_comp._onchange_precio_venta()
contra_comprobante.recalcularTotal()
return {
'name': "Nota de Débito",
'type': 'ir.actions.act_window',
......@@ -116,7 +125,7 @@ class tpv_generar_nota(models.TransientModel):
'view_mode': 'form',
'view_type': 'form',
'res_id': contra_comprobante.id,
'target': 'new',
'target': 'self',
}
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ú')
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!