Commit 2d90cba2 by Maria Agustina

1769 mod compras terminado

1 parent 6c906563
...@@ -35,8 +35,11 @@ ...@@ -35,8 +35,11 @@
'views/compra_solicitudpresupuesto.xml', 'views/compra_solicitudpresupuesto.xml',
'reportes/rep_solicitud_presup.xml', 'reportes/rep_solicitud_presup.xml',
'reportes/template_rep_solicitud_presup.xml', 'reportes/template_rep_solicitud_presup.xml',
'reportes/rep_enviar_orden.xml',
'reportes/template_rep_enviar_orden.xml',
'wizard/crear_solicitudp.xml', 'wizard/crear_solicitudp.xml',
'wizard/presup_noadjunto.xml', 'wizard/presup_noadjunto.xml',
'wizard/aceptacion_parcial.xml',
'views/compra_orden.xml', 'views/compra_orden.xml',
'views/menu.xml', 'views/menu.xml',
], ],
......
...@@ -2,6 +2,8 @@ from odoo import models, fields, api ...@@ -2,6 +2,8 @@ from odoo import models, fields, api
class hgt_compra_orden(models.Model): class hgt_compra_orden(models.Model):
_name='hgt.compra_orden' _name='hgt.compra_orden'
_rec_name='id'
_order = 'id asc'
cor_comprador = fields.Many2one( cor_comprador = fields.Many2one(
string=u'Comprador', string=u'Comprador',
...@@ -31,6 +33,11 @@ class hgt_compra_orden(models.Model): ...@@ -31,6 +33,11 @@ class hgt_compra_orden(models.Model):
comodel_name = 'hgt.compra_solicitudpresupuesto', comodel_name = 'hgt.compra_solicitudpresupuesto',
) )
cor_proovedorp= fields.Many2one (
string =u'Proovedor',
comodel_name ='hgt.instituciones',
)
def rechazar_orden(self): def rechazar_orden(self):
self.cor_sp.orden_rechazada() self.cor_sp.orden_rechazada()
self.cor_estados = 'r' self.cor_estados = 'r'
...@@ -41,6 +48,8 @@ class hgt_compra_orden(models.Model): ...@@ -41,6 +48,8 @@ class hgt_compra_orden(models.Model):
return (True) return (True)
def enviar_orden(self): def enviar_orden(self):
#PDF
obj = self.env.ref('hgt_compras.orden_de_compra').report_action(self)
self.cor_estados = 'e' self.cor_estados = 'e'
return (True) return obj
\ No newline at end of file \ No newline at end of file
...@@ -5,6 +5,8 @@ from odoo.exceptions import UserError ...@@ -5,6 +5,8 @@ from odoo.exceptions import UserError
class hgt_compra_solicitud(models.Model): class hgt_compra_solicitud(models.Model):
_name='hgt.compra_solicitud' _name='hgt.compra_solicitud'
_description='Solicitud de Compra' _description='Solicitud de Compra'
_rec_name='id'
_order = 'id asc'
name = fields.Char( name = fields.Char(
string = u'Código Único', string = u'Código Único',
......
...@@ -5,6 +5,7 @@ from datetime import date ...@@ -5,6 +5,7 @@ from datetime import date
class hgt_compra_solicitudpresupuesto(models.Model): class hgt_compra_solicitudpresupuesto(models.Model):
_name='hgt.compra_solicitudpresupuesto' _name='hgt.compra_solicitudpresupuesto'
_order = 'id asc' _order = 'id asc'
_rec_name='id'
csp_solicitante = fields.Many2one( csp_solicitante = fields.Many2one(
string =u'Solicitante', string =u'Solicitante',
...@@ -72,6 +73,10 @@ class hgt_compra_solicitudpresupuesto(models.Model): ...@@ -72,6 +73,10 @@ class hgt_compra_solicitudpresupuesto(models.Model):
readonly=True, readonly=True,
) )
csp_monto_tot = fields.Float(
string='Monto total presupuestado',
)
@api.depends('csp_pna_ejecuto') @api.depends('csp_pna_ejecuto')
def onchange_fecha_pna(self): def onchange_fecha_pna(self):
self.csp_pna_fecha = str(date.today()) self.csp_pna_fecha = str(date.today())
...@@ -97,7 +102,7 @@ class hgt_compra_solicitudpresupuesto(models.Model): ...@@ -97,7 +102,7 @@ class hgt_compra_solicitudpresupuesto(models.Model):
} }
def aceptar_presup(self): def aceptar_presup(self):
if not self.csp_adjuntos: if (not self.csp_adjuntos) and (not self.csp_pna_ejecuto):
datos = {'pna_solicitudpres': self.id, datos = {'pna_solicitudpres': self.id,
'pna_opcion': 'a'} 'pna_opcion': 'a'}
nwiz = self.env['hgt.presupnoadjunto'].create(datos) nwiz = self.env['hgt.presupnoadjunto'].create(datos)
...@@ -113,16 +118,20 @@ class hgt_compra_solicitudpresupuesto(models.Model): ...@@ -113,16 +118,20 @@ class hgt_compra_solicitudpresupuesto(models.Model):
"view_id": self.env.ref("hgt_compras.view_form_procesar_sa_ui").id, "view_id": self.env.ref("hgt_compras.view_form_procesar_sa_ui").id,
} }
else: else:
self.csp_estados = 'a' datos = {'wizap_solicitud': self.id}
return(True) nwiz = self.env['hgt.aceptacionp'].create(datos)
return {
'type': 'ir.actions.act_window',
'res_model': 'hgt.aceptacionp',
'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_aceptacion_p_ui").id,
}
def acepto_prend(self):
self.csp_estados = 'a'
return(True)
def rechazo_prend(self):
self.csp_estados = 'r'
return(True)
def rechazar_presup(self): def rechazar_presup(self):
if not self.csp_adjuntos: if not self.csp_adjuntos:
...@@ -147,18 +156,17 @@ class hgt_compra_solicitudpresupuesto(models.Model): ...@@ -147,18 +156,17 @@ class hgt_compra_solicitudpresupuesto(models.Model):
def generar_sc(self): def generar_sc(self):
lista = [] lista = []
datos = {'cor_comprador': self.csp_solicitante.id, datos = {'cor_comprador': self.csp_solicitante.id,
'cor_sp': self.id} 'cor_sp': self.id,
'cor_proovedorp': self.csp_proovedorp.id}
nva_orden = self.env['hgt.compra_orden'].create(datos) nva_orden = self.env['hgt.compra_orden'].create(datos)
for lin in self.csp_solicitudlinea: for lin in self.csp_solicitudlinea:
lista.append(lin.id) if lin.csl_select == True:
lista.append(lin.id)
nva_orden.cor_linea_solicitud = lista nva_orden.cor_linea_solicitud = lista
self.csp_orden_generada = True self.csp_orden_generada = True
self.csp_ordencompra = nva_orden.id
return (True) return (True)
def orden_rechazada(self): def orden_rechazada(self):
self.csp_orden_generada = False self.csp_orden_generada = False
return (True) return (True)
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<report
id="orden_de_compra"
string="Orden de compra"
model="hgt.compra_orden"
report_type="qweb-html"
name="hgt_compras.hgt_compra_orden"
file="hgt_compras.hgt_compra_orden" />
</odoo>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<template id="hgt_compras.hgt_compra_orden">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.basic_layout">
<div class="page">
<table class="table table-condensed" style="width: 820px; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" padding="0" margin="0" >
<thead>
<tr>
<th colspan='6' style="font-size:30px; border: 2px solid black; height: 100px; text-align:center; vertical-align: middle;" ><strong>Orden de compra</strong></th>
</tr>
<t t-set="estilo_cabecera" t-value="'vertical-align: middle; font-size:20px; border: 2px solid black; height: 50px; text-align: left; padding:5px;'" />
<t t-set="estilo_celda" t-value="'vertical-align: middle; font-size:20px; border:2px solid black; height: 50px; text-align: left; padding:5px;'" />
<tr>
<td colspan='1' t-att-style="estilo_cabecera" ><strong>Solicitante</strong></td>
<td colspan='2' t-att-style="estilo_celda" ><span t-field="o.cor_comprador"></span></td>
<td colspan='1' t-att-style="estilo_cabecera" ><strong>Proovedor</strong></td>
<td colspan='2' t-att-style="estilo_celda" ><span t-field="o.cor_proovedorp"></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>
</tr>
</thead>
<tbody>
<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>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.cor_linea_solicitud" 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_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>
</table>
</div>
</t>
</t>
</t>
</template>
</odoo>
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<t t-foreach="docs" t-as="o"> <t t-foreach="docs" t-as="o">
<t t-call="web.basic_layout"> <t t-call="web.basic_layout">
<div class="page"> <div class="page">
<table class="table table-condensed" style="width: 720px; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" padding="0" margin="0" > <table class="table table-condensed" style="width: 820px; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" padding="0" margin="0" >
<thead> <thead>
<tr> <tr>
<th colspan='6' style="font-size:30px; border: 2px solid black; height: 100px; text-align:center; vertical-align: middle;" ><strong>Solicitud de Presupuesto</strong></th> <th colspan='6' style="font-size:30px; border: 2px solid black; height: 100px; text-align:center; vertical-align: middle;" ><strong>Solicitud de Presupuesto</strong></th>
......
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hgt_compra_orden,access_hgt_compra_orden,model_hgt_compra_orden,,1,1,1,1
access_hgt_compra_solicitud,access_hgt_compra_solicitud,model_hgt_compra_solicitud,,1,1,1,1
access_hgt_compra_solicitudlinea,access_hgt_compra_solicitudlinea,model_hgt_compra_solicitudlinea,,1,1,1,1
access_hgt_compra_solicitudpresupuesto,access_hgt_compra_solicitudpresupuesto,model_hgt_compra_solicitudpresupuesto,,1,1,1,1
\ No newline at end of file \ No newline at end of file
access_hgt_compra_solicitud,access_hgt_compra_solicitud,model_hgt_compra_solicitud,module_category_hgt_solicitud_compras,1,1,1,0
access_hgt_compra_solicitudlinea,access_hgt_compra_solicitudlinea,model_hgt_compra_solicitudlinea,module_category_hgt_solicitud_compras,1,1,1,1
access_hgt_compra_solicitud,access_hgt_compra_solicitud,model_hgt_compra_solicitud,module_category_hgt_gestor_compras,1,1,1,1
access_hgt_compra_solicitudlinea,access_hgt_compra_solicitudlinea,model_hgt_compra_solicitudlinea,module_category_hgt_gestor_compras,1,1,1,1
access_hgt_compra_solicitudpresupuesto,access_hgt_compra_solicitudpresupuesto,model_hgt_compra_solicitudpresupuesto,module_category_hgt_gestor_compras,1,1,1,1
access_hgt_compra_solicitud,access_hgt_compra_solicitud,model_hgt_compra_solicitud,module_category_hgt_comprador_compras,1,1,1,1
access_hgt_compra_solicitudlinea,access_hgt_compra_solicitudlinea,model_hgt_compra_solicitudlinea,module_category_hgt_comprador_compras,1,1,1,1
access_hgt_compra_solicitudpresupuesto,access_hgt_compra_solicitudpresupuesto,model_hgt_compra_solicitudpresupuesto,module_category_hgt_comprador_compras,1,1,1,1
access_hgt_compra_orden,access_hgt_compra_orden,model_hgt_compra_orden,module_category_hgt_comprador_compras,1,1,1,1
\ No newline at end of file \ No newline at end of file
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
<group string="Órden de Compra" col="2"> <group string="Órden de Compra" col="2">
<field name="cor_sp" readonly="1" /> <field name="cor_sp" readonly="1" />
<field colspan="1" name="cor_comprador" attrs="{'readonly':[('cor_estados','not in',['b'])]}" /> <field colspan="1" name="cor_comprador" attrs="{'readonly':[('cor_estados','not in',['b'])]}" />
<field name="cor_proovedorp" readonly="1" />
</group> </group>
<notebook colspan="4"> <notebook colspan="4">
<page string="Líneas de solicitud"> <page string="Líneas de solicitud">
......
...@@ -57,6 +57,9 @@ ...@@ -57,6 +57,9 @@
<field name="csp_proovedorp" 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'])]}"/> <field name="csp_notas" attrs="{'readonly':[('csp_estados','not in',['pe'])]}"/>
</group> </group>
<group>
<field name="csp_monto_tot" />
</group>
<notebook colspan="4"> <notebook colspan="4">
<page string="A presupuestar"> <page string="A presupuestar">
<field nolabel="1" name="csp_solicitudlinea" attrs="{'readonly':[('csp_estados','not in',['pe'])]}"> <field nolabel="1" name="csp_solicitudlinea" attrs="{'readonly':[('csp_estados','not in',['pe'])]}">
...@@ -67,7 +70,7 @@ ...@@ -67,7 +70,7 @@
<field name="csl_estados" /> <field name="csl_estados" />
<field name="csl_cantidad" /> <field name="csl_cantidad" />
<field name="csl_producto" /> <field name="csl_producto" />
<!-- <field name="csl_proovedor_propuesto"/> --> <field name="csl_select" readonly="1"/>
</tree> </tree>
</field> </field>
</page> </page>
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<menuitem name="Gestión de Compras" sequence="50" id="hgt_compras_gestion" parent="asw_tpv.asw_tpv_compras"/> <menuitem name="Gestión de Compras" sequence="50" id="hgt_compras_gestion" parent="asw_tpv.asw_tpv_compras"/>
<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="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 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="Solicitud de Presupuesto" sequence="30" parent="hgt_compras_gestion" id="hgt_compras_presupuesto" action="action_hgt_compra_solicitudpresupuesto_act_window" groups="hgt_compras.module_category_hgt_gestor_compras"/>
<menuitem name="Órdenes de Compra" sequence="40" parent="hgt_compras_gestion" id="hgt_compras_orden" action="action_hgt_compra_orden_act_window" /> </data> <menuitem name="Órdenes de Compra" sequence="40" parent="hgt_compras_gestion" id="hgt_compras_orden" action="action_hgt_compra_orden_act_window" groups="hgt_compras.module_category_hgt_comprador_compras" />
</data>
</odoo> </odoo>
\ No newline at end of file \ No newline at end of file
from . import crear_solicitudp from . import crear_solicitudp
from . import presup_noadjunto
\ No newline at end of file \ No newline at end of file
from . import presup_noadjunto
from . import aceptacion_parcial
\ No newline at end of file \ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class hgt_aceptacionp(models.TransientModel):
_name = "hgt.aceptacionp"
wizap_solicitud = fields.Many2one (
string =u'Solicitud Original',
comodel_name ='hgt.compra_solicitudpresupuesto',
)
wizcsp_solicitudlinea = fields.Many2many(
related='wizap_solicitud.csp_solicitudlinea',
)
wizcsp_monto_tot = fields.Float(
related='wizap_solicitud.csp_monto_tot',
)
def aceptar_presup(self):
self.wizap_solicitud.csp_estados = 'a'
return(True)
\ No newline at end of file \ No newline at end of file
<odoo>
<data>
<record id="view_form_aceptacion_p_ui" model="ir.ui.view">
<field name="name">Aceptación Parcial</field>
<field name="model">hgt.aceptacionp</field>
<field name="arch" type="xml">
<form>
<h3>Aceptación Parcial</h3>
<h4>Para aceptación total, seleccione todas las líneas de presupuesto</h4>
<group>
<field name="wizcsp_monto_tot" readonly="1"/>
</group>
<notebook>
<page string="Líneas de presupuesto a aceptar">
<field name="wizcsp_solicitudlinea">
<tree create="0" edit="1" editable="1">
<field name="name" readonly="1" />
<field name="csl_descripcion" readonly="1"/>
<field name="csl_cantidad" readonly="1" />
<field name="csl_producto" readonly="1" />
<field name="csl_select"/>
</tree>
</field>
</page>
</notebook>
<footer>
<button name="aceptar_presup" type="object" string="Aceptar" class="btn-default"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<act_window id="hgt_aceptacion_p_action"
name="Aceptación Parcial"
src_model="hgt.aceptacionp"
res_model="hgt.aceptacionp"
view_mode="form"
target="new"
multi="True"/>
</data>
</odoo>
\ No newline at end of file \ No newline at end of file
...@@ -19,8 +19,4 @@ class hgt_presupnoadjunto(models.TransientModel): ...@@ -19,8 +19,4 @@ class hgt_presupnoadjunto(models.TransientModel):
def acepto_pna(self): def acepto_pna(self):
self.pna_solicitudpres.csp_pna_ejecuto = self.env.user.id self.pna_solicitudpres.csp_pna_ejecuto = self.env.user.id
self.pna_solicitudpres.onchange_fecha_pna() 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) return(True)
\ 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!