diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 54c1082a2c1..51a020b9b75 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -53,7 +53,7 @@ - + @@ -346,9 +346,9 @@ - - - + + + @@ -357,16 +357,16 @@ - - - + + + - - - + + + - - + + diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml index 656d9d2f595..6480178d1ae 100644 --- a/addons/account/account_report.xml +++ b/addons/account/account_report.xml @@ -23,7 +23,7 @@ - + - + - + - + @@ -1851,7 +1851,6 @@ - diff --git a/addons/account/i18n/ca.po b/addons/account/i18n/ca.po index 87f0c741768..448bb5f1aee 100644 --- a/addons/account/i18n/ca.po +++ b/addons/account/i18n/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/i18n/it.po b/addons/account/i18n/it.po index 0181308a55e..de27e9bfec9 100644 --- a/addons/account/i18n/it.po +++ b/addons/account/i18n/it.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 5ef80d40560..096c19cdd5d 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -1300,7 +1300,7 @@ class account_invoice_line(osv.osv): result['name'] = res.partner_ref domain = {} - result['uos_id'] = uom or res.uom_id.id or False + result['uos_id'] = res.uom_id.id or uom or False if result['uos_id']: res2 = res.uom_id.category_id.id if res2 : @@ -1323,8 +1323,22 @@ class account_invoice_line(osv.osv): if company.currency_id.id != currency.id: new_price = res_final['value']['price_unit'] * currency.rate res_final['value']['price_unit'] = new_price + + if uom: + uom = self.pool.get('product.uom').browse(cr, uid, uom, context=context) + if res.uom_id.category_id.id == uom.category_id.id: + new_price = res_final['value']['price_unit'] * uom.factor_inv + res_final['value']['price_unit'] = new_price return res_final + def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None): + res = self.product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context) + if 'uos_id' in res['value']: + del res['value']['uos_id'] + if not uom: + res['value']['price_unit'] = 0.0 + return res + def move_line_get(self, cr, uid, invoice_id, context=None): res = [] tax_grouped = {} diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 1d74edb3f3a..03037963ded 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -25,8 +25,8 @@ - - + + @@ -414,8 +414,8 @@ - - + + diff --git a/addons/account/report/account_account_report_view.xml b/addons/account/report/account_account_report_view.xml index 137fa0c69ae..bd9101a3382 100644 --- a/addons/account/report/account_account_report_view.xml +++ b/addons/account/report/account_account_report_view.xml @@ -45,10 +45,10 @@ - - @@ -56,15 +56,15 @@ - - - - + + + + - - - - + + + + diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml index 82a063256c1..1564859540a 100644 --- a/addons/account/report/account_analytic_entries_report_view.xml +++ b/addons/account/report/account_analytic_entries_report_view.xml @@ -35,14 +35,14 @@ - - - - + - - - - + + + + - - - + + + - - + + - - - + + + diff --git a/addons/account/report/account_analytic_report_view.xml b/addons/account/report/account_analytic_report_view.xml index f853b809867..290e6950569 100644 --- a/addons/account/report/account_analytic_report_view.xml +++ b/addons/account/report/account_analytic_report_view.xml @@ -36,26 +36,26 @@ - - - - - - @@ -63,28 +63,28 @@ - - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/addons/account/report/account_entries_report_view.xml b/addons/account/report/account_entries_report_view.xml index 5d1b99b578e..0c3a77db2a7 100644 --- a/addons/account/report/account_entries_report_view.xml +++ b/addons/account/report/account_entries_report_view.xml @@ -50,25 +50,25 @@ - - - @@ -78,24 +78,24 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py index 523d77c84e3..1fb90a86bec 100644 --- a/addons/account/report/account_invoice_report.py +++ b/addons/account/report/account_invoice_report.py @@ -49,6 +49,7 @@ class account_invoice_report(osv.osv): 'price_total':fields.float('Total Price', readonly=True), 'price_average':fields.float('Average Price', readonly=True), 'nbr':fields.integer('# of Lines', readonly=True), + 'reconciled':fields.integer('# reconciled lines', readonly=True), 'type': fields.selection([ ('out_invoice','Customer Invoice'), ('in_invoice','Supplier Invoice'), @@ -62,7 +63,7 @@ class account_invoice_report(osv.osv): ('open','Open'), ('paid','Done'), ('cancel','Cancelled') - ], 'Order State', readonly=True), + ], 'Invoice State', readonly=True), 'date_due': fields.date('Due Date', readonly=True), 'address_contact_id': fields.many2one('res.partner.address', 'Contact Address Name', readonly=True), 'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address Name', readonly=True), @@ -89,6 +90,7 @@ class account_invoice_report(osv.osv): l.quantity * u.factor end) as product_qty, s.partner_id as partner_id, + s.reconciled::integer, s.payment_term as payment_term, s.period_id as period_id, u.name as uom_name, @@ -137,6 +139,7 @@ class account_invoice_report(osv.osv): l.product_id, u.name, l.uos_id, + s.reconciled, s.user_id, s.state, s.residual, diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index 965d5078ae9..542b695e7dd 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -20,8 +20,6 @@ - - @@ -29,8 +27,11 @@ - + + + + @@ -56,87 +57,78 @@ - - - - + - - + + - - - - - - + + + + - - - + + - - - + + - - - + + + + - - - + + + - - + + - - - - - - - - - + - - + + + + diff --git a/addons/account/report/account_report_view.xml b/addons/account/report/account_report_view.xml index 9b1688730aa..190ff856c8a 100644 --- a/addons/account/report/account_report_view.xml +++ b/addons/account/report/account_report_view.xml @@ -153,8 +153,8 @@ search - - + + @@ -221,8 +221,8 @@ search - - + + diff --git a/addons/account/wizard/account_central_journal_view.xml b/addons/account/wizard/account_central_journal_view.xml index ec3f0eabb5d..dfe704c7051 100644 --- a/addons/account/wizard/account_central_journal_view.xml +++ b/addons/account/wizard/account_central_journal_view.xml @@ -31,7 +31,7 @@ \n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 15:31+0000\n" -"Last-Translator: Makis Nicolaou \n" +"PO-Revision-Date: 2010-06-09 03:00+0000\n" +"Last-Translator: Panayiotis Konstantinidis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:11+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_analytic_analysis @@ -80,7 +80,7 @@ msgstr "Θεωρητικά Έσοδα" #. module: account_analytic_analysis #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Λανθασμένο όνομα μοντέλου στην δήλωση ενέργειας" #. module: account_analytic_analysis #: help:account.analytic.account,theorical_margin:0 @@ -230,7 +230,7 @@ msgstr "Αναλυτικοί Λογαριασμοί" #. module: account_analytic_analysis #: model:ir.module.module,shortdesc:account_analytic_analysis.module_meta_information msgid "report_account_analytic" -msgstr "" +msgstr "report_account_analytic" #. module: account_analytic_analysis #: field:account.analytic.account,ca_invoiced:0 diff --git a/addons/account_anglo_saxon/i18n/el.po b/addons/account_anglo_saxon/i18n/el.po new file mode 100644 index 00000000000..b4be43ac790 --- /dev/null +++ b/addons/account_anglo_saxon/i18n/el.po @@ -0,0 +1,66 @@ +# Greek translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 12:50+0000\n" +"PO-Revision-Date: 2010-06-09 03:12+0000\n" +"Last-Translator: Panayiotis Konstantinidis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_anglo_saxon +#: view:product.category:0 +msgid " Accounting Property" +msgstr "" + +#. module: account_anglo_saxon +#: model:ir.module.module,description:account_anglo_saxon.module_meta_information +msgid "" +"This module will support the Anglo-Saxons accounting methodology by \n" +" changing the accounting logic with stock transactions. The difference " +"between the Anglo-Saxon accounting countries \n" +" and the Rhine or also called Continental accounting countries is the " +"moment of taking the Cost of Goods Sold versus Cost of Sales. \n" +" Anglo-Saxons accounting does take the cost when sales invoice is " +"created, Continental accounting will take the cost at he moment the goods " +"are shipped.\n" +" This module will add this functionality by using a interim account, to " +"store the value of shipped goods and will contra book this interim account \n" +" when the invoice is created to transfer this amount to the debtor or " +"creditor account." +msgstr "" + +#. module: account_anglo_saxon +#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information +msgid "Stock Account" +msgstr "" + +#. module: account_anglo_saxon +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_anglo_saxon +#: field:product.category,property_account_creditor_price_difference_categ:0 +#: field:product.template,property_account_creditor_price_difference:0 +msgid "Price Difference Account" +msgstr "Λογαριασμός διαφοράς τιμής" + +#. module: account_anglo_saxon +#: help:product.category,property_account_creditor_price_difference_categ:0 +#: help:product.template,property_account_creditor_price_difference:0 +msgid "" +"This account will be used to value price difference between purchase price " +"and cost price." +msgstr "" +"Αυτός ο λογαριασμός θα χρησιμοποιείται να μετράει τη διαφορά μεταξύ τιμής " +"αγοράς και τιμή κόστους." diff --git a/addons/account_balance/i18n/el.po b/addons/account_balance/i18n/el.po index 9c7f4228d3e..0d013323c9e 100644 --- a/addons/account_balance/i18n/el.po +++ b/addons/account_balance/i18n/el.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 14:38+0000\n" -"Last-Translator: Makis Nicolaou \n" +"PO-Revision-Date: 2010-06-09 03:21+0000\n" +"Last-Translator: Panayiotis Konstantinidis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:09+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_balance @@ -59,7 +59,7 @@ msgstr "Όνομα Λογαριασμού" #: rml:account.account.balance.landscape:0 #: rml:account.balance.account.balance:0 msgid "Debit" -msgstr "" +msgstr "Χρέωση" #. module: account_balance #: wizard_button:account.balance.account.balance.report,init,checkyear:0 @@ -143,7 +143,7 @@ msgstr "Με ισοζύγιο που δεν είναι ίσο με 0" #: rml:account.account.balance.landscape:0 #: rml:account.balance.account.balance:0 msgid "Total :" -msgstr "" +msgstr "Σύνολο:" #. module: account_balance #: rml:account.account.balance.landscape:0 @@ -196,7 +196,7 @@ msgstr "Εμφάνιση Λογαριασμών" #: rml:account.account.balance.landscape:0 #: rml:account.balance.account.balance:0 msgid "Credit" -msgstr "" +msgstr "Πίστωση" #. module: account_balance #: wizard_view:account.balance.account.balance.report,backtoinit:0 @@ -206,13 +206,13 @@ msgstr "1. Έχετε επιλέξτε περισσότερα απο 3 έτη σ #. module: account_balance #: model:ir.module.module,shortdesc:account_balance.module_meta_information msgid "Accounting and financial management-Compare Accounts" -msgstr "" +msgstr "Λογιστική και οικονομική διαχείριση - Σύγκριση λογαριασμών" #. module: account_balance #: rml:account.account.balance.landscape:0 #: rml:account.balance.account.balance:0 msgid "Year :" -msgstr "" +msgstr "Έτος :" #. module: account_balance #: wizard_view:account.balance.account.balance.report,backtoinit:0 @@ -223,7 +223,7 @@ msgstr "Μπορείτε να επιλέξετε το πολύ 3 έτη. Παρ #: rml:account.account.balance.landscape:0 #: rml:account.balance.account.balance:0 msgid "Balance" -msgstr "" +msgstr "Υπόλοιπο" #. module: account_balance #: wizard_view:account.balance.account.balance.report,backtoinit:0 diff --git a/addons/account_budget/crossovered_budget_report.xml b/addons/account_budget/crossovered_budget_report.xml index 0e3fcad2fc7..7a968cc9557 100644 --- a/addons/account_budget/crossovered_budget_report.xml +++ b/addons/account_budget/crossovered_budget_report.xml @@ -4,7 +4,7 @@ + string="Budget"/> diff --git a/addons/account_budget/crossovered_budget_view.xml b/addons/account_budget/crossovered_budget_view.xml index b48ccc55daa..e7a0faf069d 100644 --- a/addons/account_budget/crossovered_budget_view.xml +++ b/addons/account_budget/crossovered_budget_view.xml @@ -185,8 +185,8 @@ - - + + diff --git a/addons/account_coda/i18n/el.po b/addons/account_coda/i18n/el.po new file mode 100644 index 00000000000..9ed3156d138 --- /dev/null +++ b/addons/account_coda/i18n/el.po @@ -0,0 +1,168 @@ +# Greek translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:11+0000\n" +"PO-Revision-Date: 2010-06-09 02:57+0000\n" +"Last-Translator: Panayiotis Konstantinidis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_coda +#: field:account.coda,journal_id:0 +#: wizard_field:account.coda_import,init,journal_id:0 +msgid "Bank Journal" +msgstr "" + +#. module: account_coda +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Το όνομα του Αντικειμένου πρέπει να ξεκινά με x_ και δεν πρέπει να περιέχει " +"ειδικούς χαρακτήρες!" + +#. module: account_coda +#: wizard_field:account.coda_import,extraction,note:0 +msgid "Log" +msgstr "Καταγραφή" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,open:0 +msgid "_Open Statement" +msgstr "" + +#. module: account_coda +#: model:ir.module.module,shortdesc:account_coda.module_meta_information +msgid "Account CODA" +msgstr "" + +#. module: account_coda +#: field:account.coda,name:0 +msgid "Coda file" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Clic on 'New' to select your file :" +msgstr "Πατήστε \"Νέο\" για να επιλέξετε το αρχείο σας" + +#. module: account_coda +#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import +msgid "Import Coda File" +msgstr "" + +#. module: account_coda +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας" + +#. module: account_coda +#: field:account.coda,note:0 +msgid "Import log" +msgstr "Εισαγωγή ιστορικού καταγραφής" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_receivable:0 +msgid "Default receivable Account" +msgstr "Προεπιλεγμένος λογαριασμός είσπραξης" + +#. module: account_coda +#: model:ir.module.module,description:account_coda.module_meta_information +msgid "" +"Module provides functionality to import\n" +" bank statements from .csv file.\n" +" Import coda file wizard is used to import bank statements." +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,end:0 +msgid "_Close" +msgstr "_Κλείσιμο" + +#. module: account_coda +#: field:account.coda,statement_id:0 +msgid "Generated Bank Statement" +msgstr "Δημιουργημένος τραπεζικός λογαριασμός" + +#. module: account_coda +#: view:account.coda:0 +#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement +#: model:ir.actions.act_window,name:account_coda.action_account_coda +msgid "Coda import" +msgstr "" + +#. module: account_coda +#: field:account.coda,user_id:0 +msgid "User" +msgstr "Χρήστης" + +#. module: account_coda +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_coda +msgid "coda for an Account" +msgstr "" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_payable:0 +msgid "Default Payable Account" +msgstr "Προεπιλεγμένος λογαριασμός πληρωμής" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda +msgid "Coda Statements" +msgstr "" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard +msgid "Import Coda Statements" +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,init,extraction:0 +msgid "_Ok" +msgstr "_Εντάξει" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +#: wizard_view:account.coda_import,init:0 +msgid "Import Coda Statement" +msgstr "" + +#. module: account_coda +#: field:account.bank.statement,coda_id:0 +msgid "Coda" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +msgid "Results :" +msgstr "Αποτελέσματα :" + +#. module: account_coda +#: wizard_field:account.coda_import,init,coda:0 +msgid "Coda File" +msgstr "" + +#. module: account_coda +#: field:account.coda,date:0 +msgid "Import Date" +msgstr "Εισαγωγή ημερομηνίας" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Select your bank journal :" +msgstr "" diff --git a/addons/account_coda/i18n/et.po b/addons/account_coda/i18n/et.po new file mode 100644 index 00000000000..ca0c9a210fb --- /dev/null +++ b/addons/account_coda/i18n/et.po @@ -0,0 +1,167 @@ +# Estonian translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:11+0000\n" +"PO-Revision-Date: 2010-06-08 17:34+0000\n" +"Last-Translator: lyyser \n" +"Language-Team: Estonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_coda +#: field:account.coda,journal_id:0 +#: wizard_field:account.coda_import,init,journal_id:0 +msgid "Bank Journal" +msgstr "" + +#. module: account_coda +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !" + +#. module: account_coda +#: wizard_field:account.coda_import,extraction,note:0 +msgid "Log" +msgstr "Logi" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,open:0 +msgid "_Open Statement" +msgstr "" + +#. module: account_coda +#: model:ir.module.module,shortdesc:account_coda.module_meta_information +msgid "Account CODA" +msgstr "" + +#. module: account_coda +#: field:account.coda,name:0 +msgid "Coda file" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Clic on 'New' to select your file :" +msgstr "" + +#. module: account_coda +#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import +msgid "Import Coda File" +msgstr "" + +#. module: account_coda +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Vigane mudeli nimi toimingu definitsioonis." + +#. module: account_coda +#: field:account.coda,note:0 +msgid "Import log" +msgstr "Impordi logi" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_receivable:0 +msgid "Default receivable Account" +msgstr "" + +#. module: account_coda +#: model:ir.module.module,description:account_coda.module_meta_information +msgid "" +"Module provides functionality to import\n" +" bank statements from .csv file.\n" +" Import coda file wizard is used to import bank statements." +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,extraction,end:0 +msgid "_Close" +msgstr "_Sulge" + +#. module: account_coda +#: field:account.coda,statement_id:0 +msgid "Generated Bank Statement" +msgstr "" + +#. module: account_coda +#: view:account.coda:0 +#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement +#: model:ir.actions.act_window,name:account_coda.action_account_coda +msgid "Coda import" +msgstr "" + +#. module: account_coda +#: field:account.coda,user_id:0 +msgid "User" +msgstr "Kasutaja" + +#. module: account_coda +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: account_coda +#: model:ir.model,name:account_coda.model_account_coda +msgid "coda for an Account" +msgstr "" + +#. module: account_coda +#: wizard_field:account.coda_import,init,def_payable:0 +msgid "Default Payable Account" +msgstr "Vaikimisi on tasulised konto" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda +msgid "Coda Statements" +msgstr "" + +#. module: account_coda +#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard +msgid "Import Coda Statements" +msgstr "" + +#. module: account_coda +#: wizard_button:account.coda_import,init,extraction:0 +msgid "_Ok" +msgstr "_Ok" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +#: wizard_view:account.coda_import,init:0 +msgid "Import Coda Statement" +msgstr "" + +#. module: account_coda +#: field:account.bank.statement,coda_id:0 +msgid "Coda" +msgstr "" + +#. module: account_coda +#: wizard_view:account.coda_import,extraction:0 +msgid "Results :" +msgstr "Tulemused :" + +#. module: account_coda +#: wizard_field:account.coda_import,init,coda:0 +msgid "Coda File" +msgstr "" + +#. module: account_coda +#: field:account.coda,date:0 +msgid "Import Date" +msgstr "Importimise aeg" + +#. module: account_coda +#: wizard_view:account.coda_import,init:0 +msgid "Select your bank journal :" +msgstr "" diff --git a/addons/account_followup/__openerp__.py b/addons/account_followup/__openerp__.py index 138bbdb40ed..df3955d8180 100644 --- a/addons/account_followup/__openerp__.py +++ b/addons/account_followup/__openerp__.py @@ -55,9 +55,6 @@ 'followup_data.xml' ], 'demo_xml': ['followup_demo.xml'], - 'test': [ - 'test/account_followup.yml' - ], 'installable': True, 'active': False, 'certificate': '0072481076453', diff --git a/addons/account_followup/i18n/hr.po b/addons/account_followup/i18n/hr.po index 45fce2cbd2b..32aaa2a926d 100644 --- a/addons/account_followup/i18n/hr.po +++ b/addons/account_followup/i18n/hr.po @@ -7,24 +7,24 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 12:18+0000\n" -"Last-Translator: Ivica Perić \n" +"PO-Revision-Date: 2010-06-07 04:28+0000\n" +"Last-Translator: nafterburner \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-04-17 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_followup #: rml:account_followup.followup.print:0 msgid "Date :" -msgstr "" +msgstr "Datum :" #. module: account_followup #: wizard_field:account_followup.followup.print.all,next,partner_ids:0 msgid "Partners" -msgstr "" +msgstr "Partneri" #. module: account_followup #: rml:account_followup.followup.print:0 @@ -35,17 +35,17 @@ msgstr "" #: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all #: model:ir.ui.menu,name:account_followup.menu_account_move_open_unreconcile_payable msgid "All payable entries" -msgstr "" +msgstr "Sve stavke potraživanja" #. module: account_followup #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Nepravilno ime modela u definiciji radnje." #. module: account_followup #: field:account_followup.followup.line,description:0 msgid "Printed Message" -msgstr "" +msgstr "Ispisana Poruka" #. module: account_followup #: rml:account_followup.followup.print:0 @@ -60,18 +60,18 @@ msgstr "" #. module: account_followup #: view:account.move.line:0 msgid "Total debit" -msgstr "" +msgstr "Ukupni dug" #. module: account_followup #: view:account_followup.followup.line:0 #: wizard_view:account_followup.followup.print.all,next:0 msgid "%(user_signature)s: User name" -msgstr "" +msgstr "%(user_signature)s: Korisničko ime" #. module: account_followup #: wizard_view:account_followup.followup.print.all,next:0 msgid "Select partners" -msgstr "" +msgstr "Odaberi partnere" #. module: account_followup #: view:account_followup.followup:0 @@ -82,17 +82,17 @@ msgstr "" #. module: account_followup #: field:account_followup.stat,debit:0 msgid "Debit" -msgstr "" +msgstr "Dug" #. module: account_followup #: wizard_view:account_followup.followup.print.all,next:0 msgid "Email Settings" -msgstr "" +msgstr "Email Postavke" #. module: account_followup #: field:account_followup.stat,account_type:0 msgid "Account Type" -msgstr "" +msgstr "Tip Računa" #. module: account_followup #: rml:account_followup.followup.print:0 @@ -108,7 +108,7 @@ msgstr "" #: view:account_followup.followup.line:0 #: wizard_view:account_followup.followup.print.all,next:0 msgid "%(date)s: Current Date" -msgstr "" +msgstr "%(date)s: Trenutni Datum" #. module: account_followup #: field:account.move.line,followup_date:0 @@ -131,7 +131,7 @@ msgstr "" #: field:account_followup.followup,description:0 #: rml:account_followup.followup.print:0 msgid "Description" -msgstr "" +msgstr "Opis" #. module: account_followup #: rml:account_followup.followup.print:0 @@ -141,27 +141,27 @@ msgstr "" #. module: account_followup #: rml:account_followup.followup.print:0 msgid "VAT:" -msgstr "" +msgstr "VAT:" #. module: account_followup #: field:account_followup.followup,company_id:0 msgid "Company" -msgstr "" +msgstr "Tvrtka" #. module: account_followup #: rml:account_followup.followup.print:0 msgid "Invoice Date" -msgstr "" +msgstr "Datum Računa" #. module: account_followup #: wizard_field:account_followup.followup.print.all,next,email_subject:0 msgid "Email Subject" -msgstr "" +msgstr "Predmet email-a" #. module: account_followup #: rml:account_followup.followup.print:0 msgid "Paid" -msgstr "" +msgstr "Plaćeno" #. module: account_followup #: wizard_view:account_followup.followup.print.all,next:0 @@ -186,17 +186,17 @@ msgstr "" #. module: account_followup #: wizard_view:account_followup.followup.print.all,next:0 msgid "Partner Selection" -msgstr "" +msgstr "Odabir Partnera" #. module: account_followup #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "Nepravilan XML format za Arhitekturu Prikaza!" #. module: account_followup #: field:account_followup.followup.line,start:0 msgid "Type of Term" -msgstr "" +msgstr "Tip Uvjeta" #. module: account_followup #: wizard_view:account_followup.followup.print.all,init:0 @@ -206,12 +206,12 @@ msgstr "" #. module: account_followup #: wizard_view:account_followup.followup.print.all,next:0 msgid "Select partners to remind" -msgstr "" +msgstr "Odaberite partnere za opomenu" #. module: account_followup #: rml:account_followup.followup.print:0 msgid "Li." -msgstr "" +msgstr "Li." #. module: account_followup #: model:account_followup.followup.line,description:account_followup.demo_followup_line1 @@ -240,23 +240,23 @@ msgstr "" #. module: account_followup #: wizard_button:account_followup.followup.print.all,summary,end:0 msgid "Ok" -msgstr "" +msgstr "Ok" #. module: account_followup #: field:account_followup.followup,name:0 #: field:account_followup.followup.line,name:0 msgid "Name" -msgstr "" +msgstr "Ime" #. module: account_followup #: field:account_followup.stat,date_move:0 msgid "First move" -msgstr "" +msgstr "Prvi potez" #. module: account_followup #: selection:account_followup.followup.line,start:0 msgid "End of Month" -msgstr "" +msgstr "Kraj Mjeseca" #. module: account_followup #: view:account_followup.followup.line:0 @@ -273,7 +273,7 @@ msgstr "" #. module: account_followup #: view:account_followup.followup:0 msgid "Lines" -msgstr "" +msgstr "Linije" #. module: account_followup #: model:ir.actions.wizard,name:account_followup.action_account_followup_all_wizard diff --git a/addons/account_invoice_layout/i18n/el.po b/addons/account_invoice_layout/i18n/el.po index 71b80936ffb..1b106512a00 100644 --- a/addons/account_invoice_layout/i18n/el.po +++ b/addons/account_invoice_layout/i18n/el.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 13:37+0000\n" -"Last-Translator: Makis Nicolaou \n" +"PO-Revision-Date: 2010-06-09 03:16+0000\n" +"Last-Translator: Panayiotis Konstantinidis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_invoice_layout @@ -38,7 +38,7 @@ msgstr "" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Cancelled Invoice" -msgstr "" +msgstr "Ακυρωμένο τιμολόγιο" #. module: account_invoice_layout #: selection:account.invoice.line,state:0 @@ -59,7 +59,7 @@ msgstr "Εκπτ. (%)" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "(Incl. taxes):" -msgstr "" +msgstr "(με φόρους)" #. module: account_invoice_layout #: selection:account.invoice.line,state:0 @@ -87,7 +87,7 @@ msgstr "Τιμή Μονάδας" #. module: account_invoice_layout #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Λανθασμένο όνομα μοντέλου στον ορισμό ενέργειας" #. module: account_invoice_layout #: model:ir.model,name:account_invoice_layout.model_notify_message @@ -122,7 +122,7 @@ msgstr "Σχετ. Πελάτης:" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid ")" -msgstr "" +msgstr ")" #. module: account_invoice_layout #: field:account.invoice.line,state:0 @@ -137,7 +137,7 @@ msgstr "Τιμή" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "/ (" -msgstr "" +msgstr "/ (" #. module: account_invoice_layout #: rml:account.invoice.layout:0 @@ -192,7 +192,7 @@ msgstr "Page Break" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Document:" -msgstr "" +msgstr "Έγγραφο:" #. module: account_invoice_layout #: wizard_view:wizard.notify_message,init:0 @@ -217,7 +217,7 @@ msgstr "Τιμολόγια με Διάταξη" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Description / Taxes" -msgstr "" +msgstr "Περιγραφή / Φόροι" #. module: account_invoice_layout #: rml:account.invoice.layout:0 @@ -227,7 +227,7 @@ msgstr "Ποσό" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Description/Taxes" -msgstr "" +msgstr "Περιγραφή/Φόροι" #. module: account_invoice_layout #: rml:account.invoice.layout:0 @@ -267,7 +267,7 @@ msgstr "Τιμολόγιο Προμηθευτή" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Note :" -msgstr "" +msgstr "Σημείωση :" #. module: account_invoice_layout #: rml:account.invoice.layout:0 @@ -282,7 +282,7 @@ msgstr "account_invoice_layout" #. module: account_invoice_layout #: rml:account.invoice.layout:0 msgid "Total (Excl. taxes):" -msgstr "" +msgstr "Σύνολο (Χωρίς φόρους)" #. module: account_invoice_layout #: rml:account.invoice.layout:0 diff --git a/addons/account_payment/i18n/zh_CN.po b/addons/account_payment/i18n/zh_CN.po index fa12e8b9841..28a412cb5c6 100644 --- a/addons/account_payment/i18n/zh_CN.po +++ b/addons/account_payment/i18n/zh_CN.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_payment diff --git a/addons/account_report/account_report.xml b/addons/account_report/account_report.xml index 4576e421c2e..48273cdd3b3 100644 --- a/addons/account_report/account_report.xml +++ b/addons/account_report/account_report.xml @@ -11,6 +11,6 @@ menu="False" model="account.report.report" name="print.indicator.pdf" - string="Print Indicators in PDF"/> + string="Indicators in PDF"/> diff --git a/addons/account_tax_include/__init__.py b/addons/account_tax_include/__init__.py new file mode 100644 index 00000000000..f96eb08f2fe --- /dev/null +++ b/addons/account_tax_include/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import account_tax_include + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/account_tax_include/__openerp__.py b/addons/account_tax_include/__openerp__.py new file mode 100644 index 00000000000..5bb1a2e2399 --- /dev/null +++ b/addons/account_tax_include/__openerp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Invoices and prices with taxes included', + 'version': '1.0', + 'category': 'Generic Modules/Accounting', + 'description': """Allow the user to work tax included prices. +Especially useful for b2c businesses. + +This module implement the modification on the invoice form. +""", + 'author': 'Tiny', + 'website': 'http://www.openerp.com', + 'depends': ['account'], + 'init_xml': [], + 'update_xml': ['account_tax_include_view.xml'], + 'demo_xml': [], + 'installable': True, + 'active': False, + 'certificate': '0070514190381', +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_tax_include/account_tax_include.py b/addons/account_tax_include/account_tax_include.py new file mode 100644 index 00000000000..d84a21afff7 --- /dev/null +++ b/addons/account_tax_include/account_tax_include.py @@ -0,0 +1,230 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import time + +from osv import fields, osv +import decimal_precision as dp + +class account_invoice(osv.osv): + _inherit = "account.invoice" + _columns = { + 'price_type': fields.selection([('tax_included','Tax included'), + ('tax_excluded','Tax excluded')], + 'Price method', required=True, readonly=True, + states={'draft':[('readonly',False)]}), + } + _defaults = { + 'price_type': 'tax_excluded', + } + + def refund(self, cr, uid, ids, date=None, period_id=None, description=None): + map_old_new = {} + refund_ids = [] + for old_inv_id in ids: + new_id = super(account_invoice,self).refund(cr, uid, ids, date=date, period_id=period_id, description=description) + refund_ids += new_id + map_old_new[old_inv_id] = new_id[0] + + for old_inv_id in map_old_new.keys(): + old_inv_record = self.read(cr, uid, [old_inv_id], ['price_type'])[0]['price_type'] + self.write(cr, uid, [map_old_new[old_inv_id]], {'price_type' : old_inv_record}) + return refund_ids + +account_invoice() + +class account_invoice_line(osv.osv): + _inherit = "account.invoice.line" + + def _amount_line2(self, cr, uid, ids, name, args, context=None): + """ + Return the subtotal excluding taxes with respect to price_type. + """ + res = {} + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') + dec_obj = self.pool.get('decimal.precision') + for line in self.browse(cr, uid, ids): + cur = line.invoice_id and line.invoice_id.currency_id or False + res_init = super(account_invoice_line, self)._amount_line(cr, uid, [line.id], name, args, context) + res[line.id] = { + 'price_subtotal': 0.0, + 'price_subtotal_incl': 0.0, + 'data': [] + } + if not line.quantity: + continue + if line.invoice_id: + product_taxes = [] + if line.product_id: + if line.invoice_id.type in ('out_invoice', 'out_refund'): + product_taxes = filter(lambda x: x.price_include, line.product_id.taxes_id) + else: + product_taxes = filter(lambda x: x.price_include, line.product_id.supplier_taxes_id) + + if ((set(product_taxes) == set(line.invoice_line_tax_id)) or not product_taxes) and (line.invoice_id.price_type == 'tax_included'): + res[line.id]['price_subtotal_incl'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] + else: + res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] + for tax in tax_obj.compute_inv(cr, uid, product_taxes, res_init[line.id]/line.quantity, line.quantity): + res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - round(tax['amount'], dec_obj.precision_get(cr, uid, 'Account')) + else: + res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] + + if res[line.id]['price_subtotal']: + res[line.id]['price_subtotal_incl'] = res[line.id]['price_subtotal'] + for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, res[line.id]['price_subtotal']/line.quantity, line.quantity): + res[line.id]['price_subtotal_incl'] = res[line.id]['price_subtotal_incl'] + tax['amount'] + res[line.id]['data'].append(tax) + else: + res[line.id]['price_subtotal'] = res[line.id]['price_subtotal_incl'] + for tax in tax_obj.compute_inv(cr, uid, line.invoice_line_tax_id, res[line.id]['price_subtotal_incl']/line.quantity, line.quantity): + res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - tax['amount'] + res[line.id]['data'].append( tax) + + res[line.id]['price_subtotal']= round(res[line.id]['price_subtotal'], dec_obj.precision_get(cr, uid, 'Account')) + res[line.id]['price_subtotal_incl']= round(res[line.id]['price_subtotal_incl'], dec_obj.precision_get(cr, uid, 'Account')) + return res + + def _price_unit_default(self, cr, uid, context=None): + if context is None: + context = {} + if 'check_total' in context: + t = context['check_total'] + if context.get('price_type', False) == 'tax_included': + for l in context.get('invoice_line', {}): + if len(l) >= 3 and l[2]: + p = l[2].get('price_unit', 0) * (1-l[2].get('discount', 0)/100.0) + t = t - (p * l[2].get('quantity')) + return t + return super(account_invoice_line, self)._price_unit_default(cr, uid, context) + return 0 + + def _get_invoice(self, cr, uid, ids, context): + result = {} + for inv in self.pool.get('account.invoice').browse(cr, uid, ids, context=context): + for line in inv.invoice_line: + result[line.id] = True + return result.keys() + + _columns = { + 'price_subtotal': fields.function(_amount_line2, method=True, string='Subtotal w/o tax', multi='amount', + store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self,cr,uid,ids,c={}: ids, None,10)}), + 'price_subtotal_incl': fields.function(_amount_line2, method=True, string='Subtotal', multi='amount', + store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self,cr,uid,ids,c={}: ids, None,10)}), + } + + _defaults = { + 'price_unit': _price_unit_default, + } + + def move_line_get_item(self, cr, uid, line, context=None): + return { + 'type':'src', + 'name':line.name, + 'price_unit':(line.quantity) and (line.price_subtotal / line.quantity) or line.price_subtotal, + 'quantity':line.quantity, + 'price':line.price_subtotal, + 'account_id':line.account_id.id, + 'product_id': line.product_id.id, + 'uos_id':line.uos_id.id, + 'account_analytic_id':line.account_analytic_id.id, + } + + def product_id_change_unit_price_inv(self, cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=None): + if context is None: + context = {} + # if the tax is already included, just return the value without calculations + if context.get('price_type', False) == 'tax_included': + return {'price_unit': price_unit,'invoice_line_tax_id': tax_id} + else: + return super(account_invoice_line, self).product_id_change_unit_price_inv(cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=context) + + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None): + # note: will call product_id_change_unit_price_inv with context... + + # Temporary trap, for bad context that came from koo: + # if isinstance(context, str): + # print "str context:", context + + ctx = (context and context.copy()) or {} + ctx.update({'price_type': ctx.get('price_type','tax_excluded')}) + return super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=ctx) + +account_invoice_line() + +class account_invoice_tax(osv.osv): + _inherit = "account.invoice.tax" + + def compute(self, cr, uid, invoice_id, context=None): + tax_grouped = {} + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') + line_obj = self.pool.get('account.invoice.line') + + inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id) + line_ids = map(lambda x: x.id, inv.invoice_line) + + cur = inv.currency_id + company_currency = inv.company_id.currency_id.id + + for line in inv.invoice_line: + data = line_obj._amount_line2(cr, uid, [line.id], [], [], context)[line.id] + for tax in data['data']: + val={} + val['invoice_id'] = inv.id + val['name'] = tax['name'] + val['amount'] = tax['amount'] + val['manual'] = False + val['sequence'] = tax['sequence'] + val['base'] = tax['price_unit'] * line['quantity'] + + if inv.type in ('out_invoice','in_invoice'): + val['base_code_id'] = tax['base_code_id'] + val['tax_code_id'] = tax['tax_code_id'] + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['account_id'] = tax['account_collected_id'] or line.account_id.id + else: + val['base_code_id'] = tax['ref_base_code_id'] + val['tax_code_id'] = tax['ref_tax_code_id'] + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['account_id'] = tax['account_paid_id'] or line.account_id.id + + key = (val['tax_code_id'], val['base_code_id'], val['account_id']) + if not key in tax_grouped: + tax_grouped[key] = val + else: + tax_grouped[key]['amount'] += val['amount'] + tax_grouped[key]['base'] += val['base'] + tax_grouped[key]['base_amount'] += val['base_amount'] + tax_grouped[key]['tax_amount'] += val['tax_amount'] + + for t in tax_grouped.values(): + t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) + t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) + t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) + + return tax_grouped + +account_invoice_tax() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/account_tax_include/account_tax_include_view.xml b/addons/account_tax_include/account_tax_include_view.xml new file mode 100644 index 00000000000..32aea6802d1 --- /dev/null +++ b/addons/account_tax_include/account_tax_include_view.xml @@ -0,0 +1,79 @@ + + + + + + account.tax.exlcuded.view.form + form + account.tax + + + + + + + + + + + account.invoice.vat.exlcuded.view.form + form + account.invoice + + + + + + + + + + account.invoice.supplier.tax_include + form + account.invoice + + + + + + + + + + account.invoice.supplier.tax_include2 + form + account.invoice + + + + + + + + + + account.invoice.supplier.tax_include3 + form + account.invoice + + + + + + + + + + account.invoice.line.tree + account.invoice.line + tree + + + + + + + + + + diff --git a/addons/account_tax_include/i18n/account_tax_include.pot b/addons/account_tax_include/i18n/account_tax_include.pot new file mode 100644 index 00000000000..e19a7fd9712 --- /dev/null +++ b/addons/account_tax_include/i18n/account_tax_include.pot @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01:51+0000\n" +"PO-Revision-Date: 2009-08-28 16:01:51+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" + diff --git a/addons/account_tax_include/i18n/ar.po b/addons/account_tax_include/i18n/ar.po new file mode 100644 index 00000000000..2ea3d31ed0a --- /dev/null +++ b/addons/account_tax_include/i18n/ar.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-02-03 06:24+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/bg.po b/addons/account_tax_include/i18n/bg.po new file mode 100644 index 00000000000..fff9c26bf05 --- /dev/null +++ b/addons/account_tax_include/i18n/bg.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 12:06+0000\n" +"Last-Translator: lem0na \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Невалиден XML за преглед на архитектурата" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Начин на изчисляване" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "С включен данък" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Без данък" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/bs.po b/addons/account_tax_include/i18n/bs.po new file mode 100644 index 00000000000..ab16e300b28 --- /dev/null +++ b/addons/account_tax_include/i18n/bs.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-02-10 12:26+0000\n" +"Last-Translator: adnan \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Neodgovarajući XML za arhitekturu prikaza!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Cjenovna procedura" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Računi i cijene sa uključenim porezom" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Porez uključen" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Porez nije uključen" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Izračunaj cijene sa porezima" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Sub-ukupno" diff --git a/addons/account_tax_include/i18n/ca.po b/addons/account_tax_include/i18n/ca.po new file mode 100644 index 00000000000..249686fa488 --- /dev/null +++ b/addons/account_tax_include/i18n/ca.po @@ -0,0 +1,53 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-29 06:30+0000\n" +"Last-Translator: Jordi Esteve - http://www.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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML invàlid per a la definició de la vista!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Mètode preu" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Factures i preus amb impostos inclosos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Impostos inclosos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Impostos exclosos" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Codi pel càlcul dels preus amb impostos inclosos" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/cs.po b/addons/account_tax_include/i18n/cs.po new file mode 100644 index 00000000000..2cc4bc1bcc0 --- /dev/null +++ b/addons/account_tax_include/i18n/cs.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-04-26 09:10+0000\n" +"Last-Translator: Martin Volf \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-04-28 03:44+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Neplatný XML pro zobrazení architektury" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Metoda určování cen" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Faktury a ceny včetně daní" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Daně zahrnuty" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Daně vyloučeny" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Výpočetní kód pro ceny včetně daně" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Mezisoučet" diff --git a/addons/account_tax_include/i18n/de.po b/addons/account_tax_include/i18n/de.po new file mode 100644 index 00000000000..fa5d2ce1610 --- /dev/null +++ b/addons/account_tax_include/i18n/de.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-04-09 13:20+0000\n" +"Last-Translator: Ferdinand @ ChriCar \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Fehlerhafter xml Code für diese Ansicht!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Preismethode" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Rechnungen und Preise mit inkludierten Steuern" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Steuer inklusive" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Steuern exklusive" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Berechnungsgrundlage (inkl. Steuer)" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Zwischensumme" diff --git a/addons/account_tax_include/i18n/el.po b/addons/account_tax_include/i18n/el.po new file mode 100644 index 00000000000..6d3910fb43b --- /dev/null +++ b/addons/account_tax_include/i18n/el.po @@ -0,0 +1,53 @@ +# Greek translation for openobject-addons +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 15:27+0000\n" +"Last-Translator: Makis Nicolaou \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Άκυρο XML για την αρχιτεκτονική όψης!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Μέθοδος Τιμής" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Τιμολόγια και τιμές με ενσωμάτωση φόρων" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Συμπερίληψη φόρου" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Εξαιρούνται φόροι" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Κωδικός Υπολογισμού για Φόρους που εμπεριέχονται στις τιμές" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Υποσύνολο" diff --git a/addons/account_tax_include/i18n/en_AU.po b/addons/account_tax_include/i18n/en_AU.po new file mode 100644 index 00000000000..892197cf816 --- /dev/null +++ b/addons/account_tax_include/i18n/en_AU.po @@ -0,0 +1,53 @@ +# English (Australia) translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-05-09 21:19+0000\n" +"Last-Translator: MoLE \n" +"Language-Team: English (Australia) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-05-10 04:17+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Invalid XML for View Architecture!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Price method" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Invoices and prices with taxes included" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Tax included" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Tax excluded" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Compute Code for Taxes included prices" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/en_GB.po b/addons/account_tax_include/i18n/en_GB.po new file mode 100644 index 00000000000..0341993acca --- /dev/null +++ b/addons/account_tax_include/i18n/en_GB.po @@ -0,0 +1,53 @@ +# English (United Kingdom) translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-05-09 21:20+0000\n" +"Last-Translator: MoLE \n" +"Language-Team: English (United Kingdom) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-05-10 04:17+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Invalid XML for View Architecture!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Price method" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Invoices and prices with taxes included" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Tax included" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Tax excluded" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Compute Code for Taxes included prices" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/es.po b/addons/account_tax_include/i18n/es.po new file mode 100644 index 00000000000..4fa9a9219c7 --- /dev/null +++ b/addons/account_tax_include/i18n/es.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-24 20:17+0000\n" +"Last-Translator: Borja López Soilán (Pexego) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "¡XML inválido para la definición de la vista!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Método precio" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturas y precios con impuestos incluidos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Impuestos incluidos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Impuestos excluidos" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Código para el cálculo de precios con impuestos incluidos" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/es_AR.po b/addons/account_tax_include/i18n/es_AR.po new file mode 100644 index 00000000000..4d7230f383b --- /dev/null +++ b/addons/account_tax_include/i18n/es_AR.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-14 18:28+0000\n" +"Last-Translator: Silvana Herrera \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML inválido para la definición de la vista!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Método de precio" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturas y precios con impuestos incluidos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Impuestos incluidos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Impuestos no incluidos" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Código del cálculo para precios con impuestos incluídos" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/et.po b/addons/account_tax_include/i18n/et.po new file mode 100644 index 00000000000..6bd6d5cdaa7 --- /dev/null +++ b/addons/account_tax_include/i18n/et.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-09 16:28+0000\n" +"Last-Translator: Fabien (Open ERP) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Hinna meetod" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Makse sisaldavad arved ja hinnad" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Maksuga" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Maksuta" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Arvuta kood maksuga hindadele" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Vahesumma" diff --git a/addons/account_tax_include/i18n/fi.po b/addons/account_tax_include/i18n/fi.po new file mode 100644 index 00000000000..6e3c999484d --- /dev/null +++ b/addons/account_tax_include/i18n/fi.po @@ -0,0 +1,53 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-03-17 10:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Virheellinen XML näkymä-arkkitehtuurille!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Hinnan tyyppi" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Laskut ja hinnat veroilla" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Vero sisältyy" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Ilman veroa" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Laske koodi hinnoille joissa on vero mukana" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Välisumma" diff --git a/addons/account_tax_include/i18n/fr.po b/addons/account_tax_include/i18n/fr.po new file mode 100644 index 00000000000..c26f075fd75 --- /dev/null +++ b/addons/account_tax_include/i18n/fr.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-17 09:23+0000\n" +"Last-Translator: Fabien (Open ERP) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML non valide pour l'architecture de la vue" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Méthode de prix" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Factures et prix avec taxes comprises" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Taxe comprise" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Hors-taxe" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Code de calcul pour les prix taxes comprises" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Sous-total" diff --git a/addons/account_tax_include/i18n/gl.po b/addons/account_tax_include/i18n/gl.po new file mode 100644 index 00000000000..e677bb72d35 --- /dev/null +++ b/addons/account_tax_include/i18n/gl.po @@ -0,0 +1,54 @@ +# translation of account-tax-include-es.po to Galego +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +# Frco. Javier Rial Rodríguez , 2009. +msgid "" +msgstr "" +"Project-Id-Version: account-tax-include-es\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 12:37+0000\n" +"Last-Translator: Fabien (Open ERP) \n" +"Language-Team: Galego \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "¡XML non válido para a definición da vista!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Método prezo" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturas e prezos con impostos incluídos" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Imposto incluído" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Imposto excluído" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Código para o cálculo dos impostos en prezos incluídos" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/hr.po b/addons/account_tax_include/i18n/hr.po new file mode 100644 index 00000000000..ac67721e45b --- /dev/null +++ b/addons/account_tax_include/i18n/hr.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-17 09:23+0000\n" +"Last-Translator: Dragan Jovanovic \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Nevažeći XML za Arhitekturu Prikaza!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Cjenovna metoda" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Računi i cijene sa uključenim porezom" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Porez uključen" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Nije uključen porez" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Kod za izračun cijena sa uključenim porezima" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Podzbroj" diff --git a/addons/account_tax_include/i18n/hu.po b/addons/account_tax_include/i18n/hu.po new file mode 100644 index 00000000000..2ea3d31ed0a --- /dev/null +++ b/addons/account_tax_include/i18n/hu.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-02-03 06:24+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/id.po b/addons/account_tax_include/i18n/id.po new file mode 100644 index 00000000000..bcb9daf3353 --- /dev/null +++ b/addons/account_tax_include/i18n/id.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-09 13:44+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/it.po b/addons/account_tax_include/i18n/it.po new file mode 100644 index 00000000000..0e304d60033 --- /dev/null +++ b/addons/account_tax_include/i18n/it.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-02-03 08:32+0000\n" +"Last-Translator: Fabien (Open ERP) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML non valido per Visualizzazione Architettura!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Tasse incluse" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Tasse escluse" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/ko.po b/addons/account_tax_include/i18n/ko.po new file mode 100644 index 00000000000..118579be264 --- /dev/null +++ b/addons/account_tax_include/i18n/ko.po @@ -0,0 +1,53 @@ +# Korean translation for openobject-addons +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 16:43+0000\n" +"Last-Translator: ekodaq \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "뷰 아키텍처의 XML이 유효하지 않습니다." + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "가격 방식" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "세금이 포함된 인보이스와 가격" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "세금 포함" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "세금 제외" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "세금 포함 가격을 위한 컴퓨터 코드" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "서브토털" diff --git a/addons/account_tax_include/i18n/lt.po b/addons/account_tax_include/i18n/lt.po new file mode 100644 index 00000000000..110d0fdd041 --- /dev/null +++ b/addons/account_tax_include/i18n/lt.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 15:54+0000\n" +"Last-Translator: Donatas Stonys TeraxIT \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/nl.po b/addons/account_tax_include/i18n/nl.po new file mode 100644 index 00000000000..a5c550807f5 --- /dev/null +++ b/addons/account_tax_include/i18n/nl.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-12-14 21:11+0000\n" +"Last-Translator: Pieter J. Kersten (EduSense BV) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Ongeldige XML voor weergave!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Prijsmethode" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturen en prijzen inclusief belastingen" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Inclusief belastingen" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Exclusief belastingen" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Bereken code voor prijzen inclusief belastingen" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotaal" diff --git a/addons/account_tax_include/i18n/nl_BE.po b/addons/account_tax_include/i18n/nl_BE.po new file mode 100644 index 00000000000..1854bbfc9d4 --- /dev/null +++ b/addons/account_tax_include/i18n/nl_BE.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-04-24 15:12+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/oc.po b/addons/account_tax_include/i18n/oc.po new file mode 100644 index 00000000000..5d0f82c83d6 --- /dev/null +++ b/addons/account_tax_include/i18n/oc.po @@ -0,0 +1,53 @@ +# Occitan (post 1500) translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-04-29 14:21+0000\n" +"Last-Translator: Cédric VALMARY (Tot en òc) \n" +"Language-Team: Occitan (post 1500) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-05-05 03:47+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML invalid per l'arquitectura de la vista" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Metòde de prètz" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturas e prèses amb taxas inclusas" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Taxa inclusa" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Fòra taxa" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Còde de calcul pels prèses amb taxas compresas" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Sostotal" diff --git a/addons/account_tax_include/i18n/pl.po b/addons/account_tax_include/i18n/pl.po new file mode 100644 index 00000000000..aa4daff1f43 --- /dev/null +++ b/addons/account_tax_include/i18n/pl.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-21 15:43+0000\n" +"Last-Translator: Andrzej MoST (Marcin Ostajewski) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML niewłaściwy dla tej architektury wyświetlania!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Metoda wyceny" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Faktury i ceny zawierające podatki." + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Zawiera podatek" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Nie zawiera podatku" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Wylicz kod dla cen z podatkiem" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Suma częściowa" diff --git a/addons/account_tax_include/i18n/pt.po b/addons/account_tax_include/i18n/pt.po new file mode 100644 index 00000000000..23c89d66568 --- /dev/null +++ b/addons/account_tax_include/i18n/pt.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-28 23:29+0000\n" +"Last-Translator: Paulino \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML inválido para a arquitectura da vista" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Método do preço" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturas e preços com imposto incluído" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Imposto incluído" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Imposto excluído" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Código de cálculo para preços com imposto incluído" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/pt_BR.po b/addons/account_tax_include/i18n/pt_BR.po new file mode 100644 index 00000000000..165ddba21ef --- /dev/null +++ b/addons/account_tax_include/i18n/pt_BR.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 12:28+0000\n" +"Last-Translator: Pedro_Maschio \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Invalido XML para Arquitetura da View" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/ro.po b/addons/account_tax_include/i18n/ro.po new file mode 100644 index 00000000000..53f0beb8e17 --- /dev/null +++ b/addons/account_tax_include/i18n/ro.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-28 16:40+0000\n" +"Last-Translator: geopop65 \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML invalid pentru arhitectura machetei de afișare !" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Metoda de pret" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Facturi şi preţuri cu taxele incluse" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Taxe incluse" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Fără taxe" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Calcul cod pentru preţuri cu taxe incluse" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/ru.po b/addons/account_tax_include/i18n/ru.po new file mode 100644 index 00000000000..ea07038c8ce --- /dev/null +++ b/addons/account_tax_include/i18n/ru.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-06-06 06:51+0000\n" +"Last-Translator: mr.The \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-06-09 03:35+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Неправильный XML для просмотра архитектуры!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Метод расчета цены" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Счета и цены с налогами" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "С налогами" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "До налогов" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Выполнить код для цен с налогами" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Промежуточный итог" diff --git a/addons/account_tax_include/i18n/sk.po b/addons/account_tax_include/i18n/sk.po new file mode 100644 index 00000000000..8518e5bcb1f --- /dev/null +++ b/addons/account_tax_include/i18n/sk.po @@ -0,0 +1,53 @@ +# Slovak translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-03-06 14:22+0000\n" +"Last-Translator: Peter Kohaut \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Neplatné XML pre zobrazenie architektúry!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Faktúry a ceny zahrnuté s DPH" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Medzisúčet" diff --git a/addons/account_tax_include/i18n/sl.po b/addons/account_tax_include/i18n/sl.po new file mode 100644 index 00000000000..defa396c48f --- /dev/null +++ b/addons/account_tax_include/i18n/sl.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-11-17 09:23+0000\n" +"Last-Translator: Fabien (Open ERP) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Neveljaven XML za arhitekturo pogleda." + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Metoda cene" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Računi in cene z vključenimi davki" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "Davek vključen" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "Davek ni vključen" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "Koda izračuna za davke v cenah" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Delna vsota" diff --git a/addons/account_tax_include/i18n/sq.po b/addons/account_tax_include/i18n/sq.po new file mode 100644 index 00000000000..a2b9ac5d219 --- /dev/null +++ b/addons/account_tax_include/i18n/sq.po @@ -0,0 +1,104 @@ +# Translation of OpenERP Server. +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 15:23:46+0000\n" +"PO-Revision-Date: 2009-08-28 15:23:46+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" + +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 15:23:46+0000\n" +"PO-Revision-Date: 2009-08-28 15:23:46+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" + diff --git a/addons/account_tax_include/i18n/sv.po b/addons/account_tax_include/i18n/sv.po new file mode 100644 index 00000000000..8991458538f --- /dev/null +++ b/addons/account_tax_include/i18n/sv.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-02-14 15:44+0000\n" +"Last-Translator: Treecko \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Felaktig XML för Vyarkitektur!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/tlh.po b/addons/account_tax_include/i18n/tlh.po new file mode 100644 index 00000000000..901fb52fa52 --- /dev/null +++ b/addons/account_tax_include/i18n/tlh.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0_rc3\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-02-03 06:24+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/tr.po b/addons/account_tax_include/i18n/tr.po new file mode 100644 index 00000000000..fae1694aa91 --- /dev/null +++ b/addons/account_tax_include/i18n/tr.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-02-14 21:31+0000\n" +"Last-Translator: Fabien (Open ERP) \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Görüntüleme mimarisi için Geçersiz XML" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "Fiyat Yöntemi" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "Vergiler dahil fiyat ve faturalar" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "KDV Dahil" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "KDV Hariç" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "Alt Toplam" diff --git a/addons/account_tax_include/i18n/uk.po b/addons/account_tax_include/i18n/uk.po new file mode 100644 index 00000000000..20833c98611 --- /dev/null +++ b/addons/account_tax_include/i18n/uk.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-09-08 15:16+0000\n" +"Last-Translator: Eugene Babiy \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Неправильний XML для Архітектури Вигляду!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_tax_include/i18n/vi.po b/addons/account_tax_include/i18n/vi.po new file mode 100644 index 00000000000..164b9c65f98 --- /dev/null +++ b/addons/account_tax_include/i18n/vi.po @@ -0,0 +1,104 @@ +# Translation of OpenERP Server. +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:00:38+0000\n" +"PO-Revision-Date: 2009-08-28 16:00:38+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" + +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:00:38+0000\n" +"PO-Revision-Date: 2009-08-28 16:00:38+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" + diff --git a/addons/account_tax_include/i18n/zh_CN.po b/addons/account_tax_include/i18n/zh_CN.po new file mode 100644 index 00000000000..b7cad52c049 --- /dev/null +++ b/addons/account_tax_include/i18n/zh_CN.po @@ -0,0 +1,63 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.6\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-03-20 07:29+0000\n" +"Last-Translator: Black Jack \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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "无效的视图结构XML文件!" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "价格规则" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "发票和含税价" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "含税" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "不含税" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "含税价格计算代码" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "小计" + +#~ msgid "" +#~ "Allow the user to work tax included prices.\n" +#~ "Especially useful for b2c businesses.\n" +#~ " \n" +#~ "This module implement the modification on the invoice form.\n" +#~ msgstr "" +#~ "允许用户使用含税价格\n" +#~ "特别适用于B2C商务\n" +#~ "\n" +#~ "这模块使发票的格式生效\n" diff --git a/addons/account_tax_include/i18n/zh_TW.po b/addons/account_tax_include/i18n/zh_TW.po new file mode 100644 index 00000000000..a2ba31339c4 --- /dev/null +++ b/addons/account_tax_include/i18n/zh_TW.po @@ -0,0 +1,52 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_tax_include +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.4\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2009-01-30 12:43+0000\n" +"Last-Translator: <>\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-04-17 04:05+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_tax_include +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice,price_type:0 +msgid "Price method" +msgstr "" + +#. module: account_tax_include +#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information +msgid "Invoices and prices with taxes included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax included" +msgstr "" + +#. module: account_tax_include +#: selection:account.invoice,price_type:0 +msgid "Tax excluded" +msgstr "" + +#. module: account_tax_include +#: view:account.tax:0 +msgid "Compute Code for Taxes included prices" +msgstr "" + +#. module: account_tax_include +#: field:account.invoice.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "" diff --git a/addons/account_voucher/voucher_report.xml b/addons/account_voucher/voucher_report.xml index 56353628bd1..c0dfed1c683 100644 --- a/addons/account_voucher/voucher_report.xml +++ b/addons/account_voucher/voucher_report.xml @@ -2,16 +2,16 @@ - + - + account.voucher.select account.voucher @@ -79,10 +79,10 @@ - - - - + + + + @@ -92,14 +92,14 @@ - - - - - + + + + + - + @@ -107,7 +107,7 @@ - + Customer Vouchers @@ -119,7 +119,7 @@ - + Vendor Vouchers @@ -256,7 +256,7 @@ - + account.journal.form.inherit account.journal @@ -268,7 +268,7 @@ - + - + diff --git a/addons/account_voucher_payment/i18n/ca.po b/addons/account_voucher_payment/i18n/ca.po index baf4157d3ab..b06ebff8a16 100644 --- a/addons/account_voucher_payment/i18n/ca.po +++ b/addons/account_voucher_payment/i18n/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/account_voucher_payment/i18n/es.po b/addons/account_voucher_payment/i18n/es.po index 7cdb7cd2526..80c07e08abb 100644 --- a/addons/account_voucher_payment/i18n/es.po +++ b/addons/account_voucher_payment/i18n/es.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/account_voucher_payment/i18n/et.po b/addons/account_voucher_payment/i18n/et.po new file mode 100644 index 00000000000..591a7595d36 --- /dev/null +++ b/addons/account_voucher_payment/i18n/et.po @@ -0,0 +1,86 @@ +# Estonian translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-05-13 20:11+0000\n" +"PO-Revision-Date: 2010-06-08 17:42+0000\n" +"Last-Translator: lyyser \n" +"Language-Team: Estonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: account_voucher_payment +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Vigane XML vaate arhitektuurile!" + +#. module: account_voucher_payment +#: wizard_view:account.voucher.unreconcile,init:0 +msgid "Unreconciliation transactions" +msgstr "Mittesobivad tehingud" + +#. module: account_voucher_payment +#: model:ir.module.module,description:account_voucher_payment.module_name_translation +msgid "" +"This module includes :\n" +" * It reconcile the invoice (supplier, customer) while paying through \n" +" Accounting Vouchers\n" +" " +msgstr "" + +#. module: account_voucher_payment +#: wizard_view:account.voucher.unreconcile,init:0 +msgid "" +"If you unreconciliate transactions, you must also verify all the actions " +"that are linked to those transactions because they will not be disable" +msgstr "" + +#. module: account_voucher_payment +#: view:account.voucher:0 +#: field:account.voucher,voucher_line_ids:0 +msgid "Voucher Lines" +msgstr "Tähiku read" + +#. module: account_voucher_payment +#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation +msgid "Invoice Payment/Receipt by Vouchers." +msgstr "" + +#. module: account_voucher_payment +#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher +msgid "Unreconcile entries" +msgstr "Kooskõlastamatta kirjed" + +#. module: account_voucher_payment +#: field:account.move.line,voucher_invoice:0 +#: field:account.voucher.line,invoice_id:0 +msgid "Invoice" +msgstr "Arve" + +#. module: account_voucher_payment +#: wizard_button:account.voucher.unreconcile,init,end:0 +msgid "Cancel" +msgstr "Katkesta" + +#. module: account_voucher_payment +#: field:account.voucher,partner_id:0 +msgid "Partner" +msgstr "Partner" + +#. module: account_voucher_payment +#: wizard_button:account.voucher.unreconcile,init,unrec:0 +msgid "Unreconcile" +msgstr "" + +#. module: account_voucher_payment +#: wizard_view:account.voucher.unreconcile,init:0 +msgid "Unreconciliation" +msgstr "" diff --git a/addons/auction/i18n/pl.po b/addons/auction/i18n/pl.po index 326474f19c4..ca940cf469a 100644 --- a/addons/auction/i18n/pl.po +++ b/addons/auction/i18n/pl.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction diff --git a/addons/auction/i18n/zh_CN.po b/addons/auction/i18n/zh_CN.po index 534ec4e0e32..eb36642e385 100644 --- a/addons/auction/i18n/zh_CN.po +++ b/addons/auction/i18n/zh_CN.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index fc5140c8303..d0c1a57ba84 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -95,10 +95,10 @@ search - - @@ -108,19 +108,19 @@ - - + - - - - - + @@ -383,7 +383,7 @@ - @@ -396,15 +396,15 @@ - - + - - - diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml index 8852ea19980..b4e7fa3e2ed 100644 --- a/addons/base_contact/base_contact_view.xml +++ b/addons/base_contact/base_contact_view.xml @@ -134,7 +134,8 @@ - + + @@ -143,7 +144,8 @@ - + + diff --git a/addons/base_report_designer/i18n/hr.po b/addons/base_report_designer/i18n/hr.po index 6adc7468085..8b4c87f5583 100644 --- a/addons/base_report_designer/i18n/hr.po +++ b/addons/base_report_designer/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/base_setup/i18n/hr.po b/addons/base_setup/i18n/hr.po index 687d398b8f6..2cf88ec82e1 100644 --- a/addons/base_setup/i18n/hr.po +++ b/addons/base_setup/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/crm/crm.py b/addons/crm/crm.py index d3c640efca3..7f7ab94616f 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -120,8 +120,8 @@ class crm_case(object): context = {} s = self.get_stage_dict(cr, uid, ids, context=context) + section = self._name for case in self.browse(cr, uid, ids, context): - section = (case.section_id.id or False) if section in s: st = case.stage_id.id or False if st in s[section]: @@ -137,13 +137,13 @@ class crm_case(object): @param context: A standard dictionary for contextual values""" if not context: context = {} - - sid = self.pool.get('crm.case.stage').search(cr, uid, \ + stage_obj = self.pool.get('crm.case.stage') + sid = stage_obj.search(cr, uid, \ [('object_id.model', '=', self._name)], context=context) s = {} previous = {} - for stage in self.pool.get('crm.case.stage').browse(cr, uid, sid, context=context): - section = stage.section_id.id or False + section = self._name + for stage in stage_obj.browse(cr, uid, sid, context=context): s.setdefault(section, {}) s[section][previous.get(section, False)] = stage.id previous[section] = stage.id @@ -161,9 +161,8 @@ class crm_case(object): context = {} s = self.get_stage_dict(cr, uid, ids, context=context) + section = self._name for case in self.browse(cr, uid, ids, context): - section = (case.section_id.id or False) - if section in s: st = case.stage_id.id or False s[section] = dict([(v, k) for (k, v) in s[section].iteritems()]) diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index dbfbeedf0a8..465c63ae626 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -50,7 +50,7 @@ name="convert_opportunity" string="Convert" help="Convert to Opportunity" - icon="gtk-index" + icon="gtk-index" type="object"/> search - - - - - - - - - - - - + + + + - - - + + + - diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index e2decc30340..cd3b7866a89 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -263,32 +263,32 @@ - - - - + - - - - diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml index 407c3c53cf4..eadc4158d69 100644 --- a/addons/crm/crm_opportunity_view.xml +++ b/addons/crm/crm_opportunity_view.xml @@ -275,21 +275,21 @@ search - - - - - - - - - - - - - diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index c5813a38b09..db8adda789c 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -136,7 +136,7 @@ - + @@ -196,9 +196,9 @@ - + - + CRM - Inbound Phone Calls Tree crm.phonecall @@ -247,12 +247,12 @@ search - - - - - - - - - + diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml index 2992959bdd0..ee5a6ac35f4 100644 --- a/addons/crm/crm_report_view.xml +++ b/addons/crm/crm_report_view.xml @@ -70,10 +70,10 @@ - - @@ -162,10 +162,10 @@ - - @@ -237,10 +237,10 @@ - - @@ -330,10 +330,10 @@ - - diff --git a/addons/crm/i18n/et.po b/addons/crm/i18n/et.po index 014dcf6987e..5e399b2e416 100644 --- a/addons/crm/i18n/et.po +++ b/addons/crm/i18n/et.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2010-01-05 05:59+0000\n" -"PO-Revision-Date: 2009-11-09 16:56+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2010-06-08 18:36+0000\n" +"Last-Translator: lyyser \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-04-17 04:01+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: crm #: field:crm.email.add.cc,name:0 msgid "Send to" -msgstr "" +msgstr "Saada" #. module: crm #: help:crm.meeting,exdate:0 @@ -37,17 +37,17 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Title" -msgstr "" +msgstr "Pealkiri" #. module: crm #: model:ir.model,name:crm.model_report_crm_case_section_categ2 msgid "Cases by section and category2" -msgstr "" +msgstr "Juhtumid jaotise ja staatusejärgi2" #. module: crm #: wizard_field:crm.lead.partner_create,init,close:0 msgid "Close Lead" -msgstr "" +msgstr "Sulge juhtimine" #. module: crm #: view:crm.job:0 @@ -55,12 +55,12 @@ msgstr "" #: view:crm.opportunity:0 #: view:crm.phonecall:0 msgid " 7 Days " -msgstr "" +msgstr " 7 päeva " #. module: crm #: help:crm.menu.config_wizard,helpdesk:0 msgid "Manages an Helpdesk service." -msgstr "" +msgstr "Haldab helpdesk teenust." #. module: crm #: view:crm.job:0 @@ -80,7 +80,7 @@ msgstr "Planeeritud maksumus" #. module: crm #: wizard_field:crm.job.partner_create,init,close:0 msgid "Close job request" -msgstr "" +msgstr "Sulge töö taotlus" #. module: crm #: field:crm.case.stage,name:0 @@ -109,12 +109,12 @@ msgstr "" #. module: crm #: model:ir.ui.menu,name:crm.menu_hr msgid "Human Resources" -msgstr "" +msgstr "Inimressursid" #. module: crm #: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2 msgid "Cases by Opportunities, Category and Type" -msgstr "" +msgstr "Juhtude võimalused, kategooria ja tüüp" #. module: crm #: help:crm.menu.config_wizard,claims:0 @@ -122,22 +122,24 @@ msgid "" "Manages the supplier and customers claims, including your corrective or " "preventive actions." msgstr "" +"Haldab tarnijate ja klientide nõudeid, sealjuures sinu korrigeerivaid ja " +"vältivaid tegevusi." #. module: crm #: view:crm.fundraising:0 msgid "Amount" -msgstr "" +msgstr "Kogus" #. module: crm #: model:process.transition,note:crm.process_transition_opportunitymeeting0 msgid "Normal or phone meeting for opportunity" -msgstr "" +msgstr "Normaalne või telefonikohtumine võimalusega" #. module: crm #: model:crm.case.stage,name:crm.stage_claim2 #: model:crm.case.stage,name:crm.stage_meet1 msgid "Fixed" -msgstr "" +msgstr "Fikseeritud" #. module: crm #: code:addons/crm/crm.py:0 @@ -152,34 +154,34 @@ msgstr "Ettevaatust !" #: code:addons/crm/wizard/wizard_crm_new_send_email.py:0 #, python-format msgid "Please specify user's email address !" -msgstr "" +msgstr "Palun täpsustage kasutaja e-posti aadress!" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor5 msgid "Campaign" -msgstr "" +msgstr "Kampaania" #. module: crm #: view:crm.opportunity:0 msgid "Search Opportunities" -msgstr "" +msgstr "Otsingu võimalused" #. module: crm #: model:ir.ui.menu,name:crm.menu_crm_case_section_stage_tree #: view:report.crm.case.section.stage:0 msgid "Cases by Section and Stage" -msgstr "" +msgstr "Juhtumid sektsiooni ja olekujärgi" #. module: crm #: wizard_field:crm.job.meeting_set,init,duration:0 #: wizard_field:crm.phonecall.meeting_set,init,duration:0 msgid "Duration (Hours)" -msgstr "" +msgstr "Kestvus (Tundides)" #. module: crm #: selection:crm.meeting,transparent:0 msgid "TRANSPARENT" -msgstr "" +msgstr "LÄBIPAISTEV" #. module: crm #: help:crm.case.rule,server_action_id:0 @@ -227,7 +229,7 @@ msgstr "Juhtumi Jaotis" #. module: crm #: view:crm.job:0 msgid "Proposed Salary" -msgstr "" +msgstr "Pakutav Palk" #. module: crm #: help:crm.case.section,sequence:0 @@ -240,12 +242,12 @@ msgstr "" #: model:crm.case.categ,name:crm.categ_meet3 #, python-format msgid "Phone Call" -msgstr "" +msgstr "Telefonikõne" #. module: crm #: model:ir.model,name:crm.model_report_crm_case_section_stage msgid "Cases by section and stage" -msgstr "" +msgstr "Juhtumid sektsiooni ja olekujärgi" #. module: crm #: field:crm.case.rule,act_mail_to_email:0 @@ -270,7 +272,7 @@ msgstr "Spetsiaalsed võtmesõnad sisus kasutamiseks." #: view:crm.lead:0 #: view:crm.opportunity:0 msgid "Send New Email" -msgstr "" +msgstr "Saada uus e-kiri" #. module: crm #: view:crm.case.history:0 @@ -291,12 +293,12 @@ msgstr "Jaotised" #. module: crm #: help:crm.menu.config_wizard,opportunity:0 msgid "Tracks identified business opportunities for your sales pipeline." -msgstr "" +msgstr "Jälgib tuvastatud ärivõimalusi sinu müükide konveierile." #. module: crm #: view:crm.meeting:0 msgid "Exception Dates" -msgstr "" +msgstr "Väljajäetavad kuupäevad" #. module: crm #: selection:crm.case.rule,trg_date_type:0 @@ -306,12 +308,12 @@ msgstr "Viimase Toimingu Kuupäev" #. module: crm #: view:crm.job:0 msgid "Appreciation" -msgstr "" +msgstr "Hindamine" #. module: crm #: model:crm.case.stage,name:crm.stage_job3 msgid "Second Interview" -msgstr "" +msgstr "Teine Intervjuu" #. module: crm #: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe @@ -328,7 +330,7 @@ msgstr "Kategooriad" #: code:addons/crm/wizard/wizard_crm_new_send_email.py:0 #, python-format msgid "Warning!" -msgstr "" +msgstr "Hoiatus!" #. module: crm #: view:crm.case:0 @@ -354,12 +356,12 @@ msgstr "" #: view:crm.fundraising:0 #: view:crm.opportunity:0 msgid "Description Information" -msgstr "" +msgstr "Kirjeldus info" #. module: crm #: view:crm.lead:0 msgid "Contact Name" -msgstr "" +msgstr "Kontakti nimi" #. module: crm #: selection:crm.lead.opportunity_set,create_partner,action:0 @@ -380,12 +382,12 @@ msgstr "Viivituse tüüp" #: view:crm.opportunity:0 #: view:crm.phonecall:0 msgid "Contact" -msgstr "" +msgstr "Kontakt" #. module: crm #: view:crm.job:0 msgid "Next Interview" -msgstr "" +msgstr "Järgmine Intervjuu" #. module: crm #: field:crm.case.rule,regex_history:0 @@ -400,7 +402,7 @@ msgstr "" #. module: crm #: model:process.transition,name:crm.process_transition_opportunitymeeting0 msgid "Opportunity Meeting" -msgstr "" +msgstr "Võimalusega kohtumine" #. module: crm #: help:crm.case,canal_id:0 @@ -419,12 +421,12 @@ msgstr "" #: field:crm.menu.config_wizard,opportunity:0 #: model:ir.actions.report.xml,name:crm.crm_business_opportunities_report msgid "Business Opportunities" -msgstr "" +msgstr "Äri võimalused" #. module: crm #: model:crm.case.stage,name:crm.stage_claim1 msgid "Accepted as Claim" -msgstr "" +msgstr "Aksepteeritud kui nõue" #. module: crm #: view:crm.case.rule:0 @@ -432,6 +434,8 @@ msgid "" "The rule use a AND operator. The case must match all non empty fields so " "that the rule execute the action described in the 'Actions' tab." msgstr "" +"See reegel kasutab AND operaatorit. Juhtum peab sobima kõigi tühjade " +"väljadega nii, et reegel käivitab 'Toimingud' kaardil kirjeldatud toimingu." #. module: crm #: field:crm.case,history_line:0 @@ -441,28 +445,28 @@ msgstr "Suhtlus" #. module: crm #: view:crm.case.rule:0 msgid "%(email_from)s = Partner email" -msgstr "" +msgstr "%(email_vorm)id = Partner email" #. module: crm #: model:crm.case.stage,name:crm.stage_lead6 msgid "Dead" -msgstr "" +msgstr "Surnud" #. module: crm #: view:crm.meeting:0 msgid "Confirm Meeting" -msgstr "" +msgstr "Kinnita koosolek" #. module: crm #: model:crm.case.categ,name:crm.categ_lead1 #: model:crm.case.categ,name:crm.categ_oppor1 msgid "Existing Customer" -msgstr "" +msgstr "Olemasolev klient" #. module: crm #: model:crm.case.category2,name:crm.category_meet2 msgid "Home" -msgstr "" +msgstr "Kodu" #. module: crm #: field:crm.case,categ_id:0 @@ -481,7 +485,7 @@ msgstr "Kategooria" #: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree #: view:report.crm.case.section.categ.stage:0 msgid "Cases by Section, Category and Stage" -msgstr "" +msgstr "Juhtumid jaotise, kategooria ja olekujärgi" #. module: crm #: help:crm.case.rule,act_mail_to_watchers:0 @@ -493,12 +497,12 @@ msgstr "" #. module: crm #: field:crm.meeting,class:0 msgid "Privacy" -msgstr "" +msgstr "Privaatsus" #. module: crm #: view:crm.case.rule:0 msgid "%(partner)s = Partner name" -msgstr "" +msgstr "%(partner)id = Partneri nimi" #. module: crm #: view:crm.case:0 @@ -513,7 +517,7 @@ msgstr "Toimingu Informatsioon" #. module: crm #: view:crm.case.rule:0 msgid "%(case_user_phone)s = Responsible phone" -msgstr "" +msgstr "%(juhtumi_kasutaja_telefon)id = Vastutaja telefon" #. module: crm #: constraint:ir.model:0 @@ -552,7 +556,7 @@ msgstr "Staatus" #: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity #: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1 msgid "Create Opportunity" -msgstr "" +msgstr "Loo võimalus" #. module: crm #: selection:report.crm.case.section.categ.categ2,month:0 @@ -560,12 +564,12 @@ msgstr "" #: selection:report.crm.case.section.categ2,month:0 #: selection:report.crm.case.section.stage,month:0 msgid "August" -msgstr "" +msgstr "August" #. module: crm #: view:crm.meeting:0 msgid "Meetings Tree" -msgstr "" +msgstr "Koosolekute puu" #. module: crm #: code:addons/crm/crm.py:0 @@ -582,7 +586,7 @@ msgstr "Eskaleeri" #. module: crm #: model:ir.ui.menu,name:crm.menu_crm_case_categ_meet msgid "All Meetings" -msgstr "" +msgstr "Kõik koosolekud" #. module: crm #: model:ir.module.module,shortdesc:crm.module_meta_information @@ -601,7 +605,7 @@ msgstr "" #: selection:report.crm.case.section.categ2,month:0 #: selection:report.crm.case.section.stage,month:0 msgid "June" -msgstr "" +msgstr "Juuni" #. module: crm #: field:crm.segmentation,som_interval_default:0 @@ -611,7 +615,7 @@ msgstr "Vaikimisi (0=Puudub)" #. module: crm #: model:crm.case.stage,name:crm.stage_job7 msgid "Refused by Company" -msgstr "" +msgstr "Tagasi lükatud firmapoolt" #. module: crm #: field:crm.case,planned_revenue:0 @@ -629,32 +633,32 @@ msgstr "Luba kustutamine" #: selection:report.crm.case.section.categ2,month:0 #: selection:report.crm.case.section.stage,month:0 msgid "October" -msgstr "" +msgstr "Oktoober" #. module: crm #: model:crm.case.stage,name:crm.stage_oppor3 msgid "Value Proposition" -msgstr "" +msgstr "Avalduse väärtus" #. module: crm #: view:crm.case.rule:0 msgid "%(case_id)s = Case ID" -msgstr "" +msgstr "%(juhtumi_id)d = Juhtumi ID" #. module: crm #: model:crm.case.category2,name:crm.category_oppor2 msgid "New Business" -msgstr "" +msgstr "Uus Firma" #. module: crm #: help:crm.case,email_from:0 msgid "These people will receive email." -msgstr "" +msgstr "Nendele inimestele saadetakse e-kiri." #. module: crm #: help:crm.case.section,calendar:0 msgid "Allows to show calendar" -msgstr "" +msgstr "Allows to show calendar" #. module: crm #: view:crm.job:0 @@ -662,13 +666,13 @@ msgstr "" #: view:crm.opportunity:0 #: view:crm.phonecall:0 msgid " Today " -msgstr "" +msgstr " Täna " #. module: crm #: wizard_view:crm.job.reschedule_phone_call,init:0 #: wizard_view:crm.opportunity.reschedule_phone_call,init:0 msgid "Phone Call Description" -msgstr "" +msgstr "Telefonikõnede kirjeldus" #. module: crm #: view:crm.case.categ:0 @@ -687,7 +691,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_claim3 msgid "Policy Claims" -msgstr "" +msgstr "Nõuete eeskiri" #. module: crm #: code:addons/crm/crm.py:0 @@ -697,11 +701,12 @@ msgstr "" msgid "" "You must define a responsible user for this case in order to use this action!" msgstr "" +"Peate määratlema vastutav kasutaja Sel juhul, et kasutada seda tegevust!" #. module: crm #: view:crm.phonecall:0 msgid "Assigned to" -msgstr "" +msgstr "Omistatud" #. module: crm #: view:res.partner.events:0 @@ -711,12 +716,12 @@ msgstr "Partneri sündmused" #. module: crm #: model:crm.case.stage,name:crm.stage_job4 msgid "Contract Proposed" -msgstr "" +msgstr "Leping esitatud" #. module: crm #: model:ir.ui.menu,name:crm.menu_crm_case_job_req_main msgid "Jobs - Hiring Process" -msgstr "" +msgstr "Töökohad - Töölevõtmise protsess" #. module: crm #: view:crm.case:0 @@ -732,7 +737,7 @@ msgstr "" #: selection:report.crm.case.section.categ2,month:0 #: selection:report.crm.case.section.stage,month:0 msgid "September" -msgstr "" +msgstr "September" #. module: crm #: view:crm.case:0 @@ -752,18 +757,18 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Meetings Form" -msgstr "" +msgstr "Koosolekute vorm" #. module: crm #: model:crm.case.stage,name:crm.stage_oppor5 msgid "Negotiation/Review" -msgstr "" +msgstr "Läbirääkimine/Ülevaade" #. module: crm #: code:addons/crm/wizard/crm_phonecall_wizard.py:0 #, python-format msgid "A partner is already defined on this phonecall." -msgstr "" +msgstr "Partner on juba määratletud selle telefonikõne." #. module: crm #: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage @@ -773,7 +778,7 @@ msgstr "" #. module: crm #: view:crm.claim:0 msgid "Date of Claim" -msgstr "" +msgstr "Nõude kuupäev" #. module: crm #: view:crm.segmentation.line:0 @@ -783,12 +788,12 @@ msgstr "Partneri Segmenteerimise Read" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all msgid "All Leads" -msgstr "" +msgstr "Kõik juhtimised" #. module: crm #: view:crm.lead:0 msgid "Leads Form" -msgstr "" +msgstr "Juhtimised alates" #. module: crm #: view:crm.segmentation:0 @@ -799,7 +804,7 @@ msgstr "Partneri Segmenteerimine" #. module: crm #: model:crm.case.stage,name:crm.stage_job5 msgid "Contract Signed" -msgstr "" +msgstr "Leping allakirjutatud" #. module: crm #: wizard_view:caldav.crm.subscribe,init:0 @@ -809,7 +814,7 @@ msgstr "" #. module: crm #: model:crm.case.category2,name:crm.category_oppor1 msgid "Existing Business" -msgstr "" +msgstr "Eksisteeriv äri" #. module: crm #: field:crm.case,probability:0 @@ -847,7 +852,7 @@ msgstr "Juhtumi Reegel" #: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor #, python-format msgid "Opportunity" -msgstr "" +msgstr "Võimalus" #. module: crm #: view:crm.case:0 @@ -857,12 +862,12 @@ msgstr "" #: view:crm.lead:0 #: view:crm.opportunity:0 msgid "Emails" -msgstr "" +msgstr "E-postid" #. module: crm #: model:crm.case.category2,name:crm.category_lead7 msgid "Television" -msgstr "" +msgstr "Televisioon" #. module: crm #: view:crm.segmentation:0 @@ -872,18 +877,18 @@ msgstr "Peata Protsess" #. module: crm #: model:crm.case.categ,name:crm.categ_claim1 msgid "Factual Claims" -msgstr "" +msgstr "Reaalsed nõuded" #. module: crm #: view:crm.phonecall:0 msgid "Search Phonecalls" -msgstr "" +msgstr "Otsi telefonikõnesi" #. module: crm #: wizard_button:crm.lead.opportunity_set,create_partner,create:0 #: wizard_button:crm.phonecall.opportunity_set,create_partner,create:0 msgid "Continue" -msgstr "" +msgstr "Jätka" #. module: crm #: field:crm.segmentation,som_interval:0 @@ -898,13 +903,13 @@ msgstr "Väärtus" #. module: crm #: help:caldav.crm.export,init,name:0 msgid "Save in .ics format" -msgstr "" +msgstr "Salvesta .ics vormingusse" #. module: crm #: wizard_field:crm.new.send.mail,init,text:0 #: wizard_field:crm.send.mail,init,text:0 msgid "Message" -msgstr "" +msgstr "Sõnum" #. module: crm #: help:crm.segmentation,exclusif:0 @@ -920,7 +925,7 @@ msgstr "" #. module: crm #: field:crm.segmentation,exclusif:0 msgid "Exclusive" -msgstr "" +msgstr "Eksklusiivne" #. module: crm #: help:crm.case,categ_id:0 @@ -938,12 +943,12 @@ msgstr "Sea olekusse" #: code:addons/crm/crm.py:0 #, python-format msgid "Email!" -msgstr "" +msgstr "E-kiri!" #. module: crm #: model:crm.case.category2,name:crm.category_lead6 msgid "Radio" -msgstr "" +msgstr "Raadio" #. module: crm #: model:ir.model,name:crm.model_crm_opportunity_assign_wizard @@ -953,7 +958,7 @@ msgstr "" #. module: crm #: view:crm.case.rule:0 msgid "Conditions on States" -msgstr "" +msgstr "Staatuste seisukord" #. module: crm #: field:crm.case.rule,trg_date_type:0 @@ -963,7 +968,7 @@ msgstr "Päästiku kuupäev" #. module: crm #: view:crm.case.history:0 msgid "Search Histories" -msgstr "" +msgstr "Otsi ajalugu" #. module: crm #: help:crm.case.stage,sequence:0 @@ -976,7 +981,7 @@ msgstr "" #: model:ir.ui.menu,name:crm.menu_crm_case_opp #: model:process.node,name:crm.process_node_opportunities0 msgid "Opportunities" -msgstr "" +msgstr "Võimalused" #. module: crm #: help:crm.segmentation,name:0 @@ -1002,7 +1007,7 @@ msgstr "Ostu Kogus" #. module: crm #: view:crm.phonecall:0 msgid "Direction" -msgstr "" +msgstr "Suund" #. module: crm #: help:crm.case,email_cc:0 @@ -1018,7 +1023,7 @@ msgstr "" #: selection:report.crm.case.section.categ2,month:0 #: selection:report.crm.case.section.stage,month:0 msgid "March" -msgstr "" +msgstr "Märts" #. module: crm #: view:crm.case.rule:0 @@ -1035,7 +1040,7 @@ msgstr "Reeglid" #: wizard_view:crm.job.meeting_set,init:0 #: wizard_view:crm.phonecall.meeting_set,init:0 msgid "Plan Meeting" -msgstr "" +msgstr "Koosoleku plaan" #. module: crm #: wizard_field:crm.new.send.mail,init,state:0 @@ -1056,7 +1061,7 @@ msgstr "" #: model:ir.actions.wizard,name:crm.wizard_crm_lead_partner_create #: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_partner_create msgid "Create Partner" -msgstr "" +msgstr "Loo partner" #. module: crm #: selection:crm.segmentation.line,expr_operator:0 @@ -1066,17 +1071,17 @@ msgstr "<" #. module: crm #: view:crm.case.rule:0 msgid "%(case_description)s = Case description" -msgstr "" +msgstr "%(case_description)s = Juhtumi kirjeldus" #. module: crm #: view:crm.fundraising:0 msgid "My Funds" -msgstr "" +msgstr "Minu vahendid" #. module: crm #: field:crm.case,partner_mobile:0 msgid "Mobile" -msgstr "" +msgstr "Mobiil" #. module: crm #: field:crm.case.rule,name:0 @@ -1097,12 +1102,12 @@ msgstr "Juhtumi ajalugu" #. module: crm #: model:crm.case.categ,name:crm.categ_job2 msgid "Junior Developer" -msgstr "" +msgstr "Noorem Arendaja" #. module: crm #: view:crm.meeting:0 msgid "My Meetings" -msgstr "" +msgstr "Minu kohtumised" #. module: crm #: field:crm.case.categ,name:0 @@ -1112,7 +1117,7 @@ msgstr "Juhtumi Kategooria Nimi" #. module: crm #: model:crm.case.category2,name:crm.category_claim2 msgid "Preventive" -msgstr "" +msgstr "Ennetav" #. module: crm #: field:crm.case.rule,act_email_cc:0 @@ -1150,7 +1155,7 @@ msgstr "" #: view:crm.meeting:0 #, python-format msgid "Meetings" -msgstr "" +msgstr "Koosolekud" #. module: crm #: view:crm.case.rule:0 @@ -1175,12 +1180,12 @@ msgstr "Tähtaeg" #: wizard_button:caldav.crm.import,init,end:0 #: wizard_button:caldav.crm.subscribe,init,end:0 msgid "_Cancel" -msgstr "" +msgstr "_Katkesta" #. module: crm #: field:crm.case,category2_id:0 msgid "Category Name" -msgstr "" +msgstr "Kategooria nimi" #. module: crm #: view:crm.segmentation:0 @@ -1204,12 +1209,12 @@ msgstr "Juhtumi Kategooria" #: view:crm.phonecall:0 #: wizard_field:crm.send.mail,init,subject:0 msgid "Subject" -msgstr "" +msgstr "Subjekt" #. module: crm #: field:crm.meeting,attendees:0 msgid "Attendees" -msgstr "" +msgstr "Osalejad" #. module: crm #: model:ir.module.module,description:crm.module_meta_information @@ -1269,7 +1274,7 @@ msgstr "" #. module: crm #: model:process.transition,note:crm.process_transition_leadpartner0 msgid "Prospect is converting to business partner" -msgstr "" +msgstr "Perspektiiv konverditakse äripartneriks" #. module: crm #: view:crm.case.rule:0 @@ -1289,7 +1294,7 @@ msgstr "" #. module: crm #: model:crm.case.category2,name:crm.category_lead4 msgid "Print" -msgstr "" +msgstr "Prindi" #. module: crm #: field:crm.case,som:0 @@ -1304,12 +1309,12 @@ msgstr "Meeleolu" #: field:report.crm.case.section.categ.categ2,category2_id:0 #: field:report.crm.case.section.categ2,category2_id:0 msgid "Type" -msgstr "" +msgstr "Tüüp" #. module: crm #: view:crm.job:0 msgid "Candidate Refused" -msgstr "" +msgstr "Kandidaat tagasilükatud" #. module: crm #: view:crm.segmentation:0 @@ -1339,12 +1344,12 @@ msgstr "Loomise Kuupäev" #: view:crm.phonecall:0 #: model:process.node,name:crm.process_node_meeting0 msgid "Meeting" -msgstr "" +msgstr "Kohtumine" #. module: crm #: view:crm.case.rule:0 msgid "%(partner_email)s = Partner email" -msgstr "" +msgstr "%(partner_email)id = Partneri e-mail" #. module: crm #: view:crm.case:0 @@ -1360,12 +1365,12 @@ msgstr "Lähtesta mustandiks" #. module: crm #: model:ir.model,name:crm.model_report_crm_case_section_categ_categ2 msgid "Cases by section, Category and Category2" -msgstr "" +msgstr "Juhtumid sektsiooni kaupa, kategooria ja kategooria2" #. module: crm #: model:crm.case.stage,name:crm.stage_oppor6 msgid "Closed Won" -msgstr "" +msgstr "Suletud Võidetud" #. module: crm #: model:ir.actions.act_window,name:crm.act_crm_case_categ_crm_case_opened @@ -1384,7 +1389,7 @@ msgstr "Avatud juhtumid" #: field:report.crm.case.section.categ2,stage_id:0 #: field:report.crm.case.section.stage,stage_id:0 msgid "Stage" -msgstr "" +msgstr "Tase" #. module: crm #: constraint:ir.ui.view:0 @@ -1401,7 +1406,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_fund2 msgid "Learning And Education" -msgstr "" +msgstr "Õppimine ja haridus" #. module: crm #: wizard_view:crm.phonecall.opportunity_set,create_partner:0 @@ -1414,36 +1419,36 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_case_stage_act #: model:ir.ui.menu,name:crm.menu_crm_case_stage_act msgid "Stages" -msgstr "" +msgstr "Etapid" #. module: crm #: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0 #: wizard_field:crm.lead.opportunity_set,opportunity,planned_revenue:0 #: wizard_field:crm.phonecall.opportunity_set,opportunity,planned_revenue:0 msgid "Expected Revenue" -msgstr "" +msgstr "Eeldatav tulu" #. module: crm #: view:crm.meeting:0 msgid "Meeting Date" -msgstr "" +msgstr "Koosoleku kuupäev" #. module: crm #: view:crm.job:0 #: view:crm.lead:0 #: view:crm.phonecall:0 msgid "Convert to Partner" -msgstr "" +msgstr "Muuda partneriks" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_category_act_meetall3 msgid "Next Meetings" -msgstr "" +msgstr "Järgmised kohtumised" #. module: crm #: field:crm.segmentation,partner_id:0 msgid "Max Partner ID processed" -msgstr "" +msgstr "Maks Partner ID töödeldud" #. module: crm #: code:addons/crm/crm.py:0 @@ -1454,7 +1459,7 @@ msgstr "Sa ei saa seda juhtumit kustutada. Parem tühista see." #. module: crm #: wizard_button:caldav.crm.subscribe,init,open:0 msgid "_Subscribe" -msgstr "" +msgstr "_Telli" #. module: crm #: field:crm.case.rule,trg_priority_from:0 @@ -1469,12 +1474,12 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_claim2 msgid "Value Claims" -msgstr "" +msgstr "Nõuete Väärtus" #. module: crm #: wizard_view:caldav.crm.subscribe,display:0 msgid "Message..." -msgstr "" +msgstr "Sõnum..." #. module: crm #: model:ir.model,name:crm.model_crm_phonecall_assign_wizard @@ -1484,7 +1489,7 @@ msgstr "" #. module: crm #: view:report.crm.case.section.categ2:0 msgid "Cases by Section and Category2" -msgstr "" +msgstr "Juhtumid jaotise ja kategooria2 järgi" #. module: crm #: code:addons/crm/crm.py:0 @@ -1496,7 +1501,7 @@ msgstr "valmis" #: view:crm.meeting:0 #: view:crm.phonecall:0 msgid "Reminder" -msgstr "" +msgstr "Meeldetuletus" #. module: crm #: help:crm.segmentation,sales_purchase_active:0 @@ -1522,7 +1527,7 @@ msgstr "Meeldetuletus manusega" #: model:crm.case.categ,name:crm.categ_lead6 #: model:crm.case.categ,name:crm.categ_oppor6 msgid "Website" -msgstr "" +msgstr "Veebileht" #. module: crm #: field:crm.case.rule,act_remind_user:0 @@ -1532,7 +1537,7 @@ msgstr "Meeldetuletus vastutajale" #. module: crm #: field:crm.segmentation,state:0 msgid "Execution Status" -msgstr "" +msgstr "Täideviimise olek" #. module: crm #: help:crm.menu.config_wizard,jobs:0 @@ -1544,7 +1549,7 @@ msgstr "" #. module: crm #: view:crm.fundraising:0 msgid "Funds" -msgstr "" +msgstr "Vahendid" #. module: crm #: code:addons/crm/crm.py:0 @@ -1556,7 +1561,7 @@ msgstr "mustand" #: model:crm.case.stage,name:crm.stage_claim5 #: model:crm.case.stage,name:crm.stage_meet4 msgid "Awaiting Response" -msgstr "" +msgstr "Vastuse ootel" #. module: crm #: field:crm.case,date:0 @@ -1570,13 +1575,13 @@ msgstr "Kuupäev" #. module: crm #: view:crm.job:0 msgid "Candidate Name" -msgstr "" +msgstr "Kandidaadi Nimi" #. module: crm #: model:crm.case.categ,name:crm.categ_lead2 #: model:crm.case.categ,name:crm.categ_oppor2 msgid "Self Generated" -msgstr "" +msgstr "Endal genereeritud" #. module: crm #: model:crm.case.stage,name:crm.stage_claim3 @@ -1586,7 +1591,7 @@ msgstr "" #. module: crm #: model:crm.case.stage,name:crm.stage_lead4 msgid "Converted" -msgstr "" +msgstr "Muudetud" #. module: crm #: view:crm.case:0 @@ -1626,7 +1631,7 @@ msgstr "" #. module: crm #: view:crm.job:0 msgid "Jobs - Recruitment Tree" -msgstr "" +msgstr "Töökohad - Värbamise puu" #. module: crm #: field:crm.case.rule,regex_name:0 @@ -1640,7 +1645,7 @@ msgstr "" #: field:report.crm.case.section.categ2,state:0 #: field:report.crm.case.section.stage,state:0 msgid "State" -msgstr "" +msgstr "Riik" #. module: crm #: view:crm.case:0 @@ -1701,12 +1706,12 @@ msgstr "" #. module: crm #: view:crm.claim:0 msgid "Type of claim" -msgstr "" +msgstr "Nõude tüüp" #. module: crm #: view:crm.case:0 msgid "Helpdesk Support Tree" -msgstr "" +msgstr "Helpdesk toetuse puu" #. module: crm #: view:res.partner.events:0 @@ -1716,12 +1721,12 @@ msgstr "Üldine kirjeldus" #. module: crm #: view:crm.meeting:0 msgid "Other Info" -msgstr "" +msgstr "Muu info" #. module: crm #: view:crm.claim:0 msgid "Claim Cost" -msgstr "" +msgstr "Nõude kulud" #. module: crm #: view:crm.job:0 @@ -1747,7 +1752,7 @@ msgstr "" #. module: crm #: model:crm.case.category2,name:crm.category_lead2 msgid "Mail" -msgstr "" +msgstr "E-Kiri" #. module: crm #: field:crm.case.rule,act_priority:0 @@ -1757,7 +1762,7 @@ msgstr "Sea prioriteet" #. module: crm #: model:crm.case.stage,name:crm.stage_oppor2 msgid "Needs Analysis" -msgstr "" +msgstr "Vajab analüüsi" #. module: crm #: view:crm.claim:0 @@ -1772,7 +1777,7 @@ msgstr "Maili keha" #. module: crm #: help:crm.menu.config_wizard,meeting:0 msgid "Manages the calendar of meetings of the users." -msgstr "" +msgstr "Haldab kasutajate koosolekute kalendrit." #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -1805,12 +1810,12 @@ msgstr "Nimi" #. module: crm #: view:crm.opportunity:0 msgid "Sales Stage" -msgstr "" +msgstr "Müügistaatus" #. module: crm #: field:crm.meeting,alarm_id:0 msgid "Alarm" -msgstr "" +msgstr "Alarm" #. module: crm #: field:crm.case.rule,act_mail_to_watchers:0 @@ -1821,7 +1826,7 @@ msgstr "" #: view:crm.fundraising:0 #: view:crm.meeting:0 msgid "Next Meeting" -msgstr "" +msgstr "Järgmine Koosolek" #. module: crm #: code:addons/crm/crm.py:0 @@ -1844,7 +1849,7 @@ msgstr "" #. module: crm #: field:crm.menu.config_wizard,bugs:0 msgid "Bug Tracking" -msgstr "" +msgstr "Vigade jälgimine" #. module: crm #: view:crm.case:0 @@ -1883,7 +1888,7 @@ msgstr "" #. module: crm #: model:crm.case.stage,name:crm.stage_oppor4 msgid "Proposal/Price Quote" -msgstr "" +msgstr "Ettepanek/Hinnapakkumine" #. module: crm #: view:crm.case.rule:0 @@ -1893,12 +1898,12 @@ msgstr "Viivitus peale päästiku kuupäeva:" #. module: crm #: model:crm.case.category2,name:crm.category_lead5 msgid "Web" -msgstr "" +msgstr "Veeb" #. module: crm #: view:crm.lead:0 msgid "Campaign Type" -msgstr "" +msgstr "Kampaanja tüüp" #. module: crm #: view:crm.segmentation:0 @@ -1910,7 +1915,7 @@ msgstr "Meeleolu arvutamine" #: code:addons/crm/wizard/wizard_crm_send_email.py:0 #, python-format msgid "Error" -msgstr "" +msgstr "Viga" #. module: crm #: model:ir.model,name:crm.model_crm_meeting_generic_wizard @@ -1920,12 +1925,12 @@ msgstr "" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_history-act msgid "Histories" -msgstr "" +msgstr "Aja lood" #. module: crm #: model:crm.case.category2,name:crm.category_job1 msgid "Graduate" -msgstr "" +msgstr "Teaduslik kraad" #. module: crm #: wizard_view:crm.job.meeting_set,init:0 @@ -1934,11 +1939,13 @@ msgid "" "Note that you can also use the calendar view to graphically schedule your " "next meeting." msgstr "" +"Sa saad kasutada ka kalendrivaadet, et graafiliselt planeerida oma järgmist " +"kohtumist." #. module: crm #: view:crm.lead:0 msgid "Leads Tree" -msgstr "" +msgstr "Algatuste puu" #. module: crm #: field:crm.meeting,caldav_url:0 @@ -1948,7 +1955,7 @@ msgstr "" #. module: crm #: view:crm.meeting:0 msgid "Attendee" -msgstr "" +msgstr "Osaleja" #. module: crm #: code:addons/crm/crm.py:0 @@ -1962,12 +1969,12 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0 #: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound msgid "Inbound" -msgstr "" +msgstr "Sissetulev" #. module: crm #: constraint:crm.case.section:0 msgid "Error ! You cannot create recursive sections." -msgstr "" +msgstr "Viga! Sa ei saa luua rekursiivseid sektsioone." #. module: crm #: model:ir.ui.menu,name:crm.menu_crm @@ -1980,6 +1987,8 @@ msgid "" " Will allow you to synchronise your Open ERP calendars with your phone, " "outlook, Sunbird, ical, ..." msgstr "" +" Lubab sul sünkroniseerida Open ERP kalendreid telefoni, Outlook, Sunbird, " +"ical, ..." #. module: crm #: view:report.crm.case.section.categ.categ2:0 @@ -1987,7 +1996,7 @@ msgstr "" #: view:report.crm.case.section.categ2:0 #: view:report.crm.case.section.stage:0 msgid "This Year" -msgstr "" +msgstr "See aasta" #. module: crm #: field:crm.case.rule,act_remind_partner:0 @@ -2005,7 +2014,7 @@ msgstr "Kõrgeim" #. module: crm #: view:crm.job:0 msgid "Contract Data" -msgstr "" +msgstr "Lepingu andmed" #. module: crm #: selection:crm.case.rule,trg_date_range_type:0 @@ -2020,7 +2029,7 @@ msgstr "" #. module: crm #: field:crm.menu.config_wizard,document_ics:0 msgid "Shared Calendar" -msgstr "" +msgstr "Jagatud kalender" #. module: crm #: field:crm.case.section,reply_to:0 @@ -2041,12 +2050,12 @@ msgstr "Minutid" #: field:report.crm.case.section.categ2,amount_revenue:0 #: field:report.crm.case.section.stage,amount_revenue:0 msgid "Est.Revenue" -msgstr "" +msgstr "Loodetav tulu" #. module: crm #: model:crm.case.stage,name:crm.stage_job1 msgid "Initial Jobs Demand" -msgstr "" +msgstr "Esialgne töökohtade vajadus" #. module: crm #: field:crm.case.rule,trg_priority_to:0 @@ -2056,17 +2065,17 @@ msgstr "Maksimaalne Prioriteet" #. module: crm #: selection:crm.meeting,transparent:0 msgid "OPAQUE" -msgstr "" +msgstr "LÄBIPAISTMATU" #. module: crm #: view:crm.claim:0 msgid "Claims Info" -msgstr "" +msgstr "Nõuete Info" #. module: crm #: field:crm.case.category2,name:0 msgid "Case Category2 Name" -msgstr "" +msgstr "Juhtumi Kategooria2 nimi" #. module: crm #: wizard_view:crm.lead.opportunity_set,opportunity:0 @@ -2074,7 +2083,7 @@ msgstr "" #: model:ir.actions.wizard,name:crm.wizard_crm_lead_opportunity_set #: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_opportunity_set msgid "Convert To Opportunity" -msgstr "" +msgstr "Konverdi võimaluseks" #. module: crm #: model:crm.case.stage,name:crm.stage_phone2 @@ -2085,7 +2094,7 @@ msgstr "" #. module: crm #: view:crm.case:0 msgid "Helpdesk Supports" -msgstr "" +msgstr "Helpdesk'i toed" #. module: crm #: model:crm.case.section,name:crm.section_support4 diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py index 39806c50803..db9837b5d0c 100644 --- a/addons/crm/report/crm_lead_report.py +++ b/addons/crm/report/crm_lead_report.py @@ -21,6 +21,7 @@ from osv import fields,osv import tools +from crm import crm AVAILABLE_STATES = [ ('draft','Draft'), @@ -91,9 +92,11 @@ class crm_lead_report(osv.osv): 'create_date': fields.datetime('Create Date', readonly=True), 'day': fields.char('Day', size=128, readonly=True), 'email': fields.integer('# of Emails', size=128, readonly=True), - 'expected_closing_days': fields.integer('# of Expected Closing Days', size=128, readonly=True), 'delay_open': fields.float('Delay to open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), + 'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"), 'delay_close': fields.float('Delay to close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"), + 'probability': fields.float('Probability',digits=(16,2),readonly=True), + 'planned_revenue': fields.float('Planned Revenue',digits=(16,2),readonly=True), 'categ_id': fields.many2one('crm.case.categ', 'Category',\ domain="[('section_id','=',section_id),\ ('object_id.model', '=', 'crm.lead')]" , readonly=True), @@ -101,7 +104,12 @@ class crm_lead_report(osv.osv): domain="[('section_id','=',section_id),\ ('object_id.model', '=', 'crm.lead')]", readonly=True), 'partner_id': fields.many2one('res.partner', 'Partner' , readonly=True), + 'opening_date': fields.date('Opening Date', readonly=True), + 'creation_date': fields.date('Creation Date', readonly=True), + 'date_closed': fields.date('Close Date', readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), + 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), + 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), @@ -122,36 +130,47 @@ class crm_lead_report(osv.osv): to_char(c.create_date, 'YYYY') as name, to_char(c.create_date, 'MM') as month, to_char(c.create_date, 'YYYY-MM-DD') as day, + to_char(c.create_date, 'YYYY-MM-DD') as creation_date, + to_char(c.date_open, 'YYYY-MM-DD') as opening_date, + to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, c.state as state, c.user_id, + c.probability, c.stage_id, c.type as type, c.company_id, + c.priority, c.section_id, c.categ_id, c.partner_id, - count(*) as nbr, + c.planned_revenue, + (select 1) as nbr, 0 as avg_answers, 0.0 as perc_done, 0.0 as perc_cancel, (select count(id) from mailgate_message where thread_id=c.id) as email, date_trunc('day',c.create_date) as create_date, - sum(cast(to_char(date_trunc('day',c.date_open) - date_trunc('day',c.date_deadline),'DD') as int)) as expected_closing_days, avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close, + avg(extract('epoch' from (c.date_deadline - c.date_closed)))/(3600*24) as delay_expected, avg(extract('epoch' from (c.date_open-c.create_date)))/(3600*24) as delay_open from crm_lead c group by to_char(c.create_date, 'YYYY'), + to_char(c.date_open, 'YYYY-MM-DD'), + to_char(c.date_closed, 'YYYY-mm-dd'), to_char(c.create_date, 'MM'), c.state, c.user_id, c.id, c.section_id, c.stage_id, - categ_id, + c.probability, + c.categ_id, c.partner_id, + c.planned_revenue, c.company_id, + c.priority, c.type, c.create_date, to_char(c.create_date, 'YYYY-MM-DD') diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml index 770d9292b6f..f6ac9238b3c 100644 --- a/addons/crm/report/crm_lead_report_view.xml +++ b/addons/crm/report/crm_lead_report_view.xml @@ -10,19 +10,24 @@ tree - - - - - - - - - + + + + + + + + + + + + + + @@ -71,20 +76,17 @@ - - - - - - + @@ -98,40 +100,51 @@ help="My section" /> - + - - + - - + + - - - - - + + + + + + + + - - - - - - + + + + + + + + + + @@ -144,23 +157,26 @@ crm.lead.report tree - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -173,7 +189,7 @@ form {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]} tree,graph - [('type', '=', 'lead')] + ['|',('type', '=', 'lead'),('type', '=', False)] diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py index c1954f8607f..c0e666e4eaa 100644 --- a/addons/crm/report/crm_phonecall_report.py +++ b/addons/crm/report/crm_phonecall_report.py @@ -21,6 +21,7 @@ from osv import fields,osv import tools +from crm import crm AVAILABLE_STATES = [ ('draft','Draft'), @@ -78,6 +79,7 @@ class crm_phonecall_report(osv.osv): 'name': fields.char('Year', size=64, required=False, readonly=True), 'user_id':fields.many2one('res.users', 'User', readonly=True), 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True), + 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), 'nbr': fields.integer('# of Cases', readonly=True), 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"), @@ -89,15 +91,22 @@ class crm_phonecall_report(osv.osv): ('07', 'July'), ('08', 'August'),\ ('09', 'September'), ('10', 'October'),\ ('11', 'November'), ('12', 'December')], 'Month', readonly=True), - 'company_id': fields.many2one('res.company', 'Company', readonly=True), 'create_date': fields.datetime('Create Date', readonly=True), 'day': fields.char('Day', size=128, readonly=True), 'delay_close': fields.float('Delay to close', digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"), + 'duration': fields.float('Duration', digits=(16,2),readonly=True, group_operator="avg"), + 'delay_open': fields.float('Delay to open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="[('section_id','=',section_id),\ ('object_id.model', '=', 'crm.phonecall')]"), 'partner_id': fields.many2one('res.partner', 'Partner' , readonly=True), + 'stage_id': fields.many2one ('crm.case.stage', 'Stage', \ + domain="[('section_id','=',section_id),\ + ('object_id.model', '=', 'crm.phonecall')]", readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), + 'opening_date': fields.date('Opening Date', readonly=True), + 'creation_date': fields.date('Creation Date', readonly=True), + 'date_closed': fields.date('Close Date', readonly=True), } def init(self, cr): @@ -114,23 +123,45 @@ class crm_phonecall_report(osv.osv): to_char(c.create_date, 'YYYY') as name, to_char(c.create_date, 'MM') as month, to_char(c.create_date, 'YYYY-MM-DD') as day, + to_char(c.create_date, 'YYYY-MM-DD') as creation_date, + to_char(c.date_open, 'YYYY-MM-DD') as opening_date, + to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, + c.state, + c.user_id, + c.section_id, + c.categ_id, + c.partner_id, + c.stage_id, + c.duration, + c.company_id, + c.priority, + (select 1) as nbr, + 0 as avg_answers, + 0.0 as perc_done, + 0.0 as perc_cancel, + date_trunc('day',c.create_date) as create_date, + avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close, + avg(extract('epoch' from (c.date_open-c.create_date)))/(3600*24) as delay_open + + from + crm_phonecall c + where c.categ_id in (select res_id from ir_model_data where (name = 'categ_phone1' or name ='categ_phone2')) + group by + to_char(c.create_date, 'YYYY'), + to_char(c.create_date, 'MM'),\ c.state, c.user_id, c.section_id, c.categ_id, c.partner_id, c.company_id, - count(*) as nbr, - 0 as avg_answers, - 0.0 as perc_done, - 0.0 as perc_cancel, - date_trunc('day',c.create_date) as create_date, - avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close - from - crm_phonecall c - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),\ - c.state, c.user_id,c.section_id, c.categ_id,c.partner_id,c.company_id - ,to_char(c.create_date, 'YYYY-MM-DD'),c.create_date + c.duration, + c.priority, + to_char(c.date_open, 'YYYY-MM-DD'), + to_char(c.date_closed, 'YYYY-mm-dd'), + c.stage_id, + to_char(c.create_date, 'YYYY-MM-DD'), + c.create_date )""") crm_phonecall_report() diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml index 4e57ba1d474..ddc50460e31 100644 --- a/addons/crm/report/crm_phonecall_report_view.xml +++ b/addons/crm/report/crm_phonecall_report_view.xml @@ -10,18 +10,22 @@ tree - - - + + + + + - - - + + + + + @@ -36,9 +40,9 @@ - + - + @@ -73,97 +77,86 @@ - - - + - - + - + - - - - - - - - + - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 2b3f883024c..61cf7c6368d 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -258,16 +258,16 @@ search - - - - - - + - diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml index ca6fdb95277..7892039436c 100644 --- a/addons/crm_claim/report/crm_claim_report_view.xml +++ b/addons/crm_claim/report/crm_claim_report_view.xml @@ -77,25 +77,25 @@ - - - - - - @@ -105,69 +105,69 @@ widget="selection" context="{'invisible_section': False}"> - - - + - - - + + - - - - - - - - - - - - diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml index 6853da7c89a..9ef1c936be4 100644 --- a/addons/crm_fundraising/crm_fundraising_view.xml +++ b/addons/crm_fundraising/crm_fundraising_view.xml @@ -269,13 +269,13 @@ - - - @@ -285,26 +285,26 @@ string="Fund Description" /> - - - - + - - diff --git a/addons/crm_fundraising/report/crm_fundraising_report_view.xml b/addons/crm_fundraising/report/crm_fundraising_report_view.xml index 20e8ef68b6b..6e27fc8390d 100644 --- a/addons/crm_fundraising/report/crm_fundraising_report_view.xml +++ b/addons/crm_fundraising/report/crm_fundraising_report_view.xml @@ -76,25 +76,25 @@ - - - - - - @@ -104,60 +104,61 @@ widget="selection" context="{'invisible_section': False}"> - - - + - - + + - - - - - - - - - diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index 451f6c7119e..57e7bba0199 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -234,12 +234,12 @@ search - - - - - + - - diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml index f564bb38d4d..c6875e21a4a 100644 --- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml +++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml @@ -71,25 +71,25 @@ - - - - - - @@ -98,14 +98,14 @@ widget="selection" context="{'invisible_section': False}"> - - @@ -114,59 +114,41 @@ - - + - - - - - - - - - - - - - - - - + - + diff --git a/addons/crm_vertical/i18n/et.po b/addons/crm_vertical/i18n/et.po index 6cb97a11a69..2fc01790b28 100644 --- a/addons/crm_vertical/i18n/et.po +++ b/addons/crm_vertical/i18n/et.po @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-22 23:21+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2010-06-08 17:43+0000\n" +"Last-Translator: lyyser \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-04-17 04:20+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: crm_vertical #: model:ir.module.module,description:crm_vertical.module_meta_information msgid "Simplification of the interface for CRM." -msgstr "" +msgstr "Kasutajaliidese lihtsustus KSH jaoks." diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index fd424ad7d52..0bab191d942 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -234,22 +234,22 @@ search - - - - + - + diff --git a/addons/document/report/document_report_view.xml b/addons/document/report/document_report_view.xml index 4afc66fb4d7..00743d768e7 100644 --- a/addons/document/report/document_report_view.xml +++ b/addons/document/report/document_report_view.xml @@ -41,8 +41,8 @@ - - + + diff --git a/addons/document_ics/i18n/et.po b/addons/document_ics/i18n/et.po index 79dbad26d26..aa769e50473 100644 --- a/addons/document_ics/i18n/et.po +++ b/addons/document_ics/i18n/et.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-16 15:43+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2010-06-08 17:44+0000\n" +"Last-Translator: lyyser \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-04-17 04:18+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: document_ics @@ -36,7 +36,7 @@ msgstr "Viga! Sa ei saa luua regrussiivseid kaustu." #. module: document_ics #: field:document.ics.crm.wizard,jobs:0 msgid "Jobs Hiring Process" -msgstr "" +msgstr "Töökohad Töölevõtmise Protsess" #. module: document_ics #: view:document.ics.crm.wizard:0 @@ -122,7 +122,7 @@ msgstr "Seadista kalendrid sektsioonide jaoks " #. module: document_ics #: help:document.ics.crm.wizard,opportunity:0 msgid "Tracks identified business opportunities for your sales pipeline." -msgstr "" +msgstr "Jälgib tuvastatud ärivõimalusi sinu müükide konveierile." #. module: document_ics #: help:document.ics.crm.wizard,fund:0 @@ -209,6 +209,8 @@ msgid "" "Manages the supplier and customers claims, including your corrective or " "preventive actions." msgstr "" +"Haldab tarnijate ja klientide nõudeid, sealjuures sinu korrigeerivaid ja " +"vältivaid tegevusi." #. module: document_ics #: selection:document.directory.ics.fields,name:0 @@ -241,6 +243,8 @@ msgid "" "Help you to encode the result of a phone call or to planify a list of phone " "calls to process." msgstr "" +"Aitab sul arvutada telefonikõne tulemust või planeerida nimekirja " +"telefonikõnedest töötlemiseks." #. module: document_ics #: selection:document.directory.ics.fields,name:0 @@ -315,7 +319,7 @@ msgstr "Tühista" #. module: document_ics #: field:document.ics.crm.wizard,opportunity:0 msgid "Business Opportunities" -msgstr "" +msgstr "Äri võimalused" #. module: document_ics #: selection:document.directory.ics.fields,name:0 diff --git a/addons/email_template/email_template_mailbox_view.xml b/addons/email_template/email_template_mailbox_view.xml index e6ff86d1087..f94fa886ee6 100755 --- a/addons/email_template/email_template_mailbox_view.xml +++ b/addons/email_template/email_template_mailbox_view.xml @@ -129,14 +129,14 @@ search - - + + - - + + - - + + diff --git a/addons/event/i18n/et.po b/addons/event/i18n/et.po index 90fba2749fb..678759f8938 100644 --- a/addons/event/i18n/et.po +++ b/addons/event/i18n/et.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-13 08:53+0000\n" +"PO-Revision-Date: 2010-06-08 17:51+0000\n" "Last-Translator: lyyser \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-05-14 04:55+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: event @@ -60,7 +60,7 @@ msgstr "Sündmuse registreerimine" #. module: event #: model:ir.actions.wizard,name:event.event_reg_invoice msgid "Make Invoice" -msgstr "" +msgstr "Loo arve" #. module: event #: field:report.event.type.registration,draft_state:0 @@ -145,7 +145,7 @@ msgstr "Registreerimine" #: field:event.type,name:0 #: model:ir.model,name:event.model_event_type msgid "Event type" -msgstr "" +msgstr "Sündmuse liik" #. module: event #: view:event.event:0 @@ -153,34 +153,34 @@ msgstr "" #: model:ir.module.module,shortdesc:event.module_meta_information #: field:report.event.registration,name:0 msgid "Event" -msgstr "" +msgstr "Sündmus" #. module: event #: selection:event.event,state:0 msgid "Confirmed" -msgstr "" +msgstr "Kinnitatud" #. module: event #: wizard_view:event.confirm_registration,split:0 msgid "Registration Confirmation" -msgstr "" +msgstr "Registreerimise kinnitus" #. module: event #: view:event.registration:0 msgid "Dates" -msgstr "" +msgstr "Kuupäevad" #. module: event #: field:event.event,register_current:0 #: model:ir.actions.act_window,name:event.action_registration_confirm #: model:ir.ui.menu,name:event.menu_action_registration_confirm msgid "Confirmed Registrations" -msgstr "" +msgstr "Kinnitatud registreerimised" #. module: event #: field:event.event,mail_auto_registr:0 msgid "Mail Auto Register" -msgstr "" +msgstr "Autoregistreerimise mail" #. module: event #: view:event.registration:0 @@ -190,12 +190,12 @@ msgstr "Tunnusmärk" #. module: event #: field:event.event,section_id:0 msgid "Case section" -msgstr "" +msgstr "Juhtumi jaotis" #. module: event #: field:event.registration,tobe_invoiced:0 msgid "To be Invoiced" -msgstr "" +msgstr "Tehakse arve" #. module: event #: model:ir.ui.menu,name:event.menu_event_event @@ -220,7 +220,7 @@ msgstr "Sündmused kategooria järgi" #. module: event #: wizard_view:event.confirm_registration,split:0 msgid "The event limit is reached. What do you want to do?" -msgstr "" +msgstr "Sündmuste limiidipiir on saavutatud. Mida sa soovid teha?" #. module: event #: field:report.event.type.registration,confirm_state:0 @@ -237,7 +237,7 @@ msgstr "Viited" #: model:ir.ui.menu,name:event.menu_report_event_type_registration #: view:report.event.type.registration:0 msgid "Registration By Event Types" -msgstr "" +msgstr "Registreerimine sündmuse liigijärgi" #. module: event #: model:ir.ui.menu,name:event.menu_event_config @@ -262,12 +262,12 @@ msgstr "Viga: TÜ kategooria peab erinema MÜ kategooriast" #. module: event #: view:event.event:0 msgid "Parent Category" -msgstr "" +msgstr "Peaktegooria" #. module: event #: view:event.registration:0 msgid "Registration Invoiced" -msgstr "" +msgstr "Registreerimine arveks tehtud" #. module: event #: field:report.event.type.registration,nbevent:0 @@ -277,7 +277,7 @@ msgstr "Sündmuste arv" #. module: event #: view:event.event:0 msgid "Cancel Event" -msgstr "" +msgstr "Loobu sündmusest" #. module: event #: wizard_field:event.reg_make_invoice,init,inv_rej_reason:0 @@ -287,12 +287,12 @@ msgstr "Veateated" #. module: event #: view:event.event:0 msgid "Mailing" -msgstr "" +msgstr "Postitan" #. module: event #: model:product.template,name:event.event_product_0_product_template msgid "Ticket for Concert" -msgstr "" +msgstr "Kontserdi pilet" #. module: event #: field:event.event,register_prospect:0 @@ -304,12 +304,12 @@ msgstr "Kinnitamatta registreerimised" #. module: event #: field:event.registration,partner_invoice_id:0 msgid "Partner Invoiced" -msgstr "" +msgstr "Partnerile arve tehtud" #. module: event #: view:event.registration:0 msgid "Communication history" -msgstr "" +msgstr "Kommunikatsiooni alalugu" #. module: event #: selection:event.event,state:0 @@ -319,18 +319,18 @@ msgstr "Katkestatud" #. module: event #: view:event.event:0 msgid "Event Done" -msgstr "" +msgstr "Sündmus valmis" #. module: event #: field:event.registration,badge_name:0 msgid "Badge Name" -msgstr "" +msgstr "Embleemi nimi" #. module: event #: model:ir.actions.act_window,name:event.action_event_registration #: model:ir.ui.menu,name:event.menu_report_event_registration msgid "Events On Registrations" -msgstr "" +msgstr "Registreerimiste sündmused" #. module: event #: constraint:product.template:0 @@ -342,27 +342,27 @@ msgstr "" #. module: event #: wizard_field:event.reg_make_invoice,init,inv_created:0 msgid "Invoice Created" -msgstr "" +msgstr "Arve loodud" #. module: event #: view:event.event:0 msgid "Statistics" -msgstr "" +msgstr "Statistika" #. module: event #: selection:event.event,state:0 msgid "Draft" -msgstr "" +msgstr "Mustand" #. module: event #: view:event.event:0 msgid "Event description" -msgstr "" +msgstr "Sündmuse kirjeldus" #. module: event #: model:ir.model,name:event.model_report_event_type_registration msgid "Event type on registration" -msgstr "" +msgstr "Registreerimise sündmuse liik" #. module: event #: constraint:ir.model:0 @@ -374,7 +374,7 @@ msgstr "" #. module: event #: field:event.registration,event_id:0 msgid "Event Related" -msgstr "" +msgstr "Seotud sündmus" #. module: event #: model:crm.case.section,name:event.case_section_event @@ -386,167 +386,169 @@ msgstr "Sündmused" #. module: event #: field:event.registration,nb_register:0 msgid "Number of Registration" -msgstr "" +msgstr "Registreerimiste arv" #. module: event #: view:event.event:0 #: field:event.event,state:0 #: view:event.registration:0 msgid "Status" -msgstr "" +msgstr "Olek" #. module: event #: model:ir.actions.act_window,name:event.action_event_categories msgid "Events by section" -msgstr "" +msgstr "Sündmused sektsioonijärgi" #. module: event #: model:ir.ui.menu,name:event.menu_action_registration msgid "All Registrations" -msgstr "" +msgstr "Kõik registreerimised" #. module: event #: help:event.event,mail_auto_registr:0 msgid "" "Check this box if you want to use the automatic mailing for new registration" msgstr "" +"Märgi see kast, kui sa tahad kasutada automaatset kirja saatmist uuel " +"registreerimisel" #. module: event #: view:event.event:0 msgid "Set To Draft" -msgstr "" +msgstr "Sea mustandiks" #. module: event #: view:event.registration:0 #: model:ir.actions.wizard,name:event.event_confirm_registration #: field:report.event.registration,confirm_state:0 msgid "Confirm Registration" -msgstr "" +msgstr "Kinnita registreerimine" #. module: event #: view:event.registration:0 msgid "History" -msgstr "" +msgstr "Ajalugu" #. module: event #: model:ir.ui.menu,name:event.menu_event_type msgid "Types of Events" -msgstr "" +msgstr "Sündmuste liigid" #. module: event #: field:event.registration,contact_id:0 msgid "Partner Contact" -msgstr "" +msgstr "Partneri kontakt" #. module: event #: view:event.event:0 msgid "Auto Confirmation Email" -msgstr "" +msgstr "Automaatne kinnitamise e-kiri" #. module: event #: view:event.event:0 #: view:event.registration:0 msgid "General" -msgstr "" +msgstr "Üldine" #. module: event #: view:event.registration:0 msgid "Send Reminder" -msgstr "" +msgstr "Saada meeldetuletus" #. module: event #: selection:event.event,state:0 msgid "Done" -msgstr "" +msgstr "Valmis" #. module: event #: field:event.event,date_begin:0 #: field:report.event.registration,date_begin:0 msgid "Beginning date" -msgstr "" +msgstr "Alguskuupäev" #. module: event #: field:event.registration,invoice_id:0 msgid "Invoice" -msgstr "" +msgstr "Arve" #. module: event #: model:ir.model,name:event.model_report_event_registration msgid "Events on registrations" -msgstr "" +msgstr "Sündmused registreerimisel" #. module: event #: wizard_button:event.confirm_registration,split,end:0 msgid "Cancel" -msgstr "" +msgstr "Katkesta" #. module: event #: wizard_button:event.reg_make_invoice,init,open:0 msgid "Open" -msgstr "" +msgstr "Ava" #. module: event #: field:event.registration,badge_title:0 msgid "Badge Title" -msgstr "" +msgstr "Embleemi pealkiri" #. module: event #: model:ir.actions.act_window,name:event.action_new_event_form #: model:ir.ui.menu,name:event.menu_event_new_event msgid "New event" -msgstr "" +msgstr "Uus sündmus" #. module: event #: field:event.registration,unit_price:0 msgid "Unit Price" -msgstr "" +msgstr "Ühiku hind" #. module: event #: model:crm.case.section,name:event.event_2_crm_case_section msgid "Conference on ERP Buisness" -msgstr "" +msgstr "ERP äri konverents" #. module: event #: field:event.registration,badge_partner:0 msgid "Badge Partner" -msgstr "" +msgstr "Partneri embleem" #. module: event #: model:ir.actions.act_window,name:event.action_event_view_confirm #: model:ir.ui.menu,name:event.menu_event_event_confirm msgid "Confirmed Events" -msgstr "" +msgstr "Kinnitatud sündmused" #. module: event #: field:event.event,register_max:0 #: field:report.event.registration,register_max:0 msgid "Maximum Registrations" -msgstr "" +msgstr "Maks. registreerimised" #. module: event #: field:event.event,type:0 msgid "Type" -msgstr "" +msgstr "Tüüp" #. module: event #: help:event.event,mail_registr:0 msgid "This email will be sent when someone subscribes to the event." -msgstr "" +msgstr "See e-kiri saadetakse, kui keegi ühineb sündmusega." #. module: event #: model:product.template,name:event.event_product_2_product_template msgid "Ticket for Conference" -msgstr "" +msgstr "Pilet konverentsile" #. module: event #: field:event.registration,case_id:0 msgid "Case" -msgstr "" +msgstr "Juhtum" #. module: event #: view:event.event:0 msgid "Name" -msgstr "" +msgstr "Nimi" #. module: event #: help:event.event,mail_auto_confirm:0 @@ -554,6 +556,8 @@ msgid "" "Check this box if you want ot use the automatic confirmation emailing or the " "reminder" msgstr "" +"Märgi see kast, kui sa tahad automaatset kinnitamise või meeldetuletuse " +"kirja saatmist." #. module: event #: help:event.event,mail_confirm:0 @@ -562,55 +566,57 @@ msgid "" "subscribes to a confirmed event. This is also the email sent to remind " "someone about the event." msgstr "" +"See e-kiri saadetakse, kui sündmus kinnitatakse või keegi ühineb kinnitatud " +"sündmusega. See on ka kiri, mis saaadetakse sündmuse meelde tuletuseks." #. module: event #: field:event.event,product_id:0 msgid "Product" -msgstr "" +msgstr "Toode" #. module: event #: field:event.registration,invoice_label:0 msgid "Label Invoice" -msgstr "" +msgstr "Märgista arve" #. module: event #: view:event.registration:0 msgid "Payments" -msgstr "" +msgstr "Maksed" #. module: event #: view:event.type:0 #: field:report.event.type.registration,name:0 msgid "Event Type" -msgstr "" +msgstr "Sündmuse tüüp" #. module: event #: view:event.event:0 #: model:ir.actions.act_window,name:event.action_registration #: model:ir.actions.wizard,name:event.wizard_event_registration msgid "Registrations" -msgstr "" +msgstr "Registreerimised" #. module: event #: model:ir.actions.act_window,name:event.action_event_view_draft #: model:ir.ui.menu,name:event.menu_event_event_draft msgid "Draft Events" -msgstr "" +msgstr "Sündmuste mustandid" #. module: event #: model:ir.ui.menu,name:event.menu_event_main msgid "Events Organisation" -msgstr "" +msgstr "Sündmuste organiseerimine" #. module: event #: view:event.registration:0 msgid "Actions" -msgstr "" +msgstr "Toimingud" #. module: event #: model:ir.actions.wizard,name:event.wizard_event_reg_partners msgid "List Register Partners" -msgstr "" +msgstr "Registreeritud partnerite nimekiri" #. module: event #: constraint:product.product:0 @@ -620,4 +626,4 @@ msgstr "Viga: Vigane EAN kood" #. module: event #: view:event.event:0 msgid "Auto Registration Email" -msgstr "" +msgstr "Automaatne registreerimise e-kiri" diff --git a/addons/hr/i18n/hr.po b/addons/hr/i18n/hr.po index 28004486e04..b6e0d22d239 100644 --- a/addons/hr/i18n/hr.po +++ b/addons/hr/i18n/hr.po @@ -1,162 +1,163 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * hr -# +# * hr +# Drazen Bosak , 2010. msgid "" msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 06:25+0000\n" -"Last-Translator: <>\n" +"PO-Revision-Date: 2010-06-07 21:48+0000\n" +"Last-Translator: Drazen Bosak \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-04-17 04:16+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" +"Language: hr\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 #: model:process.transition,name:hr.process_transition_employeeuser0 msgid "Openerp user" -msgstr "" +msgstr "OpenERP korisnik" #. module: hr #: model:ir.actions.act_window,name:hr.edit_workgroup #: model:ir.ui.menu,name:hr.menu_edit_workgroup msgid "Working Time Categories" -msgstr "" +msgstr "Kategorije radnog vremena" #. module: hr #: constraint:hr.department:0 msgid "Error! You can not create recursive departments." -msgstr "" +msgstr "Greška! Ne možete kreirati rekurzivne odjele!" #. module: hr #: field:hr.employee,sinid:0 msgid "SIN No" -msgstr "" +msgstr "SIN No" #. module: hr #: model:ir.module.module,shortdesc:hr.module_meta_information #: model:ir.ui.menu,name:hr.menu_hr_root msgid "Human Resources" -msgstr "" +msgstr "Ljudski Resursi" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Sunday" -msgstr "" +msgstr "Nedjelja" #. module: hr #: view:res.users:0 msgid "Parents" -msgstr "" +msgstr "Roditelji" #. module: hr #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Nepravilno ime modela u definiciji radnje." #. module: hr #: view:hr.department:0 msgid "Department" -msgstr "" +msgstr "Odjel" #. module: hr #: model:process.transition,name:hr.process_transition_contactofemployee0 msgid "Contact of employee" -msgstr "" +msgstr "Kontakt Djelatnika" #. module: hr #: field:hr.employee,work_email:0 msgid "Work Email" -msgstr "" +msgstr "Poslovni Email" #. module: hr #: field:hr.timesheet.group,name:0 msgid "Group name" -msgstr "" +msgstr "Ime Grupe" #. module: hr #: field:hr.department,company_id:0 #: field:hr.employee,company_id:0 msgid "Company" -msgstr "" +msgstr "Tvrtka" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Friday" -msgstr "" +msgstr "Petak" #. module: hr #: field:hr.department,parent_id:0 msgid "Parent Department" -msgstr "" +msgstr "Ishodni Odjel" #. module: hr #: view:hr.department:0 #: view:hr.employee:0 #: field:hr.employee,notes:0 msgid "Notes" -msgstr "" +msgstr "Bilješke" #. module: hr #: field:hr.timesheet,hour_from:0 msgid "Work from" -msgstr "" +msgstr "Posao od" #. module: hr #: model:ir.actions.act_window,name:hr.action2 msgid "Employee Hierarchy" -msgstr "" +msgstr "Hijerarhija Djelatnika" #. module: hr #: model:ir.ui.menu,name:hr.menu_hr_configuration msgid "Configuration" -msgstr "" +msgstr "Konfiguracija" #. module: hr #: selection:hr.employee,marital:0 msgid "Unmaried" -msgstr "" +msgstr "Nije u braku" #. module: hr #: selection:hr.employee,gender:0 msgid "Female" -msgstr "" +msgstr "Žensko" #. module: hr #: view:hr.timesheet.group:0 msgid "Working Time Category" -msgstr "" +msgstr "Kategorija radnog vremena" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_employee_tree #: model:ir.ui.menu,name:hr.menu_open_view_employee_tree msgid "Employees Structure" -msgstr "" +msgstr "Struktura Djelatnika" #. module: hr #: view:hr.employee:0 msgid "Social IDs" -msgstr "" +msgstr "Osobni ID brojevi" #. module: hr #: field:hr.employee,work_phone:0 msgid "Work Phone" -msgstr "" +msgstr "Poslovni telefon" #. module: hr #: field:hr.employee.category,child_ids:0 msgid "Child Categories" -msgstr "" +msgstr "Slijedne Kategorije" #. module: hr #: field:hr.employee,work_location:0 msgid "Office Location" -msgstr "" +msgstr "Lokacija ureda" #. module: hr #: view:hr.employee:0 @@ -164,52 +165,52 @@ msgstr "" #: model:ir.model,name:hr.model_hr_employee #: model:process.node,name:hr.process_node_employee0 msgid "Employee" -msgstr "" +msgstr "Djelatnik" #. module: hr #: field:hr.timesheet.group,manager:0 msgid "Workgroup manager" -msgstr "" +msgstr "Voditelj Radne Grupe" #. module: hr #: field:hr.employee,child_ids:0 msgid "Subordinates" -msgstr "" +msgstr "Podređeni Djelatnici" #. module: hr #: model:ir.ui.menu,name:hr.menu_hr_reporting msgid "Reporting" -msgstr "" +msgstr "Izvještavanje" #. module: hr #: field:hr.department,member_ids:0 msgid "Members" -msgstr "" +msgstr "Članovi" #. module: hr #: field:hr.employee,ssnid:0 msgid "SSN No" -msgstr "" +msgstr "SSN No" #. module: hr #: model:process.transition,note:hr.process_transition_contactofemployee0 msgid "Fill up contact information" -msgstr "" +msgstr "Ispunite kontakt podatke" #. module: hr #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "Neispravan XML za Arhitekturu Prikaza!" #. module: hr #: selection:hr.employee,marital:0 msgid "Divorced" -msgstr "" +msgstr "Razveden-a" #. module: hr #: field:hr.employee.category,parent_id:0 msgid "Parent Category" -msgstr "" +msgstr "Ishodna Kategorija" #. module: hr #: model:ir.actions.act_window,name:hr.open_module_tree_department @@ -217,276 +218,277 @@ msgstr "" #: model:ir.ui.menu,name:hr.menu_department_def #: model:ir.ui.menu,name:hr.menu_department_tree msgid "Departments" -msgstr "" +msgstr "Odjeli" #. module: hr #: model:process.node,name:hr.process_node_employeecontact0 msgid "Employee Contact" -msgstr "" +msgstr "Kontakt Djelatnika" #. module: hr #: selection:hr.employee,marital:0 msgid "Maried" -msgstr "" +msgstr "U braku" #. module: hr #: field:hr.timesheet,tgroup_id:0 msgid "Employee's timesheet group" -msgstr "" +msgstr "Grupa kontrolnih kartica Djelatnika" #. module: hr #: selection:hr.employee,gender:0 msgid "Male" -msgstr "" +msgstr "Muško" #. module: hr #: model:process.transition,note:hr.process_transition_employeeuser0 msgid "Create openerp user" -msgstr "" +msgstr "Kreiraj OpenERP Korisnika" #. module: hr #: view:hr.employee.category:0 #: model:ir.model,name:hr.model_hr_employee_category msgid "Employee Category" -msgstr "" +msgstr "Kategorija Djelatnika" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Tuesday" -msgstr "" +msgstr "Utorak" #. module: hr #: model:ir.model,name:hr.model_hr_department msgid "hr.department" -msgstr "" +msgstr "Odjel Ljudskih Resursa" #. module: hr #: field:hr.employee,user_id:0 msgid "Related User" -msgstr "" +msgstr "Povezani Korisnik" #. module: hr #: field:hr.employee,category_id:0 #: field:hr.employee.category,name:0 msgid "Category" -msgstr "" +msgstr "Kategorija" #. module: hr #: field:hr.department,note:0 msgid "Note" -msgstr "" +msgstr "Bilješka" #. module: hr #: view:hr.employee:0 msgid "Contact Information" -msgstr "" +msgstr "Kontakt podaci" #. module: hr #: view:hr.employee:0 msgid "Status" -msgstr "" +msgstr "Status" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Monday" -msgstr "" +msgstr "Ponedjeljak" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_tree #: model:ir.ui.menu,name:hr.menu_view_employee_category_tree msgid "Categories structure" -msgstr "" +msgstr "Struktura Kategorija" #. module: hr #: field:hr.timesheet,dayofweek:0 msgid "Day of week" -msgstr "" +msgstr "Dan u tjednu" #. module: hr #: field:hr.employee,birthday:0 msgid "Birthday" -msgstr "" +msgstr "Rođendan" #. module: hr #: field:hr.employee,active:0 msgid "Active" -msgstr "" +msgstr "Aktivan" #. module: hr #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." -msgstr "" +msgstr "Greška! Ne možete kreirati rekurzivnu Hijerarhiju Djelatnika" #. module: hr #: model:process.process,name:hr.process_process_employeecontractprocess0 msgid "Employee Contract Process" -msgstr "" +msgstr "Proces rada s Ugovorom Djelatnika" #. module: hr #: model:process.node,note:hr.process_node_openerpuser0 msgid "Create OpenERP User" -msgstr "" +msgstr "Kreiraj OpenERP Korisnika" #. module: hr #: model:process.node,note:hr.process_node_employee0 msgid "Employee Complete Form" -msgstr "" +msgstr "Cjelovit formular Djelatnika" #. module: hr #: view:hr.department:0 msgid "Companies" -msgstr "" +msgstr "Tvrtke" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Wednesday" -msgstr "" +msgstr "Srijeda" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_categ_form #: model:ir.ui.menu,name:hr.menu_view_employee_category_form msgid "Categories of Employee" -msgstr "" +msgstr "Kategorije djelatnika" #. module: hr #: field:hr.timesheet,date_from:0 msgid "Starting date" -msgstr "" +msgstr "Početni datum" #. module: hr #: field:res.users,parent_id:0 msgid "Parent Users" -msgstr "" +msgstr "Ishodni korisnici" #. module: hr #: field:hr.employee,address_id:0 msgid "Working Address" -msgstr "" +msgstr "Poslovna adresa" #. module: hr #: field:hr.employee,marital:0 msgid "Marital Status" -msgstr "" +msgstr "Bračni status" #. module: hr #: model:ir.model,name:hr.model_hr_timesheet msgid "Timesheet Line" -msgstr "" +msgstr "Niz Kontrolne kartice" #. module: hr #: view:hr.employee:0 msgid "Personal Information" -msgstr "" +msgstr "Osobni podaci" #. module: hr #: constraint:ir.model:0 msgid "" "The Object name must start with x_ and not contain any special character !" msgstr "" +"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !" #. module: hr #: view:hr.timesheet:0 #: field:hr.timesheet.group,timesheet_id:0 #: model:ir.model,name:hr.model_hr_timesheet_group msgid "Working Time" -msgstr "" +msgstr "Radno vrijeme" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Thursday" -msgstr "" +msgstr "Četvrtak" #. module: hr #: field:hr.timesheet,hour_to:0 msgid "Work to" -msgstr "" +msgstr "Rad do" #. module: hr #: selection:hr.employee,marital:0 msgid "Other" -msgstr "" +msgstr "Drugi" #. module: hr #: view:hr.employee.category:0 msgid "Employees Categories" -msgstr "" +msgstr "Kategorije Djelatnika" #. module: hr #: field:hr.employee,address_home_id:0 msgid "Home Address" -msgstr "" +msgstr "Kućna adresa" #. module: hr #: view:hr.department:0 msgid "department" -msgstr "" +msgstr "Odjel" #. module: hr #: field:hr.employee,country_id:0 msgid "Nationality" -msgstr "" +msgstr "Narodnost" #. module: hr #: field:hr.employee,otherid:0 msgid "Other ID" -msgstr "" +msgstr "Drugi ID broj" #. module: hr #: field:hr.timesheet,name:0 msgid "Name" -msgstr "" +msgstr "Ime" #. module: hr #: field:hr.employee,gender:0 msgid "Gender" -msgstr "" +msgstr "Spol" #. module: hr #: view:hr.employee:0 #: model:ir.actions.act_window,name:hr.open_view_employee_list #: model:ir.ui.menu,name:hr.menu_open_view_employee_list msgid "Employees" -msgstr "" +msgstr "Djelatnici" #. module: hr #: field:hr.department,name:0 msgid "Department Name" -msgstr "" +msgstr "Ime Odjela" #. module: hr #: field:hr.department,child_ids:0 msgid "Child Departments" -msgstr "" +msgstr "Slijedni Odjeli" #. module: hr #: view:hr.employee:0 msgid "Job Information" -msgstr "" +msgstr "Poslovni podaci" #. module: hr #: model:process.node,note:hr.process_node_employeecontact0 msgid "Fill up employee's contact information" -msgstr "" +msgstr "Ispunite kontakt podatke Djelatnika" #. module: hr #: field:hr.department,manager_id:0 #: field:hr.employee,parent_id:0 msgid "Manager" -msgstr "" +msgstr "Voditelj" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_employee_list_my #: model:ir.ui.menu,name:hr.menu_open_view_employee_list_my msgid "All Employees" -msgstr "" +msgstr "Svi Djelatnici" #. module: hr #: selection:hr.timesheet,dayofweek:0 msgid "Saturday" -msgstr "" +msgstr "Subota" #. module: hr #: model:ir.actions.act_window,name:hr.open_view_employee_new #: model:ir.ui.menu,name:hr.menu_open_view_employee_new msgid "New Employee" -msgstr "" +msgstr "Novi Djelatnik" diff --git a/addons/hr_evaluation/i18n/hr.po b/addons/hr_evaluation/i18n/hr.po index 32aeb52c2e9..46e439abb22 100644 --- a/addons/hr_evaluation/i18n/hr.po +++ b/addons/hr_evaluation/i18n/hr.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: hr_evaluation diff --git a/addons/hr_expense/hr_expense_report.xml b/addons/hr_expense/hr_expense_report.xml index bad8e790801..9d5f0c3e2c1 100644 --- a/addons/hr_expense/hr_expense_report.xml +++ b/addons/hr_expense/hr_expense_report.xml @@ -1,6 +1,6 @@ - + diff --git a/addons/hr_expense/report/hr_expense_report.py b/addons/hr_expense/report/hr_expense_report.py index 2b0f6b4addf..85fa541ec10 100644 --- a/addons/hr_expense/report/hr_expense_report.py +++ b/addons/hr_expense/report/hr_expense_report.py @@ -29,7 +29,7 @@ class hr_expense_report(osv.osv): _auto = False _rec_name = 'date' _columns = { - 'date': fields.date('Date', readonly=True), + 'date': fields.date('Date ', readonly=True), 'year': fields.char('Year', size=4, readonly=True), 'day': fields.char('Day', size=128, readonly=True), 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), @@ -44,9 +44,11 @@ class hr_expense_report(osv.osv): 'invoice_id': fields.many2one('account.invoice', 'Invoice',readonly=True), 'department_id':fields.many2one('hr.department','Department',readonly=True), 'company_id':fields.many2one('res.company', 'Company', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'user_id':fields.many2one('res.users', 'Validation User', readonly=True), 'currency_id': fields.many2one('res.currency', 'Currency', readonly=True), 'price_total':fields.float('Total Price', readonly=True), + 'delay_valid':fields.float('Delay Valid', readonly=True), + 'delay_confirm':fields.float('Delay Confirm', readonly=True), 'analytic_account': fields.many2one('account.analytic.account','Analytic account',readonly=True), 'price_average':fields.float('Average Price', readonly=True), 'nbr':fields.integer('# of Lines', readonly=True), @@ -75,20 +77,22 @@ class hr_expense_report(osv.osv): to_date(to_char(s.date_confirm, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_confirm, to_date(to_char(s.date_valid, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_valid, s.invoice_id, + s.user_valid as user_id, s.department_id, to_char(date_trunc('day',s.create_date), 'YYYY') as year, to_char(date_trunc('day',s.create_date), 'MM') as month, to_char(date_trunc('day',s.create_date), 'YYYY-MM-DD') as day, + avg(extract('epoch' from age(s.date_valid,s.date)))/(3600*24) as delay_valid, + avg(extract('epoch' from age(s.date_valid,s.date_confirm)))/(3600*24) as delay_confirm, l.product_id as product_id, l.analytic_account as analytic_account, sum(l.unit_quantity * u.factor) as product_qty, - s.user_id as user_id, s.company_id as company_id, sum(l.unit_quantity*l.unit_amount) as price_total, (sum(l.unit_quantity*l.unit_amount)/sum(l.unit_quantity * u.factor))::decimal(16,2) as price_average, count(*) as nbr, (select unit_quantity from hr_expense_line where id=l.id and product_id is not null) as no_of_products, - (select count(analytic_account) from hr_expense_line where id=l.id and analytic_account is not null) as no_of_account, + (select analytic_account from hr_expense_line where id=l.id and analytic_account is not null) as no_of_account, s.state from hr_expense_line l left join hr_expense_expense s on (s.id=l.expense_id) @@ -104,10 +108,10 @@ class hr_expense_report(osv.osv): l.analytic_account, s.invoice_id, s.currency_id, + s.user_valid, s.department_id, l.uom_id, l.id, - s.user_id, s.state, s.journal_id, s.company_id, diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml index a4aa15e7076..bcc560573ab 100644 --- a/addons/hr_expense/report/hr_expense_report_view.xml +++ b/addons/hr_expense/report/hr_expense_report_view.xml @@ -9,7 +9,6 @@ - @@ -21,12 +20,13 @@ + - + + - @@ -37,7 +37,7 @@ graph - + @@ -76,48 +76,49 @@ icon="terp-camera_test" domain="[('state','=','accepted')]" help = "Accepted Expenses"/> + - - - - - + - - - - - - - + + - + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + - - + @@ -128,7 +129,7 @@ hr.expense.report form tree,graph - {'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]} + {'search_default_month':1,'search_default_employee':1,'group_by_no_leaf':1,'group_by':[]} diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index 947f0d34c41..3b54631415e 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -83,7 +83,10 @@ tree,form - + + + + hr.timesheet.employee.extd_form hr.employee diff --git a/addons/hr_timesheet/i18n/hr.po b/addons/hr_timesheet/i18n/hr.po index b86674b1aa8..b1b8ed90ca7 100644 --- a/addons/hr_timesheet/i18n/hr.po +++ b/addons/hr_timesheet/i18n/hr.po @@ -1,382 +1,388 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * hr_timesheet -# +# * hr_timesheet_sheet +# Drazen Bosak , 2010. msgid "" msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 06:25+0000\n" -"Last-Translator: <>\n" +"PO-Revision-Date: 2010-06-07 21:18+0000\n" +"Last-Translator: Drazen Bosak \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-04-17 04:11+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" +"Language: hr\n" #. module: hr_timesheet #: wizard_view:hr.analytical.timesheet,init:0 #: wizard_view:hr.analytical.timesheet.my,init:0 msgid "Choose your month" -msgstr "" +msgstr "Izaberite svoj mjesec" #. module: hr_timesheet #: constraint:ir.model:0 msgid "" "The Object name must start with x_ and not contain any special character !" msgstr "" +"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !" #. module: hr_timesheet #: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet msgid "Employee timesheet" -msgstr "" +msgstr "Kontrolna kartica Djelatnika" #. module: hr_timesheet #: model:ir.actions.wizard,name:hr_timesheet.si_so #: model:ir.ui.menu,name:hr_timesheet.menu_si_so msgid "Sign in / Sign out by project" -msgstr "" +msgstr "Prijava / Odjava po Projektu" #. module: hr_timesheet #: wizard_button:hr_timesheet.si_so,sign_in,so_result_end:0 msgid "Stop Working" -msgstr "" +msgstr "Prestanite s radom" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 msgid "(Keep empty for current_time)" -msgstr "" +msgstr "(Treba ostati prazno za current_time)" #. module: hr_timesheet #: constraint:product.template:0 msgid "" "Error: The default UOM and the purchase UOM must be in the same category." msgstr "" +"Greška: Zadana Jedinica Mjere (JM) i kupovna Jedinica Mjere (JM) moraju biti " +"u istoj kategoriji." #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 msgid "Sign in status" -msgstr "" +msgstr "Status Prijave" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_out:0 msgid "(Keep empty for current time)" -msgstr "" +msgstr "(Treba ostati prazno za tekuće vijeme)" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_out,server_date:0 msgid "Current Date" -msgstr "" +msgstr "Tekući Datumž" #. module: hr_timesheet #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Nepravilno ime modela u definiciji radnje." #. module: hr_timesheet #: wizard_button:hr.analytical.timesheet,init,report:0 #: wizard_button:hr.analytical.timesheet.my,init,report:0 #: wizard_button:hr.analytical.timesheet_users,init,report:0 msgid "Print" -msgstr "" +msgstr "Tiskaj" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,analytic_amount:0 msgid "Minimum Analytic Amount" -msgstr "" +msgstr "Minimalni Analitički Konto" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,server_date:0 msgid "Current Server Date" -msgstr "" +msgstr "Tekući datum Servera" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,date_start:0 #: wizard_field:hr_timesheet.si_so,sign_out,date:0 msgid "Starting Date" -msgstr "" +msgstr "Početni Datum" #. module: hr_timesheet #: field:hr.employee,product_id:0 msgid "Product" -msgstr "" +msgstr "Proizvod" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "août" -msgstr "" +msgstr "\"août\"" #. module: hr_timesheet #: field:hr.employee,journal_id:0 msgid "Analytic Journal" -msgstr "" +msgstr "Analitički Dnevnik" #. module: hr_timesheet #: model:product.uom,name:hr_timesheet.uom_hour msgid "Hour" -msgstr "" +msgstr "Sat" #. module: hr_timesheet #: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet #: model:ir.ui.menu,name:hr_timesheet.menu_wizard_hr_timesheet msgid "Employee Timesheet" -msgstr "" +msgstr "Kontrolna kartica Djelatnika" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Work done stats" -msgstr "" +msgstr "Statistika obavljenog Posla" #. module: hr_timesheet #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_all_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_all_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_today_form msgid "Working Hours" -msgstr "" +msgstr "Radno vrijeme" #. module: hr_timesheet #: view:hr.analytic.timesheet:0 msgid "Timesheet Lines" -msgstr "" +msgstr "Linije Kontrolne kartice" #. module: hr_timesheet #: view:hr.analytic.timesheet:0 msgid "Total time" -msgstr "" +msgstr "Ukupna cijena" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "juillet" -msgstr "" +msgstr "\"juillet\"" #. module: hr_timesheet #: xsl:hr.analytical.timesheet:0 #: xsl:hr.analytical.timesheet_users:0 #: model:ir.ui.menu,name:hr_timesheet.next_id_48 msgid "Timesheet" -msgstr "" +msgstr "Kontrolna Kartica" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "janvier" -msgstr "" +msgstr "Siječanj" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "juin" -msgstr "" +msgstr "Svibanj" #. module: hr_timesheet #: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet_my #: model:ir.ui.menu,name:hr_timesheet.menu_wizard_hr_timesheet_my msgid "Print My Timesheet" -msgstr "" +msgstr "Tiskaj moju Kontrolnu Karticu" #. module: hr_timesheet #: wizard_field:hr.analytical.timesheet,init,user_id:0 #: wizard_field:hr.analytical.timesheet.my,init,user_id:0 msgid "User" -msgstr "" +msgstr "Korisnik" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_out:0 msgid "Sign in" -msgstr "" +msgstr "Prijava" #. module: hr_timesheet #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_today_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form msgid "Working Hours of The Day" -msgstr "" +msgstr "Radni sati u danu" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_out:0 msgid "(local time on the server side)" -msgstr "" +msgstr "(Lokalno vrijeme na serveru)" #. module: hr_timesheet #: view:hr.analytic.timesheet:0 msgid "Total cost" -msgstr "" +msgstr "Ukupni trošak" #. module: hr_timesheet #: model:product.uom,name:hr_timesheet.uom_day msgid "Day" -msgstr "" +msgstr "Dan" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,date:0 msgid "Closing Date" -msgstr "" +msgstr "Datum zaključenja" #. module: hr_timesheet #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "Neispravan XML za Arhitekturu Prikaza!" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "avril" -msgstr "" +msgstr "Travanj" #. module: hr_timesheet #: field:hr.analytic.timesheet,line_id:0 msgid "Analytic line" -msgstr "" +msgstr "Analitička linija" #. module: hr_timesheet #: constraint:product.template:0 msgid "Error: UOS must be in a different category than the UOM" msgstr "" +"Greška: Jedinica skladištenja (JS) mora biti u različitoj kategoriji od " +"Jedinice Mjere (JM)" #. module: hr_timesheet #: wizard_view:hr.analytical.timesheet_users,init:0 msgid "Choose Users" -msgstr "" +msgstr "Odaberite Korisnike" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "novembre" -msgstr "" +msgstr "Studeni" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_out:0 msgid "Sign in / Sign out" -msgstr "" +msgstr "Prijava / Odjava" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 msgid "Work done in the last period" -msgstr "" +msgstr "Posao obavljen u zadnjem razdoblju" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Key dates" -msgstr "" +msgstr "Ključni datumi" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,state:0 #: wizard_field:hr_timesheet.si_so,sign_out,state:0 msgid "Current state" -msgstr "" +msgstr "Tekuće stanje" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "octobre" -msgstr "" +msgstr "Listopad" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Analysis stats" -msgstr "" +msgstr "Analitičke statistike" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "décembre" -msgstr "" +msgstr "Prosinac" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,info:0 msgid "Work Description" -msgstr "" +msgstr "Opis Posla" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,name:0 #: wizard_field:hr_timesheet.si_so,sign_out,name:0 msgid "Employee's name" -msgstr "" +msgstr "Ime Djelatnika" #. module: hr_timesheet #: model:product.template,name:hr_timesheet.product_consultant_product_template msgid "Consultancy - Senior Developer" -msgstr "" +msgstr "Savjetovanje - Stariji Programer" #. module: hr_timesheet #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_me_all_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_me_all_form msgid "My Working Hours" -msgstr "" +msgstr "Moji radni sati" #. module: hr_timesheet #: model:ir.model,name:hr_timesheet.model_hr_analytic_timesheet msgid "Timesheet line" -msgstr "" +msgstr "Niz Kontrolne kartice" #. module: hr_timesheet #: xsl:hr.analytical.timesheet:0 msgid "Sum" -msgstr "" +msgstr "Zbroj" #. module: hr_timesheet #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_today_form_my #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form_my msgid "My Working Hours of The Day" -msgstr "" +msgstr "Moji radni sati u danu" #. module: hr_timesheet #: model:ir.module.module,shortdesc:hr_timesheet.module_meta_information msgid "Human Resources (Timesheet encoding)" -msgstr "" +msgstr "Ljudski Resursi (Kodiranje Kontrolna Kartica)" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "mars" -msgstr "" +msgstr "Travanj" #. module: hr_timesheet #: xsl:hr.analytical.timesheet:0 #: xsl:hr.analytical.timesheet_users:0 msgid "Total" -msgstr "" +msgstr "Ukupno" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "mai" -msgstr "" +msgstr "Svibanj" #. module: hr_timesheet #: wizard_button:hr_timesheet.si_so,sign_out,si_result:0 msgid "Start Working" -msgstr "" +msgstr "Započnite s radom" #. module: hr_timesheet #: wizard_button:hr_timesheet.si_so,sign_in,so_result:0 msgid "Change Work" -msgstr "" +msgstr "Promijenite posao" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "février" -msgstr "" +msgstr "Veljača" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Stats by month" -msgstr "" +msgstr "Satistike po mjesecu" #. module: hr_timesheet #: view:account.analytic.account:0 @@ -384,49 +390,49 @@ msgstr "" #: wizard_field:hr.analytical.timesheet.my,init,month:0 #: wizard_field:hr.analytical.timesheet_users,init,month:0 msgid "Month" -msgstr "" +msgstr "Mjesec" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,account_id:0 msgid "Analytic Account" -msgstr "" +msgstr "Analitički Konto" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 msgid "General Information" -msgstr "" +msgstr "Opći Podaci" #. module: hr_timesheet #: model:process.process,name:hr_timesheet.process_process_timesheetprocess0 msgid "Timesheet Process" -msgstr "" +msgstr "Proces Kontrolne kartice" #. module: hr_timesheet #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "Greška: Nepravila EAN kod" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Stats by user" -msgstr "" +msgstr "Statistike po Korisniku" #. module: hr_timesheet #: view:hr.analytic.timesheet:0 msgid "Timesheet Line" -msgstr "" +msgstr "Niz Kontrolne kartice" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "Analysis summary" -msgstr "" +msgstr "Zbirna Analiza" #. module: hr_timesheet #: wizard_field:hr.analytical.timesheet,init,year:0 #: wizard_field:hr.analytical.timesheet.my,init,year:0 #: wizard_field:hr.analytical.timesheet_users,init,year:0 msgid "Year" -msgstr "" +msgstr "Godina" #. module: hr_timesheet #: wizard_button:hr.analytical.timesheet,init,end:0 @@ -435,39 +441,39 @@ msgstr "" #: wizard_button:hr_timesheet.si_so,sign_in,end:0 #: wizard_button:hr_timesheet.si_so,sign_out,end:0 msgid "Cancel" -msgstr "" +msgstr "Odustani" #. module: hr_timesheet #: view:account.analytic.account:0 #: wizard_field:hr.analytical.timesheet_users,init,user_ids:0 msgid "Users" -msgstr "" +msgstr "Korisnici" #. module: hr_timesheet #: model:product.uom.categ,name:hr_timesheet.uom_categ_wtime msgid "Working Time" -msgstr "" +msgstr "Radno vrijeme" #. module: hr_timesheet #: view:account.analytic.account:0 msgid "To be invoiced" -msgstr "" +msgstr "Treba izdati račun" #. module: hr_timesheet #: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet #: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet_users #: model:ir.ui.menu,name:hr_timesheet.menu_wizard_hr_timesheet_users msgid "Employees Timesheet" -msgstr "" +msgstr "Kontrolna kartica Djelatnika" #. module: hr_timesheet #: selection:hr.analytical.timesheet,init,month:0 #: selection:hr.analytical.timesheet.my,init,month:0 #: selection:hr.analytical.timesheet_users,init,month:0 msgid "septembre" -msgstr "" +msgstr "Rujan" #. module: hr_timesheet #: view:hr.employee:0 msgid "Timesheets" -msgstr "" +msgstr "Kontrolne Kartice" diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml index d6c7398864a..9b37db8b0c6 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml @@ -57,7 +57,7 @@ - Print My Timesheet + My Timesheet hr.analytical.timesheet.employee form tree,form diff --git a/addons/hr_timesheet_invoice/i18n/pl.po b/addons/hr_timesheet_invoice/i18n/pl.po index 6ba221731f2..f8b962079b1 100644 --- a/addons/hr_timesheet_invoice/i18n/pl.po +++ b/addons/hr_timesheet_invoice/i18n/pl.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet_invoice diff --git a/addons/hr_timesheet_sheet/report/timesheet_report.py b/addons/hr_timesheet_sheet/report/timesheet_report.py index 3dd8d161c5f..a8c0440a053 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report.py +++ b/addons/hr_timesheet_sheet/report/timesheet_report.py @@ -39,6 +39,9 @@ class timesheet_report(osv.osv): 'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Type of Invoicing',readonly=True), 'account_id': fields.many2one('account.analytic.account', 'Analytic Account',readonly=True), 'nbr': fields.integer('#Nbr',readonly=True), + 'total_diff': fields.float('#Total Diff',readonly=True), + 'total_timesheet': fields.float('#Total Timesheet',readonly=True), + 'total_attendance': fields.float('#Total Attendance',readonly=True), 'company_id': fields.many2one('res.company', 'Company',readonly=True), 'department_id':fields.many2one('hr.department','Department',readonly=True), 'date_from': fields.date('Date from',readonly=True,), @@ -67,10 +70,25 @@ class timesheet_report(osv.osv): to_char(htss.date_current,'MM') as month, to_char(htss.date_current, 'YYYY-MM-DD') as day, count(*) as nbr, - sum(aal.unit_amount) as quantity, - sum(aal.amount) as cost, + aal.unit_amount as quantity, + aal.amount as cost, aal.account_id, aal.product_id, + (SELECT sum(day.total_difference) + FROM hr_timesheet_sheet_sheet AS sheet + LEFT JOIN hr_timesheet_sheet_sheet_day AS day + ON (sheet.id = day.sheet_id + AND day.name = sheet.date_current) where sheet.id=htss.id) as total_diff, + (SELECT sum(day.total_timesheet) + FROM hr_timesheet_sheet_sheet AS sheet + LEFT JOIN hr_timesheet_sheet_sheet_day AS day + ON (sheet.id = day.sheet_id + AND day.name = sheet.date_current) where sheet.id=htss.id) as total_timesheet, + (SELECT sum(day.total_attendance) + FROM hr_timesheet_sheet_sheet AS sheet + LEFT JOIN hr_timesheet_sheet_sheet_day AS day + ON (sheet.id = day.sheet_id + AND day.name = sheet.date_current) where sheet.id=htss.id) as total_attendance, aal.to_invoice, aal.general_account_id, htss.user_id, @@ -87,6 +105,8 @@ class timesheet_report(osv.osv): aal.account_id, htss.date_from, htss.date_to, + aal.unit_amount, + aal.amount, htss.date_current, aal.to_invoice, aal.product_id, @@ -94,8 +114,9 @@ class timesheet_report(osv.osv): htss.name, htss.company_id, htss.state, + htss.id, htss.department_id, htss.user_id ) """) -timesheet_report() \ No newline at end of file +timesheet_report() diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml index 0cba7ad179b..51e6b5d295c 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml @@ -24,8 +24,6 @@ - - @@ -36,6 +34,11 @@ + + + + + @@ -65,52 +68,46 @@ + - - - - - + + - - + + + + + - - + + - - - - - - - - - - - + + + + + + + + + @@ -121,7 +118,7 @@ timesheet.report form tree,graph - {'search_default_month':1,'search_default_User':1,'search_default_user_id':uid,'group_by_no_leaf':1,'group_by':[]} + {'search_default_month':1,'search_default_User_id':1,'group_by_no_leaf':1,'group_by':[]} diff --git a/addons/idea/i18n/hr.po b/addons/idea/i18n/hr.po index 97112788aea..57d37c82a61 100644 --- a/addons/idea/i18n/hr.po +++ b/addons/idea/i18n/hr.po @@ -1,19 +1,19 @@ # Translation of OpenERP Server. # This file contains the translation of the following modules: -# * idea +# * hr_attendance # Drazen Bosak , 2010. msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" +"Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-10 06:56+0000\n" -"Last-Translator: nafterburner \n" -"Language-Team: Vinteh\n" +"PO-Revision-Date: 2010-06-07 19:29+0000\n" +"Last-Translator: Drazen Bosak \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-05-11 04:19+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -174,7 +174,7 @@ msgstr "idea.vote" #: field:idea.comment,user_id:0 #: field:idea.vote,user_id:0 msgid "User" -msgstr "" +msgstr "Korisnik" #. module: idea #: view:idea.idea:0 diff --git a/addons/l10n_fr/i18n/pl.po b/addons/l10n_fr/i18n/pl.po index f221278c9f0..8605f1e63d3 100644 --- a/addons/l10n_fr/i18n/pl.po +++ b/addons/l10n_fr/i18n/pl.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: l10n_fr diff --git a/addons/lunch/lunch_report.xml b/addons/lunch/lunch_report.xml index 6503c99a6ea..c5e933847cd 100644 --- a/addons/lunch/lunch_report.xml +++ b/addons/lunch/lunch_report.xml @@ -3,7 +3,7 @@ , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-08-28 16:01+0000\n" +"PO-Revision-Date: 2010-06-08 13:08+0000\n" +"Last-Translator: vir (Open ERP) \n" +"Language-Team: Hindi \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: mrp +#: field:mrp.production,move_created_ids:0 +msgid "Moves Created" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "No. Of Cycles" +msgstr "" + +#. module: mrp +#: help:mrp.procurement.compute.all,init,automatic:0 +msgid "" +"Triggers an automatic procurement for all products that have a virtual stock " +"under 0. You should probably not use this option, we suggest using a MTO " +"configuration on products." +msgstr "" + +#. module: mrp +#: model:ir.module.module,shortdesc:mrp.module_meta_information +msgid "Manufacturing Resource Planning" +msgstr "" + +#. module: mrp +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,indice:0 +msgid "Revision" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2 +#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2 +msgid "Compute Stock Minimum Rules Only" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5 +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5 +msgid "Exceptions Procurements" +msgstr "" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +msgid "Routing Workcenters" +msgstr "" + +#. module: mrp +#: help:mrp.property,composition:0 +msgid "Not used in computations, for information purpose only." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_routing_action +#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action +msgid "Routings" +msgstr "" + +#. module: mrp +#: field:mrp.production,picking_id:0 +msgid "Packing list" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stock0 +msgid "Stockable Stock" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,origin:0 +#: field:mrp.production,origin:0 +msgid "Origin" +msgstr "मूल श्रोत" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_configuration +#: view:res.company:0 +msgid "Configuration" +msgstr "कॉन्फ़िगरेशन" + +#. module: mrp +#: field:mrp.production,name:0 +msgid "Reference" +msgstr "संदर्भ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Finished Products" +msgstr "" + +#. module: mrp +#: wizard_field:mrp.procurement.compute.all,init,automatic:0 +#: wizard_field:mrp.procurement.orderpoint.compute,init,automatic:0 +msgid "Automatic orderpoint" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "Set / Pack" +msgstr "" + +#. module: mrp +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "संरचना देखने के लिए अमान्य XML!" + +#. module: mrp +#: help:res.company,security_lead:0 +msgid "" +"This is the days added to what you promise to customers for security purpose" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_hour:0 +msgid "Cost per hour" +msgstr "मूल्य प्रति घंटा" + +#. module: mrp +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Best price (not yet active!)" +msgstr "सर्वश्रेष्ठ (कीमत अभी तक सक्रिय नहीं!)" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Product & Location" +msgstr "उत्पाद और स्थान" + +#. module: mrp +#: view:res.company:0 +msgid "MRP & Logistic Scheduler" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,capacity_per_cycle:0 +msgid "" +"Number of operation this workcenter can do in parallel. If this workcenter " +"represent a team of 5 workers, the capacity per cycle is 5." +msgstr "" + +#. module: mrp +#: wizard_button:product.product.procurement,init,create:0 +msgid "Ask New Products" +msgstr "नए उत्पादों के लिए पूछें" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_reordering +msgid "Automatic Procurements" +msgstr "" + +#. module: mrp +#: wizard_field:change_production_qty,confirm,product_qty:0 +#: field:mrp.bom,product_qty:0 +#: field:mrp.production,product_qty:0 +#: field:mrp.production.product.line,product_qty:0 +msgid "Product Qty" +msgstr "उत्पाद मात्रा" + +#. module: mrp +#: field:mrp.production,move_lines:0 +msgid "Products Consummed" +msgstr "उत्पादों की खपत" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle_account_id:0 +msgid "Cycle Account" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Capacity Information" +msgstr "क्षमता सूचना" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Packing Exception" +msgstr "पैकिंग अपवाद" + +#. module: mrp +#: model:process.node,note:mrp.process_node_orderrfq0 +msgid "A purchase order is created for a sub-contracting demand." +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Destination Location" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Analytic Accounting" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_servicemts0 +msgid "Do nothing" +msgstr "कुछ ना करें" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Partner Ref" +msgstr "" + +#. module: mrp +#: help:mrp.procurement.orderpoint.compute,init,automatic:0 +msgid "If the stock of a product is under 0, it will act like an orderpoint" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,init,measure_unit:0 +msgid "Amount in hours" +msgstr "घंटों में राशि" + +#. module: mrp +#: field:mrp.production,product_lines:0 +msgid "Scheduled goods" +msgstr "अनुसूचित माल" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_producttostockrules0 +msgid "you can see the minimum stock rules from product" +msgstr "आप उत्पाद से न्यूनतम स्टॉक नियमों को देख सकते हैं" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Sets / Phantom" +msgstr "" + +#. module: mrp +#: wizard_view:mrp.procurement.compute,init:0 +msgid "This wizard will schedule procurements." +msgstr "" + +#. module: mrp +#: field:mrp.bom,position:0 +msgid "Internal Ref." +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +#: field:mrp.procurement,state:0 +#: field:mrp.production,state:0 +msgid "Status" +msgstr "स्थिति" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockproduction0 +msgid "Stockable Production Order" +msgstr "" + +#. module: mrp +#: help:mrp.bom,position:0 +msgid "Reference to a position in an external plan." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockrfq0 +msgid "Stockable Request" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_serviceonorder0 +msgid "Service on Order" +msgstr "" + +#. module: mrp +#: help:stock.warehouse.orderpoint,product_max_qty:0 +#: help:stock.warehouse.orderpoint,product_min_qty:0 +msgid "" +"When the virtual stock goes belong the Min Quantity, Open ERP generates a " +"procurement to bring the virtual stock to the Max Quantity." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockmts0 +msgid "Stockable Make to Stock" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action +#: model:ir.ui.menu,name:mrp.menu_mrp_production_action +#: view:mrp.production:0 +msgid "Production Orders" +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +#: field:mrp.procurement,product_qty:0 +#: rml:mrp.production.order:0 +#: wizard_field:product.product.procurement,init,qty:0 +msgid "Quantity" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,priority:0 +#: selection:mrp.production,priority:0 +msgid "Not urgent" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procureserviceproduct0 +msgid "Procure Service Product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Confirm Production" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_purchaseprocure0 +#: field:stock.move,procurements:0 +msgid "Procurements" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_product_line +msgid "Production scheduled products" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,timesheet_id:0 +msgid "Working Time" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Details" +msgstr "" + +#. module: mrp +#: model:process.process,name:mrp.process_process_procurementprocess0 +msgid "Procurement Process" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned_date:0 +msgid "Scheduled Date" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,priority:0 +#: selection:mrp.production,priority:0 +msgid "Urgent" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_rounding:0 +msgid "" +"Rounding applied on the product quantity. For integer only values, put 1.0" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Bill Of Material" +msgstr "" + +#. module: mrp +#: help:mrp.routing,location_id:0 +msgid "" +"Keep empty if you produce at the location where the finished products are " +"needed.Set a location if you produce at a fixed location. This can be a " +"partner location if you subcontract the manufacturing operations." +msgstr "" + +#. module: mrp +#: field:mrp.procurement,move_id:0 +msgid "Reservation" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action2 +msgid "Bill of Materials Structure" +msgstr "" + +#. module: mrp +#: wizard_field:product.product.procurement,init,product_id:0 +msgid "product" +msgstr "" + +#. module: mrp +#: selection:mrp.property,composition:0 +msgid "max" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_producttostockrules0 +msgid "Product to stock rules" +msgstr "" + +#. module: mrp +#: wizard_button:product_price,init,price:0 +msgid "Print product price" +msgstr "" + +#. module: mrp +#: wizard_view:product.product.procurement,done:0 +msgid "Make Procurement" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,date:0 +msgid "Modification Date" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle_account_id:0 +#: help:mrp.workcenter,costs_hour_account_id:0 +msgid "" +"Complete this only if you want automatic analytic accounting entries on " +"production orders." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduction0 +msgid "If Procure method is Make to order and supply method is produce" +msgstr "" + +#. module: mrp +#: field:res.company,po_lead:0 +msgid "Purchase Lead Time" +msgstr "" + +#. module: mrp +#: field:mrp.routing,location_id:0 +msgid "Production Location" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Change Qty" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Force Reservation" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,author_id:0 +msgid "Author" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockproduct0 +msgid "Stockable Product Stock" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos:0 +#: field:mrp.production.product.line,product_uos:0 +msgid "Product UOS" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_productionprocureproducts0 +msgid "Production Procure Products" +msgstr "" + +#. module: mrp +#: model:process.process,name:mrp.process_process_serviceproductprocess0 +msgid "Service Product Process" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_purchaseprocure0 +msgid "Procurement convert into the draft purchase order." +msgstr "" + +#. module: mrp +#: field:mrp.procurement,message:0 +msgid "Latest error" +msgstr "" + +#. module: mrp +#: field:mrp.bom,bom_lines:0 +msgid "BoM Lines" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_start:0 +msgid "Time before prod." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing_workcenter +msgid "Routing workcenter usage" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Consumed Products" +msgstr "" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "Error ! You can not create recursive BoM." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockmts0 +#: model:process.transition,note:mrp.process_transition_stockrfq0 +msgid "If Product type is Stockable and procure method is make to stock" +msgstr "" + +#. module: mrp +#: field:res.company,manufacturing_lead:0 +msgid "Manufacturity Lead Time" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_action4 +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action4 +msgid "Exceptions Procurements to Fix" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Ready" +msgstr "" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Workcenter Operations" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action2_gantt +#: model:ir.ui.menu,name:mrp.menu_production_orders_start_gantt +msgid "Production Orders Planning" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_efficiency:0 +msgid "Factor that multiplies all times expressed in the workcenter." +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_cycle:0 +msgid "Time in hours for doing one cycle." +msgstr "" + +#. module: mrp +#: field:mrp.production,date_finnished:0 +msgid "End Date" +msgstr "" + +#. module: mrp +#: help:mrp.production,picking_id:0 +msgid "" +"This is the internal picking list take bring the raw materials to the " +"production plan." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "In Production" +msgstr "" + +#. module: mrp +#: field:stock.warehouse.orderpoint,qty_multiple:0 +msgid "Qty Multiple" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Waiting" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing +#: field:mrp.bom,routing_id:0 +#: field:mrp.production,routing_id:0 +#: view:mrp.routing:0 +#: model:process.node,name:mrp.process_node_routing0 +msgid "Routing" +msgstr "" + +#. module: mrp +#: wizard_button:mrp.workcenter.load,init,report:0 +msgid "Print" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,type:0 +msgid "Type" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct0 +#: model:process.node,note:mrp.process_node_stockproduct1 +msgid "For stockable and consumable" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,init,time_unit:0 +msgid "Per month" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,product_uos_qty:0 +msgid "UoS Quantity" +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +msgid "Product Name" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Printing date" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_orderrfq0 +#: model:process.node,name:mrp.process_node_rfq0 +msgid "RFQ" +msgstr "" + +#. module: mrp +#: field:mrp.bom,revision_type:0 +msgid "indice type" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_production0 +msgid "Production orders are created for the product manufacturing." +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "WorkCenter" +msgstr "" + +#. module: mrp +#: field:stock.warehouse.orderpoint,product_min_qty:0 +msgid "Min Quantity" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production orders" +msgstr "" + +#. module: mrp +#: field:mrp.bom,child_complete_ids:0 +#: field:mrp.bom,child_ids:0 +msgid "BoM Hyerarchy" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Procurement Lines" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemts0 +msgid "If Product type is service and procure method is Make to stock" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct0 +#: model:process.node,note:mrp.process_node_serviceproduct1 +msgid "If Product type is service" +msgstr "" + +#. module: mrp +#: field:res.company,security_lead:0 +msgid "Security Days" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,cycle_total:0 +msgid "Total Cycles" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Ready to Produce" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,name:0 +msgid "Modification name" +msgstr "" + +#. module: mrp +#: field:mrp.bom,type:0 +msgid "BoM Type" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Exception" +msgstr "" + +#. module: mrp +#: wizard_view:product.product.procurement,init:0 +msgid "" +"This wizard will planify the procurement for this product. This procurement " +"may generate task, production orders or purchase orders." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_mts0 +msgid "The system waits for requested products in stock." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicemto0 +msgid "Serivce Stockable Order" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_minimumstockprocure0 +msgid "From minimum stock rules, it goes for procure product." +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stockproduct0 +#: model:process.node,name:mrp.process_node_stockproduct1 +msgid "Stockable Product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production done" +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +#: field:mrp.bom,code:0 +#: field:mrp.routing,code:0 +#: field:mrp.workcenter,code:0 +msgid "Code" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "No. Of Hours" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_property_group +#: field:mrp.property,group_id:0 +#: field:mrp.property.group,name:0 +msgid "Property Group" +msgstr "" + +#. module: mrp +#: field:mrp.bom,bom_id:0 +msgid "Parent BoM" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "References" +msgstr "" + +#. module: mrp +#: wizard_button:change_production_qty,confirm,end:0 +#: view:mrp.procurement:0 +#: selection:mrp.procurement,state:0 +#: wizard_button:mrp.procurement.compute,init,end:0 +#: wizard_button:mrp.procurement.compute.all,init,end:0 +#: wizard_button:mrp.procurement.orderpoint.compute,init,end:0 +#: view:mrp.production:0 +#: wizard_button:mrp.workcenter.load,init,end:0 +#: wizard_button:product.product.procurement,init,end:0 +#: wizard_button:product_price,init,end:0 +msgid "Cancel" +msgstr "" + +#. module: mrp +#: field:mrp.production,move_prod_id:0 +msgid "Move product" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter,type:0 +msgid "Machine" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_servicemts0 +msgid "Make to stock" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,name:0 +msgid "Workcenter Name" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Start Production" +msgstr "" + +#. module: mrp +#: selection:mrp.property,composition:0 +msgid "min" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,note:0 +msgid "" +"Description of the workcenter. Explain here what's a cycle according to this " +"workcenter." +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +msgid "-" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter,type:0 +msgid "Human Resource" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action +#: model:ir.ui.menu,name:mrp.menu_mrp_workcenter_action +#: field:mrp.routing,workcenter_lines:0 +msgid "Workcenters" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "UOM" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,procure_method:0 +msgid "on order" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc0 +#: model:ir.ui.menu,name:mrp.mrp_Sched_all +msgid "Compute All Schedulers" +msgstr "" + +#. module: mrp +#: field:mrp.production.workcenter.line,cycle:0 +msgid "Nbr of cycle" +msgstr "" + +#. module: mrp +#: field:mrp.bom,name:0 +#: field:mrp.procurement,name:0 +#: rml:mrp.production.order:0 +#: field:mrp.production.product.line,name:0 +#: field:mrp.property,name:0 +#: field:mrp.routing,name:0 +#: field:mrp.routing.workcenter,name:0 +#: field:stock.warehouse.orderpoint,name:0 +msgid "Name" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,cycle_nbr:0 +msgid "Number of Cycle" +msgstr "" + +#. module: mrp +#: wizard_field:mrp.workcenter.load,init,measure_unit:0 +msgid "Amount measuring unit" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Run procurement" +msgstr "" + +#. module: mrp +#: help:res.company,schedule_range:0 +msgid "" +"This is the time frame analysed by the scheduler when computing " +"procurements. All procurement that are not between today and today+range are " +"skipped for futur computation." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_efficiency:0 +msgid "Time Efficiency" +msgstr "" + +#. module: mrp +#: help:res.company,manufacturing_lead:0 +msgid "Security days for each manufacturing operation." +msgstr "" + +#. module: mrp +#: wizard_view:mrp.procurement.compute.all,init:0 +msgid "Scheduler Parameters" +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,cycle_nbr:0 +msgid "A cycle is defined in the workcenter definition." +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,init,measure_unit:0 +msgid "Amount in cycles" +msgstr "" + +#. module: mrp +#: field:mrp.production,location_dest_id:0 +msgid "Finished Products Location" +msgstr "" + +#. module: mrp +#: wizard_field:product.product.procurement,init,uom_id:0 +msgid "Unit of Measure" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,procure_method:0 +msgid "Procurement Method" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_journal_id:0 +msgid "Analytic Journal" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,init,time_unit:0 +msgid "Per week" +msgstr "" + +#. module: mrp +#: wizard_button:mrp.procurement.compute,init,compute:0 +#: wizard_button:mrp.procurement.compute.all,init,compute:0 +#: wizard_button:mrp.procurement.orderpoint.compute,init,compute:0 +msgid "Compute Procurements" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stock0 +msgid "Wait for available products for reservation" +msgstr "" + +#. module: mrp +#: wizard_button:change_production_qty,confirm,validate:0 +msgid "Validate" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_purchaseprocure0 +msgid "Procurement Purchase" +msgstr "" + +#. module: mrp +#: field:mrp.production.workcenter.line,hour:0 +msgid "Nbr of hour" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Notes" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom +#: view:mrp.bom:0 +#: field:mrp.production,bom_id:0 +msgid "Bill of Material" +msgstr "" + +#. module: mrp +#: wizard_view:mrp.workcenter.load,init:0 +msgid "Select time unit" +msgstr "" + +#. module: mrp +#: wizard_field:product_price,init,number:0 +msgid "Number of products to produce" +msgstr "" + +#. module: mrp +#: help:mrp.production,location_dest_id:0 +msgid "Location where the system will stock the finished products." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0 +msgid "Material routing" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,init,time_unit:0 +msgid "Day by day" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_productminimumstockrule0 +msgid "Minimum stock rule" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Revisions" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_efficiency:0 +msgid "Product Efficiency" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_warehouse_orderpoint +msgid "Orderpoint minimum rule" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicemts0 +msgid "Service Make to Stock" +msgstr "" + +#. module: mrp +#: field:mrp.production,sale_ref:0 +msgid "Sale Ref" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,priority:0 +#: field:mrp.production,priority:0 +#: rml:mrp.production.order:0 +msgid "Priority" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,location_id:0 +#: field:stock.warehouse.orderpoint,location_id:0 +msgid "Location" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_new +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_new +msgid "New Procurement" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Production Order N° :" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter,type:0 +msgid "Tool" +msgstr "" + +#. module: mrp +#: help:mrp.production,location_src_id:0 +msgid "" +"Location where the system will look for products used in raw materials." +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +#: wizard_field:product.product.procurement,init,date_planned:0 +msgid "Planned Date" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_purchaseprocure0 +msgid "Procurement orders" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_mts0 +msgid "Make to Stock" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemto0 +msgid "If product type is service and procure method is Make to order" +msgstr "" + +#. module: mrp +#: field:res.company,schedule_range:0 +msgid "Scheduler Range" +msgstr "" + +#. module: mrp +#: field:stock.warehouse.orderpoint,product_max_qty:0 +msgid "Max Quantity" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_procurement +#: view:mrp.procurement:0 +msgid "Procurement" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.product_procurement_wizard +msgid "Procurement Request" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wizard_price +msgid "Product Cost Structure" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_minimumstockprocure0 +msgid "Minimum Stock Procure" +msgstr "" + +#. module: mrp +#: help:res.company,po_lead:0 +msgid "This is the leads/security time for each purchase order." +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "BoM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_start:0 +msgid "Start Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_hour_account_id:0 +msgid "Hour Account" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,revision_type:0 +msgid "alphabetical indices" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productionorder0 +msgid "Procurement for raw materials." +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +#: field:mrp.procurement,note:0 +#: rml:mrp.production.order:0 +msgid "Note" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procurestockableproduct0 +msgid "Procure Stockable Product" +msgstr "" + +#. module: mrp +#: field:mrp.bom,method:0 +msgid "Method" +msgstr "" + +#. module: mrp +#: wizard_view:product_price,init:0 +msgid "Paid ?" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_routing0 +msgid "Define a routing to describe the manufacturing steps." +msgstr "" + +#. module: mrp +#: field:mrp.bom,active:0 +#: field:mrp.routing,active:0 +#: field:mrp.workcenter,active:0 +#: field:stock.warehouse.orderpoint,active:0 +msgid "Active" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_procureproducts0 +msgid "Procure Products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action_prop +#: view:mrp.bom:0 +#: field:mrp.bom,property_ids:0 +#: view:mrp.procurement:0 +#: field:mrp.procurement,property_ids:0 +#: view:mrp.property:0 +msgid "Properties" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,date_planned:0 +#: field:mrp.production,date_planned:0 +msgid "Scheduled date" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +#: view:mrp.production:0 +msgid "Extra Information" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_billofmaterial0 +msgid "Define the product structure, with sub-products and/or components." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_minimumstockrule0 +msgid "" +"Procurement is created if the product quantity is lower than the minimum " +"limit." +msgstr "" + +#. module: mrp +#: field:mrp.procurement,date_close:0 +msgid "Date Closed" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_general_account_id:0 +msgid "General Account" +msgstr "" + +#. module: mrp +#: field:mrp.property,composition:0 +msgid "Properties composition" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action4 +#: model:ir.ui.menu,name:mrp.menu_production_orders_waiting4 +msgid "Production Orders Waiting Products" +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "SO Number" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wizard_change_production_qty +msgid "Change Product Qty." +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +#: selection:mrp.production,state:0 +msgid "Done" +msgstr "" + +#. module: mrp +#: help:stock.warehouse.orderpoint,qty_multiple:0 +msgid "The procurement quantity will by rounded up to this multiple." +msgstr "" + +#. module: mrp +#: field:stock.warehouse.orderpoint,logic:0 +msgid "Reordering Mode" +msgstr "" + +#. module: mrp +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_procureproducts0 +msgid "Central document to procure products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action3 +#: model:ir.ui.menu,name:mrp.menu_mrp_production_action3 +msgid "Production Orders in Progress" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_product_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:mrp.act_stock_warehouse_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:mrp.action_orderpoint_form +#: model:ir.ui.menu,name:mrp.menu_action_orderpoint_form +#: view:stock.warehouse.orderpoint:0 +msgid "Minimum Stock Rules" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,capacity_per_cycle:0 +msgid "Capacity per Cycle" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_id:0 +#: field:mrp.procurement,product_id:0 +#: field:mrp.production,product_id:0 +#: rml:mrp.production.order:0 +#: field:mrp.production.product.line,product_id:0 +#: field:stock.warehouse.orderpoint,product_id:0 +msgid "Product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,hour_total:0 +msgid "Total Hours" +msgstr "" + +#. module: mrp +#: field:mrp.production,location_src_id:0 +msgid "Raw Materials Location" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_product_bom_structure +msgid "Product BoM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uom:0 +#: field:mrp.production,product_uom:0 +#: field:mrp.production.product.line,product_uom:0 +#: field:stock.warehouse.orderpoint,product_uom:0 +msgid "Product UOM" +msgstr "" + +#. module: mrp +#: help:mrp.procurement,origin:0 +msgid "" +"Reference of the document that created this procurement.\n" +"This is automatically completed by Open ERP." +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduct0 +msgid "Product type is Stockable and procure method is make to stock" +msgstr "" + +#. module: mrp +#: help:mrp.bom,date_start:0 +#: help:mrp.bom,date_stop:0 +msgid "Validity of this BoM or component. Keep empty if it's always valid." +msgstr "" + +#. module: mrp +#: field:mrp.procurement,product_uos:0 +#: field:mrp.production,product_uos:0 +msgid "Product UoS" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,product_uom:0 +msgid "Product UoM" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_workcenter +#: field:mrp.production.workcenter.line,workcenter_id:0 +#: field:mrp.routing.workcenter,workcenter_id:0 +#: view:mrp.workcenter:0 +msgid "Workcenter" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,priority:0 +#: selection:mrp.production,priority:0 +msgid "Very Urgent" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,purchase_id:0 +#: field:stock.warehouse.orderpoint,procurement_id:0 +msgid "Purchase Order" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production Workcenters" +msgstr "" + +#. module: mrp +#: view:mrp.property.group:0 +msgid "Properties categories" +msgstr "" + +#. module: mrp +#: help:mrp.procurement,procure_method:0 +msgid "" +"If you encode manually a procurement, you probably want to use a make to " +"order method." +msgstr "" + +#. module: mrp +#: rml:mrp.production.order:0 +msgid "Source Location" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicerfq0 +msgid "Stockable Order Request" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: view:mrp.production.product.line:0 +msgid "Scheduled Products" +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products Consommation" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,revision_type:0 +msgid "numeric indices" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicerfq0 +msgid "If Procure method is Make to order and supply method is buy" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procurestockableproduct0 +msgid "if Product type is Stockable in procurement order" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_workcenter_line +#: view:mrp.production:0 +#: rml:mrp.production.order:0 +msgid "Work Orders" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle:0 +msgid "Cost per cycle" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom_revision +msgid "Bill of material revisions" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Planification" +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +#: model:process.transition,name:mrp.process_transition_bom0 +msgid "BOM" +msgstr "" + +#. module: mrp +#: help:mrp.bom,type:0 +msgid "" +"Use a phantom bill of material in raw materials lines that have to be " +"automatically computed in on eproduction order and not one per level.If you " +"put \"Phantom/Set\" at the root level of a bill of material it is considered " +"as a set or pack: the products are replaced by the components between the " +"sale order to the picking without going through the production order.The " +"normal BoM will generate one production order per BoM level." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_cycle:0 +msgid "Time for 1 cycle (hour)" +msgstr "" + +#. module: mrp +#: wizard_view:product.product.procurement,done:0 +msgid "Your procurement request has been sent !" +msgstr "" + +#. module: mrp +#: wizard_view:product.product.procurement,init:0 +msgid "Internal Procurement Request" +msgstr "" + +#. module: mrp +#: model:ir.actions.report.xml,name:mrp.report_mrp_production_report +#: field:mrp.production.product.line,production_id:0 +#: field:mrp.production.workcenter.line,production_id:0 +#: model:process.node,name:mrp.process_node_production0 +#: model:process.node,name:mrp.process_node_productionorder0 +msgid "Production Order" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Compute Data" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_group_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action +msgid "Property Categories" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc1 +#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc1 +msgid "Compute Procurements Only" +msgstr "" + +#. module: mrp +#: field:mrp.production,product_uos_qty:0 +msgid "Product UoS Qty" +msgstr "" + +#. module: mrp +#: rml:bom.structure:0 +#: model:ir.actions.report.xml,name:mrp.report_bom_structure +msgid "BOM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_stop:0 +msgid "Valid Until" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_action11 +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action11 +msgid "Temporary Procurement Exceptions" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_start:0 +msgid "Valid From" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Normal BoM" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos_qty:0 +#: field:mrp.production.product.line,product_uos_qty:0 +msgid "Product UOS Qty" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Confirmed" +msgstr "" + +#. module: mrp +#: wizard_view:mrp.procurement.compute,init:0 +#: wizard_view:mrp.procurement.orderpoint.compute,init:0 +msgid "Parameters" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Confirm" +msgstr "" + +#. module: mrp +#: field:mrp.production,workcenter_lines:0 +msgid "Workcenters Utilisation" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_efficiency:0 +msgid "" +"Efficiency on the production. A factor of 0.9 means a loss of 10% in the " +"production." +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_rounding:0 +msgid "Product Rounding" +msgstr "" + +#. module: mrp +#: field:mrp.production.workcenter.line,name:0 +msgid "Work Order" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Recreate Picking" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceonorder0 +msgid "If procurement is make to order" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Order" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_minimumstockrule0 +msgid "Minimum Stock Rule" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action_new +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action_new +msgid "New Bill of Materials" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_stop:0 +msgid "Time after prod." +msgstr "" + +#. module: mrp +#: wizard_field:mrp.workcenter.load,init,time_unit:0 +msgid "Type of period" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Total Qty" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,hour_nbr:0 +msgid "Number of Hours" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_action +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action +msgid "Procurement Orders" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_property +msgid "Property" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,routing_id:0 +msgid "Parent Routing" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_start:0 +msgid "Time in hours for the setup." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Canceled" +msgstr "" + +#. module: mrp +#: selection:mrp.property,composition:0 +msgid "plus" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,bom_id:0 +#: field:mrp.procurement,bom_id:0 +msgid "BoM" +msgstr "" + +#. module: mrp +#: help:mrp.bom,routing_id:0 +msgid "" +"The list of operations (list of workcenters) to produce the finished " +"product. The routing is mainly used to compute workcenter costs during " +"operations and to plan futur loads on workcenters based on production " +"plannification." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Waiting Goods" +msgstr "" + +#. module: mrp +#: model:process.process,name:mrp.process_process_stockableproductprocess0 +msgid "Stockable Product Process" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_new +#: model:ir.ui.menu,name:mrp.menu_production_orders_new +msgid "New Production Order" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_rfq0 +msgid "A Request for Quotation is created and sent to the supplier." +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,last_indice:0 +msgid "last indice" +msgstr "" + +#. module: mrp +#: field:mrp.bom,revision_ids:0 +#: view:mrp.bom.revision:0 +msgid "BoM Revisions" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Retry" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +#: selection:mrp.production,state:0 +msgid "Draft" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,priority:0 +#: selection:mrp.production,priority:0 +msgid "Normal" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_productionprocureproducts0 +msgid "When any procuere products, it comes into the prpcurement orders" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action2 +#: model:ir.ui.menu,name:mrp.menu_production_orders_start +msgid "Production Orders To Start" +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Procurement Reason" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0 +msgid "An entry is being made from billing material to routing." +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,timesheet_id:0 +msgid "The normal working time of the workcenter." +msgstr "" + +#. module: mrp +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Order to Max" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action +#: model:process.node,name:mrp.process_node_billofmaterial0 +msgid "Bill of Materials" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procureserviceproduct0 +msgid "In procurement order, if product type is service" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,procure_method:0 +msgid "from stock" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.property:0 +#: view:mrp.property.group:0 +#: view:mrp.routing:0 +#: view:mrp.routing.workcenter:0 +msgid "General Information" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Productions" +msgstr "" + +#. module: mrp +#: wizard_button:product.product.procurement,done,end:0 +msgid "Close" +msgstr "" + +#. module: mrp +#: field:mrp.production,sale_name:0 +msgid "Sale Name" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productminimumstockrule0 +msgid "Create minimum stock rules" +msgstr "" + +#. module: mrp +#: wizard_field:product.product.procurement,init,warehouse_id:0 +#: field:stock.warehouse.orderpoint,warehouse_id:0 +msgid "Warehouse" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production +#: field:stock.move,production_id:0 +msgid "Production" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_serviceproduct0 +#: model:process.node,name:mrp.process_node_serviceproduct1 +msgid "Service Product" +msgstr "" + +#. module: mrp +#: field:mrp.procurement,close_move:0 +msgid "Close Move at end" +msgstr "" + +#. module: mrp +#: wizard_view:change_production_qty,confirm:0 +msgid "Change Product Qty" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,description:0 +#: view:mrp.property:0 +#: field:mrp.property,description:0 +#: field:mrp.property.group,description:0 +#: view:mrp.routing:0 +#: field:mrp.routing,note:0 +#: field:mrp.routing.workcenter,note:0 +#: view:mrp.workcenter:0 +#: field:mrp.workcenter,note:0 +msgid "Description" +msgstr "" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Running" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_root +msgid "Manufacturing" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_procurement_action3 +#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action3 +msgid "Unscheduled procurements" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_tree_action +#: model:ir.ui.menu,name:mrp.menu_bom_tree +msgid "Bill of Material Structure" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wizard_workcenter_load +msgid "Workcenter load" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_stop:0 +msgid "Time in hours for the cleaning." +msgstr "" + +#. module: mrp +#: view:mrp.procurement:0 +msgid "Procurement Details" +msgstr "खरीद के विवरण" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_bom0 +msgid "You can see its bill of material which are used to make product" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned_end:0 +msgid "Scheduled End" +msgstr "अनुसूचित समाप्ति" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Stock" +msgstr "" + +#. module: mrp +#: field:mrp.bom,sequence:0 +#: rml:mrp.production.order:0 +#: field:mrp.production.workcenter.line,sequence:0 +#: field:mrp.routing.workcenter,sequence:0 +msgid "Sequence" +msgstr "अनुक्रम" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2 +msgid "Bill of Materials Components" +msgstr "" diff --git a/addons/mrp/report/mrp_production_order.py b/addons/mrp/report/mrp_production_order.py index d754d6a50ad..4fffbdf1689 100644 --- a/addons/mrp/report/mrp_production_order.py +++ b/addons/mrp/report/mrp_production_order.py @@ -32,11 +32,12 @@ class mrp_production_order(osv.osv): ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), 'day': fields.char('Day',size=64,readonly=True), 'origin': fields.char('Source Document', size=64), - 'nbr': fields.integer('# of Orders', readonly=True), + 'nbr': fields.integer('# of Lines', readonly=True), 'products_to_consume': fields.integer('Products to Consume', readonly=True), 'consumed_products': fields.integer('Consumed Products', readonly=True), 'date': fields.date('Date', readonly=True), 'product_id': fields.many2one('product.product', 'Product', readonly=True), + 'product_id2': fields.many2one('product.product', 'Product Consumed', readonly=True), 'product_qty': fields.float('Product Qty', readonly=True), 'state': fields.selection([('draft','Draft'), ('picking_except', 'Picking Exception'), @@ -74,11 +75,12 @@ class mrp_production_order(osv.osv): to_char(s.create_date, 'YYYY') as year, to_char(s.create_date, 'MM') as month, to_char(s.create_date, 'YYYY-MM-DD') as day, - l.product_id as product_id, + s.product_id as product_id, + l.product_id as product_id2, l.product_uom, sum(l.product_qty * u.factor) as product_qty, s.company_id as company_id, - count(*) as nbr, + (select 1) as nbr, (select sum(sm.product_qty) from stock_move as sm left join mrp_production_move_ids as mv on (sm.id=mv.move_id) left join mrp_production_product_line as ll on (ll.production_id=mv.production_id) @@ -111,6 +113,7 @@ class mrp_production_order(osv.osv): to_char(s.create_date, 'YYYY-MM-DD'), to_date(to_char(s.create_date, 'MM-dd-YYYY'),'MM-dd-YYYY'), l.product_id, + s.product_id, l.product_uom, s.id, l.id, diff --git a/addons/mrp/report/mrp_production_order_view.xml b/addons/mrp/report/mrp_production_order_view.xml index 55957619e31..61aff34bf91 100644 --- a/addons/mrp/report/mrp_production_order_view.xml +++ b/addons/mrp/report/mrp_production_order_view.xml @@ -11,19 +11,20 @@ tree - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -81,7 +82,7 @@ - + diff --git a/addons/mrp_procurement/mrp_procurement.py b/addons/mrp_procurement/mrp_procurement.py index 1f974318ee3..bb18326af07 100644 --- a/addons/mrp_procurement/mrp_procurement.py +++ b/addons/mrp_procurement/mrp_procurement.py @@ -262,8 +262,9 @@ class mrp_procurement(osv.osv): user = self.pool.get('res.users').browse(cr, uid, uid) for procurement in self.browse(cr, uid, ids): if procurement.product_id.product_tmpl_id.supply_method <> 'produce': - if procurement.product_id.seller_ids: - partner = procurement.product_id.seller_ids[0].name + partner_list = sorted([(partner_id.sequence, partner_id) for partner_id in procurement.product_id.seller_ids if partner_id]) + if partner_list: + partner = partner_list and partner_list[0] and partner_list[0][1] and partner_list[0][1].name or False if user.company_id and user.company_id.partner_id: if partner.id == user.company_id.partner_id.id: return True @@ -288,7 +289,9 @@ class mrp_procurement(osv.osv): if not procurement.product_id.seller_ids: cr.execute('update mrp_procurement set message=%s where id=%s', (_('No supplier defined for this product !'), procurement.id)) return False - partner = procurement.product_id.seller_ids[0].name + partner_list = sorted([(partner_id.sequence, partner_id) for partner_id in procurement.product_id.seller_ids if partner_id and partner_id.sequence]) + partner = partner_list and partner_list[0] and partner_list[0][1] and partner_list[0][1].name or False + if user.company_id and user.company_id.partner_id: if partner.id == user.company_id.partner_id.id: return False diff --git a/addons/olap/i18n/es.po b/addons/olap/i18n/es.po index 13fb70934e9..0074a9e2a2d 100644 --- a/addons/olap/i18n/es.po +++ b/addons/olap/i18n/es.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2009-11-26 05:24+0000\n" -"PO-Revision-Date: 2010-04-11 22:28+0000\n" -"Last-Translator: Juan Eduardo Riva \n" +"PO-Revision-Date: 2010-06-08 14:19+0000\n" +"Last-Translator: victor tejada yau \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:21+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: olap @@ -57,7 +57,7 @@ msgstr "" #. module: olap #: field:olap.cube.table,schema_id:0 msgid "Schema id" -msgstr "" +msgstr "Schema id" #. module: olap #: field:olap.schema,database_id:0 @@ -186,7 +186,7 @@ msgstr "" #. module: olap #: field:olap.measure,formatstring:0 msgid "Format string" -msgstr "" +msgstr "Formato de cadena" #. module: olap #: wizard_button:olap.query_builder,exec,exec:0 @@ -307,17 +307,17 @@ msgstr "Nombre de la aplicación" #. module: olap #: field:olap.cube.table,column_link_id:0 msgid "Relational Column" -msgstr "" +msgstr "columna relacional" #. module: olap #: field:olap.level,type:0 msgid "Level class" -msgstr "" +msgstr "Nivel de clase" #. module: olap #: field:olap.cube,name:0 msgid "Cube name" -msgstr "" +msgstr "nombre de cubo" #. module: olap #: model:ir.actions.act_window,name:olap.action_view_olap_application_table_form diff --git a/addons/process/i18n/hr.po b/addons/process/i18n/hr.po index b3cd672494d..eed215147b5 100644 --- a/addons/process/i18n/hr.po +++ b/addons/process/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/product/product.py b/addons/product/product.py index aaa369cdfcf..eddbd992874 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -245,7 +245,8 @@ class product_template(osv.osv): result = {} for product in self.browse(cr, uid, ids, context): if product.seller_ids: - result[product.id] = product.seller_ids[0].delay + partner_list = sorted([(partner_id.sequence, partner_id) for partner_id in product.seller_ids if partner_id and partner_id.sequence]) + result[product.id] = partner_list and partner_list[0] and partner_list[0][1] and partner_list[0][1].delay or False else: result[product.id] = 1 return result diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 11ed4bfba65..9f13467c4cb 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -426,7 +426,7 @@ - + @@ -451,7 +451,7 @@ tree - + diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index a98b5cb28fd..09b2c019543 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -47,6 +47,9 @@ work done on tasks, eso. It is able to render planning, order tasks, eso. 'demo_xml': [ 'project_demo.xml' ], + 'test':[ + 'test/test_project.yml' + ], 'installable': True, 'active': False, 'certificate': '0075116868317', diff --git a/addons/project/project.py b/addons/project/project.py index 61720675f49..6a25d10af2e 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -123,7 +123,7 @@ class project(osv.osv): 'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the project without removing it."), 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."), 'category_id': fields.many2one('account.analytic.account','Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc."), - 'priority': fields.integer('Sequence'), + 'priority': fields.integer('Sequence', help="Gives the sequence order when displaying a list of task"), 'warn_manager': fields.boolean('Warn Manager', help="If you check this field, the project manager will receive a request each time a task is completed by his team."), 'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members', help="Project's member. Not used in any computation, just for information purpose."), 'tasks': fields.one2many('project.task', 'project_id', "Project tasks"), @@ -150,14 +150,14 @@ class project(osv.osv): if leave['date_start'] > leave['date']: return False return True - + def _check_escalation(self, cr, uid, ids): project_obj = self.browse(cr, uid, ids[0]) if project_obj.project_escalation_id: if project_obj.project_escalation_id.id == project_obj.id: return False - return True - + return True + _constraints = [ (_check_dates, 'Error! project start-date must be lower then project end-date.', ['date_start', 'date']), (_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id']) @@ -343,7 +343,6 @@ class task(osv.osv): 'company_id': fields.many2one('res.company', 'Company'), } _defaults = { - 'user_id': lambda obj, cr, uid, context: uid, 'state': lambda *a: 'draft', 'priority': lambda *a: '2', 'progress': lambda *a: 0, diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index 1cd452d736e..b115b576859 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -31,7 +31,6 @@ class report_project_task_user(osv.osv): 'day': fields.char('Day', size=128, readonly=True), 'year': fields.char('Year',size=64,required=False, readonly=True), 'user_id':fields.many2one('res.users', 'Assigned To', readonly=True), - 'done_by':fields.many2one('res.users', 'Done By', readonly=True), 'date_start': fields.date('Starting Date',readonly=True), 'no_of_days': fields.integer('# of Days', size=128, readonly=True), 'description': fields.text('Description',readonly=True), @@ -48,7 +47,7 @@ class report_project_task_user(osv.osv): help="Number of Days to close the task"), 'opening_days': fields.float('Days to Open', digits=(16,2), readonly=True, group_operator="avg", help="Number of Days to Open the task"), - 'delay_endings_days': fields.float('Overpass Delay', digits=(16,2), readonly=True, group_operator="avg"), + 'delay_endings_days': fields.float('Overpassed Deadline', digits=(16,2), readonly=True), 'nbr': fields.integer('# of tasks', readonly=True), 'priority' : fields.selection([('4','Very Low'), ('3','Low'), @@ -74,53 +73,61 @@ class report_project_task_user(osv.osv): def init(self, cr): tools.sql.drop_view_if_exists(cr, 'report_project_task_user') cr.execute(""" - create or replace view report_project_task_user as ( - select - min(t.id) as id, + create view report_project_task_user as + select + (select 1 ) AS nbr, + t.id as id, to_char(date_start, 'YYYY') as year, to_char(date_start, 'MM') as month, to_char(date_start, 'YYYY-MM-DD') as day, - count(distinct t.id) as nbr, date_trunc('day',t.date_start) as date_start, date_trunc('day',t.date_end) as date_end, to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_deadline, - sum(cast(to_char(date_trunc('day',t.date_end) - date_trunc('day',t.date_start),'DD') as int)) as no_of_days, +-- sum(cast(to_char(date_trunc('day',t.date_end) - date_trunc('day',t.date_start),'DD') as int)) as no_of_days, + (extract('epoch' from (t.date_end-t.date_start)))/(3600*24) as no_of_days, t.user_id, - sum(progress) as progress, + progress as progress, t.project_id, t.state, + t.effective_hours as hours_effective, t.priority, t.name as name, t.company_id, t.partner_id, t.type, - w.user_id as done_by, - sum(remaining_hours) as remaining_hours, - sum(total_hours) as total_hours, - sum(planned_hours) as hours_planned, - avg(extract('epoch' from (t.date_end-t.create_date)))/(3600*24) as closing_days, - avg(extract('epoch' from (t.date_start-t.create_date)))/(3600*24) as opening_days, - avg(extract('epoch' from (t.date_deadline-t.date_end)))/(3600*24) as delay_endings_days, - sum(w.hours) as hours_effective, - ((sum(planned_hours)-sum(w.hours))/count(distinct t.id))::decimal(16,2) as hours_delay - from project_task t - left join project_task_work w on (t.id=w.task_id) - group by - to_char(date_start, 'YYYY'), - to_char(date_start, 'MM'), - t.priority, + remaining_hours as remaining_hours, + total_hours as total_hours, + t.delay_hours as hours_delay, + planned_hours as hours_planned, + (extract('epoch' from (t.date_end-t.create_date)))/(3600*24) as closing_days, + (extract('epoch' from (t.date_start-t.create_date)))/(3600*24) as opening_days, + (extract('epoch' from (t.date_deadline-t.date_end)))/(3600*24) as delay_endings_days + from project_task t + + group by + t.id, + remaining_hours, + t.effective_hours, + progress, + total_hours, + planned_hours, + hours_delay, + year, + month, + day, + create_date, + date_start, + date_end, + date_deadline, t.user_id, - w.user_id, + t.project_id, t.state, - date_trunc('day',t.date_end), - to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY'), + t.priority, + name, t.company_id, t.partner_id, - t.type, - t.name, - t.project_id, - t.date_start - ) + t.type + """) report_project_task_user() diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 26488eae254..9b685001664 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -12,7 +12,6 @@ - @@ -31,8 +30,8 @@ - + @@ -87,9 +86,14 @@ icon="terp-dialog-close" name="done" domain="[('state','=','done')]"/> - - - + + + + + - - - - + + - - - + + + - @@ -126,7 +124,6 @@ - @@ -145,7 +142,7 @@ form tree,graph - {'search_default_month':1,'search_default_User':1,'search_default_user_id':uid,'group_by_no_leaf':1,'group_by':[]} + {'search_default_month':1,'search_default_project':1,'group_by_no_leaf':1,'group_by':[]} diff --git a/addons/project/test/test_project.yml b/addons/project/test/test_project.yml new file mode 100644 index 00000000000..25b3e94b57f --- /dev/null +++ b/addons/project/test/test_project.yml @@ -0,0 +1,322 @@ +- + Test project template feature +- + Create project 'OpenERP Training Programme' +- + !record {model: project.project, id: project_project_openerptrainingprogramme0}: + company_id: base.main_company + name: OpenERP Training Programme +- + Create task 'Technical Training' for this project +- + !record {model: project.task, id: project_task_technicaltraining0}: + date_start: '2010-05-31 11:48:38' + name: Technical Training + planned_hours: 30.0 + project_id: project_project_openerptrainingprogramme0 + remaining_hours: 30.0 + state: draft +- + Create task 'Functional Training' for this project +- + !record {model: project.task, id: project_task_functionaltraining0}: + date_start: '2010-05-31 11:49:11' + name: Functional Training + planned_hours: 30.0 + project_id: project_project_openerptrainingprogramme0 + remaining_hours: 30.0 + state: draft +- + Set project as project template +- + !python {model: project.project}: | + self.set_template(cr, uid, [ref("project_project_openerptrainingprogramme0")], + {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")], + "tz": False, "active_id": ref("project.menu_open_view_project_all"), }) +- + Check if project in template state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in template state}: + - state == "template" +- + Create new project based on this template +- + !python {model: project.project}: | + new_prj = self.duplicate_template(cr, uid, [ref("project_project_openerptrainingprogramme0")], + {"lang": "en_US", "active_model": "ir.ui.menu", "active_ids": [ref("project.menu_open_view_project_all")], + "tz": False, "active_id": ref("project.menu_open_view_project_all"), }) + if not new_prj: + raise Exception( "New project based on template not created") + new_id = new_prj['res_id'] + state = self.read(cr, uid, [new_id], ['state'])[0]['state'] + assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state +- + Reset project template to normal project +- + !python {model: project.project}: | + self.reset_project(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": + [ref("project.menu_open_view_project_all")], "tz": False, "active_model": + "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), + }) +- + Check if project in open state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}: + - state == "open" + + + + +- + Test for different project-states +- + Keep project pending +- + !python {model: project.project}: | + self.set_pending(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": + [ref("project.menu_open_view_project_all")], "tz": False, "active_model": + "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), + }) +- + Check if project in pending state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in pending state}: + - state == "pending" +- + Cancel the project +- + !python {model: project.project}: | + self.set_cancel(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": + [ref("project.menu_open_view_project_all")], "tz": False, "active_model": + "ir.ui.menu", "project_id": False, "active_id": ref("project.menu_open_view_project_all"), + }) +- + Check if project in cancel state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in cancel state}: + - state == "cancelled" +- + Re-open the project +- + !python {model: project.project}: | + self.set_open(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")], + "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id": + ref("project.menu_open_view_project_all"), }) +- + Check if project in open state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error, string: Project is in open state}: + - state == "open" + + + +- + Test for task work allocation +- + Check if task 'Technical Training' in draft state +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in draft state}: + - state == "draft" +- + Open task 'Technical Training' +- + !python {model: project.task}: | + self.do_open(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_user_id": 1, "search_default_current": 1, "project_id": + False, "active_id": ref("project.menu_action_view_task"), }) +- + Check if task 'Technical Training' in open state and for other initial values +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Project is in open state}: + - state == "open" + - planned_hours == 30 + - remaining_hours == 30 + - delay_hours == 0.0 + - total_hours == 30 + - effective_hours == 0.0 +- + Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours +- + !record {model: project.task, id: project_task_technicaltraining0}: + work_ids: + - date: '2010-05-31 15:04:22' + hours: 10.0 + name: Training on OpenERP modules, models and classes + user_id: base.user_root +- + Check for effective hours and remaining hours, effective_hours must be equal to 10 +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 10 hours effective_hours must be equal to 10}: + - remaining_hours == 20 + - effective_hours == 10.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Make a work task entry 'Training on OpenERP xml views' of 10 hours +- + !record {model: project.task, id: project_task_technicaltraining0}: + work_ids: + - date: '2010-06-01 15:04:46' + hours: 10.0 + name: Training on OpenERP xml views + user_id: base.user_root +- + Check for effective hours and remaining hours, effective_hours must be equal to 20 +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 20}: + - remaining_hours == 10 + - effective_hours == 20.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Make a work task entry 'Training on workflows' of 10 hours +- + !record {model: project.task, id: project_task_technicaltraining0}: + work_ids: + - date: '2010-06-02 15:05:24' + hours: 10.0 + name: Training on workflows + user_id: base.user_root +- + Check for effective hours and remaining hours, effective_hours must be equal to 30 +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 30}: + - remaining_hours == 0 + - effective_hours == 30.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Set remaining hours of 10 hours for reevaluating the task +- + !record {model: config.compute.remaining, id: config_compute_remaining_0}: + remaining_hours: 10.0 +- + Reevaluate the task +- + !python {model: config.compute.remaining}: | + self.compute_hours(cr, uid, [ref("config_compute_remaining_0")], {"lang": "en_US", + "project_id": False, "tz": False, "active_model": "project.task", "search_default_project_id": + False, "search_default_user_id": 1, "search_default_current": 1, "active_ids": + [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), }) + +- + Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30 +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After reevaluating the task with 10 hours remaining_hours must be 10 while planned_hours remains 30}: + - planned_hours == 30 + - remaining_hours == 10.0 + - effective_hours == 30.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Make a work task entry 'Training on reports and wizards' of 10 hours +- + !record {model: project.task, id: project_task_technicaltraining0}: + work_ids: + - date: '2010-05-31 15:08:40' + hours: 10.0 + name: Training on reports and wizards + user_id: base.user_root +- + Check for effective hours and remaining hours +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After one more work task of 10 hours effective_hours must be equal to 40 while planned_hours remains 30}: + - planned_hours == 30 + - remaining_hours == 0 + - effective_hours == 40.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Close the task +- + !python {model: project.task}: | + self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_user_id": 1, "search_default_current": 1, "project_id": + False, "active_id": ref("project.menu_action_view_task"), }) +- + Check if task in done state +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: Task is in done state}: + - state == "done" + + +- + Test for task reactivation +- + Reactivate task +- + !record {model: config.compute.remaining, id: config_compute_remaining_1}: + remaining_hours: 10.0 +- + Reevaluate the task with 10 hours remaining +- + !python {model: config.compute.remaining}: | + self.compute_hours(cr, uid, [ref("config_compute_remaining_1")], {"lang": "en_US", + "project_id": False, "tz": False, "button_reactivate": True, "active_model": + "project.task", "search_default_project_id": False, "search_default_user_id": + 1, "search_default_current": 1, "active_ids": [ref("project_task_technicaltraining0")], "active_id": ref("project_task_technicaltraining0"), + }) +- + Check for effective hours and remaining hours, remaining_hours must be 10 while planned_hours remains 30 +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After reevaluating the task with 10 hours remaining_hours must be 10 while planned_hours remains 30}: + - planned_hours == 30 + - remaining_hours == 10.0 + - effective_hours == 40.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Make a work task entry 'Training on yml' of 5 hours +- + !record {model: project.task, id: project_task_technicaltraining0}: + work_ids: + - date: '2010-05-31 16:55:27' + hours: 5.0 + name: Training on yml + user_id: base.user_root +- + Check for effective hours and remaining hours +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After work task of 5 hours effective_hours must be equal to 45 and remaining_hours is 5}: + - planned_hours == 30 + - remaining_hours == 5.0 + - effective_hours == 45.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Close the task +- + !python {model: project.task}: | + self.do_close(cr, uid, [ref("project_task_technicaltraining0")], {"lang": "en_US", "active_ids": [ref("project.menu_action_view_task")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_user_id": 1, "search_default_current": 1, "project_id": + False, "active_id": ref("project.menu_action_view_task"), }) +- + Check if task in done state +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error}: + - state == "done" +- + Check for effective hours and remaining hours +- + !assert {model: project.task, id: project_task_technicaltraining0, severity: error, string: After closing the task planned_hours must remain 30 effective_hours must be 45 and remaining hours must be 0}: + - planned_hours == 30 + - remaining_hours == 0.0 + - effective_hours == 45.0 + - total_hours == effective_hours + remaining_hours + - delay_hours == total_hours - planned_hours +- + Close project 'OpenERP Training Programme' +- + !python {model: project.project}: | + self.set_done(cr, uid, [ref("project_project_openerptrainingprogramme0")], {"lang": "en_US", "active_ids": [ref("project.menu_open_view_project_all")], + "tz": False, "active_model": "ir.ui.menu", "project_id": False, "active_id": + ref("project.menu_open_view_project_all"), }) +- + Check if project in close state +- + !assert {model: project.project, id: project_project_openerptrainingprogramme0, severity: error}: + - state == "close" + \ No newline at end of file diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py index 7c8dc035e0f..ba46d295234 100644 --- a/addons/project_gtd/__openerp__.py +++ b/addons/project_gtd/__openerp__.py @@ -50,6 +50,9 @@ performing those tasks. 'wizard/project_gtd_fill_view.xml', ], 'demo_xml': ['project_gtd_demo.xml'], + 'test':[ + 'test/gtd_test.yml' + ], 'installable': True, 'active': False, 'certificate': '0043525236301', diff --git a/addons/project_gtd/test/gtd_test.yml b/addons/project_gtd/test/gtd_test.yml new file mode 100644 index 00000000000..84422af3467 --- /dev/null +++ b/addons/project_gtd/test/gtd_test.yml @@ -0,0 +1,80 @@ +- + Create a task 'Develop time management module' with monthly timebox +- + !record {model: project.task, id: project_task_developtimemanagementmodule0}: + date_end: '2010-06-04 10:00:00' + date_start: '2010-06-02 14:42:21' + name: Develop time management module + planned_hours: 15.0 + project_id: project.project_project_22 + remaining_hours: 15.0 + state: draft + timebox_id: project_gtd.timebox_monthly + + +- + Open the task +- + !python {model: project.task}: | + self.do_open(cr, uid, [ref("project_task_developtimemanagementmodule0")], {"lang": + "en_US", "project_id": False, "tz": False, "active_model": "ir.ui.menu", + "department_id": False, "section_id": False, "search_default_project_id": + False, "search_default_user_id": 1, "search_default_current": 1, "active_ids": + [ref("project.menu_action_view_task")], "active_id": ref("project.menu_action_view_task"), + }) + +- + Create time box for next week +- + !record {model: project.gtd.timebox, id: project_gtd_timebox_nextweek0}: + name: Next Week + sequence: 0.0 + +- + Create time box for tomorrow +- + !record {model: project.gtd.timebox, id: project_gtd_timebox_tomorrow1}: + name: Tomorrow + sequence: 0.0 + +- + Planify the task from monthly timebox to tomorrow timebox +- + !record {model: project.timebox.fill.plan, id: project_timebox_fill_plan_0}: + task_ids: + - project_task_developtimemanagementmodule0 + timebox_id: project_gtd.timebox_monthly + timebox_to_id: project_gtd_timebox_tomorrow1 + + +- + Set the task to tomorrow timebox +- + !python {model: project.timebox.fill.plan}: | + self.process(cr, uid, [ref("project_timebox_fill_plan_0")], {"lang": "en_US", + "project_id": False, "tz": False, "active_model": "project.gtd.timebox", + "department_id": False, "section_id": False, "record_id": 1, "active_ids": + [ref("project_gtd.timebox_daily")], "active_id": ref("project_gtd.timebox_daily"), + }) + +- + Check if task set to tomorrow timebox +- + !assert {model: project.task, id: project_task_developtimemanagementmodule0, string: Task set to tomorrow timebox}: + - timebox_id.id == ref("project_gtd_timebox_tomorrow1") + +- + Empty Timebox for tomorrow +- + !python {model: project.timebox.empty}: | + self._empty(cr, uid, {"lang": "en_US", + "project_id": False, "tz": False, "active_model": "project.gtd.timebox", + "department_id": False, "section_id": False, "record_id": 1, "active_ids": + [ref("project_gtd_timebox_tomorrow1")], "active_id": ref("project_gtd_timebox_tomorrow1"), + }) + +- + Check task 'Develop time management module' is no more in tomorrow timebox +- + !assert {model: project.task, id: project_task_developtimemanagementmodule0, string: Task is not in tomorrow timebox}: + - timebox_id.id != ref("project_gtd_timebox_tomorrow1") \ No newline at end of file diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index 982d1688014..f9f38fca8e3 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -47,6 +47,10 @@ 'security/ir.model.access.csv', ], 'demo_xml': ['project_issue_demo.xml'], + 'test' : [ + 'test/convert_issue_to_task.yml', + 'test/test_project_issue_states.yml' + ], 'installable': True, 'active': False, } diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index ecc42a00be2..0f6979cca9c 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -69,13 +69,14 @@ class project_issue(osv.osv, crm.crm_case): duration = 0 ans = False hours = 0 - + if field in ['working_hours_open','day_open']: if issue.date_open: date_create = datetime.strptime(issue.create_date, "%Y-%m-%d %H:%M:%S") date_open = datetime.strptime(issue.date_open, "%Y-%m-%d %H:%M:%S") ans = date_open - date_create date_until = issue.date_open + #Calculating no. of working hours to open the issue hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id, mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), mx.DateTime.strptime(issue.date_open, '%Y-%m-%d %H:%M:%S')) @@ -85,6 +86,7 @@ class project_issue(osv.osv, crm.crm_case): date_close = datetime.strptime(issue.date_closed, "%Y-%m-%d %H:%M:%S") date_until = issue.date_closed ans = date_close - date_create + #Calculating no. of working hours to close the issue hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id, mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), mx.DateTime.strptime(issue.date_closed, '%Y-%m-%d %H:%M:%S')) @@ -119,38 +121,38 @@ class project_issue(osv.osv, crm.crm_case): return res _columns = { - 'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False), - 'id': fields.integer('ID'), + 'thread_id': fields.many2one('mailgate.thread', 'Thread', required=False), + 'id': fields.integer('ID'), 'name': fields.char('Name', size=128, required=True), - 'active': fields.boolean('Active', required=False), + 'active': fields.boolean('Active', required=False), 'create_date': fields.datetime('Creation Date' , readonly=True), 'write_date': fields.datetime('Update Date' , readonly=True), 'date_deadline': fields.date('Deadline'), 'date_closed': fields.datetime('Closed', readonly=True), 'section_id': fields.many2one('crm.case.section', 'Sales Team', \ select=True, help='Sales team to which Case belongs to.\ - Define Responsible user and Email account for mail gateway.'), + Define Responsible user and Email account for mail gateway.'), 'user_id': fields.many2one('res.users', 'Responsible'), 'partner_id': fields.many2one('res.partner', 'Partner'), 'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \ - domain="[('partner_id','=',partner_id)]"), - 'company_id': fields.many2one('res.company', 'Company'), - 'description': fields.text('Description'), + domain="[('partner_id','=',partner_id)]"), + 'company_id': fields.many2one('res.company', 'Company'), + 'description': fields.text('Description'), 'state': fields.selection([ - ('draft', 'Draft'), - ('open', 'Todo'), - ('cancel', 'Cancelled'), - ('done', 'Closed'), + ('draft', 'Draft'), + ('open', 'Todo'), + ('cancel', 'Cancelled'), + ('done', 'Closed'), ('pending', 'Pending'), - ], 'State', size=16, readonly=True, + ], 'State', size=16, readonly=True, help='The state is set to \'Draft\', when a case is created.\ \nIf the case is in progress the state is set to \'Open\'.\ \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), - 'email_from': fields.char('Email', size=128, help="These people will receive email."), + \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), + 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'email_cc': fields.text('Watchers Emails', size=252 , help="These people\ will receive a copy of the future" \ -" communication between partner and users by email"), +" communication between partner and users by email"), 'date_open': fields.datetime('Opened', readonly=True), # Project Issue fields 'date_closed': fields.datetime('Closed', readonly=True), @@ -178,7 +180,7 @@ class project_issue(osv.osv, crm.crm_case): 'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \ method=True, multi='working_days_close', type="float", store=True), } - + def _get_project(self, cr, uid, context): user = self.pool.get('res.users').browse(cr,uid,uid, context=context) if user.context_project_id: @@ -187,14 +189,14 @@ class project_issue(osv.osv, crm.crm_case): _defaults = { 'active': lambda *a: 1, - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'partner_address_id': crm.crm_case._get_default_partner_address, - 'email_from': crm.crm_case. _get_default_email, + 'user_id': crm.crm_case._get_default_user, + 'partner_id': crm.crm_case._get_default_partner, + 'partner_address_id': crm.crm_case._get_default_partner_address, + 'email_from': crm.crm_case. _get_default_email, 'state': lambda *a: 'draft', - 'section_id': crm.crm_case. _get_section, - 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), - 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], + 'section_id': crm.crm_case. _get_section, + 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), + 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'project_id':_get_project, } @@ -275,7 +277,7 @@ class project_issue(osv.osv, crm.crm_case): if not stage.on_change: return {'value':{}} return {'value':{}} - + def case_escalate(self, cr, uid, ids, *args): """Escalates case to top level @param self: The object pointer @@ -284,16 +286,17 @@ class project_issue(osv.osv, crm.crm_case): @param ids: List of case Ids @param *args: Tuple Value for additional Params """ - res = super(project_issue, self).case_escalate(cr, uid, ids, args) cases = self.browse(cr, uid, ids) for case in cases: data = {} if case.project_id.project_escalation_id: data['project_id'] = case.project_id.project_escalation_id.id + if case.project_id.project_escalation_id.user_id: + data['user_id'] = case.project_id.project_escalation_id.user_id.id else: - raise osv.except_osv(_('Warning !'), _('You cannot escalate this case.\nThe relevant Project has not configured the Escalation Project!')) + raise osv.except_osv(_('Warning !'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!')) self.write(cr, uid, [case.id], data) - return res + return True project_issue() diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml index 9a4bb521cfd..c9bb771a2ac 100644 --- a/addons/project_issue/project_issue_menu.xml +++ b/addons/project_issue/project_issue_menu.xml @@ -14,7 +14,7 @@ tree,calendar - {"search_default_user_id": uid, "search_default_my_bugs":1,"search_default_current_bugs":1,"search_default_project_id":project_id} + {"search_default_user_id": uid,"search_default_current":1,"search_default_project_id":project_id} @@ -36,6 +36,15 @@ + + diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index dd3ed036691..a5009b7eb47 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -32,6 +32,8 @@ + + @@ -39,8 +41,6 @@ - - @@ -73,40 +73,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -144,6 +110,40 @@ context="{'mail':'new', 'model': 'project.issue'}" icon="gtk-go-forward" type="action" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153,7 +153,7 @@ project.issue tree - + @@ -186,13 +186,11 @@ search - - + + - - - - - - - - - + + + + - + + - - diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py index 70a08e2c7b4..92f170eb556 100644 --- a/addons/project_issue/report/project_issue_report.py +++ b/addons/project_issue/report/project_issue_report.py @@ -9,7 +9,6 @@ AVAILABLE_STATES = [ ('done', 'Closed'), ('pending','Pending') ] - class project_issue_report(osv.osv): _name = "project.issue.report" _auto = False @@ -51,9 +50,9 @@ class project_issue_report(osv.osv): _columns = { 'name': fields.char('Year', size=64, required=False, readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'user_id':fields.many2one('res.users', 'Responsible', readonly=True), + 'user_id2':fields.many2one('res.users', 'Assigned To', readonly=True), 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True), - 'nbr': fields.integer('# of Cases', readonly=True), 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"), 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"), @@ -65,23 +64,30 @@ class project_issue_report(osv.osv): ('09', 'September'), ('10', 'October'),\ ('11', 'November'), ('12', 'December')], 'Month', readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), - 'create_date': fields.datetime('Create Date', readonly=True), 'day': fields.char('Day', size=128, readonly=True), + 'opening_date': fields.date('Opening Date', readonly=True), + 'creation_date': fields.date('Creation Date', readonly=True), + 'date_closed': fields.date('Closed Date', readonly=True), 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"), 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'project.issue')]"), 'nbr': fields.integer('# of Issues', readonly=True), + 'working_hours_open': fields.float('# Working Open Hours', readonly=True), + 'working_hours_close': fields.float('# Working Closing Hours', readonly=True), + 'delay_open': fields.float('Avg opening Delay', digits=(16,2), readonly=True, group_operator="avg", + help="Number of Days to close the project issue"), 'delay_close': fields.float('Avg Closing Delay', digits=(16,2), readonly=True, group_operator="avg", help="Number of Days to close the project issue"), 'company_id' : fields.many2one('res.company', 'Company'), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'), 'project_id':fields.many2one('project.project', 'Project',readonly=True), - 'type_id': fields.many2one('crm.case.resource.type', 'Type', domain="[('object_id.model', '=', 'project.issue')]"), - 'date_closed': fields.datetime('Close Date', readonly=True), + 'type_id': fields.many2one('crm.case.resource.type', 'Version', domain="[('object_id.model', '=', 'project.issue')]"), + 'user_id2losed': fields.date('Close Date', readonly=True), 'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True), 'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"), 'canal_id': fields.many2one('res.partner.canal', 'Channel',readonly=True), 'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ) } + def init(self, cr): tools.drop_view_if_exists(cr, 'project_issue_report') cr.execute(""" @@ -91,51 +97,60 @@ class project_issue_report(osv.osv): to_char(c.create_date, 'YYYY') as name, to_char(c.create_date, 'MM') as month, to_char(c.create_date, 'YYYY-MM-DD') as day, + to_char(c.date_open, 'YYYY-MM-DD') as opening_date, + to_char(c.create_date, 'YYYY-MM-DD') as creation_date, c.state, c.user_id, + c.working_hours_open, + c.working_hours_close, c.section_id, c.categ_id, c.stage_id, - to_char(c.date_closed, 'YYYY/mm/dd') as date_closed, - u.company_id as company_id, + to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, + c.company_id as company_id, c.priority as priority, c.project_id as project_id, c.type_id as type_id, - count(*) as nbr, + (select 1) as nbr, c.assigned_to, c.partner_id, c.canal_id, c.task_id, date_trunc('day',c.create_date) as create_date, + avg(extract('epoch' from (c.date_open-c.create_date)))/(3600*24) as delay_open, avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close from project_issue c - left join - res_users u on (c.id = u.id) + where c.categ_id in (select res_id from ir_model_data where name='bug_categ') group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), to_char(c.create_date, 'YYYY-MM-DD'), c.state, + to_char(c.date_open, 'YYYY-MM-DD'), + to_char(c.date_closed, 'YYYY-mm-dd'), c.user_id, c.section_id, c.categ_id, c.stage_id, - c.date_closed, - u.company_id, + c.company_id, c.priority, + c.working_hours_open, + c.working_hours_close, c.project_id, + to_char(c.date_closed, 'YYYY-MM-DD'), c.type_id, + c.working_hours_open, + c.working_hours_close, date_trunc('day',c.create_date), c.assigned_to, c.partner_id, c.canal_id, c.task_id - )""") - + )""") project_issue_report() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml index adc1b3c662f..b4d0af02185 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_view.xml @@ -12,10 +12,9 @@ - + - @@ -24,10 +23,13 @@ - + + + + @@ -51,29 +53,25 @@ - - - - - - - + + - - - + - - - - - + + + + + + + + - + + + + + + - - - - - - - - - - - - - - + + - - - - + + - - - - - - - - - - - + + + + - - @@ -179,7 +154,7 @@ project.issue.report form graph,tree - {"search_default_This Month":1,"search_default_User":1,"search_default_user_id":uid,'group_by_no_leaf':1,'group_by':[]} + {'search_default_This Month':1,'search_default_project':1,'group_by_no_leaf':1,'group_by':[]} diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv index 811387ed55e..2a0b1f24bce 100755 --- a/addons/project_issue/security/ir.model.access.csv +++ b/addons/project_issue/security/ir.model.access.csv @@ -1,3 +1,11 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_project_issue","project.issue","model_project_issue","crm.group_crm_manager",1,1,1,1 -"access_project_issue_report","project.issue.report","model_project_issue_report","crm.group_crm_manager",1,0,0,0 +"access_project_issue_all","project.issue","model_project_issue","project.group_project_manager",1,1,1,1 +"access_project_issue","project.issue","model_project_issue","project_issue.group_project_supporter",1,1,1,1 +"access_project_issue_report_all","project.issue.report","model_project_issue_report","project.group_project_manager",1,1,1,1 +"access_project_issue_report","project.issue.report","model_project_issue_report","project_issue.group_project_supporter",1,1,1,1 +"access_crm_case_categ_id","crm.case.categ","crm.model_crm_case_categ","project.group_project_manager",1,1,1,1 +"access_crm_case_categ_supp","crm.case.categ","crm.model_crm_case_categ","project_issue.group_project_supporter",1,0,0,0 +"access_crm_case_resource_type_project","crm_case_resource_type manager","crm.model_crm_case_resource_type","project.group_project_manager",1,1,1,1 +"access_crm_case_resource_supp","crm_case_resource_type manager","crm.model_crm_case_resource_type","project_issue.group_project_supporter",1,0,0,0 +"access_crm_case_stage_project","crm.case.stage","crm.model_crm_case_stage","project.group_project_manager",1,1,1,1 +"access_crm_case_stage_manager_suppo","crm.case.stage","crm.model_crm_case_stage","project_issue.group_project_supporter",1,0,0,0 diff --git a/addons/project_issue/security/project_issue_security.xml b/addons/project_issue/security/project_issue_security.xml index 4f7c16cb70b..82b6c003d91 100644 --- a/addons/project_issue/security/project_issue_security.xml +++ b/addons/project_issue/security/project_issue_security.xml @@ -2,12 +2,9 @@ - - project.issue.rule.group - - - ['|',('project_id','=',False),('project_id','=',user.context_project_id)] + + Project / Support Manager - + diff --git a/addons/project_issue/test/convert_issue_to_task.yml b/addons/project_issue/test/convert_issue_to_task.yml new file mode 100644 index 00000000000..13ddef69251 --- /dev/null +++ b/addons/project_issue/test/convert_issue_to_task.yml @@ -0,0 +1,32 @@ +- + Create an issue +- + !record {model: project.issue, id: project_issue_onchangeevent0}: + categ_id: project_issue.bug_categ + name: on_change event does not pass context to the method + project_id: project.project_project_22 + working_hours_close: 0.0 + working_hours_open: 0.0 + +- + Check there is no task attached to issue +- + !assert {model: project.issue, id: project_issue_onchangeevent0, string: There must not be any task attached to issue}: + - task_id.id == False + +- + Convert issue to task +- + !python {model: project.issue}: | + self.convert_issue_task(cr, uid, [ref("project_issue_onchangeevent0")], + {"lang": "en_US", "project_id": False, "tz": False, "active_model": "ir.ui.menu", + "department_id": False, "section_id": False, "search_default_project_id": + False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs": + 1, "active_ids": [ref("project_issue.menu_project_issue_track")], "active_id": + ref("project_issue.menu_project_issue_track"), }) + +- + Check there is a task attached to issue +- + !assert {model: project.issue, id: project_issue_onchangeevent0, string: After creating a task for the issue there must be a task attached to it}: + - task_id.id != False diff --git a/addons/project_issue/test/test_project_issue_states.yml b/addons/project_issue/test/test_project_issue_states.yml new file mode 100644 index 00000000000..ee48c9a9df0 --- /dev/null +++ b/addons/project_issue/test/test_project_issue_states.yml @@ -0,0 +1,112 @@ +- + Create an issue +- + !record {model: project.issue, id: project_issue_stockmovedates0}: + categ_id: project_issue.bug_categ + name: Stock Move dates + project_id: project.project_project_22 + working_hours_close: 0.0 + working_hours_open: 0.0 +- + Check if issue in 'draft' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}: + - state == 'draft' + +- + Open the issue +- + !python {model: project.issue}: | + self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang": + "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz": + False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs": + 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id": + False, "active_id": ref("project_issue.menu_project_issue_track"), }) +- + Check if issue in 'open' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}: + - state == 'open' + +- + Keep issue pending +- + !python {model: project.issue}: | + self.case_pending(cr, uid, [ref("project_issue_stockmovedates0")], + {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs": + 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"), + }) +- + Check if issue in 'pending' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in pending state}: + - state == 'pending' + + +- + Open the issue +- + !python {model: project.issue}: | + self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang": + "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz": + False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs": + 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id": + False, "active_id": ref("project_issue.menu_project_issue_track"), }) +- + Check if issue in 'open' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}: + - state == 'open' + + +- + Cancel the issue +- + !python {model: project.issue}: | + self.case_cancel(cr, uid, [ref("project_issue_stockmovedates0")], + {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs": + 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"), + }) +- + Check if issue in 'cancel' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in cancel state}: + - state == 'cancel' + + +- + Reset the issue +- + !python {model: project.issue}: | + self.case_reset(cr, uid, [ref("project_issue_stockmovedates0")], + {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs": + 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"), + }) +- + Check if issue in 'draft' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}: + - state == 'draft' + + +- + Close the issue +- + !python {model: project.issue}: | + self.case_close(cr, uid, [ref("project_issue_stockmovedates0")], + {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], + "tz": False, "active_model": "ir.ui.menu", "search_default_project_id": + False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs": + 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"), + }) +- + Check if issue in 'done' state +- + !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in done state}: + - state == 'done' diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py index 32945899b30..7bc0e3c9984 100644 --- a/addons/project_long_term/__openerp__.py +++ b/addons/project_long_term/__openerp__.py @@ -38,6 +38,11 @@ """, "init_xml" : [], "demo_xml" : ["project_long_term_demo.xml"], + "test" : [ + 'test/schedule_project_phases.yml', + 'test/schedule_project_tasks.yml', + 'test/schedule_phase_tasks.yml' + ], "update_xml": [ "security/ir.model.access.csv", "project_long_term_wizard.xml" , diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml new file mode 100644 index 00000000000..7af72f05824 --- /dev/null +++ b/addons/project_long_term/test/schedule_phase_tasks.yml @@ -0,0 +1,101 @@ +- + Create project 'Develop an outlook-openerp synchronization plugin' +- + !record {model: project.project, id: project_project_project0}: + company_id: base.main_company + name: Project123 + members: + - project_long_term.res_users_manager0 + - project_long_term.res_users_user0 + - project_long_term.res_users_userfinance0 + - project_long_term.res_users_userdesign0 + - project_long_term.res_users_userdeveloper0 + - project_long_term.res_users_usertester0 + - project_long_term.res_users_useranalyst0 +- + Create phase 'Develop GUI' in Outlook +- + !record {model: project.phase, id: project_phase_phase0}: + date_start: '2010-06-02 00:00:00' + duration: 200.0 + name: phase123 + product_uom: product.uom_day + project_id: project_project_project0 + state: draft + resource_ids: + - resource_id: project_long_term.resource_resource_analyst0 + useability: 80.0 + - resource_id: project_long_term.resource_resource_programmer0 + useability: 30.0 + - resource_id: project_long_term.resource_resource_webdesigner0 + useability: 30.0 + + +- + Create the phase task 'Develop GUI for Server Configuration' +- + !record {model: project.task, id: project_task_t0}: + name: t1 + occupation_rate: 1.0 + planned_hours: 20.0 + remaining_hours: 20.0 + state: draft + phase_id: project_phase_phase0 + project_id: project_project_project0 + + +- + Create the phase task 'Develop GUI for Modules Configuration' +- + !record {model: project.task, id: project_task_t1}: + name: t2 + occupation_rate: 1.0 + planned_hours: 25.0 + remaining_hours: 25.0 + state: draft + phase_id: project_phase_phase0 + project_id: project_project_project0 + +- + Create the phase task 'Develop GUI for OpenERP Synchronisation' +- + !record {model: project.task, id: project_task_t2}: + name: t3 + occupation_rate: 1.0 + planned_hours: 30.0 + remaining_hours: 30.0 + state: draft + phase_id: project_phase_phase0 + project_id: project_project_project0 + + +- + Create the phase task 'Develop required Menus' +- + !record {model: project.task, id: project_task_3}: + name: t4 + occupation_rate: 1.0 + planned_hours: 25.0 + remaining_hours: 25.0 + state: draft + phase_id: project_phase_phase0 + project_id: project_project_project0 + + +- + Schedule phase tasks +- + !python {model: project.schedule.tasks}: | + self.compute_date(cr, uid, {"lang": "en_US", + "active_model": "project.phase", "active_ids": [ref("project_phase_phase0")], + "tz": False, "record_id": 138, "project_id": ref("project_project_project0"), "active_id": ref("project_phase_phase0"), + }) + +- + Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null +- + !python {model: project.phase}: | + phase=self.browse(cr, uid, [ref("project_phase_phase0")])[0] + for task in phase.task_ids: + if (not task.user_id) or (not task.date_start) or (not task.date_end): + raise AssertionError("Phase Tasks not scheduled") \ No newline at end of file diff --git a/addons/project_long_term/test/schedule_project_phases.yml b/addons/project_long_term/test/schedule_project_phases.yml new file mode 100644 index 00000000000..470f2dc2e48 --- /dev/null +++ b/addons/project_long_term/test/schedule_project_phases.yml @@ -0,0 +1,143 @@ +- + Create a project 'World Bank's Project' +- + !record {model: project.project, id: project_project_worldbanksproject0}: + company_id: base.main_company + name: "World Bank's Project" + priority: 4 + +- + Create a project phase 'Defining Client's Basic Idea of Project' +- + !record {model: project.phase, id: project_phase_definingclientsbasicideaofproject0}: + date_start: '2010-06-02 00:00:00' + duration: 15.0 + name: "Defining Client's Basic Idea of Project" + product_uom: product.uom_day + project_id: project_project_worldbanksproject0 + state: draft + + +- + Create project phase 'Establishing Project Feasibility' +- + !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}: + date_start: '2010-06-02 00:00:00' + duration: 30.0 + name: Establishing Project Feasibility + product_uom: product.uom_day + project_id: project_project_worldbanksproject0 + state: draft + +- + Create project phase 'Preparation of Engineering Designs' +- + !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}: + date_start: '2010-06-02 00:00:00' + duration: 100.0 + name: Preparation of Engineering Designs + product_uom: product.uom_hour + project_id: project_project_worldbanksproject0 + state: draft + + +- + Create project phase 'Procurement of Works and Goods' +- + !record {model: project.phase, id: project_phase_procurementofworksandgoods0}: + date_start: '2010-06-02 00:00:00' + duration: 24.0 + name: Procurement of Works and Goods + product_uom: product.uom_hour + project_id: project_project_worldbanksproject0 + state: draft + + +- + Create project phase 'Project Construction' +- + !record {model: project.phase, id: project_phase_projectconstruction0}: + date_start: '2010-06-02 00:00:00' + duration: 4320.0 + name: Project Construction + product_uom: product.uom_hour + project_id: project_project_worldbanksproject0 + state: draft + + +- + Create project phase 'Project Completion' +- + !record {model: project.phase, id: project_phase_projectcompletion0}: + date_start: '2010-06-02 00:00:00' + duration: 240.0 + name: Project Completion + product_uom: product.uom_hour + project_id: project_project_worldbanksproject0 + state: draft + +- + Set previous phase for phase 'Establishing Project Feasibility' +- + !record {model: project.phase, id: project_phase_establishingprojectfeasibility0}: + previous_phase_ids: + - project_phase_definingclientsbasicideaofproject0 + + +- + Set previous phase for phase 'Preparation of Engineering Designs' +- + !record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}: + previous_phase_ids: + - project_phase_establishingprojectfeasibility0 + +- + Set previous phase for phase 'Procurement of Works and Goods' +- + !record {model: project.phase, id: project_phase_procurementofworksandgoods0}: + previous_phase_ids: + - project_phase_preparationofengineeringdesigns0 + +- + Set previous phase for phase 'Project Construction' +- + !record {model: project.phase, id: project_phase_projectconstruction0}: + previous_phase_ids: + - project_phase_procurementofworksandgoods0 + + +- + Set previous phase for phase 'Project Completion' +- + !record {model: project.phase, id: project_phase_projectcompletion0}: + previous_phase_ids: + - project_phase_projectconstruction0 + + +- + Get the project to schedule phases +- + !record {model: project.compute.phases, id: project_compute_phases_0}: + project_id: project_project_worldbanksproject0 + target_project: one + + +- + Schedule project phases +- + !python {model: project.compute.phases}: | + self.check_selection(cr, uid, [ref("project_compute_phases_0")], {"lang": "en_US", + "project_id": False, "tz": False, "active_model": "ir.ui.menu", "department_id": + False, "section_id": False, "record_id": 279, "active_ids": [ref("project_long_term.menu_compute_phase")], + "active_id": ref("project_long_term.menu_compute_phase"), }) + +- + Check if phases scheduled, check that either of phase's start_date, end_date and user_id is not null +- + !python {model: project.project}: | + prj=self.browse(cr, uid, [ref("project_project_worldbanksproject0")])[0] + for task in prj.tasks: + if (not task.user_id) or (not task.date_start) or (not task.date_end): + raise AssertionError("Tasks not scheduled") + + \ No newline at end of file diff --git a/addons/project_long_term/test/schedule_project_tasks.yml b/addons/project_long_term/test/schedule_project_tasks.yml new file mode 100644 index 00000000000..40dbd07b3ff --- /dev/null +++ b/addons/project_long_term/test/schedule_project_tasks.yml @@ -0,0 +1,108 @@ +- + Create project 'Develop a thunderbird-openerp synchronization plugin' +- + !record {model: project.project, id: project_project_project1}: + company_id: base.main_company + name: Project2 + members: + - project_long_term.res_users_manager0 + - project_long_term.res_users_user0 + - project_long_term.res_users_userfinance0 + - project_long_term.res_users_userdesign0 + - project_long_term.res_users_userdeveloper0 + - project_long_term.res_users_usertester0 + - project_long_term.res_users_useranalyst0 + +- + Create phase 'Develop GUI' in Thunderbird +- + !record {model: project.phase, id: project_phase_phase1}: + date_start: '2010-06-02 00:00:00' + duration: 100.0 + name: phase22 + product_uom: product.uom_day + project_id: project_project_project1 + state: draft + resource_ids: + - resource_id: project_long_term.resource_resource_analyst0 + useability: 80.0 + - resource_id: project_long_term.resource_resource_programmer0 + useability: 30.0 + - resource_id: project_long_term.resource_resource_webdesigner0 + useability: 30.0 + + +- + Create the phase task 'Develop GUI for Server Configuration' +- + !record {model: project.task, id: project_task_t00}: + name: t1 + occupation_rate: 1.0 + planned_hours: 20.0 + remaining_hours: 20.0 + state: draft + phase_id: project_phase_phase1 + project_id: project_project_project1 + + +- + Create the phase task 'Develop GUI for Modules Configuration' +- + !record {model: project.task, id: project_task_t11}: + name: t2 + occupation_rate: 1.0 + planned_hours: 25.0 + remaining_hours: 25.0 + state: draft + phase_id: project_phase_phase1 + project_id: project_project_project1 + +- + Create the phase task 'Develop GUI for OpenERP Synchronisation' +- + !record {model: project.task, id: project_task_t22}: + name: t3 + occupation_rate: 1.0 + planned_hours: 30.0 + remaining_hours: 30.0 + state: draft + phase_id: project_phase_phase1 + project_id: project_project_project1 + + +- + Create the phase task 'Develop required Menus' +- + !record {model: project.task, id: project_task_t33}: + name: t4 + occupation_rate: 1.0 + planned_hours: 25.0 + remaining_hours: 25.0 + state: draft + phase_id: project_phase_phase1 + project_id: project_project_project1 + +- + Get the project to schedule the tasks +- + !record {model: project.compute.tasks, id: project_compute_tasks_0}: + project_id: project_project_project1 + + +- + Schedule tasks +- + !python {model: project.compute.tasks}: | + self.compute_date(cr, uid, [ref("project_compute_tasks_0")], {"lang": "en_US", + "active_model": "ir.ui.menu", "active_ids": [ref("project_long_term.menu_compute_tasks")], + "tz": False, "record_id": 138, "project_id": ref("project_project_project1"), "active_id": ref("project_long_term.menu_compute_tasks"), + }) + +- + Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null +- + !python {model: project.project}: | + prj=self.browse(cr, uid, [ref("project_project_project1")])[0] + for task in prj.tasks: + if (not task.user_id) or (not task.date_start) or (not task.date_end): + raise AssertionError("Project Tasks not scheduled") \ No newline at end of file diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml index 0a3b2e12336..6bbb01ca7e4 100644 --- a/addons/project_long_term/wizard/project_compute_phases_view.xml +++ b/addons/project_long_term/wizard/project_compute_phases_view.xml @@ -8,22 +8,22 @@ form - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/addons/project_long_term/wizard/project_compute_tasks.py b/addons/project_long_term/wizard/project_compute_tasks.py index 9f2eb707c60..af5ceaea676 100644 --- a/addons/project_long_term/wizard/project_compute_tasks.py +++ b/addons/project_long_term/wizard/project_compute_tasks.py @@ -112,9 +112,9 @@ class project_compute_tasks(osv.osv_memory): if each_task.priority in priority_dict.keys(): priorty = priority_dict[each_task.priority] if each_task.user_id: - for resource in resources: - if resource.__name__ == each_task.user_id.name: # check me!! - task = create_tasks(i, hours, priorty, resource) + for resrce in resources: + if resrce.__name__ == each_task.user_id.name: # check me!! + task = create_tasks(i, hours, priorty, resrce) else: task = create_tasks(i, hours, priorty) i += 1 diff --git a/addons/project_long_term/wizard/project_schedule_tasks.py b/addons/project_long_term/wizard/project_schedule_tasks.py index 8ec2d4c16e0..3e01c25e975 100644 --- a/addons/project_long_term/wizard/project_schedule_tasks.py +++ b/addons/project_long_term/wizard/project_schedule_tasks.py @@ -131,9 +131,9 @@ class project_schedule_task(osv.osv_memory): if each_task.priority in priority_dict.keys(): priorty = priority_dict[each_task.priority] if each_task.user_id: - for resource in resources: - if resource.__name__ == each_task.user_id.name: - task = create_tasks(i, hours, priorty, resource) + for resrce in resources: + if resrce.__name__ == each_task.user_id.name: + task = create_tasks(i, hours, priorty, resrce) else: task = create_tasks(i, hours, priorty) i += 1 diff --git a/addons/project_planning/__openerp__.py b/addons/project_planning/__openerp__.py index 87a68a2e410..4496239e8c4 100644 --- a/addons/project_planning/__openerp__.py +++ b/addons/project_planning/__openerp__.py @@ -53,6 +53,9 @@ At the end of the month, the planning manager can also check if the encoded time #'report_account_analytic.planning.csv', 'project_planning_demo.xml', ], + 'test': [ + 'test/planning_states.yml' + ], 'installable': True, 'active': False, 'certificate': '0034901836973', diff --git a/addons/project_planning/test/planning_states.yml b/addons/project_planning/test/planning_states.yml new file mode 100644 index 00000000000..12dd38c8247 --- /dev/null +++ b/addons/project_planning/test/planning_states.yml @@ -0,0 +1,86 @@ +- + Create a analytic planning 'Project Planning' +- + !record {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0}: + business_days: 20 + date_from: '2010-06-01' + date_to: '2010-06-30' + name: Project Planning + state: draft + user_id: base.user_demo + + +- + Open the planning +- + !python {model: report_account_analytic.planning}: | + self.action_open(cr, uid, [ref("report_account_analytic_planning_projectplanning0")], + {"lang": "en_US", "active_ids": [ref("project_planning.menu_report_account_analytic_planning")], + "tz": False, "active_model": "ir.ui.menu", "section_id": False, "active_id": + ref("project_planning.menu_report_account_analytic_planning"), "search_default_user_id": + 1, "project_id": False, "department_id": False, }) +- + Check if planning in open state +- + !assert {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0, string: Planning in open state}: + - state == "open" + +- + Cancel the planning +- + !python {model: report_account_analytic.planning}: | + self.action_cancel(cr, uid, [ref("report_account_analytic_planning_projectplanning0")], + {"lang": "en_US", "active_ids": [ref("project_planning.menu_report_account_analytic_planning")], + "tz": False, "active_model": "ir.ui.menu", "section_id": False, "active_id": + ref("project_planning.menu_report_account_analytic_planning"), "search_default_user_id": + 1, "project_id": False, "department_id": False, }) +- + Check if planning in cancel state +- + !assert {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0, string: Planning in cancel state}: + - state == "cancel" + +- + Reopen the planning +- + !python {model: report_account_analytic.planning}: | + self.action_draft(cr, uid, [ref("report_account_analytic_planning_projectplanning0")], + {"lang": "en_US", "active_ids": [ref("project_planning.menu_report_account_analytic_planning")], + "tz": False, "active_model": "ir.ui.menu", "section_id": False, "active_id": + ref("project_planning.menu_report_account_analytic_planning"), "search_default_user_id": + 1, "project_id": False, "department_id": False, }) +- + Check if planning in draft state +- + !assert {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0, string: Planning in draft state}: + - state == "draft" + +- + Open the planning +- + !python {model: report_account_analytic.planning}: | + self.action_open(cr, uid, [ref("report_account_analytic_planning_projectplanning0")], + {"lang": "en_US", "active_ids": [ref("project_planning.menu_report_account_analytic_planning")], + "tz": False, "active_model": "ir.ui.menu", "section_id": False, "active_id": + ref("project_planning.menu_report_account_analytic_planning"), "search_default_user_id": + 1, "project_id": False, "department_id": False, }) +- + Check if planning in open state +- + !assert {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0, string: Planning in open state}: + - state == "open" + +- + Close the planning +- + !python {model: report_account_analytic.planning}: | + self.action_done(cr, uid, [ref("report_account_analytic_planning_projectplanning0")], + {"lang": "en_US", "active_ids": [ref("project_planning.menu_report_account_analytic_planning")], + "tz": False, "active_model": "ir.ui.menu", "section_id": False, "active_id": + ref("project_planning.menu_report_account_analytic_planning"), "search_default_user_id": + 1, "project_id": False, "department_id": False, }) +- + Check if planning in done state +- + !assert {model: report_account_analytic.planning, id: report_account_analytic_planning_projectplanning0, string: Planning in done state}: + - state == "done" \ No newline at end of file diff --git a/addons/project_retro_planning/__openerp__.py b/addons/project_retro_planning/__openerp__.py index 80601db9e81..e53b6b01233 100644 --- a/addons/project_retro_planning/__openerp__.py +++ b/addons/project_retro_planning/__openerp__.py @@ -25,13 +25,16 @@ 'version': '0.1', 'category': 'Generic Modules/Projects & Services', 'description': """ - - If deadline date of project is changed + - If deadline date of project is changed then the deadline date for all the tasks will change to the same """, 'author': 'Tiny', 'depends': ['base', 'project'], 'init_xml': [], 'update_xml': [], 'demo_xml': [], + 'test' : [ + 'test/deadline_change.yml' + ], 'installable': True, 'active': False, 'certificate': '0057235475485', diff --git a/addons/project_retro_planning/project_retro_planning.py b/addons/project_retro_planning/project_retro_planning.py index 3300ac0eebe..8e8975cbbf8 100644 --- a/addons/project_retro_planning/project_retro_planning.py +++ b/addons/project_retro_planning/project_retro_planning.py @@ -19,28 +19,27 @@ # ############################################################################## -from datetime import date,timedelta +from datetime import date,timedelta,datetime import time from osv import fields, osv -from datetime import datetime class project_project(osv.osv): _inherit = 'project.project' - def write(self, cr, uid, ids,vals, *args, **kwargs): if 'date' in vals and vals['date']: data_project = self.browse(cr,uid,ids) + project_task = self.pool.get('project.task') for prj in data_project: - c= date(*time.strptime(vals['date'],'%Y-%m-%d')[:3]) + new_end_date = date(*time.strptime(vals['date'],'%Y-%m-%d')[:3]) if prj.date: - d= date(*time.strptime(prj.date,'%Y-%m-%d')[:3]) + old_end_date = date(*time.strptime(prj.date,'%Y-%m-%d')[:3]) for task in prj.tasks: - start_dt = (datetime(*time.strptime(task.date_start,'%Y-%m-%d %H:%M:%S')[:6])+(c-d)).strftime('%Y-%m-%d %H:%M:%S') + start_dt = (datetime(*time.strptime(task.date_start,'%Y-%m-%d %H:%M:%S')[:6])+(new_end_date-old_end_date)).strftime('%Y-%m-%d %H:%M:%S') if task.date_deadline: - deadline_dt = (datetime(*time.strptime(task.date_deadline,'%Y-%m-%d %H:%M:%S')[:6])+(c-d)).strftime('%Y-%m-%d %H:%M:%S') - self.pool.get('project.task').write(cr,uid,task.id,{'date_start':start_dt, 'date_deadline':deadline_dt}) + deadline_dt = (datetime(*time.strptime(task.date_deadline,'%Y-%m-%d')[:6])+(new_end_date-old_end_date)).strftime('%Y-%m-%d') + project_task.write(cr,uid,task.id,{'date_start':start_dt, 'date_deadline':deadline_dt}) else: - self.pool.get('project.task').write(cr,uid,task.id,{'date_start':start_dt}) + project_task.write(cr,uid,task.id,{'date_start':start_dt}) return super(project_project,self).write(cr, uid, ids, vals, *args, **kwargs) project_project() diff --git a/addons/project_retro_planning/test/deadline_change.yml b/addons/project_retro_planning/test/deadline_change.yml new file mode 100644 index 00000000000..0778c5c883b --- /dev/null +++ b/addons/project_retro_planning/test/deadline_change.yml @@ -0,0 +1,48 @@ +- + Create project 'Retro Planning' +- + !record {model: project.project, id: project_project_retroplanning0}: + company_id: base.main_company + date: '2010-06-11' + name: Retro Planning + + +- + Create task 'Plan all projects' +- + !record {model: project.task, id: project_task_planallprojects0}: + date_deadline: '2010-06-07' + date_end: '2010-06-04 14:00:00' + date_start: '2010-06-01 17:25:32' + name: Plan all projects + planned_hours: 24.0 + project_id: project_project_retroplanning0 + remaining_hours: 24.0 + state: draft + +- + Check if task deadline_date and start_date changes upon changing its project's end_date +- + !python {model: project.project}: | + from datetime import datetime, date + import time + data_project = self.browse(cr,uid,[ref("project_project_retroplanning0")]) + prj = data_project[0] + old_end_date='' + if prj.date: + old_end_date = date(*time.strptime(prj.date,'%Y-%m-%d')[:3]) + if old_end_date: + new_end_date = date(*time.strptime('2010-06-10','%Y-%m-%d')[:3]) + res={} + for task in prj.tasks: + start_dt = (datetime(*time.strptime(task.date_start,'%Y-%m-%d %H:%M:%S')[:6])+(new_end_date-old_end_date)).strftime('%Y-%m-%d %H:%M:%S') + deadline_dt='' + if task.date_deadline: + deadline_dt = (datetime(*time.strptime(task.date_deadline,'%Y-%m-%d')[:6])+(new_end_date-old_end_date)).strftime('%Y-%m-%d') + res[task.id]=[start_dt,deadline_dt] + self.write(cr, uid, [ref("project_project_retroplanning0")], {'date':'2010-06-10'}) + data_project = self.browse(cr,uid,[ref("project_project_retroplanning0")]) + prj = data_project[0] + for task in prj.tasks: + assert task.date_start == res[task.id][0], "task start date differs, expected %s, got %s"%(res[task.id][0], task.date_start) + assert task.date_deadline == res[task.id][1], "task deadline date differs, expected %s, got %s"%(res[task.id][1], task.date_deadline) \ No newline at end of file diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py index f98a796a935..d87bb7eb2fc 100644 --- a/addons/project_timesheet/__openerp__.py +++ b/addons/project_timesheet/__openerp__.py @@ -35,6 +35,9 @@ 'init_xml': [], 'update_xml': ["process/project_timesheet_process.xml", "report/task_report_view.xml"], 'demo_xml': [], + 'test': [ + 'test/worktask_entry_to_timesheetline_entry.yml', + ], 'installable': True, 'active': False, 'certificate': '0075123647453', diff --git a/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml new file mode 100644 index 00000000000..7e275067673 --- /dev/null +++ b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml @@ -0,0 +1,102 @@ +- + Create an user 'HR Manager' +- + !record {model: res.users, id: res_users_hrmanager0}: + company_id: base.main_company + context_lang: en_US + login: hr + name: HR Manager + password: hr + +- + Create a product with type service used to specifies employees designation +- + !record {model: product.product, id: product_product_hrmanger0}: + categ_id: product.product_category_services + cost_method: standard + mes_type: fixed + name: HR Manger + procure_method: make_to_stock + standard_price: 1.0 + supply_method: buy + type: service + uom_id: product.product_uom_unit + uom_po_id: product.product_uom_unit + volume: 0.0 + warranty: 0.0 + weight: 0.0 + weight_net: 0.0 + +- + Create an analytic journal for employees timesheet +- + !record {model: account.analytic.journal, id: account_analytic_journal_hrtimesheet0}: + company_id: base.main_company + name: HR Timesheet + type: general + +- + Create an employee 'HR Manager' for user 'HR Manager' +- + !record {model: hr.employee, id: hr_employee_hrmanager0}: + name: HR Manager + user_id: res_users_hrmanager0 + product_id: product_product_hrmanger0 + journal_id: account_analytic_journal_hrtimesheet0 + +- + Create a timesheet sheet for hr manager +- + !record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_sheetforhrmanager0}: + date_current: '2010-06-03' + date_from: '2010-06-01' + date_to: '2010-06-30' + name: Sheet for hr manager + state: new + user_id: res_users_hrmanager0 + +- + Create a project 'Timesheet Management' +- + !record {model: project.project, id: project_project_timesheetmanagement0}: + company_id: base.main_company + name: Timesheet Management + + +- + Create a task 'Get all timesheet records' +- + !record {model: project.task, id: project_task_getalltimesheetrecords0}: + date_start: '2010-06-03 14:54:55' + name: Get all timesheet records + planned_hours: 20.0 + project_id: project_project_timesheetmanagement0 + remaining_hours: 20.0 + state: draft + user_id: res_users_hrmanager0 + +- + Open the task +- + !python {model: project.task}: | + self.do_open(cr, uid, [ref("project_task_getalltimesheetrecords0")], {"lang": + "en_US", "active_ids": [ref("project_project_timesheetmanagement0")], "tz": + False, "active_model": "project.project", "department_id": False, "project_id": + False, "active_id": ref("project_project_timesheetmanagement0"), }) + +- + Make a work task entry 'Get work calendar of all employees' of 10 hours done by hr manager +- + !record {model: project.task, id: project_task_getalltimesheetrecords0}: + work_ids: + - date: '2010-06-03 15:04:47' + hours: 10.0 + hr_analytic_timesheet_id: 3L + name: Get work calendar of all employees + user_id: res_users_hrmanager0 + +- + Check for timesheet_ids in hr manager's timesheet +- + !assert {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_sheetforhrmanager0, string: After hr manager's work task, length of timesheet line of current timesheet must be greater then 1}: + - len(timesheet_ids) > 0 \ No newline at end of file diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py index 46d7c3296b9..e172e5e73f1 100644 --- a/addons/purchase/__openerp__.py +++ b/addons/purchase/__openerp__.py @@ -34,7 +34,7 @@ 'depends': ['base', 'account', 'stock', 'process', 'mrp_procurement'], 'init_xml': [], 'update_xml': [ - + 'security/purchase_security.xml', 'security/ir.model.access.csv', 'purchase_workflow.xml', diff --git a/addons/purchase/i18n/pl.po b/addons/purchase/i18n/pl.po index af8ed99ffbe..09a529c020e 100644 --- a/addons/purchase/i18n/pl.po +++ b/addons/purchase/i18n/pl.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: purchase diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 443a279e3f2..2cfd4247bcf 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -726,22 +726,24 @@ class mrp_procurement(osv.osv): po_obj = self.pool.get('purchase.order') for procurement in self.browse(cr, uid, ids): res_id = procurement.move_id.id - partner = procurement.product_id.seller_ids[0].name - partner_id = partner.id + partner_list = sorted([(partner_id.sequence, partner_id) for partner_id in procurement.product_id.seller_ids if partner_id]) + partner_rec = partner_list and partner_list[0] and partner_list[0][1] or False + partner = partner_rec.name or False + partner_id = partner_rec.id or False address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery'] pricelist_id = partner.property_product_pricelist_purchase.id uom_id = procurement.product_id.uom_po_id.id qty = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, uom_id) - if procurement.product_id.seller_ids[0].qty: - qty = max(qty,procurement.product_id.seller_ids[0].qty) + if partner_rec.qty: + qty = max(qty,partner_rec.qty) price = pricelist_obj.price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, False, {'uom': uom_id})[pricelist_id] newdate = DateTime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S') newdate = newdate - DateTime.RelativeDateTime(days=company.po_lead) - newdate = newdate - procurement.product_id.seller_ids[0].delay + newdate = newdate - partner_rec.delay #Passing partner_id to context for purchase order line integrity of Line name context.update({'lang': partner.lang, 'partner_id': partner_id}) diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 10c5ccd9749..17fd47b7012 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -23,6 +23,7 @@ name="Incoming Shipments" sequence="9"/> + - + product.month.graph purchase.report graph @@ -27,21 +27,21 @@ - - - - - - - + + + + + + + @@ -53,87 +53,70 @@ - - - - - - + - - - - - - + + + + - - - + - - - + - - - - - - - + + + + + + + - - - + - - + + - - - - - - - - - - - - - + + diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index e886ba302b9..3f74e857035 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -82,15 +82,15 @@ class purchase_requisition_partner(osv.osv_memory): purchase_order_line={} for tender in tender_obj.browse(cr, uid, record_ids): for line in tender.line_ids: - + partner_list = sorted([(partner.sequence, partner) for partner in line.product_id.seller_ids if partner]) + partner_rec = partner_list and partner_list[0] and partner_list[0][1] or False uom_id = line.product_id.uom_po_id and line.product_id.uom_po_id.id or False newdate = DateTime.strptime(tender.date_start, '%Y-%m-%d %H:%M:%S') newdate = newdate - DateTime.RelativeDateTime(days=company.po_lead) - newdate = newdate -(line.product_id.seller_ids and line.product_id.seller_ids[0].delay or DateTime.strptime(tender.date_start, '%Y-%m-%d %H:%M:%S') ) - - - partner = line.product_id.seller_ids and line.product_id.seller_ids[0].name or supplier_data - pricelist_id = partner.property_product_pricelist_purchase and partner.property_product_pricelist_purchase.id + delay = partner_rec and partner_rec.delay or False + newdate = newdate -(delay or DateTime.strptime(tender.date_start, '%Y-%m-%d %H:%M:%S') ) + partner = partner_rec and partner_rec.name or supplier_data + pricelist_id = partner.property_product_pricelist_purchase and partner.property_product_pricelist_purchase.id or False price = pricelist_obj.price_get(cr, uid, [pricelist_id], line.product_id.id, line.product_qty, False, {'uom': uom_id})[pricelist_id] product = prod_obj.browse(cr, uid, line.product_id.id, context=context) diff --git a/addons/report_account/i18n/hr.po b/addons/report_account/i18n/hr.po index 80572ec3975..62dde41d6fc 100644 --- a/addons/report_account/i18n/hr.po +++ b/addons/report_account/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_analytic/i18n/hr.po b/addons/report_analytic/i18n/hr.po index 927bf538d9a..0f1647f8d06 100644 --- a/addons/report_analytic/i18n/hr.po +++ b/addons/report_analytic/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_analytic_planning/i18n/hr.po b/addons/report_analytic_planning/i18n/hr.po index 8b91cf0c0a6..245730b21cd 100644 --- a/addons/report_analytic_planning/i18n/hr.po +++ b/addons/report_analytic_planning/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_document/i18n/hr.po b/addons/report_document/i18n/hr.po index 68c557c8f48..ac73360d8b3 100644 --- a/addons/report_document/i18n/hr.po +++ b/addons/report_document/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_intrastat/i18n/hr.po b/addons/report_intrastat/i18n/hr.po index 8acb596f530..c9ecd125a04 100644 --- a/addons/report_intrastat/i18n/hr.po +++ b/addons/report_intrastat/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_project/i18n/hr.po b/addons/report_project/i18n/hr.po index 9993f03eb9e..a40056a4f50 100644 --- a/addons/report_project/i18n/hr.po +++ b/addons/report_project/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_purchase/i18n/hr.po b/addons/report_purchase/i18n/hr.po index 52a3fbf6ada..0dc383bac14 100644 --- a/addons/report_purchase/i18n/hr.po +++ b/addons/report_purchase/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_sale/i18n/hr.po b/addons/report_sale/i18n/hr.po index 61af04b6fad..aa5adc5fe71 100644 --- a/addons/report_sale/i18n/hr.po +++ b/addons/report_sale/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/report_task/i18n/es.po b/addons/report_task/i18n/es.po index 17a1ae549dd..6f70f225324 100644 --- a/addons/report_task/i18n/es.po +++ b/addons/report_task/i18n/es.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: report_task diff --git a/addons/sale/i18n/ca.po b/addons/sale/i18n/ca.po index 90b6341eea9..a39cac7c03f 100644 --- a/addons/sale/i18n/ca.po +++ b/addons/sale/i18n/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: sale diff --git a/addons/sale/i18n/hr.po b/addons/sale/i18n/hr.po index c17d591e485..b947fd04fd9 100644 --- a/addons/sale/i18n/hr.po +++ b/addons/sale/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py index d9be5f49274..68f50068ec0 100644 --- a/addons/sale/report/sale_report.py +++ b/addons/sale/report/sale_report.py @@ -71,7 +71,8 @@ class sale_report(osv.osv): cr.execute(""" create or replace view sale_report as ( select el.*, - (select count(1) from sale_order_line where order_id = s.id) as nbr, + -- (select count(1) from sale_order_line where order_id = s.id) as nbr, + (select 1) as nbr, s.date_order as date, s.date_confirm as date_confirm, to_char(s.date_order, 'YYYY') as year, @@ -101,7 +102,7 @@ class sale_report(osv.osv): sale_order_line l left join product_uom u on (u.id=l.product_uom) left join product_template pt on (pt.id=l.product_id) - group by l.id, l.order_id, l.product_id, u.name, pt.categ_id) el + group by l.id, l.order_id, l.product_id, u.name, pt.categ_id) el where s.id = el.order_id ) """) diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml index 75dd9d55642..f6090638891 100644 --- a/addons/sale/report/sale_report_view.xml +++ b/addons/sale/report/sale_report_view.xml @@ -19,7 +19,7 @@ - + @@ -85,19 +85,19 @@ - + - - + - + + + - - - + + @@ -109,7 +109,6 @@ - diff --git a/addons/sale_crm/i18n/hr.po b/addons/sale_crm/i18n/hr.po index 2e5036d7030..e20aa353017 100644 --- a/addons/sale_crm/i18n/hr.po +++ b/addons/sale_crm/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/sale_journal/i18n/hr.po b/addons/sale_journal/i18n/hr.po index 8e1ce7fb070..2e1aacbfce7 100644 --- a/addons/sale_journal/i18n/hr.po +++ b/addons/sale_journal/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/scrum/scrum.py b/addons/scrum/scrum.py index 2e3a0ca3fcb..b734473dce8 100644 --- a/addons/scrum/scrum.py +++ b/addons/scrum/scrum.py @@ -19,17 +19,19 @@ # ############################################################################## import time -import netsvc - -from osv import fields, osv, orm from mx import DateTime + +import netsvc +from osv import fields, osv, orm import re +import tools +from tools.translate import _ class scrum_project(osv.osv): _inherit = 'project.project' _columns = { - 'product_owner_id': fields.many2one('res.users', 'Product Owner'), - 'sprint_size': fields.integer('Sprint Days',help="Number of days allocated for sprint"), + 'product_owner_id': fields.many2one('res.users', 'Product Owner', help="The person who is responsible for the product"), + 'sprint_size': fields.integer('Sprint Days', help="Number of days allocated for sprint"), 'scrum': fields.integer('Is a Scrum Project'), } _defaults = { @@ -49,8 +51,8 @@ class scrum_sprint(osv.osv): tot = 0.0 prog = 0.0 for bl in sprint.backlog_ids: - tot += bl.planned_hours - prog += bl.planned_hours * bl.progress / 100.0 + tot += bl.expected_hours + prog += bl.expected_hours * bl.progress / 100.0 res.setdefault(sprint.id, 0.0) if tot>0: res[sprint.id] = round(prog/tot*100) @@ -69,7 +71,7 @@ class scrum_sprint(osv.osv): for sprint in self.browse(cr, uid, ids): res.setdefault(sprint.id, 0.0) for bl in sprint.backlog_ids: - res[sprint.id] += bl.planned_hours + res[sprint.id] += bl.expected_hours return res def _calc_expected(self, cr, uid, ids, name, args, context): @@ -106,15 +108,14 @@ class scrum_sprint(osv.osv): 'date_stop': fields.date('Ending Date', required=True), 'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."), 'product_owner_id': fields.many2one('res.users', 'Product Owner', required=True,help="The person who is responsible for the product"), - 'scrum_master_id': fields.many2one('res.users', 'Scrum Manager', required=True), + 'scrum_master_id': fields.many2one('res.users', 'Scrum Manager', required=True,help="The person who is maintains the processes for the product"), 'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'), 'review': fields.text('Sprint Review'), 'retrospective': fields.text('Sprint Retrospective'), 'backlog_ids': fields.one2many('scrum.product.backlog', 'sprint_id', 'Sprint Backlog'), 'progress': fields.function(_calc_progress, method=True, string='Progress (0-100)', help="Computed as: Time Spent / Total Time."), 'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done."), - 'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'), - 'expected_hours': fields.function(_calc_expected, method=True, string='Expected Hours', help='Estimated time to do the task.'), + 'expected_hours': fields.function(_calc_expected, method=True, string='Planned Hours', help='Estimated time to do the task.'), 'state': fields.selection([('draft','Draft'),('open','Open'),('pending','Pending'),('cancel','Cancelled'),('done','Done')], 'State', required=True), } _defaults = { @@ -184,7 +185,7 @@ class scrum_product_backlog(osv.osv): res[bl.id] += task.effective_hours return res - def _calc_planned(self, cr, uid, ids, name, args, context): + def _calc_task(self, cr, uid, ids, name, args, context): res = {} for bl in self.browse(cr, uid, ids): res.setdefault(bl.id, 0.0) @@ -216,6 +217,21 @@ class scrum_product_backlog(osv.osv): self.write(cr, uid, ids, {'state':'pending'}, context=context) return True + def button_postpone(self, cr, uid, ids, context=None): + for product in self.browse(cr, uid, ids, context=context): + tasks_id = [] + for task in product.tasks_id: + if task.state != 'done': + tasks_id.append(task.id) + + clone_id = self.copy(cr, uid, product.id, { + 'name': 'PARTIAL:'+ product.name , + 'sprint_id':False, + 'tasks_id':[(6, 0, tasks_id)], + }) + self.write(cr, uid, ids, {'state':'cancel'}, context=context) + return True + _columns = { 'name' : fields.char('Feature', size=64, required=True), 'note' : fields.text('Note'), @@ -228,9 +244,9 @@ class scrum_product_backlog(osv.osv): 'state': fields.selection([('draft','Draft'),('open','Open'),('pending','Pending'),('done','Done'),('cancel','Cancelled')], 'State', required=True), 'progress': fields.function(_calc_progress, method=True, string='Progress', help="Computed as: Time Spent / Total Time."), 'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done (Time spent on tasks)"), - 'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'), - 'expected_hours': fields.float('Expected Hours', help='Estimated total time to do the Backlog'), + 'expected_hours': fields.float('Planned Hours', help='Estimated total time to do the Backlog'), 'create_date': fields.datetime("Creation Date", readonly=True), + 'task_hours': fields.function(_calc_task, method=True, string='Task Hours', help='Estimated time of the total hours of the tasks') } _defaults = { 'state': 'draft', @@ -287,5 +303,37 @@ class scrum_meeting(osv.osv): _defaults = { 'date' : time.strftime('%Y-%m-%d'), } + + def button_send_to_master(self, cr, uid, ids, context=None): + meeting_id = self.browse(cr, uid, ids)[0] + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email: + self.email_send(cr, uid, ids, email) + else: + raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.')) + return True + + def button_send_product_owner(self, cr, uid, ids, context=None): + meeting_id = self.browse(cr, uid, ids)[0] + if meeting_id.sprint_id.product_owner_id.user_email: + self.email_send(cr,uid,ids,email) + else: + raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.')) + return True + + def email_send(self, cr, uid, ids, email, context=None): + email_from = tools.config.get('email_from', False) + meeting_id = self.browse(cr,uid,ids)[0] + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + user_email = email_from or user.address_id.email or email_from + body = "Hello " + meeting_id.sprint_id.scrum_master_id.name+",\n" +" \nI am sending you Daily Meeting Details of date %s for the Sprint %s \n" % (meeting_id.date, meeting_id.sprint_id.name) + body += '\n*Tasks since yesterday: \n_______________________%s' % (meeting_id.question_yesterday) + '\n*Task for Today :\n_______________________ %s\n' % (meeting_id.question_today )+ '\n*Blocks encountered: \n_______________________ %s' % (meeting_id.question_blocks or 'No Blocks') + body += "\n\nThank you,\n"+ user.name + sub_name = meeting_id.name or 'Scrum Meeting of %s '%meeting_id.date + flag = tools.email_send(user_email , [email], sub_name, body, reply_to=None, openobject_id=str(meeting_id.id)) + if not flag: + raise osv.except_osv(_('Error !'), _(' Email Not send to %s!' % meeting_id.sprint_id.product_owner_id.name)) + return True + scrum_meeting() diff --git a/addons/scrum/scrum_demo.xml b/addons/scrum/scrum_demo.xml index 9f41f17a86b..9e97e635cf3 100644 --- a/addons/scrum/scrum_demo.xml +++ b/addons/scrum/scrum_demo.xml @@ -8,7 +8,7 @@ [24, 25, 28, 26, 27, 29, 30, 31, 32, 33, 34, 35, 37, 36, 38] - 156.0 + 156.0 Open ERP - dev branch @@ -32,6 +32,7 @@ 6.0 This new system will enable you to migrate automatically from an old version of Open ERP to a new one. This system will migrate not only the Open ERP system but also the customers particularities. This happens without any kind of script or programming. It has been possible to carry out such a system thanks to the descriptive approach of Open ERP components. + done @@ -40,6 +41,7 @@ 111.0 The accounting module of Open ERP (financial accounting and management accounting) is being reshaped. New functionnalities will be added: intangible assets, a new way of presenting ledgers and bookings, new stock valuation calculation, and lots of predefined reports. + open @@ -48,18 +50,21 @@ 4.0 We have to develop a plug-in system which will enable to install/remove modules. The basic version of Open ERP will include only the required minimum, and you will select the modules thanks to the plug-in manager. This allows you to limit your system to your real needs: quality management, localisations, project and service management, marketing campaigns, and so on... + open Review all terms 8.0 + done Bugfixes 6.0 + open @@ -72,8 +77,9 @@ Reshape the complete menu 4.0 - Restrucutre the Open ERP menu to be more like others ERP. + Restructure the Open ERP menu to be more like others ERP. + open @@ -91,6 +97,8 @@ Review all English Terms + done + @@ -98,6 +106,8 @@ Review all french terms + done + @@ -105,6 +115,8 @@ Analytic Accounting features + done + @@ -112,6 +124,7 @@ Test and improve automatic migration system + open @@ -119,6 +132,7 @@ General accounting features + open @@ -133,7 +147,9 @@ Cash book, general ledger, accounts list, aged trial balance - Accounting Report General + Accounting Report General + open + @@ -148,6 +164,7 @@ Accounting Report Analytic + open @@ -155,6 +172,8 @@ Bugfix - memory leak + done + @@ -162,6 +181,8 @@ Bugfix - Translations + open + @@ -169,6 +190,7 @@ Finish the automated plugin system + pending @@ -183,6 +205,7 @@ Test 3.2.0 before releasing + open @@ -191,8 +214,56 @@ default values, onchange, required, add on top or bottom and shortcuts (Ctrl S, Ctrl X, ...) Editable trees + open - + + +Admin: Worked on the Automatic migration system +Demo: Worked on the Test 3.2.0 before releasing + + +Admin:Work on Restructure the Open ERP menu to be more like others ERP. +Demo: Work on Editable trees + +Demo :Bugfix - memory leak + + + + + + + Learn how to migration + + + + + + + + Create a script for migration and testing + + + + + + + + + Create a script for migration and testing + + + + + + + + Add on top or bottom and shortcuts + + + + + + diff --git a/addons/scrum/scrum_view.xml b/addons/scrum/scrum_view.xml index be16ecfa7e5..d4631a680ca 100644 --- a/addons/scrum/scrum_view.xml +++ b/addons/scrum/scrum_view.xml @@ -40,7 +40,7 @@ - + @@ -57,10 +57,13 @@ form - + + @@ -71,6 +74,7 @@ + @@ -192,8 +196,7 @@ - - + @@ -226,7 +229,6 @@ - @@ -329,6 +331,9 @@ + + + diff --git a/addons/scrum/wizard/scrum_backlog_sprint.py b/addons/scrum/wizard/scrum_backlog_sprint.py index 8125df1ba53..108e5a48cc3 100644 --- a/addons/scrum/wizard/scrum_backlog_sprint.py +++ b/addons/scrum/wizard/scrum_backlog_sprint.py @@ -49,7 +49,7 @@ class backlog_sprint_assign(osv.osv_memory): 'description': backlog.note, 'project_id': backlog.project_id.id, 'user_id': False, - 'planned_hours':backlog.planned_hours, + 'planned_hours':backlog.expected_hours, 'remaining_hours':backlog.expected_hours, }) if data['state_open'] and backlog.state == "draft": diff --git a/addons/share/__init__.py b/addons/share/__init__.py new file mode 100644 index 00000000000..eff88be137d --- /dev/null +++ b/addons/share/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +import share +import wizard diff --git a/addons/share/__openerp__.py b/addons/share/__openerp__.py new file mode 100644 index 00000000000..e6762e91ef2 --- /dev/null +++ b/addons/share/__openerp__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + "name" : "Share Management", + "version" : "1.1", + "depends" : ["base"], + "author" : "Tiny", + "category": 'Generic Modules', + "description": """The goal is to implement a generic sharing mechanism, where user of OpenERP +can share data from OpenERP to their colleagues, customers, or friends. +The system will work by creating new users and groups on the fly, and by +combining the appropriate access rights and ir.rules to ensure that the /shared +users/ will only have access to the correct data. + """, + 'website': 'http://www.openerp.com', + 'init_xml': [], + 'update_xml': [ + 'share_view.xml', + 'wizard/share_wizard_view.xml' + ], + 'installable': True, + 'active': False, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/share/share.py b/addons/share/share.py new file mode 100644 index 00000000000..6e3c4932a1e --- /dev/null +++ b/addons/share/share.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from osv import fields, osv, orm +class res_groups(osv.osv): + _name = "res.groups" + _inherit = 'res.groups' + _columns = { + 'share': fields.boolean('Share') + } +res_groups() + +class res_users(osv.osv): + _name = 'res.users' + _inherit = 'res.users' + _columns = { + 'share': fields.boolean('Share') + } +res_users() diff --git a/addons/share/share_view.xml b/addons/share/share_view.xml new file mode 100644 index 00000000000..24736b3d53a --- /dev/null +++ b/addons/share/share_view.xml @@ -0,0 +1,27 @@ + + + + + res.groups.form + res.groups + form + + + + + + + + + res.users.form + res.users + form + + + + + + + + + diff --git a/addons/share/wizard/__init__.py b/addons/share/wizard/__init__.py new file mode 100644 index 00000000000..b906abf5e56 --- /dev/null +++ b/addons/share/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import share_wizard diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py new file mode 100644 index 00000000000..c5e2aef2ff6 --- /dev/null +++ b/addons/share/wizard/share_wizard.py @@ -0,0 +1,430 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from osv import osv, fields +from tools.translate import _ +import tools + +def _generate_random_number(): + import random + RANDOM_PASS_CHARACTERS = [chr(x) for x in range(48,58) + range(97,123) + range(65,91)] + RANDOM_PASS_CHARACTERS.remove('l') #lowercase l, easily mistaken as one or capital i + RANDOM_PASS_CHARACTERS.remove('I') #uppercase i, easily mistaken as one or lowercase l + RANDOM_PASS_CHARACTERS.remove('O') #uppercase o, mistaken with zero + RANDOM_PASS_CHARACTERS.remove('o') #lowercase o, mistaken with zero + RANDOM_PASS_CHARACTERS.remove('0') #zero, mistaken with o-letter + def generate_random_pass(): + pass_chars = RANDOM_PASS_CHARACTERS[:] + random.shuffle(pass_chars) + return ''.join(pass_chars[0:10]) + return generate_random_pass() + +class share_create(osv.osv_memory): + _name = 'share.create' + _description = 'Create share' + + def _access(self, cr, uid, ids, field_name, arg, context=None): + if context is None: + context = {} + res = {} + action_id = context.get('action_id', False) + access_obj = self.pool.get('ir.model.access') + action_obj = self.pool.get('ir.actions.act_window') + model_obj = self.pool.get('ir.model') + user_obj = self.pool.get('res.users') + current_user = user_obj.browse(cr, uid, uid) + access_ids = [] + if action_id: + action = action_obj.browse(cr, uid, action_id, context=context) + active_model_ids = model_obj.search(cr, uid, [('model','=',action.res_model)]) + active_model_id = active_model_ids and active_model_ids[0] or False + access_ids = access_obj.search(cr, uid, [ + ('group_id','in',map(lambda x:x.id, current_user.groups_id)), + ('model_id','',active_model_id)]) + for rec_id in ids: + write_access = False + read_access = False + for access in access_obj.browse(cr, uid, access_ids, context=context): + if access.perm_write: + write_access = True + if access.perm_read: + read_access = True + res[rec_id]['write_access'] = write_access + res[rec_id]['read_access'] = read_access + return res + + _columns = { + 'action_id': fields.many2one('ir.actions.act_window', 'Action', required=True), + 'domain': fields.char('Domain', size=64), + 'user_type': fields.selection( [ ('existing','Existing'),('new','New')],'User Type'), + 'user_ids': fields.many2many('res.users', 'share_user_rel', 'share_id','user_id', 'Share Users'), + 'new_user': fields.text("New user"), + 'access_mode': fields.selection( [ ('readonly','READ ONLY'),('readwrite','READ & WRITE')],'Access Mode'), + 'write_access': fields.function(_access, method=True, string='Write Access',type='boolean', multi='write_access'), + 'read_access': fields.function(_access, method=True, string='Write Access',type='boolean', multi='read_access'), + } + _defaults = { + 'user_type' : 'existing', + 'domain': '[]', + 'access_mode': 'readonly' + } + + def default_get(self, cr, uid, fields, context=None): + """ + To get default values for the object. + """ + + res = super(share_create, self).default_get(cr, uid, fields, context=context) + if not context: + context={} + action_id = context.get('action_id', False) + domain = context.get('domain', '[]') + + + if 'action_id' in fields: + res['action_id'] = action_id + if 'domain' in fields: + res['domain'] = domain + return res + + def do_step_1(self, cr, uid, ids, context=None): + """ + This action to excute step 1 + + """ + if not context: + context = {} + + data_obj = self.pool.get('ir.model.data') + + step1_form_view = data_obj._get_id(cr, uid, 'share', 'share_step1_form') + + if step1_form_view: + step1_form_view_id = data_obj.browse(cr, uid, step1_form_view, context=context).res_id + + step1_id = False + for this in self.browse(cr, uid, ids, context=context): + vals ={ + 'domain': this.domain, + 'action_id': this.action_id and this.action_id.id or False, + } + + context.update(vals) + value = { + 'name': _('Step:2 Sharing Wizard'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'share.create', + 'view_id': False, + 'views': [(step1_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')], + 'type': 'ir.actions.act_window', + 'context': context, + 'target': 'new' + } + return value + + + def do_step_2(self, cr, uid, ids, context=None): + """ + This action to excute step 2 + + """ + if not context: + context = {} + + data_obj = self.pool.get('ir.model.data') + + step2_form_view = data_obj._get_id(cr, uid, 'share', 'share_step2_form') + + if step2_form_view: + step2_form_view_id = data_obj.browse(cr, uid, step2_form_view, context=context).res_id + + step1_id = False + for this in self.browse(cr, uid, ids, context=context): + vals ={ + 'user_type': this.user_type, + 'existing_user_ids': map(lambda x:x.id, this.user_ids), + 'new_user': this.new_user, + 'domain': this.domain, + 'access_mode': this.access_mode, + 'action_id': this.action_id and this.action_id.id or False + } + + context.update(vals) + value = { + 'name': _('Step:3 Sharing Wizard'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'share.create', + 'view_id': False, + 'views': [(step2_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')], + 'type': 'ir.actions.act_window', + 'context': context, + 'target': 'new' + } + return value + + + def do_step_3(self, cr, uid, ids, context=None): + """ + This action to excute step 3 + + """ + if not context: + context = {} + + group_obj = self.pool.get('res.groups') + user_obj = self.pool.get('res.users') + fields_obj = self.pool.get('ir.model.fields') + model_access_obj = self.pool.get('ir.model.access') + model_obj = self.pool.get('ir.model') + rule_obj = self.pool.get('ir.rule') + action_obj = self.pool.get('ir.actions.act_window') + + new_users = context.get('new_user', False) + action_id = context.get('action_id', False) + user_type = context.get('user_type', False) + access_mode = context.get('access_mode', False) + action = action_obj.browse(cr, uid, action_id, context=context) + active_model = action.res_model + + active_id = False #TODO: Pass record id of res_model of action + existing_user_ids = context.get('existing_user_ids', False) + domain = eval(context.get('domain', '[]')) + + # Create Share Group + share_group_name = '%s: %s' %('Sharing', active_model) + group_ids = group_obj.search(cr, uid, [('name','=',share_group_name)]) + group_id = group_ids and group_ids[0] or False + if not group_id: + group_id = group_obj.create(cr, uid, {'name': share_group_name, 'share': True}) + else: + group = group_obj.browse(cr, uid, group_id, context=context) + if not group.share: + raise osv.except_osv(_('Error'), _("Share Group is exits without sharing !")) + + # Create new user + + current_user = user_obj.browse(cr, uid, uid) + user_ids = [] + if user_type == 'new' and new_users: + for new_user in new_users.split('\n'): + password = _generate_random_number() + user_id = user_obj.create(cr, uid, { + 'login': new_user, + 'password': password, + 'name': new_user, + 'user_email': new_user, + 'groups_id': [(6,0,[group_id])], + 'action_id': action_id, + 'share': True, + 'company_id': current_user.company_id and current_user.company_id.id}) + user_ids.append(user_id) + context['new_user_ids'] = user_ids + + # Modify existing user + if user_type == 'existing': + user_obj.write(cr, uid, existing_user_ids , { + 'groups_id': [(4,group_id)], + 'action_id': action_id + }) + + + #ACCESS RIGHTS / IR.RULES COMPUTATION + #TODO: TO Resolve Recurrent Problems + active_model_ids = model_obj.search(cr, uid, [('model','=',active_model)]) + active_model_id = active_model_ids and active_model_ids[0] or False + + def _get_relation(model_id, ttypes, new_obj=[]): + obj = [] + models = map(lambda x:x[1].model, new_obj) + field_ids = fields_obj.search(cr, uid, [('model_id','=',model_id),('ttype','in', ttypes)]) + for field in fields_obj.browse(cr, uid, field_ids, context=context): + if field.relation not in models: + relation_model_ids = model_obj.search(cr, uid, [('model','=',field.relation)]) + relation_model_id = relation_model_ids and relation_model_ids[0] or False + relation_model = model_obj.browse(cr, uid, relation_model_id, context=context) + obj.append((field.relation_field, relation_model)) + + if relation_model_id != model_id and field.ttype in ['one2many', 'many2many']: + obj += _get_relation(relation_model_id, [field.ttype], obj) + + return obj + + obj0 = model_obj.browse(cr, uid, active_model_id, context=context) + obj1 = _get_relation(active_model_id, ['one2many']) + obj2 = _get_relation(active_model_id, ['one2many', 'many2many']) + obj3 = _get_relation(active_model_id, ['many2one']) + for rel_field, model in obj1: + obj3 += _get_relation(model.id, ['many2one']) + if access_mode == 'readonly': + for rel_field, model in obj1+obj2+obj3: + model_access_obj.create(cr, uid, { + 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name), + 'model_id' : model.id, + 'group_id' : group_id, + 'perm_read' : True + }) + if access_mode == 'readwrite': + for rel_field, model in obj1+obj2+obj3: + model_access_obj.create(cr, uid, { + 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name), + 'model_id' : model.id, + 'group_id' : group_id, + 'perm_read' : True, + 'perm_write' : True + }) + for rel_field, model in obj2+obj3: + model_access_obj.create(cr, uid, { + 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name), + 'model_id' : model.id, + 'group_id' : group_id, + 'perm_read' : True + }) + + rule_obj.create(cr, uid, { + 'name': '%s-%s'%(share_group_name, obj0.model), + 'model_id': obj0.id, + 'domain': domain, + 'group_ids': [(6,0,[group_id])] + }) + for rel_field, model in obj1: + obj1_domain = [] + for opr1, opt, opr2 in domain: + new_opr1 = '%s.%s'%(rel_field, opr1) + obj1_domain.append((new_opr1, opt, opr2)) + + rule_obj.create(cr, uid, { + 'name': '%s-%s'%(share_group_name, model.model), + 'model_id': model.id, + 'domain': obj1_domain, + 'groups': [(6,0,[group_id])] + }) + # TODO: + # And on OBJ0, OBJ1, OBJ2, OBJ3: add all rules from groups of the user + # that is sharing in the many2many of the rules on the new group + # (rule must be copied instead of adding it if it contains a reference to uid + # or user.xxx so it can be replaced correctly) + context['share_model'] = active_model + context['share_rec_id'] = active_id + + + data_obj = self.pool.get('ir.model.data') + + form_view = data_obj._get_id(cr, uid, 'share', 'share_result_form') + form_view_id = False + if form_view: + form_view_id = data_obj.browse(cr, uid, form_view, context=context).res_id + + + value = { + 'name': _('Step:4 Share Users Detail'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'share.result', + 'view_id': False, + 'views': [(form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')], + 'type': 'ir.actions.act_window', + 'context': context, + 'target': 'new' + } + return value +share_create() + + +class share_result(osv.osv_memory): + _name = "share.result" + _columns = { + 'users': fields.text("Users", readonly=True), + } + + + + def do_send_email(self, cr, uid, ids, context=None): + user_obj = self.pool.get('res.users') + if not context: + context={} + existing_user_ids = context.get('existing_user_ids', []) + new_user_ids = context.get('new_user_ids', []) + share_url = tools.config.get('share_root_url', False) + user = user_obj.browse(cr, uid, uid, context=context) + for share_user in user_obj.browse(cr, uid, new_user_ids+existing_user_ids, context=context): + email_to = share_user.user_email + subject = '%s wants to share private data with you' %(user.name) + body = """ + Dear, + + %s wants to share private data from OpenERP with you! + """%(user.name) + if share_url: + body += """ + To view it, you can access the following URL: + %s + """%(user.name, share_url) + if share_user.id in new_user_ids: + body += """ + You may use the following login and password to get access to this + protected area: + login: %s + password: %s + """%(user.login, user.password) + elif share_user.id in existing_user_ids: + body += """ + You may use your existing login and password to get access to this + additional data. As a reminder, your login is %s. + """%(user.name) + + flag = tools.email_send( + user.user_email, + email_to, + subject, + body + ) + return flag + + + def default_get(self, cr, uid, fields, context=None): + """ + To get default values for the object. + """ + + res = super(share_result, self).default_get(cr, uid, fields, context=context) + user_obj = self.pool.get('res.users') + if not context: + context={} + existing_user_ids = context.get('existing_user_ids', []) + new_user_ids = context.get('new_user_ids', []) + share_url = tools.config.get('share_root_url', False) + if 'users' in fields: + users = [] + for user in user_obj.browse(cr, uid, new_user_ids): + txt = 'Login: %s Password: %s' %(user.login, user.password) + if share_url: + txt += ' Share URL: %s' %(share_url) + users.append(txt) + for user in user_obj.browse(cr, uid, existing_user_ids): + txt = 'Login: %s' %(user.login) + if share_url: + txt += ' Share URL: %s' %(share_url) + users.append(txt) + res['users'] = '\n'.join(users) + return res + +share_result() diff --git a/addons/share/wizard/share_wizard_view.xml b/addons/share/wizard/share_wizard_view.xml new file mode 100644 index 00000000000..9e9b23f7f43 --- /dev/null +++ b/addons/share/wizard/share_wizard_view.xml @@ -0,0 +1,108 @@ + + + + + + share.step0.form + share.create + form + + + + + + + + + + + + + + + + share.step1.form + share.create + form + + + + + + + + + + + + + + + + + + + + + + + + + share.step2.form + share.create + form + + + + + + + + + + + + + + + + + + + + Share Access Rules + ir.actions.act_window + share.create + form + form + + new + + + + + + + share.result.form + share.result + form + + + + + + + + + + + + + + + + + + + + diff --git a/addons/stock/report/picking.rml b/addons/stock/report/picking.rml index 1540357c590..97510e31a64 100644 --- a/addons/stock/report/picking.rml +++ b/addons/stock/report/picking.rml @@ -170,7 +170,7 @@ - Packing List: [[ picking.name ]] + Picking List: [[ picking.name ]] diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 6c3d09f2895..87d8acf05f3 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -814,7 +814,7 @@ class stock_picking(osv.osv): invoices_group[partner.id] = invoice_id res[picking.id] = invoice_id for move_line in picking.move_lines: - origin = move_line.picking_id.name + origin = move_line.picking_id.name or '' if move_line.picking_id.origin: origin += ':' + move_line.picking_id.origin if group: diff --git a/addons/stock/stock_report.xml b/addons/stock/stock_report.xml index 60de8d1f74f..3084e8527a7 100644 --- a/addons/stock/stock_report.xml +++ b/addons/stock/stock_report.xml @@ -3,7 +3,7 @@ - + diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index d821ab39d51..553d398984b 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -1734,5 +1734,32 @@ + + Outcoming Shipments + stock.picking + ir.actions.act_window + form + tree,form,calendar + [('type','=','out')] + {'contact_display': 'partner',"search_default_available":1} + + + + + tree + + + + + + form + + + + + + calendar + + diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py index 00b7b616aa5..aa7bb42cf8b 100644 --- a/addons/stock/wizard/stock_move.py +++ b/addons/stock/wizard/stock_move.py @@ -258,7 +258,7 @@ class split_in_production_lot(osv.osv_memory): quantity_rest -= quantity uos_qty = quantity / move_qty * move.product_uos_qty uos_qty_rest = quantity_rest / move_qty * move.product_uos_qty - if quantity_rest <= 0: + if quantity_rest < 0: quantity_rest = quantity break default_val = { @@ -266,8 +266,11 @@ class split_in_production_lot(osv.osv_memory): 'product_uos_qty': uos_qty, 'state': move.state } - current_move = move_obj.copy(cr, uid, move.id, default_val) - new_move.append(current_move) + if quantity_rest > 0: + current_move = move_obj.copy(cr, uid, move.id, default_val) + new_move.append(current_move) + if quantity_rest == 0: + current_move = move.id prodlot_id = False if line.use_exist and line.name: prodlot_id = prodlot_obj.search(cr, uid, [('prefix','=',line.name),('product_id','=',data.product_id.id)]) diff --git a/addons/survey/i18n/hr.po b/addons/survey/i18n/hr.po index d6b54e0ce1a..a465b4c3ca9 100644 --- a/addons/survey/i18n/hr.po +++ b/addons/survey/i18n/hr.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/survey/survey_report.xml b/addons/survey/survey_report.xml index c5e76dd133f..3ca05f6ba63 100644 --- a/addons/survey/survey_report.xml +++ b/addons/survey/survey_report.xml @@ -6,20 +6,20 @@ id="report_survey_form" model="survey" name="survey.form" - string="Print Survey"/> + string="Surveys"/> - + rml="" + string="Surveys Statistics"/> - + string="Surveys Answers"/> diff --git a/addons/survey/wizard/survey_print.xml b/addons/survey/wizard/survey_print.xml index 9470a8bfc3b..8f8793e6b1e 100644 --- a/addons/survey/wizard/survey_print.xml +++ b/addons/survey/wizard/survey_print.xml @@ -1,9 +1,9 @@ - + - + Survey Print survey.print @@ -35,7 +35,7 @@ new - diff --git a/addons/survey/wizard/survey_print_answer.xml b/addons/survey/wizard/survey_print_answer.xml index fc754fa2e6c..1e34fc1029f 100644 --- a/addons/survey/wizard/survey_print_answer.xml +++ b/addons/survey/wizard/survey_print_answer.xml @@ -1,9 +1,9 @@ - + - + Survey Print Answer survey.print.answer @@ -36,7 +36,7 @@ new - diff --git a/addons/survey/wizard/survey_print_statistics.xml b/addons/survey/wizard/survey_print_statistics.xml index 8838a18098c..5659b82e896 100644 --- a/addons/survey/wizard/survey_print_statistics.xml +++ b/addons/survey/wizard/survey_print_statistics.xml @@ -1,9 +1,9 @@ - + - + Survey Print Statistics survey.print.statistics @@ -30,7 +30,7 @@ new - diff --git a/addons/thunderbird/i18n/hr.po b/addons/thunderbird/i18n/hr.po index 7911a4acbe5..67e99a7d48f 100644 --- a/addons/thunderbird/i18n/hr.po +++ b/addons/thunderbird/i18n/hr.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/warning/i18n/hr.po b/addons/warning/i18n/hr.po index cd9463a0d2c..21b61af3c22 100644 --- a/addons/warning/i18n/hr.po +++ b/addons/warning/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" +"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/wiki/wiki_view.xml b/addons/wiki/wiki_view.xml index 272dad32683..ca0eaccb449 100644 --- a/addons/wiki/wiki_view.xml +++ b/addons/wiki/wiki_view.xml @@ -130,19 +130,23 @@ string="Basic Wiki Editing" icon="gtk-ok" /> - + - + - - + + + + + + - + - - + + @@ -156,13 +160,20 @@ search - + + - + + - + + + + + + @@ -176,7 +187,7 @@ form tree,form - {'section':'1','search_default_create_uid':uid} +