Commit 6b720b66 by Maria Agustina

1822 terminada

1 parent 8af13e73
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
'security/permisos.xml', 'security/permisos.xml',
'wizard/vista_prod_pfinal.xml', 'wizard/vista_prod_pfinal.xml',
'wizard/vista_corregir_nro_tal.xml', 'wizard/vista_corregir_nro_tal.xml',
'wizard/vista_generar_nota.xml',
'views/referencias.xml', 'views/referencias.xml',
'views/gastosmobil.xml', 'views/gastosmobil.xml',
'views/comprobante.xml', 'views/comprobante.xml',
......
...@@ -137,4 +137,16 @@ class asw_comprobante(models.Model): ...@@ -137,4 +137,16 @@ class asw_comprobante(models.Model):
'target': 'new', 'target': 'new',
} }
def generarNota(self):
datos = {'gn_comprobante': self.id}
nw = self.env['tpv.generar_nota'].create(datos)
return {
'name': "Generar Nota Débito/Crédito",
'type': 'ir.actions.act_window',
'res_model': 'tpv.generar_nota',
'view_mode': 'form',
'view_type': 'form',
'res_id': nw.id,
'target': 'new',
}
...@@ -9,6 +9,7 @@ ...@@ -9,6 +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-info' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','a'])]}"/>
</xpath> </xpath>
<xpath expr="//group[1]" position="after"> <xpath expr="//group[1]" position="after">
<group string="Referencias" col="2"> <group string="Referencias" col="2">
...@@ -32,6 +33,8 @@ ...@@ -32,6 +33,8 @@
<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-info' string="Generar Nota" type="object" attrs="{'invisible':[('comp_estado','in',['b','a'])]}"/>
</xpath> </xpath>
</data> </data>
</field> </field>
......
from . import prod_pfinal from . import prod_pfinal
from . import corregir_nro_tal from . import corregir_nro_tal
from . import generar_nota
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError
from datetime import datetime
class tpv_generar_nota(models.TransientModel):
_name = 'tpv.generar_nota'
_description = 'Generar Nota'
_inherit = ['asw.generador_comprobante', 'asw.action.manager']
gn_comprobante = fields.Many2one(
string=u'Comprobante Original',
comodel_name='asw.comprobante',
)
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','=','NCRED')])
if talonario:
contra_comprobante = self.generar_comprobante(
talonario = talonario,
cliente = comprobante.comp_cliente,
total = comprobante.comp_total,
referencia = referencia,
comp_estado = comprobante.comp_estado,
comp_nro_letras = comprobante.comp_nro_letras,
comp_subtotal = comprobante.comp_subtotal,
comp_moneda = comprobante.comp_moneda.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()
#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
})
return {
'name': "Nota de Crédito",
'type': 'ir.actions.act_window',
'res_model': 'asw.comprobante',
'view_mode': 'form',
'view_type': 'form',
'res_id': contra_comprobante.id,
'target': 'new',
}
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ú')
def generar_notaDeb(self):
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','=','NDEB')])
if talonario:
contra_comprobante = self.generar_comprobante(
talonario = talonario,
cliente = comprobante.comp_cliente,
total = comprobante.comp_total,
referencia = referencia,
comp_estado = comprobante.comp_estado,
comp_nro_letras = comprobante.comp_nro_letras,
comp_subtotal = comprobante.comp_subtotal,
comp_moneda = comprobante.comp_moneda.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()
#linea de NDEB
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()
return {
'name': "Nota de Débito",
'type': 'ir.actions.act_window',
'res_model': 'asw.comprobante',
'view_mode': 'form',
'view_type': 'form',
'res_id': contra_comprobante.id,
'target': 'new',
}
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ú')
\ No newline at end of file \ No newline at end of file
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="0">
<record id="tpv_generar_nota_wizzard_view_form" model="ir.ui.view">
<field name="name">Generar Nota</field>
<field name="model">tpv.generar_nota</field>
<field name="arch" type="xml">
<form>
<group col='4'>
<h3> Elija qué desea generar
</h3>
</group>
<div style='text-align:center'>
<button type="object" style="margin:5px;" name="generar_notaDeb" string="Nota de Débito" class='btn btn-primary'/>
<button type="object" style="margin:5px;" name="generar_notaCred" string="Nota de Crédito" class='btn btn-primary'/>
</div>
<footer>
<button special='cancel' string="Cancelar"/>
</footer>
</form>
</field>
</record>
<!-- tpv.generar_nota action window -->
<record id="tpv_generar_nota_wizzard_action" model="ir.actions.act_window">
<field name="name">Generar Nota</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">tpv.generar_nota</field>
<field name="src_model">tpv.generar_nota</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="multi">True</field>
</record>
</data>
</odoo>
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!