diff options
| author | uco (OpenERP) <uco@tinyerp.com> | 2010-12-30 11:37:53 +0530 |
|---|---|---|
| committer | uco (OpenERP) <uco@tinyerp.com> | 2010-12-30 11:37:53 +0530 |
| commit | e0416f8a8fb82174fdaafdbf4bb6dfced55a2b04 (patch) | |
| tree | 5d46c1dd0eb72bf230a4bcbf9d7980ada4c8fd51 /addons/purchase | |
| parent | c3098f4f437708c7b2d6d4a52cd02950c5b67f31 (diff) | |
| parent | b352cf0e20d1e17f4cdbd93c3c388fc0004ea50a (diff) | |
[MERGE]
bzr revid: uco@tinyerp.com-20101230060753-wujam7otb5f13f0z
Diffstat (limited to 'addons/purchase')
| -rw-r--r-- | addons/purchase/i18n/es.po | 65 | ||||
| -rw-r--r-- | addons/purchase/purchase.py | 3 | ||||
| -rw-r--r-- | addons/purchase/purchase_view.xml | 5 | ||||
| -rw-r--r-- | addons/purchase/report/purchase_report.py | 17 | ||||
| -rw-r--r-- | addons/purchase/report/purchase_report_view.xml | 2 | ||||
| -rw-r--r-- | addons/purchase/security/ir.model.access.csv | 35 | ||||
| -rw-r--r-- | addons/purchase/test/purchase_from_order.yml | 1 |
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 |
