diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index d9e95f15079..19128b42d6e 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -509,8 +509,8 @@ - - + + @@ -1230,8 +1230,8 @@ - - + + diff --git a/addons/account/i18n/fr.po b/addons/account/i18n/fr.po index f4823e4b626..510dc185fa6 100644 --- a/addons/account/i18n/fr.po +++ b/addons/account/i18n/fr.po @@ -7,14 +7,15 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-06-20 16:18+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2012-10-30 15:48+0000\n" +"Last-Translator: Frederic Clementi - Camptocamp.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: 2012-10-30 05:01+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-10-31 04:40+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: account #: code:addons/account/account_move_line.py:1215 @@ -151,7 +152,7 @@ msgstr "Définition des enfants" #: code:addons/account/account_bank_statement.py:302 #, python-format msgid "Journal item \"%s\" is not valid." -msgstr "Écriture \"%s\" n'est pas équilibrée" +msgstr "" #. module: account #: model:ir.model,name:account.model_report_aged_receivable @@ -1608,10 +1609,9 @@ msgid "" "entry per accounting document: invoice, refund, supplier payment, bank " "statements, etc." msgstr "" -"Une pièce comptable est composée de plusieurs écritures comptables, chacune " -"étant soit un débit soit un crédit. OpenERP crée automatiquement une pièce " -"comptable par document comptable : facture, avoir, paiement de fournisseur, " -"relevés bancaires, etc." +"Un écriture est composée de plusieurs lignes, chacune étant soit un débit " +"soit un crédit. OpenERP crée automatiquement une écriture par document " +"comptable : facture, avoir, paiement de fournisseur, relevés bancaires, etc." #. module: account #: view:account.entries.report:0 @@ -1703,7 +1703,7 @@ msgstr "Recherche d'un relevé bancaire" #. module: account #: view:account.move.line:0 msgid "Unposted Journal Items" -msgstr "Pièces non comptabiliisées" +msgstr "Ecritures brouillon" #. module: account #: view:account.chart.template:0 @@ -2478,8 +2478,6 @@ msgid "" "In order to delete a bank statement, you must first cancel it to delete " "related journal items." msgstr "" -"Pour supprimer un relevé bancaire vous devez préalablement supprimer les " -"lignes rapprochées." #. module: account #: field:account.invoice,payment_term:0 @@ -3629,7 +3627,7 @@ msgstr "État des ventes par type de compte" #. module: account #: view:account.move.line:0 msgid "Unreconciled Journal Items" -msgstr "Ecritures non lettrées" +msgstr "Ecritures non léttrées" #. module: account #: sql_constraint:res.currency:0 @@ -3900,7 +3898,7 @@ msgstr "" #. module: account #: model:ir.actions.report.xml,name:account.account_account_balance_landscape msgid "Account balance" -msgstr "Balance des comptes" +msgstr "Balance générale" #. module: account #: report:account.invoice:0 @@ -3972,7 +3970,7 @@ msgstr "Nom" #. module: account #: model:ir.model,name:account.model_account_aged_trial_balance msgid "Account Aged Trial balance Report" -msgstr "Rapport du solde de la balance agée" +msgstr "Balance agée" #. module: account #: code:addons/account/account_move_line.py:582 @@ -4181,7 +4179,7 @@ msgstr "" #. module: account #: view:account.move.line:0 msgid "Posted Journal Items" -msgstr "Ecritures saisies" +msgstr "Ecritures validées" #. module: account #: view:account.tax.template:0 @@ -4244,7 +4242,7 @@ msgstr "Titulaire du compte bancaire" #: model:ir.actions.report.xml,name:account.account_account_balance #: model:ir.ui.menu,name:account.menu_general_Balance_report msgid "Trial Balance" -msgstr "Balance des comptes" +msgstr "Balance générale" #. module: account #: model:ir.model,name:account.model_account_invoice_cancel @@ -4659,7 +4657,7 @@ msgstr "Sert de compte par défaut pour le crédit" #: view:validate.account.move:0 #: view:validate.account.move.lines:0 msgid "Post Journal Entries" -msgstr "Comptabiliser les pièces comptables dans le journal" +msgstr "Valider les écritures" #. module: account #: selection:account.invoice,state:0 @@ -4927,7 +4925,7 @@ msgstr "" #: code:addons/account/account.py:923 #, python-format msgid "Opening Period" -msgstr "Période ouverte" +msgstr "Période d'ouverture" #. module: account #: view:account.move:0 @@ -5611,7 +5609,7 @@ msgstr "Quantité de produits" #: selection:account.move,state:0 #: view:account.move.line:0 msgid "Unposted" -msgstr "Non comptabilisé" +msgstr "Non validée" #. module: account #: view:account.change.currency:0 @@ -5823,7 +5821,7 @@ msgstr "Journal d'écriture" #: model:ir.actions.act_window,name:account.action_account_fiscalyear_close #: model:ir.ui.menu,name:account.menu_wizard_fy_close msgid "Generate Opening Entries" -msgstr "Générer les écritures d'ouverture" +msgstr "Générer l'écriture d'ouverture" #. module: account #: code:addons/account/account_move_line.py:775 @@ -7117,7 +7115,7 @@ msgstr "Sélection du journal" #: code:addons/account/account.py:432 #, python-format msgid "Opening Balance" -msgstr "Solde initial" +msgstr "" #. module: account #: model:ir.model,name:account.model_account_move_reconcile @@ -7727,8 +7725,7 @@ msgstr "Signes sur les Rapports" #: code:addons/account/wizard/account_fiscalyear_close.py:88 #, python-format msgid "The periods to generate opening entries were not found" -msgstr "" -"Les périodes pour générer les écritures d'ouverture n'ont pas été trouvées." +msgstr "Aucune période d'ouverture trouvée" #. module: account #: model:account.account.type,name:account.data_account_type_view @@ -7822,7 +7819,7 @@ msgstr "Journal des ventes" #: code:addons/account/wizard/account_move_journal.py:104 #, python-format msgid "Open Journal Items !" -msgstr "Écritures ouvertes !" +msgstr "" #. module: account #: model:ir.model,name:account.model_account_invoice_tax @@ -7859,7 +7856,7 @@ msgstr "" #. module: account #: view:account.move:0 msgid "Unposted Journal Entries" -msgstr "Pièces non comptabilisées" +msgstr "Ecritures non validées" #. module: account #: view:product.product:0 @@ -7976,7 +7973,7 @@ msgstr "Code de la case" #. module: account #: view:validate.account.move:0 msgid "Post Journal Entries of a Journal" -msgstr "Comptabiliser les pièces comptables d'un journal" +msgstr "Valider les écritures" #. module: account #: view:product.product:0 @@ -8161,7 +8158,7 @@ msgstr "Ligne de caisse" #: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other #: model:ir.ui.menu,name:account.menu_account_partner_ledger msgid "Partner Ledger" -msgstr "Grand Livre" +msgstr "Livre des tiers" #. module: account #: selection:account.tax.template,type:0 @@ -8359,7 +8356,7 @@ msgstr "" #: help:account.account,reconcile:0 msgid "" "Check this box if this account allows reconciliation of journal items." -msgstr "Cochez si le compte autorise le lettrage des pièces." +msgstr "Cochez si le compte autorise le lettrage des écritures." #. module: account #: help:account.period,state:0 @@ -9220,7 +9217,7 @@ msgstr "inconnu" #: code:addons/account/account.py:3130 #, python-format msgid "Opening Entries Journal" -msgstr "Journal des écritures d'ouverture" +msgstr "Journal d'ouverture" #. module: account #: model:process.transition,note:account.process_transition_customerinvoice0 @@ -10006,7 +10003,7 @@ msgstr "Ce compte de tiers remplacera le compte par défaut." #. module: account #: field:account.period,special:0 msgid "Opening/Closing Period" -msgstr "Ouverture/clôture d'exercice" +msgstr "Période d'ouverture/clôture" #. module: account #: field:account.account,currency_id:0 @@ -10336,7 +10333,7 @@ msgstr "Date de fin" #: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear #: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear msgid "Cancel Opening Entries" -msgstr "Annuler les écritures d'ouvertures" +msgstr "Annuler l'écriture d'ouverture" #. module: account #: field:account.payment.term.line,days2:0 @@ -10505,7 +10502,7 @@ msgstr "Signer pour le parent" #. module: account #: model:ir.model,name:account.model_account_balance_report msgid "Trial Balance Report" -msgstr "Rapport sur la balance des comptes" +msgstr "Balance générale" #. module: account #: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree @@ -10688,7 +10685,7 @@ msgstr "Intervalle" #. module: account #: view:account.analytic.line:0 msgid "Analytic Journal Items related to a purchase journal." -msgstr "Imputations analytiques relatives au journal des achats." +msgstr "Ecritures analytiques relatives au journal des achats." #. module: account #: help:account.account,type:0 @@ -11213,7 +11210,7 @@ msgstr "Future" #. module: account #: view:account.move.line:0 msgid "Search Journal Items" -msgstr "Rechercher des écritures comptables" +msgstr "Recherche par ligne d'écritures" #. module: account #: help:account.tax,base_sign:0 diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po index d2e8f8ae7cb..7e52f26f2a4 100644 --- a/addons/account/i18n/ru.po +++ b/addons/account/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-10-26 09:03+0000\n" +"PO-Revision-Date: 2012-10-31 10:41+0000\n" "Last-Translator: Chertykov Denis \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: 2012-10-30 05:04+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-01 04:36+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: account #: view:account.invoice.report:0 @@ -7939,7 +7939,7 @@ msgstr "Строка кассы" #: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other #: model:ir.ui.menu,name:account.menu_account_partner_ledger msgid "Partner Ledger" -msgstr "Книгапартнера" +msgstr "Книга партнера" #. module: account #: selection:account.tax.template,type:0 diff --git a/addons/account/i18n/sl.po b/addons/account/i18n/sl.po index 7557091bd4e..5e4f9a39e16 100644 --- a/addons/account/i18n/sl.po +++ b/addons/account/i18n/sl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-06-20 16:03+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2012-11-01 18:30+0000\n" +"Last-Translator: Dusan Laznik \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: 2012-10-30 05:04+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-02 05:09+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: account #: view:account.invoice.report:0 @@ -1587,7 +1587,7 @@ msgstr "Neobdavčeno" #. module: account #: view:account.partner.reconcile.process:0 msgid "Go to Next Partner" -msgstr "" +msgstr "Naslednji parner" #. module: account #: view:account.bank.statement:0 @@ -3150,7 +3150,7 @@ msgstr "Predloge kontnih načrtov" #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart msgid "Set Your Accounting Options" -msgstr "" +msgstr "Nastavitve" #. module: account #: view:report.account.sales:0 @@ -4358,7 +4358,7 @@ msgstr "res_config_contents" #. module: account #: view:account.unreconcile:0 msgid "Unreconciliate Transactions" -msgstr "" +msgstr "Neusklajene postavke" #. module: account #: help:account.chart.template,visible:0 @@ -4558,7 +4558,7 @@ msgstr "Datum dogodka" #. module: account #: view:account.unreconcile.reconcile:0 msgid "Unreconciliation Transactions" -msgstr "" +msgstr "Naknadno odprte postavke" #. module: account #: field:account.tax,ref_tax_code_id:0 @@ -6046,7 +6046,7 @@ msgstr "Davek(%)" #. module: account #: view:account.addtmpl.wizard:0 msgid "Create an Account Based on this Template" -msgstr "" +msgstr "Ustvarite konto na osnovi te predloge" #. module: account #: view:account.account.type:0 @@ -8827,7 +8827,7 @@ msgstr "Prodaja po vrstah" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 msgid "Cost Ledger for Period" -msgstr "" +msgstr "Stroški za obdobje" #. module: account #: help:account.tax,child_depend:0 @@ -10307,7 +10307,7 @@ msgstr "Urejanje vrst dnevnikov." #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Opis na računih" #. module: account #: model:ir.model,name:account.model_account_analytic_chart diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index 3ad8b790323..2e8e2d5d3da 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-10-25 16:26+0000\n" -"Last-Translator: AllanWong <18895563@qq.com>\n" +"PO-Revision-Date: 2012-11-01 08:44+0000\n" +"Last-Translator: ccdos \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: 2012-10-30 05:07+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-02 05:09+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: account #: view:account.invoice.report:0 @@ -2330,7 +2330,7 @@ msgstr "筛选" #: selection:report.invoice.created,state:0 #, python-format msgid "Open" -msgstr "打开" +msgstr "待支付" #. module: account #: model:process.node,note:account.process_node_draftinvoices0 @@ -4668,7 +4668,7 @@ msgstr "税适用" #: model:ir.ui.menu,name:account.menu_eaction_account_moves_sale #, python-format msgid "Journal Items" -msgstr "会计凭证行" +msgstr "会计凭证明细" #. module: account #: code:addons/account/account.py:1095 @@ -9642,7 +9642,7 @@ msgstr "本报表让您打印或产生一个由所有账簿生成的总账" #: selection:account.account.template,type:0 #: selection:account.entries.report,type:0 msgid "Regular" -msgstr "定期" +msgstr "常规科目" #. module: account #: view:account.account:0 @@ -10557,7 +10557,7 @@ msgstr "前景" #. module: account #: view:account.move.line:0 msgid "Search Journal Items" -msgstr "搜索分录" +msgstr "搜索会计凭证明细" #. module: account #: help:account.tax,base_sign:0 diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index d0813edead8..dca9f2ddf12 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -144,8 +144,8 @@ diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index e352a33d850..289db376e5d 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -42,7 +42,7 @@ - + diff --git a/addons/account/res_config.py b/addons/account/res_config.py index 41121db20f7..8f525795d1c 100644 --- a/addons/account/res_config.py +++ b/addons/account/res_config.py @@ -262,6 +262,7 @@ class account_config_settings(osv.osv_memory): 'sale_tax_rate': config.sale_tax_rate, 'purchase_tax_rate': config.purchase_tax_rate, 'complete_tax_set': config.complete_tax_set, + 'currency_id': config.currency_id.id, }, context) wizard.execute(cr, uid, [wizard_id], context) diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index d4bafca41be..52c8c8daaa9 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -268,7 +268,7 @@ inline - diff --git a/addons/account_accountant/account_accountant_data.xml b/addons/account_accountant/account_accountant_data.xml index e02db45fcd8..cf143b1bb58 100644 --- a/addons/account_accountant/account_accountant_data.xml +++ b/addons/account_accountant/account_accountant_data.xml @@ -5,6 +5,7 @@ + diff --git a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml index d56b6ee4760..f4e251aaca1 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml @@ -10,6 +10,12 @@ [('invoice_id','=',False)] {'search_default_to_invoice': 1} + +

+ You will find here timesheets and purchases you did for contracts that can be reinvoiced to the customer. + If you want to record new jobs to invoice, you should use the timesheet menu instead. +

+
diff --git a/addons/account_analytic_default/__openerp__.py b/addons/account_analytic_default/__openerp__.py index 213d055f8de..0af606821ce 100644 --- a/addons/account_analytic_default/__openerp__.py +++ b/addons/account_analytic_default/__openerp__.py @@ -38,7 +38,7 @@ Allows to automatically select analytic accounts based on criterions: 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/analytic_defaults.jpeg'], - 'depends': ['sale'], + 'depends': ['sale_stock'], 'data': [ 'security/ir.model.access.csv', 'security/account_analytic_default_security.xml', diff --git a/addons/account_bank_statement_extensions/account_bank_statement.py b/addons/account_bank_statement_extensions/account_bank_statement.py index 6eeda843dc5..3d097d3c757 100644 --- a/addons/account_bank_statement_extensions/account_bank_statement.py +++ b/addons/account_bank_statement_extensions/account_bank_statement.py @@ -105,8 +105,7 @@ account_bank_statement_line_global() class account_bank_statement_line(osv.osv): _inherit = 'account.bank.statement.line' _columns = { - 'date': fields.date('Entry Date', required=True, states={'confirm': [('readonly', True)]}), - 'val_date': fields.date('Valuta Date', states={'confirm': [('readonly', True)]}), + 'val_date': fields.date('Value Date', states={'confirm': [('readonly', True)]}), 'globalisation_id': fields.many2one('account.bank.statement.line.global', 'Globalisation ID', states={'confirm': [('readonly', True)]}, help="Code to identify transactions belonging to the same globalisation level within a batch payment"), diff --git a/addons/account_bank_statement_extensions/account_bank_statement_view.xml b/addons/account_bank_statement_extensions/account_bank_statement_view.xml index 9164c00373f..3d5560856a3 100644 --- a/addons/account_bank_statement_extensions/account_bank_statement_view.xml +++ b/addons/account_bank_statement_extensions/account_bank_statement_view.xml @@ -148,7 +148,7 @@ Bank Statement Lines account.bank.statement.line form - tree,graph,form + tree,form {'block_statement_line_delete' : 1} diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml index fdc358f5c98..81b261d6faa 100644 --- a/addons/account_budget/account_budget_view.xml +++ b/addons/account_budget/account_budget_view.xml @@ -290,7 +290,7 @@ - + @@ -310,11 +310,6 @@ - - - - - diff --git a/addons/account_payment/i18n/zh_CN.po b/addons/account_payment/i18n/zh_CN.po index eabd2b65207..abc36f292b9 100644 --- a/addons/account_payment/i18n/zh_CN.po +++ b/addons/account_payment/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-10 15:03+0000\n" -"Last-Translator: Wei \"oldrev\" Li \n" +"PO-Revision-Date: 2012-10-30 15:45+0000\n" +"Last-Translator: ccdos \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: 2012-10-30 05:13+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-10-31 04:40+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: account_payment #: field:payment.order,date_scheduled:0 @@ -653,7 +653,7 @@ msgstr "公司币别" #: view:payment.line:0 #: view:payment.order:0 msgid "Payment" -msgstr "付款" +msgstr "支付" #. module: account_payment #: report:payment.order:0 diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py index c0011c8b3c5..927fda19182 100644 --- a/addons/account_voucher/__openerp__.py +++ b/addons/account_voucher/__openerp__.py @@ -61,6 +61,7 @@ This module manages: 'account_voucher_data.xml', ], 'test' : [ + 'test/case5_suppl_usd_usd.yml', 'test/account_voucher.yml', 'test/sales_receipt.yml', 'test/sales_payment.yml', diff --git a/addons/account_voucher/test/case5_suppl_usd_usd.yml b/addons/account_voucher/test/case5_suppl_usd_usd.yml new file mode 100644 index 00000000000..3cae9667d84 --- /dev/null +++ b/addons/account_voucher/test/case5_suppl_usd_usd.yml @@ -0,0 +1,185 @@ +- + In order to check the Account_voucher module with multi-currency in OpenERP, + I create a supplier invoices in USD and make the payment in USD but with another exchange rate and with a write-off +- + I create a cash account with currency USD +- + !record {model: account.account, id: account_cash_usd_id}: + currency_id: base.USD + name: "cash account in usd" + code: "Xcash usd" + type: 'liquidity' + user_type: "account.data_account_type_cash" + +- + I create currency USD in OpenERP for November of 1.8 Rate +- + !record {model: res.currency.rate, id: nov_usd}: + currency_id: base.USD + name: !eval "'%s-11-01' %(datetime.now().year)" + rate: 1.8 +- + I create currency USD in OpenERP for December of 1.5 Rate +- + !record {model: res.currency.rate, id: dec_usd}: + currency_id: base.USD + name: !eval "'%s-12-01' %(datetime.now().year)" + rate: 1.5 +- + I set the income and expense currency accounts on the main company +- + !python {model: res.company}: | + from datetime import datetime + vals = { + 'income_currency_exchange_account_id': ref('account.o_expense'), + 'expense_currency_exchange_account_id': ref('account.o_expense')} + self.write(cr, uid, ref('base.main_company'), vals) +- + I create a bank journal with EUR as currency +- + !record {model: account.journal, id: bank_journal_EUR}: + name: Bank Journal(EUR) + code: BEUR + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I create a bank journal with USD as currency +- + !record {model: account.journal, id: bank_journal_USD}: + name: Bank Journal(USD) + code: BUSD + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account_cash_usd_id + default_credit_account_id: account_cash_usd_id + currency: base.USD + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I set the context as would do the action in supplier invoice menuitem +- + !context + 'default_type': 'in_invoice' +- + I create the invoice on 1st november for 1000 USD +- + !record {model: account.invoice, id: account_supplier_invoice_november, view: account.invoice_supplier_form}: + account_id: account.a_pay + company_id: base.main_company + currency_id: base.USD + date_invoice: !eval "'%s-11-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_expense + name: '[PCSC234] PC Assemble SC234' + price_unit: 1000.0 + quantity: 1.0 + product_id: product.product_product_3 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: base.res_partner_19 + reference_type: none + check_total : 1000 +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_supplier_invoice_november} +- + I check that first invoice move is correct for creditor account(debit - credit == -555.56) +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_supplier_invoice_november")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == -555.56), "Invoice move is incorrect for creditor account" + assert (move_line.amount_currency == -1000), "Amount currency is incorrect for creditor account" +- + I set the context that will be used for the encoding of all the vouchers of this file +- + !context + 'type': 'payment' +- + I create the voucher of payment with values $950, journal USD +- + !record {model: account.voucher, id: account_voucher_case_5_supplier_flow, view: view_vendor_payment_form}: + account_id: account.cash + amount: 950.0 + company_id: base.main_company + journal_id: bank_journal_USD + name: 'Payment: Case Basic SUPPLIER USD/USD' + partner_id: base.res_partner_19 + period_id: account.period_12 + date: !eval time.strftime("%Y-12-01") + payment_option: 'with_writeoff' + writeoff_acc_id: account.a_expense + comment: 'Write Off' + type: 'payment' +- + I fill $1000 for the previously encoded invoice +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + voucher_id = self.browse(cr, uid, ref('account_voucher_case_5_supplier_flow')) + for item in voucher_id.line_dr_ids: + if item.amount_unreconciled == 1000.00: + self.pool.get('account.voucher.line').write(cr, uid, [item.id], {'amount': 1000}) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is -50.0 +- + !assert {model: account.voucher, id: account_voucher_case_5_supplier_flow}: + - writeoff_amount == -50.0 +- + I confirm the voucher +- + !workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_case_5_supplier_flow} +- + I check that the move of my voucher is valid and that it is posted +- + !python {model: account.voucher}: | + voucher_id = self.browse(cr, uid, ref('account_voucher_case_5_supplier_flow')) + assert voucher_id.state == 'posted', "Voucher state is not posted" + for move_line in voucher_id.move_id.line_id: + assert move_line.state == 'valid', "Voucher move is not valid" +- + I check that my creditor account is correct +- + I check that the bank entry is -$950 and 633.33€ as amount_currency and credit, respectively. +- + I check that the creditor account has 1 new line with $1000 and 666.67€ as amount_currency and debit, respectively. +- + I check that my currency rate difference is correct (111.11€ in debit/credit with no amount_currency) +- + I check that my writeoff is correct. 33.34€ in credit with -$50 as amount currency +- + !python {model: account.voucher}: | + voucher_id = self.browse(cr, uid, ref('account_voucher_case_5_supplier_flow')) + for move_line in voucher_id.move_id.line_id: + if move_line.amount_currency == -950.00: + assert move_line.credit == 633.33, "Wrong bank entry." + elif move_line.credit == 111.11 or move_line.debit == 111.11: + assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." + elif move_line.credit == 33.34: + assert move_line.amount_currency == -50.0, "Writeoff amount is wrong." + elif move_line.debit == 666.67: + assert move_line.amount_currency == 1000.0, "Wrong supplier entry." + else: + assert False, "Wrong entry. Unrecognized account move line" +- + I check the residual amount of invoice, it should be 0 in residual currency and 0 in amount_residual and paid +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_supplier_invoice_november")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for supplier invoice" diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index 6666ac77d2f..881a5e38f1c 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -290,7 +290,7 @@ - + - + diff --git a/addons/base_calendar/i18n/base_calendar.pot b/addons/base_calendar/i18n/base_calendar.pot index 628f7af2baa..88ba245051f 100644 --- a/addons/base_calendar/i18n/base_calendar.pot +++ b/addons/base_calendar/i18n/base_calendar.pot @@ -1146,7 +1146,7 @@ msgstr "" #: selection:calendar.attendee,state:0 #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 -msgid "Tentative" +msgid "Uncertain" msgstr "" #. module: base_calendar diff --git a/addons/base_gengo/__openerp__.py b/addons/base_gengo/__openerp__.py index ae61ad8f13c..cc9183f6851 100644 --- a/addons/base_gengo/__openerp__.py +++ b/addons/base_gengo/__openerp__.py @@ -25,7 +25,8 @@ 'description': """ Automated Translations through Gengo API ---------------------------------------- - This module will install passive scheduler job for automated translations + +This module will install passive scheduler job for automated translations using the Gengo API. To activate it, you must 1) Configure your Gengo authentication parameters under `Settings > Companies > Gengo Parameters` 2) Launch the wizard under `Settings > Application Terms > Gengo: Manual Request of Translation` and follow the wizard. diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 9ee5aeb2301..da0591b1c5a 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -251,7 +251,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'street2': fields.char('Street2', size=128), 'zip': fields.char('Zip', change_default=True, size=24), 'city': fields.char('City', size=128), - 'state_id': fields.many2one("res.country.state", 'State', domain="[('country_id','=',country_id)]"), + 'state_id': fields.many2one("res.country.state", 'State'), 'country_id': fields.many2one('res.country', 'Country'), 'phone': fields.char('Phone', size=64), 'fax': fields.char('Fax', size=64), @@ -896,6 +896,10 @@ class crm_lead(base_stage, format_address, osv.osv): lead.message_post(body=message) return True -crm_lead() + def onchange_state(self, cr, uid, ids, state_id, context=None): + if state_id: + country_id=self.pool.get('res.country.state').browse(cr, uid, state_id, context).country_id.id + return {'value':{'country_id':country_id}} + return {} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index b6890a7de07..5ff1bc15f69 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -160,7 +160,7 @@
- +
@@ -477,7 +477,7 @@
- +
diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml index 30303d4205c..2344604a294 100644 --- a/addons/crm/crm_phonecall_menu.xml +++ b/addons/crm/crm_phonecall_menu.xml @@ -2,14 +2,6 @@ - - - - Event Graph - event.event - - - - - - - - - @@ -362,7 +348,7 @@ ir.actions.act_window event.event form - kanban,calendar,tree,form,graph + kanban,calendar,tree,form {"search_default_upcoming":1} diff --git a/addons/event_moodle/wizard_moodle.xml b/addons/event_moodle/wizard_moodle.xml index 8dbe5d485f9..7cc300521ce 100644 --- a/addons/event_moodle/wizard_moodle.xml +++ b/addons/event_moodle/wizard_moodle.xml @@ -23,7 +23,7 @@
diff --git a/addons/fetchmail/fetchmail_view.xml b/addons/fetchmail/fetchmail_view.xml index 3cdc886ba2b..66c7e5a7f5c 100644 --- a/addons/fetchmail/fetchmail_view.xml +++ b/addons/fetchmail/fetchmail_view.xml @@ -24,9 +24,9 @@
-
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py index 0a93d844180..cf3a7936657 100644 --- a/addons/hr/__openerp__.py +++ b/addons/hr/__openerp__.py @@ -29,7 +29,7 @@ 'summary': 'Jobs, Departments, Employees Details', 'description': """ Human Resources Management -========================= +========================== This application enables you to manage important aspects of your company's staff and other details such as their skills, contacts, working time... diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 935dbb4da2b..dda977a8a93 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -188,8 +188,6 @@ - - product.product.expense.form @@ -203,5 +201,20 @@ + + Products + product.product + form + kanban,tree,form + {"default_hr_expense_ok":1} + [('hr_expense_ok','=',True)] + + + + + + + + diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py index 65ccc8948c2..d15dd3b0e3b 100644 --- a/addons/hr_timesheet_invoice/__openerp__.py +++ b/addons/hr_timesheet_invoice/__openerp__.py @@ -50,6 +50,7 @@ reports.""", ], 'demo': ['hr_timesheet_invoice_demo.xml'], 'test': ['test/test_hr_timesheet_invoice.yml', + 'test/test_hr_timesheet_invoice_no_prod_tax.yml', 'test/hr_timesheet_invoice_report.yml', ], 'installable': True, diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py index 88094b4a0e0..9ca2c58b6ff 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py @@ -94,13 +94,13 @@ class account_analytic_account(osv.osv): def set_close(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state': 'close'}, context=context) message = _("Contract has been closed.") - self.message_post(cr, uid, ids, body=message, subtype="mt_account_closed", context=context) + self.message_post(cr, uid, ids, body=message, subtype="hr_timesheet_invoice.mt_account_closed", context=context) return True def set_cancel(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state': 'cancelled'}, context=context) message = _("Contract has been canceled.") - self.message_post(cr, uid, ids, body=message, subtype="mt_account_canceled", context=context) + self.message_post(cr, uid, ids, body=message, subtype="hr_timesheet_invoice.mt_account_canceled", context=context) return True def set_open(self, cr, uid, ids, context=None): diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml index 5c0bc6d702f..e82b6fd19e8 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_data.xml @@ -21,5 +21,16 @@ 80% 20.0 + + + + finished + account.analytic.account + + + canceled + account.analytic.account + + diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml index f4536309d70..b3ec10e59c2 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml @@ -19,10 +19,10 @@
diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml index 91520da56a2..de19ea8fb3a 100644 --- a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml +++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml @@ -30,6 +30,42 @@ - !python {model: hr.analytic.timesheet}: | self.on_change_account_id(cr, uid, [ref('account_analytic_line_developyamlforhrmodule0')], ref('account.analytic_agrolait')) + +- + I create a Tax Codes +- + !record {model: account.tax.code, id: tax_case}: + name: Tax_case + company_id: base.main_company + sign: 1 +- + I create a Tax +- + !record {model: account.tax, id: tax10}: + name: Tax 10.0 + amount: 10.0 + type: fixed + sequence: 1 + company_id: base.main_company + type_tax_use: all + tax_code_id: tax_case +- + I create an Account with the tax +- + !record {model: account.account, id: account_income_i000}: + name: "income account" + code: "I000" + type: 'other' + user_type: "account.data_account_type_income" + tax_ids: [tax10] +- + I set the account as property_account_income on the product and I set the tax on the product +- + !record {model: product.product, id: product.product_product_consultant}: + property_account_income: account_income_i000 + uom_id: product.product_uom_hour + taxes_id: [tax10] + list_price: 75 - I create invoice on analytic Line using "Invoice analytic Line" wizard. - @@ -39,13 +75,11 @@ price: 1 product: product.product_product_consultant time: 1 - - I click on "Create Invoice" button of "Invoice analytic Line" wizard to create invoice. - !python {model: hr.timesheet.invoice.create}: | self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {"active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule0")]}) - - I check that Invoice is created for this timesheet. - @@ -67,8 +101,8 @@ assert product == product_exp assert aline.invoice_id, "Invoice created, but analytic line wasn't updated." assert aline.invoice_id == invoice_id, "Invoice doesn't match the one at analytic line" - # The expected amount is hard coded here, please keep updated: assert invoice_id.amount_untaxed == 187.5, "Invoice amount mismatch: %s" % invoice_id.amount_untaxed + assert invoice_id.amount_tax == 50, "Invoice tax mismatch: %s" % invoice_id.amount_tax - I create final invoice for this analytic account. - diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml new file mode 100644 index 00000000000..68e827e79f1 --- /dev/null +++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml @@ -0,0 +1,119 @@ +- + In order to test hr_timesheet_invoice in OpenERP, I create account line to manage invoice based on costs. +- + I create an account analytic line. +- + !record {model: account.analytic.line, id: account_analytic_line_developyamlforhrmodule1 }: + account_id: account.analytic_agrolait + amount: -1.0 + general_account_id: account.a_expense + journal_id: hr_timesheet.analytic_journal + name: develop yaml for hr module + product_id: product.product_product_consultant + product_uom_id: product.product_uom_hour + to_invoice: hr_timesheet_invoice.timesheet_invoice_factor2 + unit_amount: 5.00 +- + Assign partner name and price list in analytic account. +- + !record {model: account.analytic.account, id: account.analytic_agrolait}: + partner_id: base.res_partner_2 + pricelist_id: product.list0 +- + I open this account and make the state as pending. +- + !python {model: account.analytic.account}: | + self.set_open(cr, uid, [ref('account.analytic_agrolait')], None) + self.set_pending(cr, uid, [ref('account.analytic_agrolait')], None) +- + I assign account on analytic account line. +- + !python {model: hr.analytic.timesheet}: | + self.on_change_account_id(cr, uid, [ref('account_analytic_line_developyamlforhrmodule1')], ref('account.analytic_agrolait')) +- + I create a Tax Code +- + !record {model: account.tax.code, id: tax_case}: + name: Tax_case + company_id: base.main_company + sign: 1 +- + I create a Tax +- + !record {model: account.tax, id: tax8}: + name: Tax 8.0 + amount: 8.0 + type: fixed + sequence: 1 + company_id: base.main_company + type_tax_use: all + tax_code_id: tax_case +- + I create an Account with the tax +- + !record {model: account.account, id: account_income_i000}: + name: "income account" + code: "I000" + type: 'other' + user_type: "account.data_account_type_income" + tax_ids: [tax8] +- + I set the account as property_account_income on the product and I set no tax on the product (so default tax from the account will be used) +- + !record {model: product.product, id: product.product_product_consultant}: + property_account_income: account_income_i000 + uom_id: product.product_uom_hour + taxes_id: [] + list_price: 75 +- + I create invoice on analytic Line using "Invoice analytic Line" wizard. +- + !record {model: hr.timesheet.invoice.create, id: hr_timesheet_invoice_create_0}: + date: 1 + name: 1 + price: 1 + product: product.product_product_consultant + time: 1 +- + I click on "Create Invoice" button of "Invoice analytic Line" wizard to create invoice. +- + !python {model: hr.timesheet.invoice.create}: | + self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {"active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule1")]}) +- + I check that Invoice is created for this timesheet. +- + !python {model: account.analytic.line}: | + aline = self.browse(cr, uid, ref('account_analytic_line_developyamlforhrmodule1')) + analytic_account_obj = self.pool.get('account.analytic.account') + data = self.pool.get('hr.timesheet.invoice.create').read(cr, uid, [ref("hr_timesheet_invoice_create_0")], [], context)[0] + partner = aline.account_id.partner_id.id + + invoice_obj = self.pool.get('account.invoice') + invoice_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner)]) + invoice_id = invoice_obj.browse(cr, uid, invoice_ids)[0] + + for invoice in invoice_id.invoice_line: + product = invoice.product_id.id + + product_exp = data['product'][0] + + assert product == product_exp + assert aline.invoice_id, "Invoice created, but analytic line wasn't updated." + assert aline.invoice_id == invoice_id, "Invoice doesn't match the one at analytic line" + assert invoice_id.amount_untaxed == 187.5, "Invoice amount mismatch: %s" % invoice_id.amount_untaxed + assert invoice_id.amount_tax == 40, "Invoice tax mismatch: %s" % invoice_id.amount_tax +- + I create final invoice for this analytic account. +- + !record {model: hr.timesheet.invoice.create.final, id: hr_timesheet_invoice_create_final_0}: + date: 1 + name: 1 + price: 1 + time: 1 +- + I click on "Create Invoice" button to create Invoice and validate the invoice. +- + !python {model: hr.timesheet.invoice.create.final}: | + import netsvc + wkf_service = netsvc.LocalService("workflow") + res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]}) diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py index 1201cc7d4e5..695d589ee2e 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py @@ -49,7 +49,6 @@ class account_analytic_line(osv.osv): # } def invoice_cost_create(self, cr, uid, ids, data=None, context=None): analytic_account_obj = self.pool.get('account.analytic.account') - res_partner_obj = self.pool.get('res.partner') account_payment_term_obj = self.pool.get('account.payment.term') invoice_obj = self.pool.get('account.invoice') product_obj = self.pool.get('product.product') @@ -115,7 +114,7 @@ class account_analytic_line(osv.osv): for product_id, user_id, factor_id, qty, uom, line_name in cr.fetchall(): if data.get('product'): - product_id = data['product'][0] + product_id = data['product'][0] product = product_obj.browse(cr, uid, product_id, context=context2) if not product: raise osv.except_osv(_('Error!'), _('There is no product defined for the line %s. Please select one or force the product through the wizard.') % (line_name)) @@ -132,7 +131,7 @@ class account_analytic_line(osv.osv): general_account = product.product_tmpl_id.property_account_income or product.categ_id.property_account_income_categ if not general_account: raise osv.except_osv(_("Configuration Error!"), _("Please define income account for product '%s'.") % product.name) - taxes = product.taxes_id + taxes = product.taxes_id or general_account.tax_ids tax = fiscal_pos_obj.map_tax(cr, uid, account.partner_id.property_account_position, taxes) curr_line = { 'price_unit': price, @@ -211,7 +210,7 @@ class hr_timesheet_invoice_create(osv.osv_memory): data = context and context.get('active_ids', []) for analytic in analytic_obj.browse(cr, uid, data, context=context): if analytic.invoice_id: - raise osv.except_osv(_('Warning!'), _("Invoice is already linked to some of the analytic line(s)!")) + raise osv.except_osv(_('Warning!'), _("Invoice is already linked to some of the analytic line(s)!")) def do_create(self, cr, uid, ids, context=None): data = self.read(cr, uid, ids, [], context=context)[0] diff --git a/addons/hr_timesheet_sheet/i18n/zh_CN.po b/addons/hr_timesheet_sheet/i18n/zh_CN.po index 7281bb7e08f..740c5a57c45 100644 --- a/addons/hr_timesheet_sheet/i18n/zh_CN.po +++ b/addons/hr_timesheet_sheet/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-08-18 17:34+0000\n" -"Last-Translator: Heling Yao \n" +"PO-Revision-Date: 2012-11-01 08:13+0000\n" +"Last-Translator: ccdos \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: 2012-10-30 05:14+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-02 05:09+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: hr_timesheet_sheet #: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0 @@ -967,7 +967,7 @@ msgstr "你只能做今天的签入/签出" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Submit to Manager" -msgstr "" +msgstr "提交给经理" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,account_ids:0 diff --git a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml index 50a99673e73..9ee55f9c9f5 100644 --- a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml @@ -26,7 +26,6 @@ - diff --git a/addons/hr_timesheet_sheet/report/timesheet_report.py b/addons/hr_timesheet_sheet/report/timesheet_report.py index cfd87d784ad..e276980ddf7 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report.py +++ b/addons/hr_timesheet_sheet/report/timesheet_report.py @@ -32,6 +32,7 @@ class timesheet_report(osv.osv): ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True), 'day': fields.char('Day', size=128, readonly=True), + 'date': fields.date('Date', readonly=True), 'name': fields.char('Description', size=64,readonly=True), 'product_id' : fields.many2one('product.product', 'Product'), 'general_account_id' : fields.many2one('account.account', 'General Account', readonly=True), @@ -63,6 +64,7 @@ class timesheet_report(osv.osv): select min(aal.id) as id, htss.name, + aal.date as date, htss.date_from, htss.date_to, to_char(htss.date_from, 'YYYY-MM-DD') as day, @@ -96,6 +98,7 @@ class timesheet_report(osv.osv): left join hr_timesheet_sheet_sheet as htss ON (hat.line_id=htss.id) group by aal.account_id, + aal.date, htss.date_from, htss.date_to, aal.unit_amount, diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml index 711bbaf2a35..aee07fc23b6 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml @@ -17,6 +17,7 @@ timesheet.report + diff --git a/addons/l10n_be_coda/l10n_be_coda_view.xml b/addons/l10n_be_coda/l10n_be_coda_view.xml index 21db77466a0..d5067e7951a 100644 --- a/addons/l10n_be_coda/l10n_be_coda_view.xml +++ b/addons/l10n_be_coda/l10n_be_coda_view.xml @@ -473,7 +473,7 @@ CODA Statement Lines coda.bank.statement.line form - tree,graph,form + tree,form {'block_statement_line_delete' : 1} diff --git a/addons/l10n_ve/i18n/de.po b/addons/l10n_ve/i18n/de.po new file mode 100644 index 00000000000..a5f8acd67e0 --- /dev/null +++ b/addons/l10n_ve/i18n/de.po @@ -0,0 +1,83 @@ +# German translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-12-23 09:56+0000\n" +"PO-Revision-Date: 2012-10-31 15:43+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-11-01 04:36+0000\n" +"X-Generator: Launchpad (build 16218)\n" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_receivable +msgid "Receivable" +msgstr "Forderungen" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_expense +msgid "Expense" +msgstr "Ausgaben" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_equity +msgid "Equity" +msgstr "" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_tax +msgid "Tax" +msgstr "Steuer" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_cash +msgid "Cash" +msgstr "Barkasse" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_payable +msgid "Payable" +msgstr "Verbindlichkeiten" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_asset +msgid "Asset" +msgstr "Anlagegüter" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_income +msgid "Income" +msgstr "Einnahmen" + +#. module: l10n_ve +#: model:ir.actions.todo,note:l10n_ve.config_call_account_template_ve_chart +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"This is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template.\n" +"Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el " +"nombre de la compania, la plantilla de carta para seguir, el no. de digitos " +"para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear " +"Diarios. Asi, la copia pura de la carta la Plantilla es generada.\n" +"Esto es el mismo wizard que corre de la Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template.\n" +" " +msgstr "" + +#. module: l10n_ve +#: model:account.account.type,name:l10n_ve.account_type_view +msgid "View" +msgstr "Sicht" diff --git a/addons/mail/i18n/ru.po b/addons/mail/i18n/ru.po index e43f9e6d2b8..e608d6dbc1d 100644 --- a/addons/mail/i18n/ru.po +++ b/addons/mail/i18n/ru.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-09 00:36+0000\n" -"PO-Revision-Date: 2012-10-26 17:02+0000\n" +"PO-Revision-Date: 2012-10-30 09:52+0000\n" "Last-Translator: Chertykov Denis \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 05:33+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-10-31 04:40+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: mail #: field:mail.compose.message,subtype:0 field:mail.message,subtype:0 #: field:mail.message.common,subtype:0 msgid "Message Type" -msgstr "" +msgstr "Тип сообщения" #. module: mail #: help:mail.compose.message,auto_delete:0 @@ -51,7 +51,7 @@ msgstr "История общения" #. module: mail #: view:mail.message:0 msgid "Group By..." -msgstr "Объеденить по..." +msgstr "Группировать по ..." #. module: mail #: model:ir.actions.act_window,name:mail.action_email_compose_message_wizard @@ -80,7 +80,7 @@ msgstr "Получатели сообщения" #: field:mail.compose.message,body_text:0 field:mail.message,body_text:0 #: field:mail.message.common,body_text:0 msgid "Text Contents" -msgstr "" +msgstr "Текстовое содержимое" #. module: mail #: view:mail.message:0 selection:mail.message,state:0 @@ -196,7 +196,7 @@ msgstr "Получатели" #. module: mail #: model:ir.model,name:mail.model_mail_compose_message msgid "Email composition wizard" -msgstr "" +msgstr "Мастер составления эл. почты" #. module: mail #: field:mail.compose.message,res_id:0 field:mail.message,res_id:0 @@ -219,7 +219,7 @@ msgstr "Ответ:" #: field:mail.compose.message,model:0 field:mail.message,model:0 #: field:mail.message.common,model:0 msgid "Related Document Model" -msgstr "" +msgstr "Модель связанного документа" #. module: mail #: view:mail.message:0 @@ -287,7 +287,7 @@ msgstr "%(sender_name)s написал:" #: field:mail.compose.message,body_html:0 field:mail.message,body_html:0 #: field:mail.message.common,body_html:0 msgid "Rich-text Contents" -msgstr "" +msgstr "Форматированное содержимое" #. module: mail #: field:mail.message,original:0 @@ -359,7 +359,7 @@ msgstr "[OpenERP-Forward-Failed] %s" #. module: mail #: field:mail.message,user_id:0 msgid "Related User" -msgstr "" +msgstr "Относится к пользователю" #. module: mail #: help:mail.compose.message,headers:0 help:mail.message,headers:0 @@ -454,7 +454,7 @@ msgstr "Сообщения" #: field:mail.compose.message,headers:0 field:mail.message,headers:0 #: field:mail.message.common,headers:0 msgid "Message Headers" -msgstr "" +msgstr "Заголовки сообщений" #. module: mail #: field:mail.compose.message,email_bcc:0 field:mail.message,email_bcc:0 diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index e986f12b822..f3203336615 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -156,7 +156,7 @@ class mail_thread(osv.AbstractModel): old = set(fol.partner_id.id for fol in fol_obj.browse(cr, SUPERUSER_ID, fol_ids)) new = set(old) - for command in value: + for command in value or []: if isinstance(command, (int, long)): new.add(command) elif command[0] == 0: diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml index ce0e55e37c9..b47ceb97bed 100644 --- a/addons/membership/membership_view.xml +++ b/addons/membership/membership_view.xml @@ -124,7 +124,7 @@ - + diff --git a/addons/mrp/i18n/sl.po b/addons/mrp/i18n/sl.po index 2fde7588b58..6cd8453af27 100644 --- a/addons/mrp/i18n/sl.po +++ b/addons/mrp/i18n/sl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:49+0000\n" -"PO-Revision-Date: 2011-01-12 15:34+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-11-01 19:12+0000\n" +"Last-Translator: Dusan Laznik \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: 2012-10-30 04:50+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-02 05:09+0000\n" +"X-Generator: Launchpad (build 16218)\n" #. module: mrp #: view:mrp.routing.workcenter:0 @@ -34,7 +34,7 @@ msgstr "" #. module: mrp #: help:mrp.production,location_src_id:0 msgid "Location where the system will look for components." -msgstr "Lokacije, kjer bo sistem iskal komponente" +msgstr "" #. module: mrp #: field:mrp.production,workcenter_lines:0 @@ -59,7 +59,7 @@ msgstr "Število ciklov" #. module: mrp #: model:product.uom.categ,name:mrp.product_uom_categ_fluid msgid "Fluid" -msgstr "" +msgstr "Tekočina" #. module: mrp #: model:process.transition,note:mrp.process_transition_minimumstockprocure0 @@ -155,7 +155,7 @@ msgstr "" #. module: mrp #: view:mrp.production:0 msgid "Products to Finish" -msgstr "Produkti za dokončanje" +msgstr "Izdelki za dokončanje" #. module: mrp #: selection:mrp.bom,method:0 @@ -166,7 +166,7 @@ msgstr "" #: view:mrp.production:0 #: field:mrp.production,state:0 msgid "State" -msgstr "Stanje" +msgstr "Status" #. module: mrp #: field:mrp.workcenter,costs_hour:0 @@ -176,7 +176,7 @@ msgstr "Strošek na uro" #. module: mrp #: model:product.template,name:mrp.product_orange_product_template msgid "Orange" -msgstr "" +msgstr "Pomaranča" #. module: mrp #: model:process.transition,note:mrp.process_transition_servicemts0 @@ -188,7 +188,7 @@ msgstr "" #. module: mrp #: view:mrp.production:0 msgid "UOM" -msgstr "ME" +msgstr "EM" #. module: mrp #: field:change.production.qty,product_qty:0 @@ -241,7 +241,7 @@ msgstr "[" #. module: mrp #: model:process.transition,name:mrp.process_transition_procureserviceproduct0 msgid "Procurement of services" -msgstr "" +msgstr "Nabava storitev" #. module: mrp #: view:mrp.workcenter:0 @@ -279,7 +279,7 @@ msgstr "Partnerjev sklic" #: field:mrp.production,origin:0 #: report:mrp.production.order:0 msgid "Source Document" -msgstr "" +msgstr "Izvorni dokument" #. module: mrp #: field:mrp.production,product_lines:0 @@ -329,13 +329,13 @@ msgstr "" #. module: mrp #: view:mrp.bom:0 msgid "Default UOM" -msgstr "" +msgstr "Privzeta EM" #. module: mrp #: sql_constraint:mrp.production:0 #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Referenca mora biti enoznačna" #. module: mrp #: code:addons/mrp/report/price.py:139 @@ -441,7 +441,7 @@ msgstr "" #. module: mrp #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Ime podjetja mora biti unikatno !" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_property_group_action @@ -463,7 +463,7 @@ msgstr "" #. module: mrp #: model:process.node,note:mrp.process_node_serviceproduct1 msgid "For Services." -msgstr "" +msgstr "Za storitve." #. module: mrp #: help:mrp.workcenter,costs_cycle_account_id:0 @@ -494,7 +494,7 @@ msgstr "" #. module: mrp #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "Napaka: neveljavna EAN črtna koda" #. module: mrp #: field:mrp.production,move_created_ids:0 @@ -564,7 +564,7 @@ msgstr "" #: field:mrp.production,product_uom:0 #: field:mrp.production.product.line,product_uom:0 msgid "Product UOM" -msgstr "ME proizvoda" +msgstr "EM" #. module: mrp #: selection:mrp.production,state:0 @@ -611,7 +611,7 @@ msgstr "" #: code:addons/mrp/procurement.py:43 #, python-format msgid "No BoM defined for this product !" -msgstr "" +msgstr "Izdelek nima kosovnice" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 @@ -622,12 +622,12 @@ msgstr "" #. module: mrp #: model:ir.model,name:mrp.model_stock_move msgid "Stock Move" -msgstr "" +msgstr "Prenos zaloge" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_planning msgid "Planning" -msgstr "" +msgstr "Načrtovanje" #. module: mrp #: view:mrp.production:0 diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index f8b53583a8c..b2cee5f5b30 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -192,7 +192,7 @@ class mrp_bom(osv.osv): return res _columns = { - 'name': fields.char('Name', size=64, required=True), + 'name': fields.char('Name', size=64), 'code': fields.char('Reference', size=16), 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the bills of material without removing it."), 'type': fields.selection([('normal','Normal BoM'),('phantom','Sets / Phantom')], 'BoM Type', required=True, @@ -420,28 +420,6 @@ class mrp_production(osv.osv): result[prod.id]['cycle_total'] += wc.cycle return result - def _production_date_end(self, cr, uid, ids, prop, unknow_none, context=None): - """ Finds production end date. - @param prop: Name of field. - @param unknow_none: - @return: Dictionary of values. - """ - result = {} - for prod in self.browse(cr, uid, ids, context=context): - result[prod.id] = prod.date_planned - return result - - def _production_date(self, cr, uid, ids, prop, unknow_none, context=None): - """ Finds production planned date. - @param prop: Name of field. - @param unknow_none: - @return: Dictionary of values. - """ - result = {} - for prod in self.browse(cr, uid, ids, context=context): - result[prod.id] = prod.date_planned[:10] - return result - def _src_id_default(self, cr, uid, ids, context=None): src_location_id = self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'stock_location_stock', context=context) return src_location_id.id @@ -469,13 +447,9 @@ class mrp_production(osv.osv): 'location_dest_id': fields.many2one('stock.location', 'Finished Products Location', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Location where the system will stock the finished products."), - - 'date_planned_end': fields.function(_production_date_end, type='date', string='Scheduled End Date'), - 'date_planned_date': fields.function(_production_date, type='date', string='Scheduled Date'), 'date_planned': fields.datetime('Scheduled Date', required=True, select=1, readonly=True, states={'draft':[('readonly',False)]}), 'date_start': fields.datetime('Start Date', select=True, readonly=True), 'date_finished': fields.datetime('End Date', select=True, readonly=True), - 'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)], readonly=True, states={'draft':[('readonly',False)]}, help="Bill of Materials allow you to define the list of required raw materials to make a finished product."), 'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', readonly=True, states={'draft':[('readonly',False)]}, @@ -515,6 +489,7 @@ class mrp_production(osv.osv): 'state': lambda *a: 'draft', 'date_planned': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), 'product_qty': lambda *a: 1.0, + 'user_id': lambda self, cr, uid, c: uid, 'name': lambda x, y, z, c: x.pool.get('ir.sequence').get(y, z, 'mrp.production') or '/', 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.production', context=c), 'location_src_id': _src_id_default, diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index fde980fcb73..aabc3d9dc63 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -366,7 +366,7 @@ - +

@@ -442,11 +442,11 @@ - - + + @@ -462,9 +462,9 @@ - + - + diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 90330c4c988..4bca93d260f 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -50,17 +50,6 @@ class stock_move(osv.osv): stock_move() class mrp_production_workcenter_line(osv.osv): - def _get_date_date(self, cr, uid, ids, field_name, arg, context=None): - """ Finds starting date. - @return: Dictionary of values. - """ - res={} - for op in self.browse(cr, uid, ids, context=context): - if op.date_start: - res[op.id] = op.date_start[:10] - else: - res[op.id]=False - return res def _get_date_end(self, cr, uid, ids, field_name, arg, context=None): """ Finds ending date. @@ -92,7 +81,6 @@ class mrp_production_workcenter_line(osv.osv): "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' status.\n" \ "* When the user cancels the work order it will be set in 'Canceled' status.\n" \ "* When order is completely processed that time it is set in 'Finished' status."), - 'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'), 'date_planned': fields.datetime('Scheduled Date', select=True), 'date_planned_end': fields.function(_get_date_end, string='End Date', type='datetime'), 'date_start': fields.datetime('Start Date'), diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index 13d02c8151c..a16a9b23f0a 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -328,7 +328,7 @@ mrp.production.workcenter.line - + diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml index 2e8a1ae6ba9..d3a55ab32c1 100644 --- a/addons/mrp_repair/mrp_repair_view.xml +++ b/addons/mrp_repair/mrp_repair_view.xml @@ -34,16 +34,11 @@