summaryrefslogtreecommitdiff
path: root/addons/purchase
diff options
context:
space:
mode:
authoruco (OpenERP) <uco@tinyerp.com>2010-12-30 11:37:53 +0530
committeruco (OpenERP) <uco@tinyerp.com>2010-12-30 11:37:53 +0530
commite0416f8a8fb82174fdaafdbf4bb6dfced55a2b04 (patch)
tree5d46c1dd0eb72bf230a4bcbf9d7980ada4c8fd51 /addons/purchase
parentc3098f4f437708c7b2d6d4a52cd02950c5b67f31 (diff)
parentb352cf0e20d1e17f4cdbd93c3c388fc0004ea50a (diff)
[MERGE]
bzr revid: uco@tinyerp.com-20101230060753-wujam7otb5f13f0z
Diffstat (limited to 'addons/purchase')
-rw-r--r--addons/purchase/i18n/es.po65
-rw-r--r--addons/purchase/purchase.py3
-rw-r--r--addons/purchase/purchase_view.xml5
-rw-r--r--addons/purchase/report/purchase_report.py17
-rw-r--r--addons/purchase/report/purchase_report_view.xml2
-rw-r--r--addons/purchase/security/ir.model.access.csv35
-rw-r--r--addons/purchase/test/purchase_from_order.yml1
7 files changed, 104 insertions, 24 deletions
diff --git a/addons/purchase/i18n/es.po b/addons/purchase/i18n/es.po
index f66d769891a..a56e04e7a52 100644
--- a/addons/purchase/i18n/es.po
+++ b/addons/purchase/i18n/es.po
@@ -7,13 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-12-21 19:45+0000\n"
-"PO-Revision-Date: 2010-12-21 14:12+0000\n"
-"Last-Translator: Carlos-smile <Unknown>\n"
+"PO-Revision-Date: 2010-12-28 09:13+0000\n"
+"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
+"<jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-12-24 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-12-29 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -94,7 +95,7 @@ msgstr "¿Desea generar las facturas de proveedor?"
#: code:addons/purchase/purchase.py:0
#, python-format
msgid "The selected supplier only sells this product by %s"
-msgstr ""
+msgstr "El proveedor seleccionado sólo vende este producto por %s"
#. module: purchase
#: code:addons/purchase/wizard/purchase_line_invoice.py:0
@@ -596,7 +597,7 @@ msgstr "Para facturar"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase
msgid "Pricelists"
-msgstr ""
+msgstr "Tarifas"
#. module: purchase
#: field:purchase.report,partner_address_id:0
@@ -623,7 +624,7 @@ msgstr ""
#. module: purchase
#: help:purchase.order,invoice_ids:0
msgid "Invoices generated for a purchase order"
-msgstr ""
+msgstr "Facturas generadas para un pedido de compra"
#. module: purchase
#: code:addons/purchase/purchase.py:0
@@ -854,7 +855,7 @@ msgstr "Abastecimiento"
#: view:purchase.order:0
#: field:purchase.order,invoice_ids:0
msgid "Invoices"
-msgstr ""
+msgstr "Facturas"
#. module: purchase
#: model:process.node,note:purchase.process_node_purchaseorder0
@@ -1017,6 +1018,9 @@ msgid ""
"the buyer. Depending on the Invoicing control of the purchase order, the "
"invoice is based on received or on ordered quantities."
msgstr ""
+"Un pedido de compra genera una factura de proveedor, tan pronto como la "
+"confirme el comprador. En función del control de facturación del pedido de "
+"compra, la factura se basa en las cantidades recibidas u ordenadas."
#. module: purchase
#: field:purchase.order,amount_untaxed:0
@@ -1119,6 +1123,10 @@ msgid ""
"your receptions. Once you receive a supplier invoice, you can control it "
"according to the draft of invoice and validate it."
msgstr ""
+"Utilice este menú para controlar las facturas que se reciban de su "
+"proveedor. OpenERP pre-genera facturas borrador basadas en sus pedidos de "
+"compra o de sus recepciones. Una vez que reciba una factura de proveedor, "
+"puede compararla con la factura borrador y validarla."
#. module: purchase
#: code:addons/purchase/wizard/purchase_order_group.py:0
@@ -1160,6 +1168,17 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+" El módulo de compras permite generar pedidos de compra para adquirir "
+"bienes de un proveedor.\n"
+" Una factura de proveedor se crea para el pedido realizado en "
+"particular.\n"
+" Cuadro de mandos para la gestión de compras que incluye:\n"
+" * Pedidos actuales de compra.\n"
+" * Pedidos de compra en borrador.\n"
+" * Gráfico de cantidad y monto por mes. \n"
+"\n"
+" "
#. module: purchase
#: code:addons/purchase/purchase.py:0
@@ -1168,6 +1187,8 @@ msgid ""
"The selected supplier has a minimal quantity set to %s, you cannot purchase "
"less."
msgstr ""
+"El proveedor seleccionado tiene establecida una cantidad mínima a %s, no "
+"puede comprar menos."
#. module: purchase
#: selection:purchase.report,month:0
@@ -1456,6 +1477,11 @@ msgid ""
"Purchase Order and generate the next steps: draft reception of the products, "
"invoice to control."
msgstr ""
+"Con el menú de solicitudes de presupuesto puede crear una nueva solicitud de "
+"presupuesto, revisar las existentes y confirmarlas una vez la oferta del "
+"proveedor es aprobada. Cuando se confirma una solicitud de presupuesto, "
+"OpenERP lo convertirá en un pedido de compra y generará los siguientes "
+"pasos: recepción en borrador de los productos, factura de control."
#. module: purchase
#: field:purchase.order.line,date_planned:0
@@ -1646,6 +1672,18 @@ msgid ""
"\n"
" "
msgstr ""
+" Tenga en cuenta que: \n"
+" \n"
+" Los pedidos sólo se fusionarán si: \n"
+" * Los pedidos de compra están en borrador. \n"
+" * Los pedidos pertenecen al mismo proveedor. \n"
+" * Los pedidos tienen la misma ubicación de stock y la misma lista de "
+"precios. \n"
+" \n"
+" Las líneas sólo se fusionarán si: \n"
+" * Las líneas de pedido son exactamente iguales excepto por el producto, "
+"cantidad y unidades. \n"
+" "
#. module: purchase
#: field:purchase.report,product_uom:0
@@ -1694,6 +1732,14 @@ msgid ""
" \n"
"* The 'Cancelled' state is set automatically when user cancel purchase order."
msgstr ""
+" * El estado 'Borrador' se establece automáticamente cuando crea un pedido "
+"(presupuesto) de compra. \n"
+"* El estado 'Confirmado' se establece automáticamente al confirmar el pedido "
+"de compra. \n"
+"* El estado 'Hecho' se establece automáticamente cuando el pedido de compra "
+"se realiza. \n"
+"* El estado 'Cancelado' se establece automáticamente cuando el usuario "
+"cancela un pedido de compra."
#. module: purchase
#: code:addons/purchase/purchase.py:0
@@ -1709,7 +1755,7 @@ msgstr "Total"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action_purhase
msgid "Pricelist Versions"
-msgstr ""
+msgstr "Versiones de tarifa"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_supplier_address_form
@@ -1760,6 +1806,9 @@ msgid ""
"order is 'On order'. The invoice can also be generated manually by the "
"accountant (Invoice control = Manual)."
msgstr ""
+"Se crea automáticamente la factura si el control de facturación del pedido "
+"de compra es 'Desde pedido'. La factura también puede ser generada "
+"manualmente por el contable (control facturación = Manual)."
#. module: purchase
#: view:purchase.report:0
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 3a768a4c218..0de19189fc3 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -220,6 +220,9 @@ class purchase_order(osv.osv):
'pricelist_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').browse(cr, uid, context['partner_id']).property_product_pricelist_purchase.id,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'purchase.order', context=c),
}
+ _sql_constraints = [
+ ('name_uniq', 'unique(name)', 'Order Reference must be unique !'),
+ ]
_name = "purchase.order"
_description = "Purchase Order"
_order = "name desc"
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index d08f602d158..c2a01c5b846 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -259,7 +259,7 @@
<field name="help">With the Requests for Quotation menu you can create new requests for quotations, review existing ones or turn them into a purchase order once the supplier offer is approved. When you confirm a RfQ, OpenERP will convert it to a Purchase Order and generate the next steps: draft reception of the products, draft invoice to control.</field>
</record>
<menuitem action="purchase_rfq" id="menu_purchase_rfq" parent="menu_procurement_management"
- sequence="6" groups="group_purchase_manager,group_purchase_user"/>
+ sequence="6"/>
<record id="purchase_form_action" model="ir.actions.act_window">
<field name="name">Purchase Orders</field>
@@ -407,6 +407,7 @@
context="{'search_default_partner_id': [active_id]}"
id="act_res_partner_2_purchase_order"
name="Purchase Orders"
+ groups="purchase.group_purchase_user"
res_model="purchase.order"
src_model="res.partner"/>
@@ -416,7 +417,7 @@
name="Purchases"
res_model="purchase.order.line"
src_model="product.product"
- groups="base.group_extended"/>
+ groups="purchase.group_purchase_user"/>
<record id="purchase_line_form_action2" model="ir.actions.act_window">
diff --git a/addons/purchase/report/purchase_report.py b/addons/purchase/report/purchase_report.py
index f30d65d8f28..8c5510852ca 100644
--- a/addons/purchase/report/purchase_report.py
+++ b/addons/purchase/report/purchase_report.py
@@ -52,7 +52,7 @@ class purchase_report(osv.osv):
'date_approve':fields.date('Date Approved', readonly=True),
'expected_date':fields.date('Expected Date', readonly=True),
'validator' : fields.many2one('res.users', 'Validated By', readonly=True),
- 'product_uom' : fields.many2one('product.uom', 'Product UoM', required=True),
+ 'product_uom' : fields.many2one('product.uom', 'Reference UoM', required=True),
'company_id':fields.many2one('res.company', 'Company', readonly=True),
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
'delay':fields.float('Days to Validate', digits=(16,2), readonly=True),
@@ -92,16 +92,20 @@ class purchase_report(osv.osv):
s.company_id as company_id,
l.product_id,
t.categ_id as category_id,
- l.product_uom as product_uom,
+ (case when u.uom_type not in ('reference') then
+ (select id from product_uom where uom_type='reference' and category_id = 1)
+ else
+ u.id
+ end) as product_uom,
s.location_id as location_id,
- sum(l.product_qty*u.factor) as quantity,
+ sum(l.product_qty/u.factor) as quantity,
extract(epoch from age(s.date_approve,s.date_order))/(24*60*60)::decimal(16,2) as delay,
extract(epoch from age(l.date_planned,s.date_order))/(24*60*60)::decimal(16,2) as delay_pass,
count(*) as nbr,
(l.price_unit*l.product_qty*u.factor)::decimal(16,2) as price_total,
avg(100.0 * (l.price_unit*l.product_qty*u.factor) / (t.standard_price*l.product_qty*u.factor))::decimal(16,2) as negociation,
sum(t.standard_price*l.product_qty*u.factor)::decimal(16,2) as price_standard,
- (sum(l.product_qty*l.price_unit)/sum(l.product_qty*u.factor))::decimal(16,2) as price_average
+ (sum(l.product_qty*l.price_unit)/sum(l.product_qty/u.factor))::decimal(16,2) as price_average
from purchase_order s
left join purchase_order_line l on (s.id=l.order_id)
left join product_product p on (l.product_id=p.id)
@@ -131,7 +135,10 @@ class purchase_report(osv.osv):
to_char(s.date_order, 'MM'),
to_char(s.date_order, 'YYYY-MM-DD'),
s.state,
- s.warehouse_id
+ s.warehouse_id,
+ u.uom_type,
+ u.category_id,
+ u.id
)
""")
purchase_report()
diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml
index 8bf381b4d41..7f52ca73cf0 100644
--- a/addons/purchase/report/purchase_report_view.xml
+++ b/addons/purchase/report/purchase_report_view.xml
@@ -101,7 +101,7 @@
<separator orientation="vertical"/>
<filter string="Product" name="group_product_id" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
<filter string="Category" name="group_category_id" icon="terp-accessories-archiver" context="{'group_by':'category_id'}"/>
- <filter string="Product UOM" name="group_product_uom" icon="terp-accessories-archiver" context="{'group_by':'product_uom'}"/>
+ <filter string="Reference UOM" name="group_product_uom" icon="terp-accessories-archiver" context="{'group_by':'product_uom'}"/>
<filter string="Warehouse" icon="terp-go-home" context="{'group_by':'warehouse_id'}" groups="base.group_extended"/>
<filter string="Destination" icon="terp-gtk-jump-to-ltr" context="{'group_by':'location_id'}"/>
<separator orientation="vertical"/>
diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv
index 7857fa4586d..95f433247c5 100644
--- a/addons/purchase/security/ir.model.access.csv
+++ b/addons/purchase/security/ir.model.access.csv
@@ -7,10 +7,10 @@
"access_stock_warehouse_purchase_user","stock.warehouse","stock.model_stock_warehouse","group_purchase_user",1,0,0,0
"access_stock_picking_purchase_user","stock.picking","stock.model_stock_picking","group_purchase_user",1,1,1,1
"access_stock_move_purchase_user","stock.move","stock.model_stock_move","group_purchase_user",1,1,1,1
-"access_purchase_order_stock_worker","purchase.order","model_purchase_order","stock.group_stock_user",1,1,1,0
-"access_purchase_order_line_stock_worker","purchase.order.line","model_purchase_order_line","stock.group_stock_user",1,0,1,0
+"access_purchase_order_stock_worker","purchase.order","model_purchase_order","stock.group_stock_user",1,0,0,0
+"access_purchase_order_line_stock_worker","purchase.order.line","model_purchase_order_line","stock.group_stock_user",1,0,0,0
"access_account_tax_purchase_user","account.tax","account.model_account_tax","group_purchase_user",1,0,0,0
-"access_report_purchase_order","purchase.report","model_purchase_report","group_purchase_manager",1,1,1,1
+"access_report_purchase_order","purchase.report","model_purchase_report","group_purchase_manager",1,0,0,0
"access_report_purchase_order_user","purchase.report user","model_purchase_report","group_purchase_user",1,0,0,0
"access_purchase_order_line_manager","purchase.order.line","model_purchase_order_line","group_purchase_manager",1,1,1,1
"access_stock_location_purchase_user_manager","stock.location","stock.model_stock_location","group_purchase_manager",1,0,0,0
@@ -36,11 +36,32 @@
"access_account_journal_manager","account.journal","account.model_account_journal","group_purchase_manager",1,0,0,0
"access_account_period","account.period","account.model_account_period","group_purchase_user",1,0,0,0
"access_account_fiscalyear","account.fiscalyear","account.model_account_fiscalyear","group_purchase_user",1,0,0,0
-"access_account_move","account.move","account.model_account_move","group_purchase_user",1,1,1,1
+"access_account_move","account.move","account.model_account_move","group_purchase_user",1,0,0,0
"access_account_move_line","account.move.line","account.model_account_move_line","group_purchase_user",1,0,0,0
"access_account_analytic_line","account.analytic.line","account.model_account_analytic_line","group_purchase_user",1,0,0,0
"access_account_move_reconcile","account.move.reconcile","account.model_account_move_reconcile","group_purchase_user",1,0,0,0
-"access_report_stock_move","report.stock.move.manager","stock.model_report_stock_move","group_purchase_manager",1,1,1,1
+"access_report_stock_move","report.stock.move.manager","stock.model_report_stock_move","group_purchase_manager",1,0,0,0
"access_report_stock_move_user","report.stock.move.user","stock.model_report_stock_move","group_purchase_user",1,0,0,0
-"access_stock_production_lot_user","stock.production.lot user","stock.model_stock_production_lot","group_purchase_user",1,0,1,0
-"access_stock_production_lot_revision","stock.production.lot.revision","stock.model_stock_production_lot_revision","group_purchase_user",1,0,1,0
+"access_stock_production_lot_user","stock.production.lot user","stock.model_stock_production_lot","group_purchase_user",1,1,1,0
+"access_stock_production_lot_revision","stock.production.lot.revision","stock.model_stock_production_lot_revision","group_purchase_user",1,1,1,0
+"access_res_partner_purchase_manager","res.partner.purchase.manager","base.model_res_partner","group_purchase_manager",1,1,1,1
+"access_product_uom_categ_purchase_manager","product.uom.categ purchase_manager","product.model_product_uom_categ","purchase.group_purchase_manager",1,1,1,1
+"access_product_uom_purchase_manager","product.uom purchase_manager","product.model_product_uom","purchase.group_purchase_manager",1,1,1,1
+"access_product_ul_purchase_manager","product.ul purchase_manager","product.model_product_ul","purchase.group_purchase_manager",1,1,1,1
+"access_product_category_purchase_manager","product.category purchase_manager","product.model_product_category","purchase.group_purchase_manager",1,1,1,1
+"access_product_template_purchase_manager","product.template purchase_manager","product.model_product_template","purchase.group_purchase_manager",1,1,1,1
+"access_product_product_purchase_manager","product.product purchase_manager","product.model_product_product","purchase.group_purchase_manager",1,1,1,1
+"access_product_packaging_purchase_manager","product.packaging purchase_manager","product.model_product_packaging","purchase.group_purchase_manager",1,1,1,1
+"access_product_supplierinfo_purchase_manager","product.supplierinfo purchase_manager","product.model_product_supplierinfo","purchase.group_purchase_manager",1,1,1,1
+"access_pricelist_partnerinfo_purchase_manager","pricelist.partnerinfo purchase_manager","product.model_pricelist_partnerinfo","purchase.group_purchase_manager",1,1,1,1
+"access_product_price_type_purchase_manager","product.price.type purchase_manager","product.model_product_price_type","purchase.group_purchase_manager",1,1,1,1
+"access_product_pricelist_type_purchase_manager","product.pricelist.type purchase_manager","product.model_product_pricelist_type","purchase.group_purchase_manager",1,1,1,1
+"access_product_pricelist_purchase_manager","product.pricelist purchase_manager","product.model_product_pricelist","purchase.group_purchase_manager",1,1,1,1
+"access_ir_property_group_purchase_manager","ir_property group_purchase_manager","base.model_ir_property","purchase.group_purchase_manager",1,1,1,1
+"access_product_group_res_partner_purchase_manager","res_partner group_purchase_manager","base.model_res_partner","purchase.group_purchase_manager",1,1,1,1
+"access_product_pricelist_version_purchase_manager","product.pricelist.version purchase_manager","product.model_product_pricelist_version","purchase.group_purchase_manager",1,1,1,1
+"access_product_pricelist_item_purchase_manager","product.pricelist.item purchase_manager","product.model_product_pricelist_item","purchase.group_purchase_manager",1,1,1,1
+"access_account_account_purchase_manager","account.account purchase manager","account.model_account_account","purchase.group_purchase_manager",1,0,0,0
+"access_account_journal_purchase_manager","account.journal purchase manager","account.model_account_journal","purchase.group_purchase_manager",1,0,0,0
+"access_stock_tracking_purchase_user","stock.tracking purchase.user","stock.model_stock_tracking","purchase.group_purchase_user",1,1,1,0
+"access_stock_location_purchase_manager","stock.location purchase manager","stock.model_stock_location","purchase.group_purchase_manager",1,0,0,0
diff --git a/addons/purchase/test/purchase_from_order.yml b/addons/purchase/test/purchase_from_order.yml
index 454580baaf4..ca089db7821 100644
--- a/addons/purchase/test/purchase_from_order.yml
+++ b/addons/purchase/test/purchase_from_order.yml
@@ -31,7 +31,6 @@
date_order: '2010-05-11'
invoice_method: order
location_id: stock.stock_location_stock
- name: PO00003
order_line:
- date_planned: '2010-05-13'
name: iPod