Commit 6c906563 by Maria Agustina

wizard sin adjunto, avance compras

1 parent ccce6cdd
......@@ -36,6 +36,7 @@
'reportes/rep_solicitud_presup.xml',
'reportes/template_rep_solicitud_presup.xml',
'wizard/crear_solicitudp.xml',
'wizard/presup_noadjunto.xml',
'views/compra_orden.xml',
'views/menu.xml',
],
......
......@@ -27,7 +27,7 @@ class hgt_compra_orden(models.Model):
)
cor_sp = fields.Many2one(
string = u'Solicitud de Presupuesto',
string = u'Solicitud de Presupuesto asociada',
comodel_name = 'hgt.compra_solicitudpresupuesto',
)
......
......@@ -63,6 +63,11 @@ class hgt_compra_solicitud(models.Model):
default=False,
)
# cs_solicitudpre = fields.Many2many(
# string="Solicitudes de Presupuesto asociadas",
# comodel_name = "hgt.compra_solicitudpresupuesto",
# )
def compute_codigo_unico(self):
for record in self:
txt = str(record.id)
......@@ -95,32 +100,34 @@ class hgt_compra_solicitud(models.Model):
#agrupo lineas segun proovedor para armar solicitudes distintas por proovedor
agrupado = lineas.read_group([('csl_cs','=', self.id)],fields=['csl_proovedor_propuesto'], groupby=['csl_proovedor_propuesto'])
for lin in agrupado:
proov = lin['csl_proovedor_propuesto']
proov = proov[0]
lineas_proov = self.env['hgt.compra_solicitudlinea'].search([('csl_proovedor_propuesto','=', proov),('csl_cs','=',self.id),('csl_select','=',True)]).ids
datos = {
'csp_solicitante': self.cs_solicitante.id,
'csp_proovedorp': proov,
}
nva_sol = self.env['hgt.compra_solicitudpresupuesto'].create(datos)
nva_sol.csp_solicitudlinea = lineas_proov
if lin['csl_proovedor_propuesto']:
proov = lin['csl_proovedor_propuesto']
proov = proov[0]
lineas_proov = self.env['hgt.compra_solicitudlinea'].search([('csl_proovedor_propuesto','=', proov),('csl_cs','=',self.id),('csl_select','=',True)]).ids
datos = {
'csp_solicitante': self.cs_solicitante.id,
'csp_proovedorp': proov,
'csp_compra_solicitud': self.id,
}
nva_sol = self.env['hgt.compra_solicitudpresupuesto'].create(datos)
nva_sol.csp_solicitudlinea = lineas_proov
else:
raise UserError('Debe proponer proovedores para cada línea de solicitud')
#modifica estado solicitud d compra
self.cs_estados = 'pr'
#marco como generada solicitud para desaparicion de botones
self.cs_solicit_generada = True
#devuelvo vista tree de solicitudes de presupuesto, NO ME SALIO, PQ NO SALE LA VISTA ORIGINAL Y NO SE PUEDE ENTRAR A LAS SOLICITUDES
# return {
# 'name': 'Solicitudes de Presupuesto',
# 'view_type': 'form',
# 'view_mode':'tree',
# 'view_id': self.env.ref('hgt_compras.view_hgt_compra_solicitudpresupuesto_tree').id,
# 'res_model':'hgt.compra_solicitudpresupuesto',
# 'type':'ir.actions.act_window',
# 'target':'current'
# }
return (True)
#devuelve solicitud
return {
'type': 'ir.actions.act_window',
'res_model': 'hgt.compra_solicitudpresupuesto',
'view_mode': 'form',
'view_type': 'form',
'res_id': nva_sol.id,
'views': [(False, 'form')],
'target': 'current',
}
else:
raise UserError('No hay líneas de solicitud seleccionadas para generar la solicitud de Presupuesto')
......@@ -144,3 +151,5 @@ class hgt_compra_solicitud(models.Model):
if lin.csl_estados in ['pr']:
lin.csl_select = True
return (True)
\ No newline at end of file
......@@ -13,6 +13,15 @@ class hgt_compra_solicitudlinea(models.Model):
string = u'Descripción',
)
csl_cantidad = fields.Float(
string = 'Cantidad',
)
csl_producto = fields.Many2one(
string = u'Producto Comprable',
comodel_name = 'asw.producto',
)
csl_cs = fields.Many2one(
string = u'Solicitud de Compra',
comodel_name = 'hgt.compra_solicitud',
......@@ -66,7 +75,7 @@ class hgt_compra_solicitudlinea(models.Model):
)
csl_aprobador = fields.Many2one(
string =u'Aprobó/Rechazó',
string =u'Aprobó/Rechazó sin adjunto',
comodel_name ='res.users',
)
......
from odoo import models, fields, api
from odoo.exceptions import UserError
from datetime import date
class hgt_compra_solicitudpresupuesto(models.Model):
_name='hgt.compra_solicitudpresupuesto'
......@@ -10,6 +11,11 @@ class hgt_compra_solicitudpresupuesto(models.Model):
comodel_name ='res.users',
)
csp_compra_solicitud = fields.Many2one(
string = 'Solicitud de Compra Asociada',
comodel_name = 'hgt.compra_solicitud',
)
csp_proovedorp= fields.Many2one (
string =u'Proovedor',
comodel_name ='hgt.instituciones',
......@@ -46,27 +52,97 @@ class hgt_compra_solicitudpresupuesto(models.Model):
default=False,
)
csp_ordencompra = fields.Many2one(
comodel_name="hgt.compra_orden",
string=u"Órden de Compra asociada",
)
csp_notas = fields.Text(
string="Notas",
string="Observaciones",
)
csp_pna_ejecuto = fields.Many2one(
string =u'Aceptó/Rechazó sin adjunto',
comodel_name ='res.users',
readonly=True,
)
csp_pna_fecha = fields.Date(
string = u'Fecha',
readonly=True,
)
@api.depends('csp_pna_ejecuto')
def onchange_fecha_pna(self):
self.csp_pna_fecha = str(date.today())
def enviar_pdf(self):
#PDF
obj = self.env.ref('hgt_compras.solicitud_presupuesto_proovedor').report_action(self)
self.csp_estados = 'e'
return obj
def chequear_ajuntos(self):
if not self.csp_adjuntos:
raise UserError("Debe haber algún presupuesto cargado en adjuntos para poder aceptarlo o rechazarlo")
def duplicar_solicitud(self):
#abrir wizard p elegir proovedores
datos = {'wiz_solicitud': self.id}
nwiz = self.env['hgt.solicitarp'].create(datos)
return {
'type': 'ir.actions.act_window',
'res_model': 'hgt.solicitarp',
'view_mode': 'form',
'view_type': 'form',
'res_id': nwiz.id,
'views': [(False, 'form')],
'target': 'new',
}
def aceptar_presup(self):
self.chequear_ajuntos()
if not self.csp_adjuntos:
datos = {'pna_solicitudpres': self.id,
'pna_opcion': 'a'}
nwiz = self.env['hgt.presupnoadjunto'].create(datos)
return {
'type': 'ir.actions.act_window',
'res_model': 'hgt.presupnoadjunto',
'view_type': 'form',
'view_mode': 'form',
'res_id': nwiz.id,
'views': [(False, 'form')],
'target': 'new',
'context': self.env.context,
"view_id": self.env.ref("hgt_compras.view_form_procesar_sa_ui").id,
}
else:
self.csp_estados = 'a'
return(True)
def acepto_prend(self):
self.csp_estados = 'a'
return(True)
def rechazo_prend(self):
self.csp_estados = 'r'
return(True)
def rechazar_presup(self):
self.chequear_ajuntos()
self.csp_estados = 'r'
if not self.csp_adjuntos:
datos = {'pna_solicitudpres': self.id,
'pna_opcion': 'r'}
nwiz = self.env['hgt.presupnoadjunto'].create(datos)
return {
'type': 'ir.actions.act_window',
'res_model': 'hgt.presupnoadjunto',
'view_type': 'form',
'view_mode': 'form',
'res_id': nwiz.id,
'views': [(False, 'form')],
'target': 'new',
'context': self.env.context,
"view_id": self.env.ref("hgt_compras.view_form_procesar_sa_ui").id,
}
else:
self.csp_estados = 'r'
return(True)
def generar_sc(self):
lista = []
......
......@@ -19,7 +19,7 @@
<td colspan='2' t-att-style="estilo_celda" ><span t-field="o.csp_proovedorp"></span></td>
</tr>
<tr style="font-size:20px; border: 2px solid black; height: 80px; text-align:center; vertical-align: middle;" >
<td colspan='6' t-att-style="estilo_celda" ><span></span><strong>Notas:</strong><span t-field="o.csp_notas"></span></td>
<td colspan='6' t-att-style="estilo_celda" ><span></span><strong>Observaciones:</strong><span t-field="o.csp_notas"></span></td>
</tr>
<tr>
<td colspan='6' style="font-size:20px; border: 2px solid black; height: 50px; text-align:center; vertical-align: middle;" ><strong>Productos</strong></td>
......@@ -29,19 +29,17 @@
<tr>
<td t-att-style="estilo_cabecera" ><strong>Código</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Producto</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Estado solicitud</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Solicitante</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Aprobó</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Cantidad</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Fecha aprobación</strong></td>
<td t-att-style="estilo_cabecera" ><strong>Código del Producto Proovedor</strong></td>
</tr>
<t t-foreach="o.csp_solicitudlinea" t-as="ee">
<tr>
<td t-att-style="estilo_celda"> <span t-field="ee.name"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_descripcion"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_estados"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_solicitante"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_aprobador"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_cantidad"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_fecha_creacion"/> </td>
<td t-att-style="estilo_celda"> <span t-field="ee.csl_producto"/> </td>
</tr>
</t>
</tbody>
......
......@@ -4,9 +4,17 @@
<field name="name">Gestión de compras</field>
<field name="description">Gestión de compras</field>
</record>
<record model="res.groups" id="module_category_hgt_solicitud_compras">
<field name="name">Solicitud Compras</field>
<field name="category_id" ref="module_category_hgt_compras"/>
</record>
<record model="res.groups" id="module_category_hgt_gestor_compras">
<field name="name">Gestor de Compras</field>
<field name="category_id" eval="ref('module_category_hgt_compras')"/>
<field name="name">Administrativo Compras</field>
<field name="category_id" ref="module_category_hgt_compras"/>
</record>
<record model="res.groups" id="module_category_hgt_comprador_compras">
<field name="name">Comprador</field>
<field name="category_id" ref="module_category_hgt_compras"/>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -45,6 +45,7 @@
<button name="enviar_orden" string="Enviar Orden" type="object" class="btn btn-info" attrs="{'invisible':[('cor_estados','not in',['a'])]}"/>
</header>
<group string="Órden de Compra" col="2">
<field name="cor_sp" readonly="1" />
<field colspan="1" name="cor_comprador" attrs="{'readonly':[('cor_estados','not in',['b'])]}" />
</group>
<notebook colspan="4">
......@@ -55,7 +56,7 @@
<field name="csl_descripcion" />
<field name="csl_solicitante"/>
<field name="csl_estados" />
<field name="csl_proovedor_propuesto"/>
<!-- <field name="csl_proovedor_propuesto"/> -->
</tree>
</field>
</page>
......
......@@ -2,18 +2,25 @@
<odoo>
<data noupdate="0">
<record id="action_hgt_compra_solicitud_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Solicitud de Compra</field>
<field name="res_model">hgt.compra_solicitud</field>
<field name="view_mode">tree,form</field>
<field name="view_type">form</field>
<field name="target">current</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Cree la primera solicitud de compra</p>
<record id="view_hgt_revision_compra_solicitud_tree" model="ir.ui.view">
<field name="name">Revisión de Solicitudes de Compra</field>
<field name="model">hgt.compra_solicitud</field>
<field name="type">tree</field>
<field name="mode">primary</field>
<field name="priority" eval="16" />
<field name="active" eval="True" />
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="cs_solicitante" />
<field name="cs_referencia" />
<field name="cs_estados" />
<field name="cs_fecha_creacion" />
<field name="cs_fecha_limite" />
</tree>
</field>
</record>
<record id="view_hgt_compra_solicitud_tree" model="ir.ui.view">
<field name="name">Solicitud de Compra</field>
<field name="model">hgt.compra_solicitud</field>
......@@ -45,10 +52,9 @@
<!--<sheet>-->
<header>
<field name="cs_estados" widget="statusbar"/>
<button name="procesar_solicitud" string="Enviar a Aprobación" type="object" class="btn btn-success" attrs="{'invisible':[('cs_estados','not in',['b'])]}"/>
<button name="aprobar_solicitud" string="Procesar" type="object" class="btn btn-success" attrs="{'invisible':[('cs_estados','in',['b','pr'])]}" groups="hgt_compras.module_category_hgt_gestor_compras"/>
<button name="generar_solicitud_p" string="Generar Solicitud/es de Presupuesto" type="object" class="oe_highlight" attrs="{'invisible':['|',('cs_estados','in',['b','pe']),('cs_solicit_generada','=',True)]}" />
<!-- <button name="generar_orden_c" string="Generar Orden de Compra" type="object" class="oe_highlight" attrs="{'invisible':[('cs_estados','in',['b','pe'])]}" /> -->
<button name="procesar_solicitud" string="Enviar a Aprobación" type="object" class="btn btn-success" attrs="{'invisible':[('cs_estados','not in',['b'])]}"/>
<button name="aprobar_solicitud" string="Procesar" type="object" class="btn btn-success" groups="hgt_compras.module_category_hgt_gestor_compras" attrs="{'invisible':[('cs_estados','in',['b','pr'])]}"/>
<button name="generar_solicitud_p" string="Generar Solicitud/es de Presupuesto" type="object" class="oe_highlight" groups="hgt_compras.module_category_hgt_gestor_compras" attrs="{'invisible':['|',('cs_estados','in',['b','pe']),('cs_solicit_generada','=',True)]}" />
</header>
<group col="4" string="Datos Solicitud">
<h3><field nolabel="1" colspan="4" readonly="1" name="name"/></h3>
......@@ -56,7 +62,8 @@
<field colspan="4" name="cs_referencia" attrs="{'readonly':[('cs_estados','not in',['b'])]}" />
<field colspan="2" name="cs_fecha_creacion" attrs="{'readonly':[('cs_estados','not in',['b'])]}" />
<field colspan="2" name="cs_fecha_limite" attrs="{'readonly':[('cs_estados','not in',['b'])]}" />
<field name="cs_solicit_generada" invisible="1" />
<!-- <field name="cs_solicitudpre" readonly="1" /> -->
<field name="cs_solicit_generada" invisible="1" />
</group>
<notebook colspan="4">
<page string="Líneas de Solicitud">
......@@ -66,13 +73,14 @@
<tree create="1" edit="1" editable="1">
<field name="name" readonly="1" />
<field name="csl_descripcion" attrs="{'readonly':[('csl_cs_estados','not in',['b'])]}"/>
<field name="csl_cantidad" attrs="{'readonly':[('csl_cs_estados','not in',['b'])]}"/>
<field name="csl_solicitante" attrs="{'readonly':[('csl_cs_estados','not in',['b'])]}"/>
<field name="csl_estados" readonly="1"/>
<field name="csl_cs_estados" invisible="1"/>
<field name="csl_proovedor_propuesto" attrs="{'readonly':[('csl_cs_estados','not in',['b'])]}"/>
<field name="csl_proovedor_propuesto" groups="hgt_compras.module_category_hgt_gestor_compras" />
<button type="object" class="btn btn-primary" name="aprobar" string="Aprobar" groups="hgt_compras.module_category_hgt_gestor_compras" attrs="{'invisible':[('csl_cs_estados','not in',['pe'])]}" />
<button type="object" class="btn btn-primary" name="rechazar" string="Rechazar" groups="hgt_compras.module_category_hgt_gestor_compras" attrs="{'invisible':[('csl_cs_estados','not in',['pe'])]}" />
<field name="csl_select" attrs="{'invisible':[('csl_estados','in',['pe','r'])]}"/>
<field name="csl_select" groups="hgt_compras.module_category_hgt_gestor_compras" attrs="{'invisible':[('csl_estados','in',['pe','r'])]}"/>
</tree>
</field>
</page>
......@@ -94,5 +102,32 @@
</field>
</record>
<record id="action_hgt_revision_compra_solicitud_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Revisión Solicitud de Compra</field>
<field name="res_model">hgt.compra_solicitud</field>
<field name="view_mode">tree,form</field>
<field name="view_type">form</field>
<field name="view_ids" eval="[(5, 0, 0),(0, 0, {'view_mode': 'tree', 'view_id': ref('view_hgt_revision_compra_solicitud_tree')})]"/>
<field name="target">current</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">No hay solicitudes de compra para revisar</p>
</field>
</record>
<record id="action_hgt_compra_solicitud_act_window" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Solicitud de Compra</field>
<field name="res_model">hgt.compra_solicitud</field>
<field name="domain">[('cs_solicitante','=',uid)]</field>
<field name="view_mode">tree,form</field>
<field name="view_type">form</field>
<field name="view_ids" eval="[(5, 0, 0),(0, 0, {'view_mode': 'tree', 'view_id': ref('view_hgt_compra_solicitud_tree')})]"/>
<field name="target">current</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Cree la primera solicitud de compra</p>
</field>
</record>
</data>
</odoo>
......@@ -25,6 +25,8 @@
<tree>
<field name="csp_solicitante" />
<field name="csp_proovedorp" />
<field name="csp_compra_solicitud" />
<field name="csp_estados" />
</tree>
</field>
</record>
......@@ -42,12 +44,15 @@
<header>
<field name="csp_orden_generada" invisible="1"/>
<field name="csp_estados" widget="statusbar"/>
<button name="enviar_pdf" string="Imprimir PDF para Proovedor" type="object" class="btn btn-primary" attrs="{'invisible':[('csp_estados','not in',['pe'])]}"/>
<button name="enviar_pdf" string="Procesar e Imprimir PDF" type="object" class="btn btn-primary" attrs="{'invisible':[('csp_estados','not in',['pe'])]}"/>
<button name="duplicar_solicitud" string="Duplicar Solicitud - Nuevo Proovedor" type="object" class="btn btn-primary" attrs="{'invisible':[('csp_estados','not in',['pe'])]}"/>
<button name="aceptar_presup" string="Aceptar Presupuesto" type="object" class="btn btn-success" attrs="{'invisible':[('csp_estados','not in',['e'])]}"/>
<button name="rechazar_presup" string="Rechazar Presupuesto" type="object" class="btn btn-danger" attrs="{'invisible':[('csp_estados','not in',['e'])]}"/>
<button name="generar_sc" string="Generar Orden de Compra" type="object" class="btn btn-info" attrs="{'invisible':['|',('csp_estados','not in',['a']),('csp_orden_generada','=',True)]}"/>
</header>
<group col="4">
<field name="csp_compra_solicitud" readonly="1"/>
<field name="csp_ordencompra" readonly="1" />
<field name="csp_solicitante" attrs="{'readonly':[('csp_estados','not in',['pe'])]}"/>
<field name="csp_proovedorp" attrs="{'readonly':[('csp_estados','not in',['pe'])]}"/>
<field name="csp_notas" attrs="{'readonly':[('csp_estados','not in',['pe'])]}"/>
......@@ -60,11 +65,17 @@
<field name="csl_descripcion" />
<field name="csl_solicitante"/>
<field name="csl_estados" />
<field name="csl_proovedor_propuesto"/>
<field name="csl_cantidad" />
<field name="csl_producto" />
<!-- <field name="csl_proovedor_propuesto"/> -->
</tree>
</field>
</page>
<page string="Adjuntos">
<group>
<field name="csp_pna_ejecuto" />
<field name="csp_pna_fecha" />
</group>
<field name="csp_adjuntos" required="0" nolabel="1" attrs="{'readonly':[('csp_estados','not in',['pe','e'])]}">
<tree create="1" edit="1" editable="1">
<field name="file" filename="file_name" editable="1" />
......
......@@ -2,8 +2,8 @@
<odoo>
<data noupdate="0">
<menuitem name="Gestión de Compras" sequence="50" id="hgt_compras_gestion" parent="asw_tpv.asw_tpv_compras"/>
<menuitem name="Solicitud de Compra" sequence="10" id="hgt_compras_solicitud" parent="hgt_compras_gestion" action="action_hgt_compra_solicitud_act_window"/>
<menuitem name="Solicitud de Presupuesto" parent="hgt_compras_gestion" id="hgt_compras_presupuesto" action="action_hgt_compra_solicitudpresupuesto_act_window" />
<menuitem name="Órdenes de Compra" parent="hgt_compras_gestion" id="hgt_compras_orden" action="action_hgt_compra_orden_act_window" />
</data>
<menuitem name="Revisión de Solicitudes Compra" sequence="20" id="hgt_compras_revision_solicitud" parent="hgt_compras_gestion" action="action_hgt_revision_compra_solicitud_act_window" groups="hgt_compras.module_category_hgt_gestor_compras"/>
<menuitem name="Solicitud de Compra" sequence="10" id="hgt_compras_solicitud" parent="hgt_compras_gestion" action="action_hgt_compra_solicitud_act_window" groups="hgt_compras.module_category_hgt_solicitud_compras"/>
<menuitem name="Solicitud de Presupuesto" sequence="30" parent="hgt_compras_gestion" id="hgt_compras_presupuesto" action="action_hgt_compra_solicitudpresupuesto_act_window" />
<menuitem name="Órdenes de Compra" sequence="40" parent="hgt_compras_gestion" id="hgt_compras_orden" action="action_hgt_compra_orden_act_window" /> </data>
</odoo>
\ No newline at end of file
from . import crear_solicitudp
from . import presup_noadjunto
\ No newline at end of file
......@@ -5,17 +5,25 @@ from odoo import models, fields, api
class hgt_solicitarp(models.TransientModel):
_name = "hgt.solicitarp"
wiz_lineasol = fields.Many2one (
string =u'Linea de solicitud',
comodel_name ='hgt.compra_solicitudlinea',
wiz_solicitud = fields.Many2one (
string =u'Solicitud Original',
comodel_name ='hgt.compra_solicitudpresupuesto',
)
wiz_proovedor= fields.Many2one (
string =u'Proovedor',
wiz_proovedor= fields.Many2many (
string =u'Proovedores',
comodel_name ='hgt.instituciones',
)
def procesar_solicitudp(self):
return (True)
for proov in self.wiz_proovedor:
datos = {
'csp_solicitante': self.env.uid,
'csp_proovedorp' : proov.id,
'csp_solicitudlinea' : [(6, 0, self.wiz_solicitud.csp_solicitudlinea.ids)],
'csp_compra_solicitud': self.wiz_solicitud.csp_compra_solicitud.id
}
nva_sol = self.env['hgt.compra_solicitudpresupuesto'].create(datos)
return(True)
\ No newline at end of file
......@@ -5,11 +5,11 @@
<field name="model">hgt.solicitarp</field>
<field name="arch" type="xml">
<form>
<group string="Seleccionar proovedor">
<field name="wiz_proovedor"/>
<group string="Seleccionar proovedores">
<field name="wiz_proovedor" widget='many2many_tags'/>
</group>
<footer>
<button name="procesar_solicitudp" type="object" string="Generar" class="btn-default" special="cancel"/>
<button name="procesar_solicitudp" type="object" string="Generar" class="btn-default"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
......
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from datetime import datetime, date
class hgt_presupnoadjunto(models.TransientModel):
_name = "hgt.presupnoadjunto"
pna_solicitudpres = fields.Many2one(
string='Solicitud asociada',
comodel_name ='hgt.compra_solicitudpresupuesto',
)
pna_opcion = fields.Selection(
string=u'Acepto o Rechazo',
selection=[('a', 'a'), ('r', 'r')]
)
def acepto_pna(self):
self.pna_solicitudpres.csp_pna_ejecuto = self.env.user.id
self.pna_solicitudpres.onchange_fecha_pna()
if self.pna_opcion == 'a':
self.pna_solicitudpres.acepto_prend()
if self.pna_opcion == 'r':
self.pna_solicitudpres.rechazo_prend()
return(True)
\ No newline at end of file
<odoo>
<data>
<record id="view_form_procesar_sa_ui" model="ir.ui.view">
<field name="name">Aceptar/Rechazar sin Adjunto</field>
<field name="model">hgt.presupnoadjunto</field>
<field name="arch" type="xml">
<form>
<h3>No es conveniente aceptar o rechazar un presupuesto sin tener archivos adjuntos en este formulario. Si acepta, quedará registro</h3>
<field name="pna_solicitudpres" invisible="1"/>
<footer>
<button name="acepto_pna" type="object" string="Aceptar" class="btn-default"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<act_window id="hgt_procesar_sa_action"
name="Aceptar/Rechazar sin Adjunto"
src_model="hgt.presupnoadjunto"
res_model="hgt.presupnoadjunto"
view_mode="form"
target="new"
multi="True"/>
</data>
</odoo>
\ 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!