diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 6f982b17480..e94857c8536 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -132,8 +132,6 @@ - - diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index c1367e60498..fe1bafecde0 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -131,8 +131,6 @@ - - @@ -569,8 +567,6 @@ - - @@ -1356,7 +1352,6 @@ - @@ -2627,9 +2622,6 @@ action = pool.get('res.config').next(cr, uid, [], context) - - - diff --git a/addons/account/i18n/ja.po b/addons/account/i18n/ja.po index 9f2bc798696..f4550c3fd69 100644 --- a/addons/account/i18n/ja.po +++ b/addons/account/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-15 06:17+0000\n" +"PO-Revision-Date: 2012-06-01 01:29+0000\n" "Last-Translator: Akira Hiyama \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-16 04:50+0000\n" -"X-Generator: Launchpad (build 15247)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account #: view:account.invoice.report:0 @@ -1662,7 +1662,7 @@ msgstr "切り離された仕訳帳順序" #. module: account #: view:account.invoice:0 msgid "Responsible" -msgstr "責任担当" +msgstr "担当" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all @@ -1679,7 +1679,7 @@ msgstr "請求書のキャンセル:現在の請求書をキャンセルする #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing msgid "Invoicing" -msgstr "請求" +msgstr "請求中" #. module: account #: code:addons/account/report/account_partner_balance.py:115 @@ -2615,7 +2615,7 @@ msgstr "銀行消し込み" #. module: account #: report:account.invoice:0 msgid "Disc.(%)" -msgstr "ディスク(%)" +msgstr "割引(%)" #. module: account #: report:account.general.ledger:0 @@ -4445,7 +4445,7 @@ msgstr "" #: view:account.tax:0 #: view:account.tax.template:0 msgid "Keep empty to use the income account" -msgstr "損益勘定を使うためは空のままとして下さい。" +msgstr "収益勘定を使うためは空のままとして下さい。" #. module: account #: code:addons/account/account.py:3299 @@ -5300,7 +5300,7 @@ msgstr "年度エントリー仕訳帳の末尾" #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" -msgstr "設定エラー。" +msgstr "設定エラーです。" #. module: account #: field:account.payment.term.line,value_amount:0 @@ -5592,7 +5592,7 @@ msgstr "買掛金合計" #: model:account.account.type,name:account.data_account_type_income #: model:account.financial.report,name:account.account_financial_report_income0 msgid "Income" -msgstr "収益" +msgstr "収入" #. module: account #: selection:account.bank.statement.line,type:0 @@ -5888,7 +5888,7 @@ msgstr "サブスクリプション期間中" #. module: account #: report:account.invoice:0 msgid "Fiscal Position Remark :" -msgstr "会計ポジション注釈:" +msgstr "会計ポジションの注釈:" #. module: account #: view:analytic.entries.report:0 @@ -7024,7 +7024,7 @@ msgstr "財務レポートの階層" #: view:analytic.entries.report:0 #: field:analytic.entries.report,product_uom_id:0 msgid "Product UOM" -msgstr "製品単位" +msgstr "製品の単位" #. module: account #: model:ir.actions.act_window,help:account.action_view_bank_statement_tree @@ -7335,7 +7335,7 @@ msgstr "" #: field:account.invoice.tax,invoice_id:0 #: model:ir.model,name:account.model_account_invoice_line msgid "Invoice Line" -msgstr "請求行" +msgstr "請求書行" #. module: account #: view:account.invoice.report:0 @@ -7590,7 +7590,7 @@ msgstr "仕訳帳の仕訳帳エントリー記帳" #. module: account #: view:product.product:0 msgid "Sale Taxes" -msgstr "消費税(売上)" +msgstr "消費税" #. module: account #: field:account.financial.report,name:0 @@ -8156,7 +8156,7 @@ msgstr "一部が支払済の請求書のキャンセルはできません。ま #. module: account #: field:account.chart.template,property_account_income_categ:0 msgid "Income Category Account" -msgstr "収益分類のアカウント" +msgstr "収入分類のアカウント" #. module: account #: field:account.account,adjusted_balance:0 @@ -9454,7 +9454,7 @@ msgstr "" #. module: account #: view:account.analytic.account:0 msgid "Pending" -msgstr "保留" +msgstr "保留中" #. module: account #: model:process.transition,name:account.process_transition_analyticinvoice0 @@ -10758,3 +10758,9 @@ msgstr "仕訳帳エントリーの買掛金、または買掛金の残差金額 #~ msgid "Description On Invoices" #~ msgstr "請求書説明" + +#~ msgid "Write-Off journal" +#~ msgstr "償却仕訳帳" + +#~ msgid "Full Payment" +#~ msgstr "全支払" diff --git a/addons/account/i18n/pt.po b/addons/account/i18n/pt.po index 256f903bbd0..ce81967607a 100644 --- a/addons/account/i18n/pt.po +++ b/addons/account/i18n/pt.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-05-10 17:57+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2012-05-31 15:04+0000\n" +"Last-Translator: ThinkOpen Solutions \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-05-11 04:51+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account #: view:account.invoice.report:0 @@ -93,7 +93,7 @@ msgstr "Antiguidade de saldos de clientes até hoje." #. module: account #: model:process.transition,name:account.process_transition_invoiceimport0 msgid "Import from invoice or payment" -msgstr "Importar da fatura ou do pagamento" +msgstr "Importar da fatura ou pagamento" #. module: account #: model:ir.model,name:account.model_wizard_multi_charts_accounts @@ -274,7 +274,7 @@ msgstr "" #. module: account #: report:account.overdue:0 msgid "Sub-Total :" -msgstr "Sub-total :" +msgstr "Sub-Total :" #. module: account #: model:ir.actions.act_window,name:account.action_account_use_model_create_entry @@ -404,12 +404,12 @@ msgstr "account.bank.accounts.wizard" #: field:account.move.line,date_created:0 #: field:account.move.reconcile,create_date:0 msgid "Creation date" -msgstr "Data de criação" +msgstr "Data da Criação" #. module: account #: selection:account.journal,type:0 msgid "Purchase Refund" -msgstr "Nota de Crédito de Compras" +msgstr "Reembolso da Compra" #. module: account #: selection:account.journal,type:0 @@ -686,7 +686,7 @@ msgstr "Fechar periodo" #. module: account #: model:ir.model,name:account.model_account_common_partner_report msgid "Account Common Partner Report" -msgstr "Relatório Comum de Conta de Paceiros" +msgstr "Relatório Comum de Conta de Parceiros" #. module: account #: field:account.fiscalyear.close,period_id:0 @@ -715,7 +715,7 @@ msgstr "Todos os movimentos a conciliar devem ser da mesma empresa." #: model:ir.actions.act_window,name:account.action_aged_receivable #, python-format msgid "Receivable Accounts" -msgstr "Contas a receber" +msgstr "Contas a Receber" #. module: account #: constraint:account.move.line:0 @@ -873,6 +873,10 @@ msgid "" "or Loss you'd realized if those transactions were ended today. Only for " "accounts having a secondary currency set." msgstr "" +"Ao fazer transações multi-moeda, pode perder ou ganhar alguma quantia devida " +"a alterações da taxa de câmbio. Este menu dá uma previsão do ganho ou perda " +"que percebeu se essas transações foram terminadas hoje. Somente para contas " +"com um conjunto moeda secundária." #. module: account #: selection:account.entries.report,month:0 @@ -881,7 +885,7 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "September" -msgstr "setembro" +msgstr "Setembro" #. module: account #: selection:account.subscription,period_type:0 @@ -1000,7 +1004,7 @@ msgstr "Responsabilidade" #. module: account #: view:account.entries.report:0 msgid "Extended Filters..." -msgstr "Filtros Extendidos..." +msgstr "Filtros Avançados..." #. module: account #: model:ir.ui.menu,name:account.menu_account_central_journal @@ -1157,7 +1161,7 @@ msgstr "Em disputa" #: model:ir.actions.act_window,name:account.action_view_bank_statement_tree #: model:ir.ui.menu,name:account.journal_cash_move_lines msgid "Cash Registers" -msgstr "Registos de Caixa" +msgstr "Caixa Registadora" #. module: account #: report:account.analytic.account.journal:0 @@ -1289,7 +1293,7 @@ msgid "" "You can not use this general account in this journal, check the tab 'Entry " "Controls' on the related journal !" msgstr "" -"Não pode usar esta conta geral nesta diário, verificar 'Controles de " +"Não pode usar esta conta geral neste diário, verificar 'Controles de " "Entrada' do guia do diário relacionado!" #. module: account @@ -1434,7 +1438,7 @@ msgstr "Saldo de abertura" #. module: account #: view:account.invoice:0 msgid "Reset to Draft" -msgstr "Voltar a rascunho" +msgstr "Redefinir para rascunho" #. module: account #: view:wizard.multi.charts.accounts:0 @@ -1518,7 +1522,7 @@ msgstr "Calcular impostos" #: field:account.chart.template,code_digits:0 #: field:wizard.multi.charts.accounts,code_digits:0 msgid "# of Digits" -msgstr "Nº de dígitos" +msgstr "# de Dígitos" #. module: account #: field:account.journal,entry_posted:0 @@ -1529,7 +1533,7 @@ msgstr "Saltar o estado \"Rascunho\" para lançamentos manuais" #: view:account.invoice.report:0 #: field:account.invoice.report,price_total:0 msgid "Total Without Tax" -msgstr "Total, com taxas" +msgstr "Total sem Impostos" #. module: account #: model:ir.actions.act_window,help:account.action_move_journal_line @@ -1547,7 +1551,7 @@ msgstr "" #. module: account #: view:account.entries.report:0 msgid "# of Entries " -msgstr "Nº. de movimentos " +msgstr "# de Entradas " #. module: account #: help:account.fiscal.position,active:0 @@ -1652,7 +1656,7 @@ msgstr "Conta de imposto para notas de crédito" #: view:account.bank.statement:0 #: field:account.bank.statement,line_ids:0 msgid "Statement lines" -msgstr "Linhas de extrato" +msgstr "Linhas do extrato" #. module: account #: model:ir.actions.act_window,help:account.action_bank_statement_tree @@ -1681,7 +1685,7 @@ msgstr "Data/Código" #: view:analytic.entries.report:0 #: field:analytic.entries.report,general_account_id:0 msgid "General Account" -msgstr "Contas gerais" +msgstr "Conta Geral" #. module: account #: field:res.partner,debit_limit:0 @@ -1730,8 +1734,8 @@ msgid "" "Cancel Invoice: Creates the refund invoice, validate and reconcile it to " "cancel the current invoice." msgstr "" -"Anular fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura atual, " -"Ficando as duas no estado pago." +"Cancelar fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura " +"atual, Ficando as duas no estado pago." #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing @@ -1865,7 +1869,7 @@ msgstr "Erro!" #. module: account #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" -msgstr "Valor de crédito ou débito errado no movimento contabilístico !" +msgstr "Valor de Crédito ou débito errado na entrada de contabilidade!" #. module: account #: view:account.invoice.report:0 @@ -1898,7 +1902,7 @@ msgstr "Baseado em" #: field:account.invoice,move_id:0 #: field:account.invoice,move_name:0 msgid "Journal Entry" -msgstr "Lançamento de diário" +msgstr "Entradas no diário" #. module: account #: view:account.tax:0 @@ -1932,7 +1936,7 @@ msgstr "Venda / Compra Diário" #. module: account #: view:account.analytic.account:0 msgid "Analytic account" -msgstr "Conta analítica" +msgstr "Conta Analítica" #. module: account #: code:addons/account/account_bank_statement.py:339 @@ -2045,7 +2049,7 @@ msgstr "" #: view:account.invoice:0 #: view:report.invoice.created:0 msgid "Untaxed Amount" -msgstr "Valor sem Impostos" +msgstr "Montante sem Impostos" #. module: account #: help:account.tax,active:0 @@ -2053,7 +2057,7 @@ msgid "" "If the active field is set to False, it will allow you to hide the tax " "without removing it." msgstr "" -"Se o campo activo for definido como 'Falso', ele permitirá que oculte o " +"Se o campo ativo for definido como 'Falso', ele permitirá que oculte o " "imposto sem o remover." #. module: account @@ -2123,7 +2127,7 @@ msgstr "Importar da fatura" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "January" -msgstr "janeiro" +msgstr "Janeiro" #. module: account #: view:account.journal:0 @@ -2261,7 +2265,7 @@ msgstr "ECNJ" #: view:account.subscription:0 #: selection:account.subscription,state:0 msgid "Running" -msgstr "Em execução" +msgstr "Em Funcionamento" #. module: account #: view:account.chart.template:0 @@ -2307,7 +2311,7 @@ msgstr "# de Qt. de Artigos " #. module: account #: model:ir.model,name:account.model_product_template msgid "Product Template" -msgstr "Template Artigo" +msgstr "Template do Artigo" #. module: account #: report:account.account.balance:0 @@ -2505,7 +2509,7 @@ msgstr "Progresso de 30% ao fim de 30 dias" #. module: account #: view:account.entries.report:0 msgid "Unreconciled entries" -msgstr "Movimentos Dereconciliado" +msgstr "Movimentos Desreconciliados" #. module: account #: field:account.invoice.tax,base_code_id:0 @@ -2606,7 +2610,7 @@ msgstr "" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 msgid "Select period" -msgstr "Seleccione o período" +msgstr "Selecione o período" #. module: account #: model:ir.ui.menu,name:account.menu_account_pp_statements @@ -2679,7 +2683,7 @@ msgstr "Erro de Configuração!" #. module: account #: field:account.invoice.report,price_average:0 msgid "Average Price" -msgstr "Preço médio" +msgstr "Preço Médio" #. module: account #: report:account.overdue:0 @@ -2824,8 +2828,8 @@ msgid "" "always skipping that state." msgstr "" "Marque esta caixa se não pretende que os novos movimentos do diário passem " -"através do estado \"rascunho\" e vão directamente para o estado " -"\"Publicado\" sem qualquer validação manual.\n" +"através do estado 'rascunho' e vão diretamente para o estado 'Publicado' sem " +"qualquer validação manual.\n" "Note que os movimentos do diário que são automaticamente criados pelo " "sistema também ignoram este estado." @@ -2949,7 +2953,7 @@ msgstr "Obrigatório" #: field:product.category,property_account_expense_categ:0 #: field:product.template,property_account_expense:0 msgid "Expense Account" -msgstr "Conta de gastos" +msgstr "Conta de Despesas" #. module: account #: help:account.invoice,period_id:0 @@ -2999,7 +3003,7 @@ msgid "" msgstr "" "A data de maturidade dos movimentos gerados por este modelo. Pode escolher " "entre a data de criação ou a data de criação dos movimentos mais os termos " -"de pagamento dos Paceiros." +"de pagamento dos Parceiros." #. module: account #: model:ir.ui.menu,name:account.menu_finance_accounting @@ -3023,7 +3027,7 @@ msgstr "Lucro e prejuízo" #: model:ir.model,name:account.model_account_fiscal_position #: field:res.partner,property_account_position:0 msgid "Fiscal Position" -msgstr "Posição fiscal" +msgstr "Posição Fiscal" #. module: account #: code:addons/account/account_invoice.py:735 @@ -3044,7 +3048,7 @@ msgstr "Um parceiro por página" #: field:account.account,child_parent_ids:0 #: field:account.account.template,child_parent_ids:0 msgid "Children" -msgstr "Contas-filho" +msgstr "Descendentes" #. module: account #: selection:account.invoice,type:0 @@ -3097,7 +3101,7 @@ msgstr "Transação a dinheiro" #. module: account #: view:res.partner:0 msgid "Bank account" -msgstr "Conta bancária" +msgstr "Conta Bancária" #. module: account #: field:account.chart.template,tax_template_ids:0 @@ -3190,7 +3194,7 @@ msgstr "BNK" #. module: account #: field:account.move.line,analytic_lines:0 msgid "Analytic lines" -msgstr "Linhas da analítica" +msgstr "Linhas analíticas" #. module: account #: view:account.invoice:0 @@ -3220,7 +3224,7 @@ msgstr "Começa em" #. module: account #: model:ir.model,name:account.model_account_partner_ledger msgid "Account Partner Ledger" -msgstr "Balancete de Contas de Terceiro" +msgstr "Balancete de Contas do Parceiro" #. module: account #: help:account.journal.column,sequence:0 @@ -8774,7 +8778,7 @@ msgstr "Diário de Compra" #: view:account.invoice.refund:0 msgid "Refund Invoice: Creates the refund invoice, ready for editing." msgstr "" -"Nota de crédito: Emite uma nota de crédito, para ser editada / confirmada à " +"Estornar fatura: Emite uma nota de crédito, para ser editada / confirmada à " "mão." #. module: account @@ -10690,7 +10694,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Descrição de Faturas" #. module: account #: model:ir.model,name:account.model_account_analytic_chart diff --git a/addons/account_analytic_analysis/i18n/pt.po b/addons/account_analytic_analysis/i18n/pt.po index afdf9c25f17..20c8677e066 100644 --- a/addons/account_analytic_analysis/i18n/pt.po +++ b/addons/account_analytic_analysis/i18n/pt.po @@ -7,25 +7,25 @@ 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: 2010-12-09 09:33+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-05-31 15:05+0000\n" +"Last-Translator: Marcelo Almeida \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-02-09 06:32+0000\n" -"X-Generator: Launchpad (build 14763)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Receita por hora (real)" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 msgid "Computed using the formula: Max Invoice Price - Invoiced Amount." msgstr "" -"Processado com a fórmula: Preço Máximo da Factura - Montante Facturado." +"Calculado utilizando a fórmula: Valor Máximo da Fatura - Valor da Fatura" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_date:0 @@ -38,11 +38,13 @@ msgid "" "The contracts to be renewed because the deadline is passed or the working " "hours are higher than the allocated hours" msgstr "" +"Os contratos a serem renovados, porque o prazo é passado ou as horas de " +"trabalho são maiores do que as horas atribuídas" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending contracts to renew with your customer" -msgstr "" +msgstr "Contratos pendentes de renovação com o seu cliente" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -50,31 +52,33 @@ msgid "" "Number of time (hours/days) (from journal of type 'general') that can be " "invoiced if you invoice based on analytic account." msgstr "" +"Número de tempo (horas ou dias) (de Diário do tipo 'geral') que podem ser " +"faturados, se fatura com base na conta analítica" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Analytic Accounts with a past deadline in one month." -msgstr "" +msgstr "Contas Analíticas com um prazo limite ultrapassando um mês." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Group By..." -msgstr "" +msgstr "Grupo por..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "" +msgstr "Data final" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Create Invoice" -msgstr "" +msgstr "Criar Fatura" #. module: account_analytic_analysis #: field:account.analytic.account,last_invoice_date:0 msgid "Last Invoice Date" -msgstr "Data da última factura" +msgstr "Data da última fatura" #. module: account_analytic_analysis #: help:account.analytic.account,theorical_margin:0 @@ -87,16 +91,18 @@ msgid "" "Number of time you spent on the analytic account (from timesheet). It " "computes quantities on all journal of type 'general'." msgstr "" +"Número de tempo que gastou na conta analítica (da folha de horas). Ele " +"calcula quantidades em todos os Diários do tipo 'geral'." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contractos em progresso" #. module: account_analytic_analysis #: field:account.analytic.account,is_overdue_quantity:0 msgid "Overdue Quantity" -msgstr "" +msgstr "Quantidade em atraso" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -108,6 +114,12 @@ msgid "" "pending accounts and reopen or close the according to the negotiation with " "the customer." msgstr "" +"Vai encontrar aqui os contratos a serem renovados, porque o prazo é passado " +"ou as horas de trabalho são maiores do que as horas atribuídas. OpenERP " +"define automaticamente essas contas analíticas para o estado pendente, a fim " +"de emitir um aviso durante a gravação da folha de horas. Vendedores devem " +"rever todas as contas pendentes e reabrir ou fechar o acordo com a " +"negociação com o cliente." #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 @@ -117,7 +129,7 @@ msgstr "Retorno Teórico" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_non_invoiced:0 msgid "Uninvoiced Time" -msgstr "" +msgstr "Tempo não faturado" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -125,13 +137,13 @@ msgid "" "If invoice from the costs, this is the date of the latest work or cost that " "have been invoiced." msgstr "" -"Se facturado dos custos, esta é a data do último trabalho ou dos custos que " -"foram facturados." +"Se faturado dos custos, esta é a data do último trabalho ou dos custos que " +"foram faturados." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Renew" -msgstr "" +msgstr "Para renovar" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_date:0 @@ -141,24 +153,26 @@ msgstr "Data do Último Custo/Trabalho" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 msgid "Invoiced Time" -msgstr "" +msgstr "Tempo faturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." msgstr "" +"Um contrato em OpenERP é um relato analítico a ter num conjunto parceiro " +"sobre ele." #. module: account_analytic_analysis #: field:account.analytic.account,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Tempo Restante" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue msgid "Contracts to Renew" -msgstr "" +msgstr "Contratos para renovar" #. module: account_analytic_analysis #: field:account.analytic.account,theorical_margin:0 @@ -168,7 +182,7 @@ msgstr "Margem Teórica" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid " +1 Month" -msgstr "" +msgstr " +1 mês" #. module: account_analytic_analysis #: help:account.analytic.account,ca_theorical:0 @@ -177,29 +191,29 @@ msgid "" "if all these costs have been invoiced at the normal sale price provided by " "the pricelist." msgstr "" -"Baseado nos custos que teve no projecto, qual é que seria o rendimento se " -"todos estes custos fossem facturados ao preço normal da venda fornecidos " -"pela tabela de preço." +"Baseado nos custos que teve no projeto, qual é que seria o rendimento se " +"todos estes custos fossem faturados ao preço normal da venda fornecidos pela " +"tabela de preço." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "Pendente" #. module: account_analytic_analysis #: field:account.analytic.account,ca_to_invoice:0 msgid "Uninvoiced Amount" -msgstr "Montante não Facturado" +msgstr "Montante não Faturado" #. module: account_analytic_analysis #: help:account.analytic.account,real_margin:0 msgid "Computed using the formula: Invoiced Amount - Total Costs." -msgstr "Processado ao utilizar a fórmula: Montante Facturado - Custo Total." +msgstr "Processado ao utilizar a fórmula: Montante Faturado - Custo Total." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Parent" -msgstr "" +msgstr "Ascendente" #. module: account_analytic_analysis #: field:account.analytic.account,user_ids:0 @@ -221,17 +235,17 @@ msgstr "Resumo de horas por utilizador" #. module: account_analytic_analysis #: field:account.analytic.account,ca_invoiced:0 msgid "Invoiced Amount" -msgstr "Montante Facturado" +msgstr "Montante Faturado" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_invoiced_date:0 msgid "Date of Last Invoiced Cost" -msgstr "Data do Último Custo Facturado" +msgstr "Data do Último Custo Faturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contract" -msgstr "" +msgstr "Contrato" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin_rate:0 @@ -246,7 +260,7 @@ msgstr "Margem Real" #. module: account_analytic_analysis #: help:account.analytic.account,ca_invoiced:0 msgid "Total customer invoiced amount for this account." -msgstr "Montante da facturação total do cliente para esta conta" +msgstr "Montante da faturação total do cliente para esta conta" #. module: account_analytic_analysis #: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month @@ -266,7 +280,7 @@ msgstr "Receita Restante" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Time" -msgstr "" +msgstr "Cálculo utilizando a fórmula: Tempo máximo - Tempo Total" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_invoiced:0 @@ -274,6 +288,8 @@ msgid "" "Number of time (hours/days) that can be invoiced plus those that already " "have been invoiced." msgstr "" +"Número de tempo (horas ou dias) que pode ser faturado mais aqueles que já " +"tenham sido faturados." #. module: account_analytic_analysis #: help:account.analytic.account,ca_to_invoice:0 @@ -281,13 +297,13 @@ msgid "" "If invoice from analytic account, the remaining amount you can invoice to " "the customer based on the total costs." msgstr "" -"Se facturado a partir da conta analítica, o montante restante que pode " -"facturar ao cliente baseado nos custos totais." +"Se faturado a partir da conta analítica, o montante restante que pode " +"faturar ao cliente baseado nos custos totais." #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Calculado através da fórmula: Valor faturado / Tempo Total" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 @@ -312,38 +328,38 @@ msgstr "Conta Analítica" #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all msgid "Contracts" -msgstr "" +msgstr "Contractos" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Manager" -msgstr "" +msgstr "Gestor" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all msgid "All Uninvoiced Entries" -msgstr "Todas os Movimentos não Facturados" +msgstr "Todos os Movimentos não Faturados" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 msgid "If invoice from the costs, this is the date of the latest invoiced." -msgstr "" +msgstr "Se for fatura dos custos, esta é a data da última faturada." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Associated Partner" -msgstr "" +msgstr "Parceiro associado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Open" -msgstr "" +msgstr "Abrir" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Contratos que não são atribuídos a um gestor de conta." #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 @@ -358,18 +374,12 @@ msgid "" "Total of costs for this account. It includes real costs (from invoices) and " "indirect costs, like time spent on timesheets." msgstr "" -"Total de custos para esta conta. Que inclui custos reais (das facturas) e " +"Total de custos para esta conta. Que inclui custos reais (das faturas) e " "custos indirectos, como o tempo gasto em folha de horas." #~ msgid "Invoicing" #~ msgstr "Facturação" -#~ msgid "" -#~ "Number of hours that can be invoiced plus those that already have been " -#~ "invoiced." -#~ msgstr "" -#~ "Número de horas que podem ser facturadas mais as que já foram facturadas." - #~ msgid "Hours summary by user" #~ msgstr "Resumo de horas por utilizador" @@ -505,7 +515,15 @@ msgstr "" #~ "Pode também ver o relatório sumário de contas analíticas\n" #~ "por utilizador bem como por mês.\n" +#~ msgid "" +#~ "Number of hours that can be invoiced plus those that already have been " +#~ "invoiced." +#~ msgstr "" +#~ "Número de horas que podem ser facturadas mais aquelas que já tenham sido " +#~ "facturadas." + #~ msgid "" #~ "Error! The currency has to be the same as the currency of the selected " #~ "company" -#~ msgstr "Erro! A divisa tem que ser a mesma que a da empresa seleccionada" +#~ msgstr "" +#~ "Erro! A divisa tem que ser a mesma que a divisa da empresa seleccionada" diff --git a/addons/account_anglo_saxon/i18n/ja.po b/addons/account_anglo_saxon/i18n/ja.po index d94e95cbf0b..a2d2eb88dc6 100644 --- a/addons/account_anglo_saxon/i18n/ja.po +++ b/addons/account_anglo_saxon/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-28 01:18+0000\n" +"PO-Revision-Date: 2012-05-31 06:16+0000\n" "Last-Translator: Akira Hiyama \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-04-29 04:45+0000\n" -"X-Generator: Launchpad (build 15149)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_anglo_saxon #: sql_constraint:purchase.order:0 @@ -35,7 +35,7 @@ msgstr "製品分類" #. module: account_anglo_saxon #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "参照は会社内ではユニークでなければいけません。" +msgstr "参照は会社ごとにユニークでなければいけません。" #. module: account_anglo_saxon #: constraint:product.category:0 @@ -87,7 +87,7 @@ msgstr "出庫票" #. module: account_anglo_saxon #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "請求書番号は会社ごとにユニークでなければいけません。" +msgstr "請求書番号は会社ごとに固有である必要があります。" #. module: account_anglo_saxon #: help:product.category,property_account_creditor_price_difference_categ:0 diff --git a/addons/account_asset/i18n/pt.po b/addons/account_asset/i18n/pt.po index aa94b06991b..80869fa03da 100755 --- a/addons/account_asset/i18n/pt.po +++ b/addons/account_asset/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-12-10 11:58+0000\n" -"Last-Translator: Paulino Ascenção \n" +"PO-Revision-Date: 2012-05-31 15:07+0000\n" +"Last-Translator: ThinkOpen Solutions \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:15+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_asset #: view:account.asset.asset:0 @@ -439,7 +439,7 @@ msgstr "Método tempo" #. module: account_asset #: view:account.asset.category:0 msgid "Analytic Information" -msgstr "" +msgstr "Informação Analitica" #. module: account_asset #: view:asset.modify:0 @@ -620,7 +620,7 @@ msgstr "Prorata Temporis" #. module: account_asset #: view:account.asset.category:0 msgid "Accounting Information" -msgstr "" +msgstr "Informação contabilística" #. module: account_asset #: model:ir.model,name:account_asset.model_account_invoice diff --git a/addons/account_bank_statement_extensions/i18n/gu.po b/addons/account_bank_statement_extensions/i18n/gu.po index 3e77a3b8a26..6e0e0089341 100644 --- a/addons/account_bank_statement_extensions/i18n/gu.po +++ b/addons/account_bank_statement_extensions/i18n/gu.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-17 09:03+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-06-01 04:42+0000\n" +"Last-Translator: Jalpesh Patel(OpenERP) \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-04-18 04:42+0000\n" -"X-Generator: Launchpad (build 15108)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -42,7 +42,7 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,parent_id:0 msgid "Parent Code" -msgstr "પેરેંટ કોડ" +msgstr "પિતૃ સંકેત" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -64,7 +64,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Group By..." -msgstr "ગ્રુપ દ્વારા..." +msgstr "સમૂહ દ્વારા" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,state:0 @@ -80,25 +80,25 @@ msgstr "કાચું" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement" -msgstr "વિધાન" +msgstr "નિવેદન" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 #: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line #: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line msgid "Confirm selected statement lines" -msgstr "" +msgstr "પસંદ કરેલ નિવેદન લીટીઓ ખાતરી કરો" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 #: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report msgid "Bank Statement Balances Report" -msgstr "" +msgstr "બેન્ક નિવેદન સિલક અહેવાલ" #. module: account_bank_statement_extensions #: view:cancel.statement.line:0 msgid "Cancel Lines" -msgstr "" +msgstr "લીટીઓ રદ કરો" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 @@ -109,7 +109,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Confirm Lines" -msgstr "" +msgstr "લીટીઓ પુષ્ટિ કરો" #. module: account_bank_statement_extensions #: code:addons/account_bank_statement_extensions/account_bank_statement.py:130 @@ -134,33 +134,33 @@ msgstr "રોજનામું" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Confirmed Statement Lines." -msgstr "" +msgstr "પુષ્ટિ નિવેદન આવેલ લીટીઓ." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Credit Transactions." -msgstr "" +msgstr "ધિરાણ વ્યવહારો." #. module: account_bank_statement_extensions #: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line msgid "cancel selected statement lines." -msgstr "" +msgstr "પસંદ કરેલ લીટીઓની નિવેદન રદ કરો." #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_number:0 msgid "Counterparty Number" -msgstr "" +msgstr "પ્રતિકૂળ સંખ્યા" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 msgid "Transactions" -msgstr "" +msgstr "વ્યવહારો" #. module: account_bank_statement_extensions #: code:addons/account_bank_statement_extensions/account_bank_statement.py:130 #, python-format msgid "Warning" -msgstr "" +msgstr "ચેતવણી" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 @@ -170,7 +170,7 @@ msgstr "" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 msgid "Date" -msgstr "" +msgstr "તારીખ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -181,17 +181,17 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Debit Transactions." -msgstr "" +msgstr "ઉધાર વ્યવહારો." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Extended Filters..." -msgstr "" +msgstr "વિસ્તૃત ગાળકો ..." #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Confirmed lines cannot be changed anymore." -msgstr "" +msgstr "પુષ્ટિ લીટીઓ હવે બદલી શકાતી નથી" #. module: account_bank_statement_extensions #: constraint:res.partner.bank:0 @@ -204,47 +204,47 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,val_date:0 msgid "Valuta Date" -msgstr "" +msgstr "ચલણ તારીખો" #. module: account_bank_statement_extensions #: model:ir.actions.act_window,help:account_bank_statement_extensions.action_confirm_statement_line msgid "Confirm selected statement lines." -msgstr "" +msgstr "પસંદ નિવેદન લીટીઓ ખાતરી કરો." #. module: account_bank_statement_extensions #: view:cancel.statement.line:0 msgid "Are you sure you want to cancel the selected Bank Statement lines ?" -msgstr "" +msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ રદ કરવા માંગો છો?" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 msgid "Name" -msgstr "" +msgstr "નામ" #. module: account_bank_statement_extensions #: selection:account.bank.statement.line.global,type:0 msgid "ISO 20022" -msgstr "" +msgstr "ISO 20022" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Notes" -msgstr "" +msgstr "નોંધ" #. module: account_bank_statement_extensions #: selection:account.bank.statement.line.global,type:0 msgid "Manual" -msgstr "" +msgstr "માર્ગદર્શિકા" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Credit" -msgstr "" +msgstr "જમા" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,amount:0 msgid "Amount" -msgstr "" +msgstr "કિંમત" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -254,7 +254,7 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_currency:0 msgid "Counterparty Currency" -msgstr "" +msgstr "પ્રતિકૂળ ચલણ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_bic:0 @@ -269,7 +269,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Are you sure you want to confirm the selected Bank Statement lines ?" -msgstr "" +msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ ખાતરી કરવા માંગો છો?" #. module: account_bank_statement_extensions #: constraint:account.bank.statement.line:0 @@ -288,7 +288,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Draft Statement Lines." -msgstr "" +msgstr "કાચું નિવેદન લીટીઓ." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -298,27 +298,27 @@ msgstr "" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line msgid "Bank Statement Line" -msgstr "" +msgstr "બેન્ક વિધાન લીટી" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,code:0 msgid "Code" -msgstr "" +msgstr "સંકેત" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_name:0 msgid "Counterparty Name" -msgstr "" +msgstr "પ્રતિકૂળ નામ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,name:0 msgid "Communication" -msgstr "" +msgstr "સંચાર" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank msgid "Bank Accounts" -msgstr "" +msgstr "બેંક હિસાબી" #. module: account_bank_statement_extensions #: constraint:account.bank.statement:0 @@ -328,24 +328,24 @@ msgstr "" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement msgid "Bank Statement" -msgstr "" +msgstr "બેન્ક સ્ટેટમેન્ટ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement Line" -msgstr "" +msgstr "વિધાન લીટી" #. module: account_bank_statement_extensions #: sql_constraint:account.bank.statement.line.global:0 msgid "The code must be unique !" -msgstr "" +msgstr "કોડ અજોડ હોવું જ જોઈએ!" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,bank_statement_line_ids:0 #: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line #: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line msgid "Bank Statement Lines" -msgstr "" +msgstr "બેંક વિધાન લીટીઓ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 @@ -356,17 +356,17 @@ msgstr "" #: view:cancel.statement.line:0 #: view:confirm.statement.line:0 msgid "Cancel" -msgstr "" +msgstr "રદ કરો" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement Lines" -msgstr "" +msgstr "વિધાન લીટીઓ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Total Amount" -msgstr "" +msgstr "કુલ રકમ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,globalisation_id:0 diff --git a/addons/account_coda/i18n/pt.po b/addons/account_coda/i18n/pt.po index 0d99a5515a6..42facc9739f 100644 --- a/addons/account_coda/i18n/pt.po +++ b/addons/account_coda/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2010-12-20 19:21+0000\n" -"Last-Translator: Rui Franco (multibase.pt) \n" +"PO-Revision-Date: 2012-05-31 15:12+0000\n" +"Last-Translator: ThinkOpen Solutions \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:09+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_09_21 @@ -1780,6 +1780,8 @@ msgstr "Pagamentos de salários coletivos" #: model:account.coda.trans.code,comment:account_coda.actcc_80_17 msgid "Collected for unsealed deposit of securities, and other parcels" msgstr "" +"Recolhidos para o depósito de valores mobiliários sem lacre, e outras " +"parcelas" #. module: account_coda #: model:account.coda.comm.type,description:account_coda.acct_004 @@ -1853,7 +1855,7 @@ msgstr "Documentário de taxas gerais de crédito" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_25 msgid "Renting of direct debit box" -msgstr "" +msgstr "Locação de caixa de débito direto" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_52 @@ -1871,6 +1873,9 @@ msgid "" "globalisation of which this record is the first.\n" "The same code will be repeated at the end of the globalisation." msgstr "" +"O valor que é mencionado (1 a 9), especifica o nível de hierarquia da " +"globalização do que este disco é o primeiro.\n" +"O mesmo código será repetido no final da globalização." #. module: account_coda #: field:coda.bank.account,description2:0 @@ -1880,7 +1885,7 @@ msgstr "Descrição da Conta Secundária" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_211 msgid "Credit arrangement fee | Additional credit arrangement fee" -msgstr "" +msgstr "Taxa de arranjo de Crédito | taxa de arranjo de crédito adicional" #. module: account_coda #: view:coda.bank.statement:0 @@ -1925,7 +1930,7 @@ msgstr "" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_035 msgid "Charges foreign documentary bill" -msgstr "" +msgstr "Encargos conta documentário estrangeiro" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_80_39 @@ -2191,6 +2196,8 @@ msgid "" "Credit transfer or cash payment with reconstituted structured format " "communication" msgstr "" +"Transferência de crédito ou pagamento em dinheiro com a comunicação " +"reconstituída do formato estruturado" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_07_86 @@ -2279,7 +2286,7 @@ msgstr "Pesquisar Extratos Bancários CODA" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_410 msgid "Reclamation charges" -msgstr "" +msgstr "Taxas de Contestação" #. module: account_coda #: model:ir.actions.act_window,help:account_coda.action_coda_bank_statements @@ -2347,7 +2354,7 @@ msgstr "Assistente em estado incorreto. Por favor, clique no botão Cancelar!" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_418 msgid "Endorsement commission" -msgstr "" +msgstr "Comissão de Averbamento" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_005 @@ -2381,6 +2388,10 @@ msgid "" "credit transfers with a structured communication As a matter of principle, " "this type will also be used when no detailed data (type 6 or 7) is following." msgstr "" +"Montante foi totalizado pelo banco; por exemplo, : O montante total de uma " +"série de transferências de crédito com uma comunicação estruturada como uma " +"questão de princípio, este tipo também será usado quando nenhum dado " +"detalhado (tipo 6 ou 7) está a seguir." #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_03_37 @@ -2400,7 +2411,7 @@ msgstr "Levantamento de dinheiro pela sua filial ou agentes" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_049 msgid "Fiscal stamps/stamp duty" -msgstr "" +msgstr "Selos fiscais / imposto de selo" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_03_58 @@ -2414,7 +2425,7 @@ msgstr "" #. module: account_coda #: view:account.coda.import:0 msgid "Select Your File :" -msgstr "" +msgstr "Selecione o seu ficheiro:" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_06 @@ -2485,7 +2496,7 @@ msgstr "Pesquisar ficheiros CODA" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_07_52 msgid "Remittance of commercial paper - credit under usual reserve" -msgstr "" +msgstr "Remessa de papel comercial - crédito sob reserva habitual" #. module: account_coda #: help:coda.bank.account,active:0 @@ -2499,7 +2510,7 @@ msgstr "" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_07_54 msgid "Among other things advances or promissory notes" -msgstr "" +msgstr "Entre outras coisas avanços ou notas promissórias" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_10 @@ -2543,7 +2554,7 @@ msgstr "Para os profissionais, tais como seguros e corretores" #: model:account.coda.trans.code,comment:account_coda.actcc_80_19 msgid "" "Collected for securities, gold, pass-books, etc. placed in safe custody" -msgstr "" +msgstr "Títulos Coletados, ouro, passa-livros, etc. colocados sob custódia" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_09_19 @@ -2551,6 +2562,8 @@ msgid "" "Used in case of payments accepted under reserve of count, result of " "overcrediting" msgstr "" +"Usado no caso de pagamentos aceites com reserva de contagem, resultado sobre " +"crédito" #. module: account_coda #: code:addons/account_coda/wizard/account_coda_import.py:630 @@ -2597,7 +2610,7 @@ msgstr "Comissão para as despesas de manutenção" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_03 msgid "Subscription to securities" -msgstr "" +msgstr "Subscrição de valores" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_425 @@ -2659,6 +2672,7 @@ msgstr "Bonificação de juros" #: model:account.coda.trans.code,description:account_coda.actcf_41 msgid "International credit transfers - non-SEPA credit transfers" msgstr "" +"Transferências internacionais de crédito - transferências de crédito não SEPA" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_03_87 @@ -2856,6 +2870,7 @@ msgstr "" #: model:account.coda.trans.code,description:account_coda.actcf_35 msgid "Closing (periodical settlements for interest, costs,…)" msgstr "" +"Encerramento (estabelecimentos periódicos relativos aos juros, custos, ...)" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_04_51 @@ -3057,6 +3072,8 @@ msgid "" "Costs charged for calculating the amount of the tax to be paid (e.g. " "Fiscomat)." msgstr "" +"Custos cobrados para o cálculo do montante do imposto a ser pago (Fiscomat " +"por exemplo)." #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_014 @@ -3181,7 +3198,7 @@ msgstr "Subsídio" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_04_06 msgid "Payment with tank card" -msgstr "" +msgstr "Pagamento com cartão de depósito" #. module: account_coda #: model:account.coda.comm.type,description:account_coda.acct_107 @@ -3496,13 +3513,14 @@ msgstr "Licitações" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_43_07 msgid "Unpaid foreign cheque" -msgstr "" +msgstr "Cheque estrangeiro Não remunerado" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_11_03 msgid "" "Bonds, shares, tap issues of CDs, with or without payment of interest, etc." msgstr "" +"Obrigações, ações, questões de CDs, com ou sem pagamento de juros, etc" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_09_66 @@ -3512,7 +3530,7 @@ msgstr "Resgate de cupões de gasolina" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_058 msgid "Capital premium" -msgstr "" +msgstr "Prémio Capital" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_15 @@ -3528,7 +3546,7 @@ msgstr "Moeda da contraparte" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_202 msgid "Advising commission | Additional advising commission" -msgstr "" +msgstr "Comissões da Assessoria | comissão adicional aconselhada" #. module: account_coda #: field:coda.bank.account,find_partner:0 @@ -3736,6 +3754,8 @@ msgstr "Pagamento do cheque" #: model:account.coda.trans.code,comment:account_coda.actcc_43_07 msgid "Foreign cheque remitted for collection that returns unpaid" msgstr "" +"Cheques estrangeiros remetidos para a recolha que retorna como não " +"remunerados" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_80_07 @@ -3982,7 +4002,7 @@ msgstr "Custos de ATM no estrangeiro" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_018 msgid "Tental guarantee charges" -msgstr "" +msgstr "Tental taxas de garantia" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_430 diff --git a/addons/account_followup/report/account_followup_report.xml b/addons/account_followup/report/account_followup_report.xml index 6568af1c441..5ba0e147bf8 100644 --- a/addons/account_followup/report/account_followup_report.xml +++ b/addons/account_followup/report/account_followup_report.xml @@ -18,8 +18,7 @@ - - + diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml index 032ef38411a..a85d4156cc4 100644 --- a/addons/account_payment/account_payment_view.xml +++ b/addons/account_payment/account_payment_view.xml @@ -193,9 +193,6 @@ - - - diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml index 3b33143648b..a1ff581006b 100644 --- a/addons/account_voucher/account_voucher_view.xml +++ b/addons/account_voucher/account_voucher_view.xml @@ -17,7 +17,6 @@ - diff --git a/addons/auction/i18n/pt.po b/addons/auction/i18n/pt.po new file mode 100644 index 00000000000..8ecba7f56b6 --- /dev/null +++ b/addons/auction/i18n/pt.po @@ -0,0 +1,2946 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * auction +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0dev\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 15:15+0000\n" +"Last-Translator: ThinkOpen Solutions \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-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_report_menu +msgid "Reporting" +msgstr "Relatório" + +#. module: auction +#: model:ir.model,name:auction.model_auction_taken +msgid "Auction taken" +msgstr "Ação tomada" + +#. module: auction +#: view:auction.lots:0 +msgid "Set to draft" +msgstr "Definir como Rascunho" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,partner_id:0 +#: field:auction.lots,seller_id:0 +#: view:report.auction:0 +#: field:report.auction,seller:0 +msgid "Seller" +msgstr "Vendedor" + +#. module: auction +#: field:auction.lots,name:0 +msgid "Title" +msgstr "Título" + +#. module: auction +#: field:auction.lots.sms.send,text:0 +msgid "SMS Message" +msgstr "Mensagem SMS" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.lots.auction.move:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid " " +msgstr " " + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Warning, Erase The Object Adjudication Price and Its Buyer!" +msgstr "Atenção, apague o Preço de Adjudicação do objeto e o seu comprador!" + +#. module: auction +#: help:auction.pay.buy,statement_id1:0 +msgid "First Bank Statement For Buyer" +msgstr "Primeiro estrato bancário para o comprador" + +#. module: auction +#: field:auction.bid_line,lot_id:0 +#: field:auction.lot.history,lot_id:0 +msgid "Object" +msgstr "Objeto" + +#. module: auction +#: field:report.auction.object.date,obj_num:0 +msgid "# of Objects" +msgstr "Número de objetos" + +#. module: auction +#: view:auction.lots:0 +msgid "Authors" +msgstr "Autores" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.lots:0 +#: field:auction.lots,ach_uid:0 +#: field:auction.lots.buyer_map,ach_uid:0 +#: field:auction.lots.make.invoice.buyer,buyer_id:0 +#: field:auction.pay.buy,buyer_id:0 +#: report:buyer.list:0 +#: view:report.auction:0 +#: field:report.auction,buyer:0 +#: report:report.auction.buyer.result:0 +msgid "Buyer" +msgstr "Comprador" + +#. module: auction +#: field:report.auction,object:0 +msgid "No of objects" +msgstr "Número de objetos" + +#. module: auction +#: help:auction.lots,paid_vnd:0 +msgid "" +"When state of Seller Invoice is 'Paid', this field is selected as True." +msgstr "" +"Quando o estado da fatura da Loja é 'pago', este campo é selecionado como " +"True." + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of paid items (based on invoices):" +msgstr "Número de items pagos (com base nas faturas)" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border" +msgstr "Limite do Depósito" + +#. module: auction +#: field:auction.lots.make.invoice,amount:0 +#: field:auction.lots.make.invoice.buyer,amount:0 +msgid "Invoiced Amount" +msgstr "Montante Faturado" + +#. module: auction +#: help:auction.lots,name:0 +msgid "Auction object name" +msgstr "Nome do objeto leilão" + +#. module: auction +#: model:ir.model,name:auction.model_aie_category +msgid "aie.category" +msgstr "aie.category" + +#. module: auction +#: field:auction.deposit.cost,amount:0 +#: field:auction.pay.buy,amount:0 +#: field:auction.pay.buy,amount2:0 +#: field:auction.pay.buy,amount3:0 +msgid "Amount" +msgstr "Montante" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_deposit_border +#: model:ir.ui.menu,name:auction.menu_auction_deposit_border +msgid "Deposit border" +msgstr "Limite do Depósito" + +#. module: auction +#: view:auction.deposit:0 +msgid "Reference" +msgstr "Referência" + +#. module: auction +#: help:auction.dates,state:0 +msgid "" +"When auction starts the state is 'Draft'.\n" +" At the end of auction, the state becomes 'Closed'." +msgstr "" +"Quando um leilão começa, o seu estado é 'Rascunho'\n" +" No fim do leilão, o estado passa a 'Fechado'" + +#. module: auction +#: field:auction.dates,account_analytic_id:0 +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: auction +#: help:auction.pay.buy,amount3:0 +msgid "Amount For Third Bank Statement" +msgstr "Montante para o terceiro extrato bancário" + +#. module: auction +#: view:auction.lots:0 +msgid "Buy object" +msgstr "Comprar Objeto" + +#. module: auction +#: field:auction.lots,lot_num:0 +msgid "List Number" +msgstr "Número da Lista" + +#. module: auction +#: report:buyer.list:0 +msgid "Date:" +msgstr "Data:" + +#. module: auction +#: field:auction.deposit.cost,name:0 +msgid "Cost Name" +msgstr "Nome do Custo" + +#. module: auction +#: view:auction.dates:0 +#: field:auction.dates,state:0 +#: view:auction.lots:0 +#: field:auction.lots,state:0 +#: view:report.auction:0 +#: field:report.auction,state:0 +msgid "State" +msgstr "Estado" + +#. module: auction +#: view:auction.dates:0 +msgid "First Auction Date" +msgstr "Primeira Data do Leilão" + +#. module: auction +#: selection:report.auction,month:0 +msgid "January" +msgstr "Janeiro" + +#. module: auction +#: help:auction.lot.category,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the auction " +"lot category without removing it." +msgstr "" +"Se o campo ativo é definido como Falso, ele permitirá que oculte o lote da " +"categoria leilão sem o remover." + +#. module: auction +#: view:auction.lots:0 +msgid "Ref" +msgstr "Ref" + +#. module: auction +#: field:report.auction,total_price:0 +msgid "Total Price" +msgstr "Preço Total" + +#. module: auction +#: view:auction.lots:0 +msgid "Total Adj." +msgstr "Total Adj." + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS - Gateway: clickatell','Bulk SMS Send" +msgstr "" + +#. module: auction +#: help:auction.lots,costs:0 +msgid "Deposit cost" +msgstr "Custo de depósito" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.auction,state:0 +#: selection:report.object.encoded,state:0 +msgid "Unsold" +msgstr "Não vendido" + +#. module: auction +#: view:auction.deposit:0 +msgid "Search Auction deposit" +msgstr "Pesquisar depósito do leilão" + +#. module: auction +#: help:auction.lots,lot_num:0 +msgid "List number in depositer inventory" +msgstr "Número da lista no inventário do depósito" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Items" +msgstr "Items" + +#. module: auction +#: model:account.tax,name:auction.auction_tax5 +#: field:auction.dates,seller_costs:0 +msgid "Seller Costs" +msgstr "Custos do Vendedor" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.bid_line:0 +#: view:auction.lots:0 +#: field:auction.lots,bid_lines:0 +#: model:ir.actions.report.xml,name:auction.bid_auction +#: model:ir.ui.menu,name:auction.menu_action_bid_open +msgid "Bids" +msgstr "Licitações" + +#. module: auction +#: field:report.auction,gross_revenue:0 +msgid "Gross Revenue" +msgstr "Receita Bruta" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Buyer Map" +msgstr "Mapa do Comprador" + +#. module: auction +#: field:report.object.encoded,obj_ret:0 +msgid "# obj ret" +msgstr "# obj ret" + +#. module: auction +#: model:ir.model,name:auction.model_auction_bid +msgid "Bid Auctions" +msgstr "Licitações" + +#. module: auction +#: help:auction.lots,image:0 +msgid "Object Image" +msgstr "Imagem do Objeto" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#, python-format +msgid "No buyer is set for this lot." +msgstr "Nenhum comprador está definido para este lote." + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "The Buyer \"%s\" has no Invoice Address." +msgstr "O comprador \"%s\" não tem um endereço de faturação" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_object_categories +msgid "Auction object Categories" +msgstr "Categorias do objeto do leilão" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit_cost +msgid "Auction Deposit Cost" +msgstr "Custo Depósito Leilão" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border Form" +msgstr "Formulário do Limite do Depósito" + +#. module: auction +#: help:auction.lots,statement_id:0 +msgid "Bank statement line for given buyer" +msgstr "Linha do Extrato Bancário para um Determinado Comprador" + +#. module: auction +#: field:auction.lot.category,aie_categ:0 +msgid "Category" +msgstr "Categoria" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_view_auction_buyer_map +msgid "Map buyer username to Partners" +msgstr "Mapa do comprador nome de utilizador para Parceiros" + +#. module: auction +#: view:auction.lots:0 +msgid "Search Auction Lots" +msgstr "Pesquisar lotes do leilão" + +#. module: auction +#: field:report.auction,net_revenue:0 +msgid "Net Revenue" +msgstr "Receita líquida" + +#. module: auction +#: field:report.auction.adjudication,state:0 +#: field:report.object.encoded,state:0 +msgid "Status" +msgstr "Estado" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_sms_send +msgid "SMS Send" +msgstr "Enviar SMS" + +#. module: auction +#: selection:report.auction,month:0 +msgid "August" +msgstr "Agosto" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +msgid "Sold" +msgstr "Vendido" + +#. module: auction +#: selection:report.auction,month:0 +msgid "June" +msgstr "Junho" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#, python-format +msgid "No Lots belong to this Auction Date" +msgstr "Sem Lotes pertencentes a esta Data do Leilão" + +#. module: auction +#: view:auction.lots:0 +msgid "New Object" +msgstr "Novo Objeto" + +#. module: auction +#: selection:report.auction,month:0 +msgid "October" +msgstr "Outubro" + +#. module: auction +#: field:auction.bid_line,name:0 +msgid "Bid date" +msgstr "Data da Licitação" + +#. module: auction +#: field:auction.dates,acc_expense:0 +msgid "Expense Account" +msgstr "Conta de Despesas" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_wizard_emporte +msgid "Deliveries Management" +msgstr "Gestão de Entregas" + +#. module: auction +#: field:auction.lots,obj_desc:0 +msgid "Object Description" +msgstr "Descrição do Objeto" + +#. module: auction +#: field:auction.lots,artist2_id:0 +msgid "Artist/Author2" +msgstr "Artista / Autor2" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line1" +msgstr "Linha1" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice_buyer +msgid "Make Invoice for Buyer" +msgstr "Criar Fatura para o Comprador" + +#. module: auction +#: field:auction.lots,gross_revenue:0 +#: field:report.object.encoded,gross_revenue:0 +msgid "Gross revenue" +msgstr "Receita Bruta" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_pay_buy +msgid "Pay objects of the buyer" +msgstr "Objetos pagos pelo comprador" + +#. module: auction +#: help:auction.dates,auction2:0 +msgid "End date of auction" +msgstr "Data de fim do leilão" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "Send SMS" +msgstr "Enviar SMS" + +#. module: auction +#: field:auction.lots,name2:0 +msgid "Short Description (2)" +msgstr "Pequena descrição (2)" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_buyers_menu +msgid "Buyers" +msgstr "Compradores" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Object Category" +msgstr "Categoria do Objeto" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id4 +msgid "VAT 12%" +msgstr "IVA 12%" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Invoices" +msgstr "Faturas de Compradores" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.res_w_buyer +msgid "Results with buyer" +msgstr "Resultados com o comprador" + +#. module: auction +#: field:auction.bid_line,price:0 +msgid "Maximum Price" +msgstr "Preço máximo" + +#. module: auction +#: help:auction.dates,auction1:0 +msgid "Start date of auction" +msgstr "Data de início do leilão" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_auction_move +msgid "Auction Move" +msgstr "Movimento Leilão" + +#. module: auction +#: help:auction.dates,buyer_costs:0 +msgid "Account tax for buyer" +msgstr "Imposto Conta para Comprador" + +#. module: auction +#: view:auction.dates:0 +msgid "Next Auction" +msgstr "Próximo Leilão" + +#. module: auction +#: view:auction.taken:0 +msgid "Select lots which are Sold" +msgstr "Selecionar os lotes que são vendidos" + +#. module: auction +#: field:auction.lots,statement_id:0 +msgid "Payment" +msgstr "Pagamento" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "The object \"%s\" has no buyer assigned." +msgstr "O objeto \"%s\" não tem comprador atribuído" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Keep until sold" +msgstr "Manter até ser vendido" + +#. module: auction +#: view:auction.dates:0 +msgid "Last Auction Date" +msgstr "Data do último leilão" + +#. module: auction +#: field:report.object.encoded,obj_num:0 +msgid "# of Encoded obj." +msgstr "Número de objetos codificados" + +#. module: auction +#: field:auction.lots,paid_vnd:0 +msgid "Seller Paid" +msgstr "Vendedor Pago" + +#. module: auction +#: view:board.board:0 +#: view:report.object.encoded:0 +msgid "Objects statistics" +msgstr "Estatísticas dos Objetos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of sellers:" +msgstr "# de vendedores" + +#. module: auction +#: field:report.auction,date:0 +#: field:report.object.encoded,date:0 +msgid "Create Date" +msgstr "Data de Criação" + +#. module: auction +#: view:auction.dates:0 +#: selection:report.object.encoded,state:0 +msgid "Invoiced" +msgstr "Faturado" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items taken away:" +msgstr "Número de items retirados:" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction +#: view:report.auction:0 +msgid "Auction's Summary" +msgstr "Resumos de Leilões" + +#. module: auction +#: report:buyer.list:0 +msgid "%)" +msgstr "%)" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer Information" +msgstr "Informação sobre o comprador" + +#. module: auction +#: help:auction.lots,gross_revenue:0 +msgid "Buyer Price - Seller Price" +msgstr "Preço Comprador - Preço Vendedor" + +#. module: auction +#: field:auction.lots.make.invoice,objects:0 +#: field:auction.lots.make.invoice.buyer,objects:0 +msgid "# of objects" +msgstr "# de objetos" + +#. module: auction +#: field:auction.lots,lot_est2:0 +msgid "Maximum Estimation" +msgstr "Estimativa máxima" + +#. module: auction +#: field:auction.lots,buyer_price:0 +msgid "Buyer price" +msgstr "Preço do Comprador" + +#. module: auction +#: view:auction.lots:0 +msgid "Bids Details" +msgstr "Pormenores das licitações" + +#. module: auction +#: field:auction.lots,is_ok:0 +msgid "Buyer's payment" +msgstr "Pagamento do Comprador" + +#. module: auction +#: view:auction.dates:0 +msgid "End of auction" +msgstr "Fim do Leilão" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_catalog_flagey_wizard +#: model:ir.model,name:auction.model_auction_catalog_flagey +msgid "Auction Catalog Flagey" +msgstr "Catálogo de leilão flagey" + +#. module: auction +#: selection:report.auction,month:0 +msgid "March" +msgstr "Março" + +#. module: auction +#: model:account.tax,name:auction.auction_tax4 +msgid "Seller Costs1" +msgstr "Custos do vendedor 1" + +#. module: auction +#: field:auction.deposit,create_uid:0 +#: field:auction.lots,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of buyers:" +msgstr "Número de compradores:" + +#. module: auction +#: field:auction.lots,costs:0 +msgid "Indirect costs" +msgstr "Custos indiretos" + +#. module: auction +#: help:auction.dates,seller_costs:0 +msgid "Account tax for seller" +msgstr "Imposto Conta para Vendedor" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "UserError" +msgstr "Erro do Utilizador" + +#. module: auction +#: field:auction.dates,journal_seller_id:0 +msgid "Seller Journal" +msgstr "Diário do Vendedor" + +#. module: auction +#: view:auction.dates:0 +#: selection:auction.dates,state:0 +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +#: selection:report.auction.adjudication,state:0 +#: selection:report.object.encoded,state:0 +msgid "Draft" +msgstr "Rascunho" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoiced Auction" +msgstr "Leilão faturado" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print" +msgstr "Imprimir" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Type" +msgstr "Tipo" + +#. module: auction +#: help:aie.category,child_ids:0 +msgid "children aie category" +msgstr "" + +#. module: auction +#: help:auction.lots,ach_emp:0 +msgid "When state is Taken Away, this field is marked as True" +msgstr "" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_taken +msgid "Gestion emporte" +msgstr "Substituição de Gestão" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.dates:0 +#: view:auction.lots:0 +#: field:auction.lots,auction_id:0 +#: report:auction.total.rml:0 +#: model:ir.module.category,name:auction.module_category_auction +#: model:ir.ui.menu,name:auction.auction_menu_root +#: view:report.auction:0 +msgid "Auction" +msgstr "Leilão" + +#. module: auction +#: view:auction.lot.category:0 +#: model:ir.ui.menu,name:auction.menu_auction_object_cat +msgid "Object Categories" +msgstr "Categoria de objetos" + +#. module: auction +#: field:auction.lots.sms.send,app_id:0 +msgid "API ID" +msgstr "ID da API" + +#. module: auction +#: field:auction.bid,name:0 +#: field:auction.bid_line,bid_id:0 +msgid "Bid ID" +msgstr "ID da licitação" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Min Estimate:" +msgstr "Estimativa mínima:" + +#. module: auction +#: selection:report.auction,month:0 +msgid "September" +msgstr "Setembro" + +#. module: auction +#: field:report.auction,net_margin:0 +msgid "Net Margin" +msgstr "Margem líquida" + +#. module: auction +#: field:auction.lots,vnd_lim_net:0 +msgid "Net limit ?" +msgstr "Net Limite?" + +#. module: auction +#: field:aie.category,child_ids:0 +msgid "unknown" +msgstr "desconhecido" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of commissions:" +msgstr "Número de comissões" + +#. module: auction +#: field:auction.bid_line,auction:0 +#: field:auction.dates,name:0 +msgid "Auction Name" +msgstr "Nome do Leilão" + +#. module: auction +#: model:account.tax,name:auction.tax_seller +msgid "Seller Costs (12%)" +msgstr "Custos Vendedor (12%)" + +#. module: auction +#: field:aie.category,parent_id:0 +msgid "Parent aie Category" +msgstr "" + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary" +msgstr "Resumo do leilão" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "(Keep empty for automatic number)" +msgstr "(Manter vazio para numerar automaticamente)" + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "No Invoice Address" +msgstr "Sem endereço de faturação" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_huissier +msgid "Bailiffs Listing" +msgstr "Listagem de oficiais de justiça" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "This record does not exist !" +msgstr "Este registo não existe!" + +#. module: auction +#: field:auction.pay.buy,total:0 +msgid "Total Amount" +msgstr "Montante total" + +#. module: auction +#: help:auction.pay.buy,amount:0 +msgid "Amount For First Bank Statement" +msgstr "Montante para primeiro extrato bancário" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_object_date +#: view:report.auction.object.date:0 +msgid "Objects per day" +msgstr "Objetos, por dia" + +#. module: auction +#: help:auction.lots,author_right:0 +msgid "Account tax for author commission" +msgstr "" + +#. module: auction +#: model:product.template,name:auction.monproduit_product_template +msgid "Oeuvres a 21%" +msgstr "Obras a 21%" + +#. module: auction +#: field:report.object.encoded,adj:0 +msgid "Adj." +msgstr "Adj." + +#. module: auction +#: field:auction.lot.history,name:0 +#: field:report.auction.adjudication,date:0 +msgid "Date" +msgstr "Data" + +#. module: auction +#: field:auction.lots,obj_ret:0 +msgid "Price retired" +msgstr "Preço retirado" + +#. module: auction +#: view:auction.deposit:0 +msgid "Extra Costs" +msgstr "Custos extras" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Map " +msgstr "Mapa " + +#. module: auction +#: field:auction.lots,paid_ach:0 +msgid "Buyer Invoice Reconciled" +msgstr "Fatura de comprador reconciliada" + +#. module: auction +#: field:auction.deposit,date_dep:0 +msgid "Deposit date" +msgstr "Data de depósito" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.id_deposit +msgid "Deposits" +msgstr "Depósitos" + +#. module: auction +#: field:auction.deposit,specific_cost_ids:0 +msgid "Specific Costs" +msgstr "Custos específicos" + +#. module: auction +#: report:buyer.list:0 +msgid "To pay (" +msgstr "Para pagar (" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer +msgid "Buyer Costs (20%)" +msgstr "Custos Comprador (20%)" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction +msgid "Dashboard" +msgstr "Painel de Controlo" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.actions.act_window,name:auction.action_auction_dates_next +#: model:ir.ui.menu,name:auction.auction_date_menu +#: model:ir.ui.menu,name:auction.menu_auction_dates_next1 +msgid "Auctions" +msgstr "Leilões" + +#. module: auction +#: view:board.board:0 +msgid "Total Adjudications" +msgstr "Adjudicação Total" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice +msgid "Make invoice" +msgstr "Criar Fatura" + +#. module: auction +#: selection:report.auction,month:0 +msgid "November" +msgstr "Novembro" + +#. module: auction +#: view:auction.dates:0 +#: view:auction.lots:0 +msgid "History" +msgstr "Histórico" + +#. module: auction +#: field:aie.category,code:0 +msgid "Code" +msgstr "Código" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Nr." +msgstr "Nº" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_report_barcode_lot +msgid "Barcode batch" +msgstr "Código de Barras do Lote" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Num" +msgstr "Nº" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.taken:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer's Payment History" +msgstr "Histórico de Pagamento do Comprador" + +#. module: auction +#: view:auction.artists:0 +#: field:auction.artists,biography:0 +msgid "Biography" +msgstr "Biografia" + +#. module: auction +#: view:auction.lots:0 +msgid "Inventory" +msgstr "Inventário" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay" +msgstr "Pagar" + +#. module: auction +#: view:auction.lots.make.invoice:0 +msgid "Create Invoices for Seller" +msgstr "Criar faturas para o vendedor" + +#. module: auction +#: field:report.object.encoded,obj_margin:0 +msgid "Net margin" +msgstr "Margem líquida" + +#. module: auction +#: help:auction.lots,lot_local:0 +msgid "Auction Location" +msgstr "Local do leilão" + +#. module: auction +#: view:auction.dates:0 +msgid "Analytic" +msgstr "Analítica" + +#. module: auction +#: help:auction.lots,paid_ach:0 +msgid "" +"When state of Buyer Invoice is 'Paid', this field is selected as True." +msgstr "" +"Quando o estado da fatura do Comprador está 'Pago', este campo é selecionado " +"como True." + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Cat.N" +msgstr "Cat.N" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Decrease limit of 10%" +msgstr "Diminuição limite de 10%" + +#. module: auction +#: field:auction.dates,adj_total:0 +#: field:report.auction.adjudication,adj_total:0 +msgid "Total Adjudication" +msgstr "Adjudicação total" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice_buyer +msgid "Invoice Buyer objects" +msgstr "Fatura de objetos comprados" + +#. module: auction +#: view:report.auction:0 +msgid "My Auction" +msgstr "O meu leilão" + +#. module: auction +#: help:auction.lots,gross_margin:0 +msgid "(Gross Revenue*100.0)/ Object Price" +msgstr "" + +#. module: auction +#: field:auction.bid,contact_tel:0 +msgid "Contact Number" +msgstr "Número para contato" + +#. module: auction +#: view:auction.lots:0 +msgid "Price" +msgstr "Preço" + +#. module: auction +#: report:bids.phones.details:0 +msgid "-" +msgstr "-" + +#. module: auction +#: view:auction.deposit:0 +msgid "Photos" +msgstr "Fotos" + +#. module: auction +#: field:auction.lots.make.invoice,number:0 +#: field:auction.lots.make.invoice.buyer,number:0 +msgid "Invoice Number" +msgstr "Número de Fatura" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:87 +#: code:addons/auction/wizard/auction_lots_numerotate.py:77 +#: code:addons/auction/wizard/auction_lots_numerotate.py:95 +#: code:addons/auction/wizard/auction_lots_numerotate.py:122 +#: code:addons/auction/wizard/auction_lots_numerotate.py:137 +#: code:addons/auction/wizard/auction_lots_numerotate.py:173 +#, python-format +msgid "Active IDs not Found" +msgstr "IDs ativos não encontrados" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:117 +#, python-format +msgid "Connection to WWW.Auction-in-Europe.com failed !" +msgstr "A ligação a www.action-in-europe.com falhou!" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_bid +#: model:ir.actions.act_window,name:auction.action_bid_open +msgid "Open Bids" +msgstr "Licitações abertas" + +#. module: auction +#: model:ir.actions.act_window,name:auction.open_board_auction +msgid "Auction board" +msgstr "" + +#. module: auction +#: field:aie.category,name:0 +#: view:auction.artists:0 +#: report:bids.lots:0 +msgid "Name" +msgstr "Nome" + +#. module: auction +#: field:auction.deposit,name:0 +#: view:auction.lots:0 +#: field:auction.lots,bord_vnd_id:0 +msgid "Depositer Inventory" +msgstr "Inventório do Depósito" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "The Buyer has no Invoice Address." +msgstr "O comprador não tem endereço de faturação." + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_adjudication_tree +msgid "Auction Adjudication Report" +msgstr "" + +#. module: auction +#: field:auction.lots.sms.send,user:0 +msgid "Login" +msgstr "Iniciar sessão" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_adjudication +msgid "report_auction_adjudication" +msgstr "report_auction_adjudication" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_lots_3 +msgid "Seller Form" +msgstr "Formulário do Vendedor" + +#. module: auction +#: field:auction.lots,lot_type:0 +#: field:report.auction,lot_type:0 +msgid "Object category" +msgstr "Categoria do objeto" + +#. module: auction +#: view:auction.taken:0 +msgid "Mark Lots" +msgstr "Marca de Lotes" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots +msgid "Auction Object" +msgstr "Ação Objeto" + +#. module: auction +#: field:auction.lots,obj_num:0 +#: field:auction.lots.enable,confirm_en:0 +msgid "Catalog Number" +msgstr "Número de catálogo" + +#. module: auction +#: view:auction.dates:0 +msgid "Accounting" +msgstr "Contabilidade" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.bid_phone +msgid "Bids phones" +msgstr "Oferta de telefones" + +#. module: auction +#: field:report.auction,avg_estimation:0 +msgid "Avg estimation" +msgstr "Estimativa média" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Debit:" +msgstr "Débito:" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:116 +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "Error" +msgstr "Erro" + +#. module: auction +#: field:auction.lots,author_right:0 +msgid "Author rights" +msgstr "Direitos de autor" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.dates:0 +#: view:auction.deposit:0 +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: auction +#: view:report.auction:0 +msgid "Auction during last month." +msgstr "Leilão durante o último mês." + +#. module: auction +#: help:auction.dates,journal_id:0 +msgid "Account journal for buyer" +msgstr "Diário da conta para o comprador" + +#. module: auction +#: field:auction.bid,bid_lines:0 +#: report:auction.bids:0 +#: report:bids.lots:0 +#: model:ir.model,name:auction.model_auction_bid_line +msgid "Bid" +msgstr "Licitação" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total net rev." +msgstr "Receita líquida total" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Update" +msgstr "Atualizar" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_seller_menu +msgid "Sellers" +msgstr "Vendedores" + +#. module: auction +#: view:auction.dates:0 +msgid "Draft Auction" +msgstr "Rascunho Leilão" + +#. module: auction +#: help:auction.lots,lot_est2:0 +msgid "Maximum Estimate Price" +msgstr "Preço máximo estimado" + +#. module: auction +#: view:auction.lots:0 +msgid "Notes" +msgstr "Notas" + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Move to Auction date" +msgstr "Mudar para data de Leilão" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of unsold items:" +msgstr "Número de items por vender" + +#. module: auction +#: view:auction.dates:0 +msgid "Create Invoices" +msgstr "Criar Faturas" + +#. module: auction +#: field:auction.bid,auction_id:0 +#: view:auction.dates:0 +#: field:auction.lots.auction.move,auction_id:0 +msgid "Auction Date" +msgstr "Data de leilão" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid ", ID" +msgstr ", ID" + +#. module: auction +#: report:buyer.list:0 +msgid "Adj.(" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.lot_list_inv +msgid "Lots List - Landscape" +msgstr "Lista de Lotes (na horizontal)" + +#. module: auction +#: view:auction.artists:0 +msgid "Author/Artist" +msgstr "Autor / Artista" + +#. module: auction +#: field:auction.lots,ach_login:0 +#: field:auction.lots.buyer_map,ach_login:0 +msgid "Buyer Username" +msgstr "Nome de utilizador do comprador" + +#. module: auction +#: field:auction.lot.category,priority:0 +msgid "Priority" +msgstr "Prioridade" + +#. module: auction +#: view:board.board:0 +#: model:ir.actions.act_window,name:auction.action_report_latest_objects_tree +msgid "Latest objects" +msgstr "Objetos mais recentes" + +#. module: auction +#: field:auction.lots,lot_local:0 +msgid "Location" +msgstr "Localização" + +#. module: auction +#: view:report.auction:0 +msgid "Month -1" +msgstr "Mês -1" + +#. module: auction +#: help:auction.lots,is_ok:0 +msgid "When buyer pay for bank statement', this field is marked" +msgstr "" +"Quando o comprador pagar por extrato bancário', este campo está marcado" + +#. module: auction +#: field:auction.lots,ach_emp:0 +msgid "Taken Away" +msgstr "Retirados" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total gross rev." +msgstr "Receita bruta total" + +#. module: auction +#: help:auction.lots,lot_est1:0 +msgid "Minimum Estimate Price" +msgstr "Preço mínimo estimado" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Date" +msgstr "Data do Depósito" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "This lot does not exist !" +msgstr "Este lote não existe !" + +#. module: auction +#: selection:report.auction,month:0 +msgid "July" +msgstr "Julho" + +#. module: auction +#: field:auction.bid_line,call:0 +msgid "To be Called" +msgstr "Para ser Cancelado" + +#. module: auction +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_report_auction_lots_estimation_adj_category_tree +msgid "Min est/Adj/Max est" +msgstr "Estimativa mínima/Preço de adjudicação/Estimativa máxima" + +#. module: auction +#: field:auction.lots,lot_est1:0 +msgid "Minimum Estimation" +msgstr "Estimativa mínima" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_sms_send +msgid "Sms send " +msgstr "Enviar SMS " + +#. module: auction +#: view:auction.lots.auction.move:0 +#: model:ir.actions.act_window,name:auction.action_auction_lots_auction_move +msgid "Change Auction Date" +msgstr "Mudar data de leilão" + +#. module: auction +#: field:auction.artists,birth_death_dates:0 +msgid "Lifespan" +msgstr "Período de validade" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,method:0 +msgid "Withdrawned method" +msgstr "Método de Arrebatamento" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Commissions" +msgstr "Comissões Comprador" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction +#: model:ir.ui.menu,name:auction.menu_report_auction +msgid "Auction Analysis" +msgstr "Análise Leilão" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "Payment aborted !" +msgstr "Pagamento Cancelado !" + +#. module: auction +#: field:auction.lot.history,price:0 +msgid "Withdrawn price" +msgstr "Preço Final" + +#. module: auction +#: view:auction.dates:0 +msgid "Beginning of the auction" +msgstr "Inicio do leilão" + +#. module: auction +#: help:auction.pay.buy,statement_id3:0 +msgid "Third Bank Statement For Buyer" +msgstr "" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,month:0 +#: field:report.auction.object.date,month:0 +msgid "Month" +msgstr "Mês" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Max Estimate:" +msgstr "Estimativa máxima" + +#. module: auction +#: view:auction.lots:0 +msgid "Statistical" +msgstr "Estatística" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit +msgid "Auction Deposit Border" +msgstr "" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_object_encoded_tree +msgid "Object statistics" +msgstr "Estatísticas do Objeto" + +#. module: auction +#: help:auction.lots,net_margin:0 +msgid "(Net Revenue * 100)/ Object Price" +msgstr "(Receita líquida * 100) / Preço do objeto" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_history +msgid "Lot History" +msgstr "Histórico do Lote" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create invoices" +msgstr "Criar Faturas" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id5 +msgid "VAT 5%" +msgstr "IVA 5%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_buyer_map +msgid "Map Buyer" +msgstr "" + +#. module: auction +#: report:buyer.list:0 +msgid "Lot" +msgstr "Lote" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree +msgid "Auction Object Date" +msgstr "Data da ação do objeto" + +#. module: auction +#: model:ir.model,name:auction.model_auction_artists +msgid "auction.artists" +msgstr "auction.artists" + +#. module: auction +#: field:report.auction,avg_price:0 +msgid "Avg Price." +msgstr "Preço médio" + +#. module: auction +#: help:auction.pay.buy,statement_id2:0 +msgid "Second Bank Statement For Buyer" +msgstr "" + +#. module: auction +#: field:auction.dates,journal_id:0 +msgid "Buyer Journal" +msgstr "Diário do Comprador" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.object.encoded,state:0 +msgid "Paid" +msgstr "Pago" + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Phone" +msgstr "Telefone" + +#. module: auction +#: field:auction.lot.category,active:0 +msgid "Active" +msgstr "Ativo" + +#. module: auction +#: view:auction.dates:0 +msgid "Exposition Dates" +msgstr "" + +#. module: auction +#: model:account.tax,name:auction.auction_tax1 +msgid "TVA" +msgstr "IVA" + +#. module: auction +#: field:auction.lots,important:0 +msgid "To be Emphatized" +msgstr "Para realçar" + +#. module: auction +#: report:buyer.list:0 +msgid "Total:" +msgstr "Total:" + +#. module: auction +#: model:account.tax,name:auction.auction_tax2 +msgid "TVA1" +msgstr "IVA 1" + +#. module: auction +#: view:report.auction.object.date:0 +msgid "Objects per Day" +msgstr "Objetos por Dia" + +#. module: auction +#: field:auction.dates,seller_invoice_history:0 +#: field:auction.lots,sel_inv_id:0 +#: view:auction.lots.make.invoice:0 +msgid "Seller Invoice" +msgstr "Fatura do comprador" + +#. module: auction +#: view:board.board:0 +msgid "Objects by day" +msgstr "Objetos por dia" + +#. module: auction +#: help:auction.dates,expo2:0 +msgid "Last exposition date for auction" +msgstr "" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "Missed buyer !" +msgstr "Perdeu Comprador !" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Flagey" +msgstr "Flagey" + +#. module: auction +#: view:board.board:0 +msgid "Auction manager " +msgstr "Gestor de leilão " + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#, python-format +msgid "" +"Two different buyers for the same invoice !\n" +"Please correct this problem before invoicing" +msgstr "" +"Dois compradores diferentes para a mesma fatura!\n" +"Por favor, corrija este problema antes da faturação" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: auction +#: view:auction.dates:0 +msgid "Commissions" +msgstr "Comissões" + +#. module: auction +#: field:auction.lots,vnd_lim:0 +msgid "Seller limit" +msgstr "Limite de Vendedores" + +#. module: auction +#: field:auction.deposit,transfer:0 +msgid "Transfer" +msgstr "Transferência" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line3" +msgstr "Linha3" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line2" +msgstr "Linha2" + +#. module: auction +#: help:auction.lots,obj_ret:0 +msgid "Object Ret" +msgstr "" + +#. module: auction +#: view:report.auction.adjudication:0 +msgid "Total adjudication" +msgstr "Adjudicação Total" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Contact the Seller" +msgstr "Contate o Vendedor" + +#. module: auction +#: field:auction.taken,lot_ids:0 +msgid "Lots Emportes" +msgstr "Importação de Lotes" + +#. module: auction +#: field:auction.lots,net_margin:0 +msgid "Net Margin (%)" +msgstr "Margem líquida (%)" + +#. module: auction +#: field:auction.lots,product_id:0 +msgid "Product" +msgstr "Artigo" + +#. module: auction +#: report:buyer.list:0 +msgid ")" +msgstr ")" + +#. module: auction +#: view:auction.lots:0 +msgid "Seller Information" +msgstr "Informação sobre o vendedor" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,lot_id:0 +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_all_objects +#: model:ir.ui.menu,name:auction.auction_all_objects_menu +msgid "Objects" +msgstr "Objetos" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Invoices" +msgstr "Faturas de vendedor" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Paid:" +msgstr "Pago:" + +#. module: auction +#: field:auction.deposit,total_neg:0 +msgid "Allow Negative Amount" +msgstr "Permitir um montante negativo" + +#. module: auction +#: help:auction.pay.buy,amount2:0 +msgid "Amount For Second Bank Statement" +msgstr "" + +#. module: auction +#: field:auction.lot.history,auction_id:0 +#: field:report.auction,auction:0 +#: field:report.auction.adjudication,name:0 +msgid "Auction date" +msgstr "Data de leilão" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS Text" +msgstr "Texto do SMS" + +#. module: auction +#: field:auction.dates,auction1:0 +msgid "First Auction Day" +msgstr "Primeiro Dia de Leilão" + +#. module: auction +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create Invoices for Buyer" +msgstr "Criar faturas para o comprador" + +#. module: auction +#: model:res.groups,name:auction.group_auction_manager +msgid "Manager" +msgstr "Gestor" + +#. module: auction +#: view:auction.dates:0 +msgid "Names" +msgstr "Nomes" + +#. module: auction +#: view:auction.artists:0 +#: model:ir.ui.menu,name:auction.menu_auction_artist +msgid "Artists" +msgstr "Artistas" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay Objects" +msgstr "Pagar objetos" + +#. module: auction +#: help:auction.dates,expo1:0 +msgid "Beginning exposition date for auction" +msgstr "A partir da data de exposição para leilão" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_line_open +msgid "Open lots" +msgstr "Lotes Abertos" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit +msgid "Deposit slip" +msgstr "" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_enable +msgid "Lots Enable" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +msgid "Lots" +msgstr "Lotes" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_artist +msgid "Auction Artists" +msgstr "" + +#. module: auction +#: field:auction.lots,seller_price:0 +msgid "Seller price" +msgstr "Preço do Vendedor" + +#. module: auction +#: model:account.tax,name:auction.auction_tax20 +msgid "Frais de vente0" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buy_id_list +msgid "Buyer List" +msgstr "Lista de Comprador" + +#. module: auction +#: report:buyer.list:0 +msgid "Buyer costs(" +msgstr "Custos do Comprador(" + +#. module: auction +#: field:auction.pay.buy,statement_id1:0 +#: field:auction.pay.buy,statement_id2:0 +#: field:auction.pay.buy,statement_id3:0 +msgid "Statement" +msgstr "Extrato" + +#. module: auction +#: help:auction.lots,seller_price:0 +#: help:auction.lots.make.invoice,amount:0 +msgid "Seller Price" +msgstr "Preço Vendedor" + +#. module: auction +#: model:account.tax,name:auction.auction_tax6 +msgid "Frais de vente" +msgstr "Taxas de Vendas" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id1 +msgid "VAT 1%" +msgstr "IVA 1%" + +#. module: auction +#: model:account.tax,name:auction.auction_tax +msgid "Droit d'auteur" +msgstr "Direitos de autor" + +#. module: auction +#: field:auction.dates,expo1:0 +msgid "First Exposition Day" +msgstr "Primeiro Dia de Exposição" + +#. module: auction +#: field:report.auction.object.date,name:0 +msgid "Created date" +msgstr "Data Criada" + +#. module: auction +#: help:auction.lots,bord_vnd_id:0 +msgid "" +"Provide deposit information: seller, Withdrawned Method, Object, Deposit " +"Costs" +msgstr "" + +#. module: auction +#: field:auction.lots,net_revenue:0 +#: field:report.object.encoded,net_revenue:0 +msgid "Net revenue" +msgstr "Receitas líquidas" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "Error!" +msgstr "Erro !" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_latest_doposit_tree +msgid "Latest Deposits" +msgstr "Últimos Depósitos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items:" +msgstr "Número de items" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer_author +msgid "Author rights (4%)" +msgstr "Direitos de autor (4%)" + +#. module: auction +#: field:report.object.encoded,estimation:0 +msgid "Estimation" +msgstr "Estimativa" + +#. module: auction +#: view:auction.taken:0 +msgid "OK" +msgstr "OK" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buyer_form_id +msgid "Buyer Form" +msgstr "Formulário do Comprador" + +#. module: auction +#: field:auction.bid,partner_id:0 +msgid "Buyer Name" +msgstr "Nome do comprador" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,day:0 +msgid "Day" +msgstr "Dia" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice +msgid "Invoice Seller objects" +msgstr "Faturas de Objetos Vendidos" + +#. module: auction +#: field:auction.lots,gross_margin:0 +msgid "Gross Margin (%)" +msgstr "Margem bruta (%)" + +#. module: auction +#: selection:auction.dates,state:0 +#: selection:report.auction.adjudication,state:0 +msgid "Closed" +msgstr "Encerrado" + +#. module: auction +#: view:auction.dates:0 +msgid "Search Next Auction Dates" +msgstr "Procurar próximas datas de leilões" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print Auction Catalog Flagey Report..." +msgstr "" + +#. module: auction +#: field:auction.lots,ach_avance:0 +msgid "Buyer Advance" +msgstr "Adiantamento do Comprador" + +#. module: auction +#: field:auction.lots,obj_comm:0 +msgid "Commission" +msgstr "Comissão" + +#. module: auction +#: view:board.board:0 +msgid "Min/Adj/Max" +msgstr "Min/adj/Max" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Catalog Flagey Report" +msgstr "" + +#. module: auction +#: help:auction.lots,obj_price:0 +msgid "Object Price" +msgstr "Preço do objeto" + +#. module: auction +#: view:auction.bid:0 +msgid "Bids Lines" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +msgid "Catalog" +msgstr "Catálogo" + +#. module: auction +#: help:auction.lots,auction_id:0 +msgid "Auction for object" +msgstr "Leilão por objeto" + +#. module: auction +#: field:auction.deposit.cost,account:0 +msgid "Destination Account" +msgstr "Conta de destino" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_config_menu +msgid "Configuration" +msgstr "Configuração" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree_my +msgid "My Auction Object Date" +msgstr "" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "" +"You should pay all the total: \"%.2f\" are missing to accomplish the payment." +msgstr "" +"Deve pagar a totalidade: \"%.2f\" estão em falta para realizar o pagamento." + +#. module: auction +#: model:ir.model,name:auction.model_auction_pay_buy +msgid "Pay buy" +msgstr "Pagar Compra" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_outils_menu +msgid "Tools Bar Codes" +msgstr "Ferramenta do Código de Barras" + +#. module: auction +#: field:auction.deposit.cost,deposit_id:0 +msgid "Deposit" +msgstr "Depósito" + +#. module: auction +#: field:auction.dates,expo2:0 +msgid "Last Exposition Day" +msgstr "Último Dia de Exposição" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_able +msgid "Lots able" +msgstr "" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id3 +msgid "VAT 10%" +msgstr "IVA 10%" + +#. module: auction +#: field:auction.artists,name:0 +msgid "Artist/Author Name" +msgstr "Artista/Nome do Autor" + +#. module: auction +#: selection:report.auction,month:0 +msgid "December" +msgstr "Dezembro" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.lots,image:0 +msgid "Image" +msgstr "Imagem" + +#. module: auction +#: help:auction.lots,buyer_price:0 +#: help:auction.lots.make.invoice.buyer,amount:0 +msgid "Buyer Price" +msgstr "Preço Comprador" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_category +msgid "Auction Lots Category" +msgstr "" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id2 +msgid "VAT 20%" +msgstr "IVA 20%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer_sel +msgid "Auction payment for seller" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +msgid "Taken away" +msgstr "Retirado" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_form_id +msgid "Seller List" +msgstr "Lista de vendedores" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total adj." +msgstr "Total adj." + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Costs" +msgstr "Custos de Depósito" + +#. module: auction +#: field:auction.lot.category,name:0 +msgid "Category Name" +msgstr "Nome da categoria" + +#. module: auction +#: report:buyer.list:0 +msgid "........." +msgstr "........." + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary tree view" +msgstr "" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Adj" +msgstr "Adj" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.model,name:auction.model_auction_dates +msgid "Auction Dates" +msgstr "Datas de leilão" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction_open +msgid "Auction DashBoard" +msgstr "Painel Controlo do Leilão" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,user_id:0 +#: field:report.auction.adjudication,user_id:0 +#: field:report.auction.object.date,user_id:0 +#: field:report.object.encoded,user_id:0 +#: model:res.groups,name:auction.group_auction_user +msgid "User" +msgstr "Utilizador" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Payment Lines" +msgstr "Linhas de Pagamento" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "Missed Address !" +msgstr "Endereço Errado !" + +#. module: auction +#: help:auction.lots,net_revenue:0 +msgid "Buyer Price - Seller Price - Indirect Cost" +msgstr "" + +#. module: auction +#: help:auction.lots,state:0 +msgid "" +" * The 'Draft' state is used when a object is encoding as a new object. " +" \n" +"* The 'Unsold' state is used when object does not sold for long time, user " +"can also set it as draft state after unsold. \n" +"* The 'Paid' state is used when user pay for the object \n" +"* The 'Sold' state is used when user buy the object." +msgstr "" + +#. module: auction +#: field:auction.artists,pseudo:0 +msgid "Pseudo" +msgstr "Pseudónimo" + +#. module: auction +#: view:auction.lots:0 +msgid "Not sold" +msgstr "Por vender" + +#. module: auction +#: model:account.tax,name:auction.auction_tax3 +#: field:auction.dates,buyer_costs:0 +msgid "Buyer Costs" +msgstr "Custos do Comprador" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction Date:" +msgstr "Data de Leilão" + +#. module: auction +#: view:auction.deposit:0 +msgid "Objects Description" +msgstr "Descrição Objetos" + +#. module: auction +#: field:auction.dates,buyer_invoice_history:0 +#: field:auction.lots,ach_inv_id:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Buyer Invoice" +msgstr "Fatura do comprador" + +#. module: auction +#: report:auction.bids:0 +msgid "Tel" +msgstr "Tel" + +#. module: auction +#: field:auction.lots,artist_id:0 +msgid "Artist/Author" +msgstr "Artista/Autor" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.total_result1 +msgid "Auction Totals with lists" +msgstr "Totais Leilão com listas" + +#. module: auction +#: view:auction.deposit:0 +msgid "General Information" +msgstr "Informação Geral" + +#. module: auction +#: view:auction.lots.auction.move:0 +#: view:auction.lots.buyer_map:0 +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +#: view:auction.lots.sms.send:0 +#: view:auction.pay.buy:0 +msgid "Close" +msgstr "Fechar" + +#. module: auction +#: model:ir.model,name:auction.model_report_object_encoded +msgid "Object encoded" +msgstr "Objeto codificado" + +#. module: auction +#: view:auction.bid:0 +msgid "Search Auction Bid" +msgstr "" + +#. module: auction +#: report:bids.phones.details:0 +msgid "Est" +msgstr "Est" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Commissions" +msgstr "Comissões Vendedor" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Object statistic" +msgstr "Estatística do objeto" + +#. module: auction +#: help:auction.dates,journal_seller_id:0 +msgid "Account journal for seller" +msgstr "Diário da Conta para o vendedor" + +#. module: auction +#: field:auction.dates,auction2:0 +msgid "Last Auction Day" +msgstr "Último dia de leilão" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "No auction date for \"%s\": Please set one." +msgstr "" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,info:0 +#: report:bids.phones.details:0 +msgid "Description" +msgstr "Descrição" + +#. module: auction +#: selection:report.auction,month:0 +msgid "May" +msgstr "Maio" + +#. module: auction +#: field:auction.lots,obj_price:0 +msgid "Adjudication price" +msgstr "Preço de adjudicação" + +#. module: auction +#: field:auction.dates,acc_income:0 +msgid "Income Account" +msgstr "Conta de receitas" + +#. module: auction +#: field:auction.lots.sms.send,password:0 +msgid "Password" +msgstr "Password" + +#. module: auction +#: selection:report.auction,month:0 +msgid "February" +msgstr "Fevereiro" + +#. module: auction +#: selection:report.auction,month:0 +msgid "April" +msgstr "Abril" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay objects" +msgstr "Objetos Pagos" + +#. module: auction +#: view:report.object.encoded:0 +msgid "# objects" +msgstr "Número de objetos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Adjudication:" +msgstr "Adjudicação:" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.details_bids_phones +msgid "Bids per lot (phone)" +msgstr "Oferta por Lote (telefone)" + +#. module: auction +#: field:report.auction,buyer_login:0 +msgid "Buyer Login" +msgstr "Login do Comprador" + +#. module: auction +#: field:auction.deposit,tax_id:0 +msgid "Expenses" +msgstr "Despesas" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current month." +msgstr "" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer +msgid "Auction payer" +msgstr "" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current year." +msgstr "Leilão durante este ano." + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction name:" +msgstr "Nome do Leilão:" + +#. module: auction +#: view:board.board:0 +msgid "Latest deposits" +msgstr "Depósitos mais recentes" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.art2 +msgid "Artists Biography" +msgstr "Biografia do Artista" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,year:0 +msgid "Year" +msgstr "Ano" + +#. module: auction +#: field:auction.lots,history_ids:0 +msgid "Auction history" +msgstr "Histórico do Leilão" + +#~ msgid "SMS - Gateway: clickatell" +#~ msgstr "SMS - Gateway: clickatell" + +#~ msgid "Provisoire" +#~ msgstr "Provisório" + +#~ msgid "Adjudication by Auction" +#~ msgstr "Adjudicação por Leilão" + +#~ msgid "Numerotation (per lot)" +#~ msgstr "Numeração (por lote)" + +#~ msgid "Antique/Books, manuscripts, eso." +#~ msgstr "Antiguidades/livros, manuscritos, etc." + +#~ msgid "Buyer invoice reconciled" +#~ msgstr "Factura do comprador reconciliada" + +#~ msgid "Objects by Auction" +#~ msgstr "Objetos por Leilão" + +#~ msgid "Antiques" +#~ msgstr "Antiguidades" + +#~ msgid "Dates" +#~ msgstr "Datas" + +#~ msgid "All objects" +#~ msgstr "Todos os objectos" + +#~ msgid "Contact" +#~ msgstr "Contacto" + +#~ msgid "Back" +#~ msgstr "Anterior" + +#~ msgid "Langage" +#~ msgstr "Linguagem" + +#~ msgid "Exit" +#~ msgstr "Sair" + +#~ msgid "Amount paid" +#~ msgstr "Montante pago" + +#~ msgid "Continue" +#~ msgstr "Continuar" + +#~ msgid "Retry" +#~ msgstr "Repetir" + +#~ msgid "The VAT doesn't seem to be correct." +#~ msgstr "O IVA não parece estar correcto." + +#~ msgid "Error ! You can not create recursive associated members." +#~ msgstr "Erro! Não pode criar membros associados recursivamente." + +#~ msgid "Total margin" +#~ msgstr "Margem Total" + +#~ msgid "Definitive (ordre catalogue)" +#~ msgstr "Definitivo (Catálogo de Ordem)" + +#~ msgid "My Encoded Objects Per Day" +#~ msgstr "Meus Objectos Codificacdos Por Dia" + +#~ msgid "Lot history" +#~ msgstr "Histórico de Lote" + +#~ msgid "Bids line" +#~ msgstr "Linha de Ofertas" + +#~ msgid "Antique/Tin / Copper wares" +#~ msgstr "Antiguidade/Lata/Mercadorias de cobre" + +#~ msgid "Mark as taken away" +#~ msgstr "Marcar como retirado" + +#~ msgid "Statements" +#~ msgstr "Extratos" + +#~ msgid "Unclassifieds" +#~ msgstr "Desclassificados" + +#~ msgid "Object Type" +#~ msgstr "Tipo de Objecto" + +#~ msgid "Contemporary Art" +#~ msgstr "Arte Contemporânea" + +#~ msgid "No of sellers" +#~ msgstr "Nº de vendedores" + +#~ msgid "ned" +#~ msgstr "ned" + +#~ msgid "Net margin (%)" +#~ msgstr "Margem de Net (%)" + +#~ msgid "Buyer's auction for all months" +#~ msgstr "Leilão do Comprador por todos os meses" + +#~ msgid "Cont. Art/Painting" +#~ msgstr "Cont. Arte/Pintura" + +#~ msgid "Unsold objects" +#~ msgstr "Objectos não Bendidos" + +#~ msgid "Sold Objects" +#~ msgstr "Objectos Vendidos" + +#~ msgid "Sum net margin" +#~ msgstr "Somar margem de net" + +#~ msgid "Inventory Number" +#~ msgstr "Número do Inventário" + +#~ msgid "Antique/Cartoons" +#~ msgstr "Antiguidade/Cartoons" + +#~ msgid "Error ! You cannot create recursive Hierarchy of Employees." +#~ msgstr "Erro ! Não pode criar Hierarquias de Funcionários recursivamente." + +#~ msgid "Artist/Author 2" +#~ msgstr "Artista/Autor 2" + +#~ msgid "Auction Objects" +#~ msgstr "Objectos do Leilão" + +#~ msgid "Depositer's statistics" +#~ msgstr "Estatisticas do Depositante" + +#~ msgid "Buyer information" +#~ msgstr "Informação do Comprador" + +#~ msgid "auction.dates" +#~ msgstr "auction.dates" + +#~ msgid "My Latest Deposits" +#~ msgstr "Meus Últimos Depósitos" + +#~ msgid "Buyer's Revenues" +#~ msgstr "Lucros do Comprador" + +#~ msgid "eng" +#~ msgstr "eng" + +#~ msgid "Bulk SMS send" +#~ msgstr "Enviar um Volume de SMS" + +#~ msgid "fr" +#~ msgstr "FR" + +#~ msgid "Antique/Old weapons and militaria" +#~ msgstr "Antiguidade/Velhas armas e militaria" + +#~ msgid "Antique/Oriental Arts/Chineese furnitures" +#~ msgstr "Antigo/Arte Oriental/Móveis Chineses" + +#~ msgid "Avg. Est" +#~ msgstr "Avg.Est" + +#~ msgid "" +#~ "This module provides functionality to \n" +#~ " manage artists, articles, sellers, buyers and auction.\n" +#~ " Manage bids, track of sold, paid and unpaid objects.\n" +#~ " Delivery Management. \n" +#~ " " +#~ msgstr "" +#~ "Este módulo provê funcionalidade para\n" +#~ " gestão artistica, artigos, vendedores, compradores e leilão.\n" +#~ " Gestão de oferta, faixa de vendas, pagos e objecto não pagos.\n" +#~ " Gestão de Entrega. \n" +#~ " " + +#~ msgid "Confirmation set taken away" +#~ msgstr "Confirmação do conjunto retirado" + +#~ msgid "Mark as paid for seller" +#~ msgstr "Marcar como pago para o vendedor" + +#~ msgid "Close + Create all invoices" +#~ msgstr "Fechar + Criar todas as Facturas" + +#~ msgid "Antique/Verreries" +#~ msgstr "Antiguidade/Artigos de Vidro" + +#~ msgid "Antique/Toys" +#~ msgstr "Antigo/Brinquedos" + +#~ msgid "Auction Management" +#~ msgstr "Gestão de Leilão" + +#~ msgid "Define Artists" +#~ msgstr "Definir Artistas" + +#~ msgid "Comparison of estimations" +#~ msgstr "Comparação das estimativas" + +#~ msgid "Code barres du lot" +#~ msgstr "Código de barras do lote" + +#~ msgid "Birth / Death dates" +#~ msgstr "Datas de Nascimento/Morte" + +#~ msgid "Antique/Jewelry" +#~ msgstr "Antiguidade/Jóias" + +#~ msgid "Unclassified objects " +#~ msgstr "Objectos não Classificados " + +#~ msgid "Numerotation" +#~ msgstr "Numeração" + +#~ msgid "Bordereau de dépôt" +#~ msgstr "Comprovante de Depósito" + +#~ msgid "Cont. Art/Arts" +#~ msgstr "Cont. Arte/Artes" + +#~ msgid "comparaison estimate/adjudication " +#~ msgstr "comparação estimar/adjudicação " + +#~ msgid "Adj(EUR)" +#~ msgstr "Adj(EUR)" + +#~ msgid "Cont. Art/Other Media" +#~ msgstr "Cont. Arte/Outros Mídia" + +#~ msgid "Send Image also ?" +#~ msgstr "Enviar Imagem também?" + +#~ msgid "General Informations" +#~ msgstr "Informações Gerais" + +#~ msgid "Auctions results" +#~ msgstr "Resultados de Leilões" + +#~ msgid "Unclassified objects" +#~ msgstr "Objectos não Classificados" + +#~ msgid "Antique/Carpet and textilles" +#~ msgstr "Antiguidade/Carpete e têxteis" + +#~ msgid "New Auction Dates" +#~ msgstr "Nova Data de Leilão" + +#~ msgid "Sum adj" +#~ msgstr "Soma adj" + +#~ msgid "No of Objects" +#~ msgstr "Nº de Objectos" + +#~ msgid "Antique/Painting" +#~ msgstr "Antiguidade/Pintura" + +#~ msgid "Aie Category" +#~ msgstr "Categoria AIE" + +#~ msgid "Check payment for seller" +#~ msgstr "Verificar o pagamento para o vendedor" + +#~ msgid "Send results to Auction-in-europe.com" +#~ msgstr "Enviar resultados para Auction-in-europe.com" + +#~ msgid "Seller's auction" +#~ msgstr "Leilão do Vendedor" + +#~ msgid "Seller's Revenues" +#~ msgstr "Receitas do Vendedor" + +#~ msgid "Buyer's Summary" +#~ msgstr "Resumo de Comprador" + +#~ msgid "Depositer's Statistics" +#~ msgstr "Estatísticas do Depósito" + +#~ msgid "To pay" +#~ msgstr "Para pagar" + +#~ msgid "Enable Taken away" +#~ msgstr "Permitir Retirada" + +#~ msgid "Antique/Others" +#~ msgstr "Antiguidade/Outros" + +#~ msgid "Auction dates" +#~ msgstr "Data dos Leilões" + +#~ msgid "Encoded Objects Per Day" +#~ msgstr "Codificar Objectos por Dia" + +#~ msgid "Auction Reporting on buyer view" +#~ msgstr "Relatório do Leilão na vista do comprador" + +#~ msgid "Payment's history" +#~ msgstr "Histórico de Pagamentos" + +#~ msgid "Auction results" +#~ msgstr "Resultados dos Leilões" + +#~ msgid "Auction's Revenues" +#~ msgstr "Rendimentos dos Leilões" + +#~ msgid "Antique/Metal Ware" +#~ msgstr "Antiguidade/Peças de Metal" + +#~ msgid "de" +#~ msgstr "de" + +#~ msgid "Old Auctions" +#~ msgstr "Leilões Antigos" + +#~ msgid "Cont. Art/Curiosa" +#~ msgstr "Cont. Arte/Curiosa" + +#~ msgid "Auction module" +#~ msgstr "Módulo Leilão" + +#~ msgid "Attendance" +#~ msgstr "Atendimento" + +#~ msgid "Seller information" +#~ msgstr "Informação do Vendedor" + +#~ msgid "Cont. Art/Jewelry" +#~ msgstr "Cont. Arte/Jóias" + +#~ msgid "Next Auctions" +#~ msgstr "Próximos Leilões" + +#~ msgid "#" +#~ msgstr "#" + +#~ msgid "Antique/Miniatures / Collections" +#~ msgstr "Antiguidade/Miniaturas/Colecções" + +#~ msgid "Cont. Art/Photo" +#~ msgstr "Cont. Arte/Fotografia" + +#~ msgid "Bid auctions" +#~ msgstr "Oferta de Leilão" + +#~ msgid "Avg margin" +#~ msgstr "Margem Avg" + +#~ msgid "Antique/Art from the Ivory Coast" +#~ msgstr "Antiguidade/ Arte para a Costa do Marfim" + +#~ msgid "Antique/Religiosa" +#~ msgstr "Antiguidade/Religiosa" + +#~ msgid "" +#~ "Error: The default UOM and the purchase UOM must be in the same category." +#~ msgstr "" +#~ "Erro: O UOM padrão e o UOM de compra devem estar na mesma categoria." + +#~ msgid "Unplanned objects" +#~ msgstr "Objectos não Pagos" + +#~ msgid "Cont. Art/Sculpture" +#~ msgstr "Cont. Arte/Escultura" + +#~ msgid "Antique/Argenterie" +#~ msgstr "Antiguidade/Talheres" + +#~ msgid "Detailed lots" +#~ msgstr "Lotes Detalhados" + +#~ msgid "Antique/Lightings" +#~ msgstr "Antiguidade/Iluminação" + +#~ msgid "Antique/Sculpture, bronze, eso." +#~ msgstr "Antiguidade/Escultura, bronze, etc." + +#~ msgid "Numerotate" +#~ msgstr "Numeração" + +#~ msgid "Listing Huissiers" +#~ msgstr "Listagem de Oficiais de Justiça" + +#~ msgid "All objects are assigned to buyers !" +#~ msgstr "Todos os objectos são atribuidos para os compradores !" + +#~ msgid "Able Taken away" +#~ msgstr "Permissão de Retirada" + +#~ msgid "Seller's Summary" +#~ msgstr "Resumo de Vendedores" + +#~ msgid "Send on your website" +#~ msgstr "Enviar para o seu Website" + +#~ msgid "Simplified lots for adjudication" +#~ msgstr "Lotes Simplificados para adjudicação" + +#~ msgid "Sum Adjustication" +#~ msgstr "Soma da Adjudicação" + +#~ msgid "Antique/Porcelain, Ceramics, Glassmaking, ..." +#~ msgstr "Antiguidade/Porcelanas/Cerâmicas/Vidreiros" + +#~ msgid "Object Reference" +#~ msgstr "Referência do Objecto" + +#~ msgid "Cont. Art/Shows" +#~ msgstr "Cont. Arte/Shows" + +#~ msgid "Unsold Objects" +#~ msgstr "Objectos não Vendidos" + +#~ msgid "Avg Adj." +#~ msgstr "Avg Adj." + +#~ msgid "auction.deposit.cost" +#~ msgstr "auction.deposit.cost" + +#~ msgid "Object Inventory" +#~ msgstr "Inventário do Objecto" + +#~ msgid "Antique/Art from the Ivory Coast/African Arts" +#~ msgstr "Antiguidade/Arte a partir da Costa de Marfim/Artes Africanas" + +#~ msgid "Lot Category" +#~ msgstr "Categoria de Lote" + +#~ msgid "Total" +#~ msgstr "Total" + +#~ msgid "Send to website" +#~ msgstr "Enviar para o Website" + +#~ msgid "Old Auction Dates" +#~ msgstr "Datas Antigas de Leilões" + +#~ msgid "Antique/Engravings" +#~ msgstr "Antiguidade/Gravuras" + +#~ msgid "First Number" +#~ msgstr "Primeiro Número" + +#~ msgid "" +#~ "Warning, this will erase the object adjudication price and its buyer !" +#~ msgstr "" +#~ "Aviso, isto vai apagar o preço de adjudicção do objecto e do seu comprador !" + +#~ msgid "Bid information" +#~ msgstr "Informação da Oferta" + +#~ msgid "Antique/Musical Instruments" +#~ msgstr "Antiguidade/Instrumentos Musicais" + +#~ msgid "Antique/Graphic Arts" +#~ msgstr "Antiguidade/Artes Gráficas" + +#~ msgid "Antique/Oriental Arts" +#~ msgstr "Antiguidade/Artes Orientais" + +#~ msgid "Sum of adjudication" +#~ msgstr "Soma de Adjudicação" + +#~ msgid "Unmark as taken away" +#~ msgstr "Desmarcar como retirados" + +#~ msgid "Lot Number" +#~ msgstr "Número de Lote" + +#~ msgid "Employee" +#~ msgstr "Funcionário" + +#~ msgid "Report deposit border" +#~ msgstr "Relatório de deposito limite" + +#~ msgid "Auction report" +#~ msgstr "Relatório do Leilão" + +#~ msgid "auction.lot.category" +#~ msgstr "auction.lot.category" + +#~ msgid "Antique/Collectible & art objects" +#~ msgstr "Antiguidade/Coleção&objectos de arte" + +#~ msgid "Buyer's auction" +#~ msgstr "Leilão de Compradores" + +#~ msgid "Antique/Furnitures" +#~ msgstr "Antiguidade/Móveis" + +#~ msgid "Unplanned Objects" +#~ msgstr "Objectos não Planeados" + +#~ msgid "Numerotation (automatic)" +#~ msgstr "Numeração (automatica)" + +#~ msgid "Amount to paid" +#~ msgstr "Montante para pagar" + +#~ msgid "No of buyers" +#~ msgstr "Nº de compradores" + +#~ msgid "Avg adjudication" +#~ msgstr "Avg de Adjudicação" + +#~ msgid "Next Auction Dates" +#~ msgstr "Próximas Datas de Leilão" + +#~ msgid "Report Sign In/Out" +#~ msgstr "Relatória de Entrada/Saída" + +#~ msgid "Objects to sell" +#~ msgstr "Objectos para vender" + +#~ msgid "Short Description" +#~ msgstr "Pequena Descrição" + +#~ msgid "Employees" +#~ msgstr "Funcionários" + +#~ msgid "Antique/Clocks and watches" +#~ msgstr "Antiguidade/Relógio e relógios" + +#~ msgid "Antique/Scientific Instruments" +#~ msgstr "Antiguidade/ Instrumentos Ciêntificos" + +#~ msgid "Confirmation enable taken away" +#~ msgstr "Confirmar a permissão de retirada" + +#~ msgid "Sum of adjustication" +#~ msgstr "Soma de adjudicação" + +#~ msgid "Antique/Wine" +#~ msgstr "Antiguidade/Vinhos" + +#~ msgid "Antique/African Arts" +#~ msgstr "Antiguidade/Artes Africanas" + +#~ msgid "Antique/Posters" +#~ msgstr "Antiguidade/Cartazes" + +#~ msgid "Create Invoices For Seller" +#~ msgstr "Criar faturas para o vendedor" + +#~ msgid "Invalid model name in the action definition." +#~ msgstr "Nome de modelo inválido na definição da ação" + +#~ msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)" +#~ msgstr "Erro: Entrada (Saída) deve ser seguida de Saída (Entrada)" + +#~ msgid "Error ! You can not create recursive accounts." +#~ msgstr "Erro! Não pode criar contas recursivamente." + +#~ msgid "Invalid XML for View Architecture!" +#~ msgstr "XML inválido para a arquitetura da vista" + +#~ msgid "Error: Invalid ean code" +#~ msgstr "Erro: Código EAN inválido" + +#~ msgid "" +#~ "The Object name must start with x_ and not contain any special character !" +#~ msgstr "" +#~ "O nome do Objeto deve começar com x_ e não pode conter nenhum caracter " +#~ "especial !" + +#~ msgid "Create Invoices For Buyer" +#~ msgstr "Criar faturas para o comprador" + +#~ msgid "Auction Reporting on seller view" +#~ msgstr "Relatório do Leilão na vista do vendedor" + +#~ msgid "Error: UOS must be in a different category than the UOM" +#~ msgstr "Erro: UdV deve estar numa categoria diferente da UdM" + +#~ msgid "Auction buyer reporting form view" +#~ msgstr "Formulário do comprador do Leilão" + +#~ msgid "Auction reporting2 form view" +#~ msgstr "Formulário de relatorios do Leilão" diff --git a/addons/auth_openid/i18n/gu.po b/addons/auth_openid/i18n/gu.po new file mode 100644 index 00000000000..20022b1dfa6 --- /dev/null +++ b/addons/auth_openid/i18n/gu.po @@ -0,0 +1,112 @@ +# Gujarati 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: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-05-31 11:08+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Gujarati \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: view:res.users:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12 +msgid "OpenID" +msgstr "" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: field:res.users,openid_url:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47 +msgid "OpenID URL" +msgstr "" + +#. module: auth_openid +#: help:res.users,openid_email:0 +msgid "Used for disambiguation in case of a shared OpenID URL" +msgstr "" + +#. module: auth_openid +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "તમે બે વપરાશકર્તાઓને એક જ લોગીન ન કરી શકો!" + +#. module: auth_openid +#: field:res.users,openid_email:0 +msgid "OpenID Email" +msgstr "" + +#. module: auth_openid +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "પસંદ કરેલ કંપની માન્ય કંપનીઓમાં આ વપરાશકર્તા માટે નથી" + +#. module: auth_openid +#: field:res.users,openid_key:0 +msgid "OpenID Key" +msgstr "" + +#. module: auth_openid +#: model:ir.model,name:auth_openid.model_res_users +msgid "res.users" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8 +msgid "Password" +msgstr "પાસવર્ડ" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google" +msgstr "ગુગલ" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google Apps" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11 +msgid "Launchpad" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20 +msgid "Google Apps Domain:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24 +msgid "Username:" +msgstr "વપરાશકર્તાનું નામ:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28 +msgid "OpenID URL:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35 +msgid "Google Apps Domain" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41 +msgid "Username" +msgstr "વપરાશકર્તા નામ" diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index 6d98e936821..5975210a99c 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -85,21 +85,6 @@ - - - - diff --git a/addons/base_setup/i18n/gu.po b/addons/base_setup/i18n/gu.po new file mode 100644 index 00000000000..3563c7da2ff --- /dev/null +++ b/addons/base_setup/i18n/gu.po @@ -0,0 +1,282 @@ +# Gujarati 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:08+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Gujarati \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: base_setup +#: field:user.preferences.config,menu_tips:0 +msgid "Display Tips" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Guest" +msgstr "અતિથિ" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_product_installer +msgid "product.installer" +msgstr "" + +#. module: base_setup +#: selection:product.installer,customers:0 +msgid "Create" +msgstr "બનાવો" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Member" +msgstr "સભ્ય" + +#. module: base_setup +#: field:migrade.application.installer.modules,sync_google_contact:0 +msgid "Sync Google Contact" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,context_tz:0 +msgid "" +"Set default for new user's timezone, used to perform timezone conversions " +"between the server and the client." +msgstr "" + +#. module: base_setup +#: selection:product.installer,customers:0 +msgid "Import" +msgstr "આયાત કરો" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Donor" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_base_setup_company +msgid "Set Company Header and Footer" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,help:base_setup.action_base_setup_company +msgid "" +"Fill in your company data (address, logo, bank accounts) so that it's " +"printed on your reports. You can click on the button 'Preview Header' in " +"order to check the header/footer of PDF documents." +msgstr "" + +#. module: base_setup +#: field:product.installer,customers:0 +msgid "Customers" +msgstr "ગ્રાહકો" + +#. module: base_setup +#: selection:user.preferences.config,view:0 +msgid "Extended" +msgstr "વિસ્તૃત" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Patient" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,help:base_setup.action_import_create_installer +msgid "" +"Create or Import Customers and their contacts manually from this form or " +"you can import your existing partners by CSV spreadsheet from \"Import " +"Data\" wizard" +msgstr "" + +#. module: base_setup +#: view:user.preferences.config:0 +msgid "Define Users's Preferences" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_user_preferences_config_form +msgid "Define default users preferences" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,import_saleforce:0 +msgid "For Import Saleforce" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,quickbooks_ippids:0 +msgid "For Quickbooks Ippids" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,view:0 +msgid "" +"If you use OpenERP for the first time we strongly advise you to select the " +"simplified interface, which has less features but is easier. You can always " +"switch later from the user preferences." +msgstr "" + +#. module: base_setup +#: view:base.setup.terminology:0 +#: view:user.preferences.config:0 +msgid "res_config_contents" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,view:0 +msgid "Interface" +msgstr "ઇન્ટરફેસ" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_migrade_application_installer_modules +msgid "migrade.application.installer.modules" +msgstr "" + +#. module: base_setup +#: view:base.setup.terminology:0 +msgid "" +"You can use this wizard to change the terminologies for customers in the " +"whole application." +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Tenant" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Customer" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,context_lang:0 +msgid "Language" +msgstr "ભાષા" + +#. module: base_setup +#: help:user.preferences.config,context_lang:0 +msgid "" +"Sets default language for the all user interface, when UI translations are " +"available. If you want to Add new Language, you can add it from 'Load an " +"Official Translation' wizard from 'Administration' menu." +msgstr "" + +#. module: base_setup +#: view:user.preferences.config:0 +msgid "" +"This will set the default preferences for new users and update all existing " +"ones. Afterwards, users are free to change those values on their own user " +"preference form." +msgstr "" + +#. module: base_setup +#: field:base.setup.terminology,partner:0 +msgid "How do you call a Customer" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,quickbooks_ippids:0 +msgid "Quickbooks Ippids" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Client" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,import_saleforce:0 +msgid "Import Saleforce" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,context_tz:0 +msgid "Timezone" +msgstr "ટાઈમઝોન" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form +msgid "Use another word to say \"Customer\"" +msgstr "" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_base_setup_terminology +msgid "base.setup.terminology" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,menu_tips:0 +msgid "" +"Check out this box if you want to always display tips on each menu action" +msgstr "" + +#. module: base_setup +#: field:base.setup.terminology,config_logo:0 +#: field:migrade.application.installer.modules,config_logo:0 +#: field:product.installer,config_logo:0 +#: field:user.preferences.config,config_logo:0 +msgid "Image" +msgstr "ચિત્ર" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_user_preferences_config +msgid "user.preferences.config" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_config_access_other_user +msgid "Create Additional Users" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_import_create_installer +msgid "Create or Import Customers" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,import_sugarcrm:0 +msgid "Import Sugarcrm" +msgstr "" + +#. module: base_setup +#: help:product.installer,customers:0 +msgid "Import or create customers" +msgstr "" + +#. module: base_setup +#: selection:user.preferences.config,view:0 +msgid "Simplified" +msgstr "સરળ" + +#. module: base_setup +#: help:migrade.application.installer.modules,import_sugarcrm:0 +msgid "For Import Sugarcrm" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Partner" +msgstr "ભાગીદાર" + +#. module: base_setup +#: view:base.setup.terminology:0 +msgid "Specify Your Terminology" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,sync_google_contact:0 +msgid "For Sync Google Contact" +msgstr "" diff --git a/addons/base_status/__init__.py b/addons/base_status/__init__.py new file mode 100644 index 00000000000..e4107f90a37 --- /dev/null +++ b/addons/base_status/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA () +# +# 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 base_state +import base_stage + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_status/__openerp__.py b/addons/base_status/__openerp__.py new file mode 100644 index 00000000000..fcb8f54a7ee --- /dev/null +++ b/addons/base_status/__openerp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA () +# +# 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': 'State/Stage Management', + 'version': '1.0', + 'category': 'Hidden', + 'description': """ +This module handles state and stage. It is derived from the crm_base and +crm_case classes from crm. + + * ``base_state``: state management + * ``base_stage``: stage management + """, + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'depends': ['base'], + 'init_xml': [], + 'update_xml': [], + 'demo_xml': [], + 'installable': True, + 'auto_install': False, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py new file mode 100644 index 00000000000..cc6dda19cdf --- /dev/null +++ b/addons/base_status/base_stage.py @@ -0,0 +1,432 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA () +# +# 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 +from tools.translate import _ + +class base_stage(object): + """ Base utility mixin class for objects willing to manage their stages. + Object that inherit from this class should inherit from mailgate.thread + to have access to the mail gateway, as well as Chatter. Objects + subclassing this class should define the following colums: + - ``date_open`` (datetime field) + - ``date_closed`` (datetime field) + - ``user_id`` (many2one to res.users) + - ``partner_id`` (many2one to res.partner) + - ``stage_id`` (many2one to a stage definition model) + - ``state`` (selection field, related to the stage_id.state) + """ + + def _get_default_partner(self, cr, uid, context=None): + """ Gives id of partner for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if hasattr(user, 'partner_address_id') and user.partner_address_id: + return user.partner_address_id + return user.company_id.partner_id.id + + def _get_default_email(self, cr, uid, context=None): + """ Gives default email address for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + return user.user_email + + def _get_default_user(self, cr, uid, context=None): + """ Gives current user id + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + return uid + + def onchange_partner_address_id(self, cr, uid, ids, add, email=False): + """ This function returns value of partner email based on Partner Address + :param add: Id of Partner's address + :param email: Partner's email ID + """ + data = {'value': {'email_from': False, 'phone':False}} + if add: + address = self.pool.get('res.partner').browse(cr, uid, add) + data['value'] = {'email_from': address and address.email or False , + 'phone': address and address.phone or False} + if 'phone' not in self._columns: + del data['value']['phone'] + return data + + def onchange_partner_id(self, cr, uid, ids, part, email=False): + """ This function returns value of partner address based on partner + :param part: Partner's id + :param email: Partner's email ID + """ + data={} + if part: + addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) + data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) + return {'value': data} + + def _get_default_section_id(self, cr, uid, context=None): + """ Gives default section """ + return False + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + return self.stage_find(cr, uid, [], None, [('state', '=', 'draft')], context=context) + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Find stage, with a given (optional) domain on the search, + ordered by the order parameter. If several stages match the + search criterions, the first one will be returned, according + to the requested search order. + This method is meant to be overriden by subclasses. That way + specific behaviors can be achieved for every class inheriting + from base_stage. + + :param cases: browse_record of cases + :param section_id: section limitating the search, given for + a generic search (for example default search). + A section models concepts such as Sales team + (for CRM), ou departments (for HR). + :param domain: a domain on the search of stages + :param order: order of the search + """ + return False + + def stage_set_with_state_name(self, cr, uid, cases, state_name, context=None): + """ Set a new stage, with a state_name instead of a stage_id + :param cases: browse_record of cases + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + for case in cases: + stage_id = self.stage_find(cr, uid, [case], None, [('state', '=', state_name)], context=context) + if stage_id: + self.stage_set(cr, uid, [case.id], stage_id, context=context) + return True + + def stage_set(self, cr, uid, ids, stage_id, context=None): + """ Set the new stage. This methods is the right method to call + when changing states. It also checks whether an onchange is + defined, and execute it. + """ + value = {} + if hasattr(self, 'onchange_stage_id'): + value = self.onchange_stage_id(cr, uid, ids, stage_id, context=context)['value'] + value['stage_id'] = stage_id + self.stage_set_send_note(cr, uid, ids, stage_id, context=context) + return self.write(cr, uid, ids, value, context=context) + + def stage_change(self, cr, uid, ids, op, order, context=None): + """ Change the stage and take the next one, based on a condition + writen for the 'sequence' field and an operator. This methods + checks whether the case has a current stage, and takes its + sequence. Otherwise, a default 0 sequence is chosen and this + method will therefore choose the first available stage. + For example if op is '>' and current stage has a sequence of + 10, this will call stage_find, with [('sequence', '>', '10')]. + """ + for case in self.browse(cr, uid, ids, context=context): + seq = 0 + if case.stage_id: + seq = case.stage_id.sequence or 0 + section_id = None + next_stage_id = self.stage_find(cr, uid, [case], None, [('sequence', op, seq)],order, context=context) + if next_stage_id: + return self.stage_set(cr, uid, [case.id], next_stage_id, context=context) + return False + + def stage_next(self, cr, uid, ids, context=None): + """ This function computes next stage for case from its current stage + using available stage for that case type + """ + return self.stage_change(cr, uid, ids, '>','sequence', context) + + def stage_previous(self, cr, uid, ids, context=None): + """ This function computes previous stage for case from its current + stage using available stage for that case type + """ + return self.stage_change(cr, uid, ids, '<', 'sequence desc', context) + + def copy(self, cr, uid, id, default=None, context=None): + """ Overrides orm copy method to avoid copying messages, + as well as date_closed and date_open columns if they + exist.""" + if default is None: + default = {} + + if hasattr(self, '_columns'): + if self._columns.get('date_closed'): + default.update({ 'date_closed': False, }) + if self._columns.get('date_open'): + default.update({ 'date_open': False }) + return super(base_stage, self).copy(cr, uid, id, default, context=context) + + def case_escalate(self, cr, uid, ids, context=None): + """ Escalates case to parent level """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + for case in cases: + data = {'active': True} + if case.section_id.parent_id: + data['section_id'] = case.section_id.parent_id.id + if case.section_id.parent_id.change_responsible: + if case.section_id.parent_id.user_id: + data['user_id'] = case.section_id.parent_id.user_id.id + else: + raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.')) + self.write(cr, uid, [case.id], data, context=context) + case.case_escalate_send_note(case.section_id.parent_id, context=context) + cases = self.browse(cr, uid, ids, context=context) + self._action(cr, uid, cases, 'escalate', context=context) + return True + + def case_open(self, cr, uid, ids, context=None): + """ Opens case """ + cases = self.browse(cr, uid, ids, context=context) + for case in cases: + data = {'active': True} + if case.stage_id and case.stage_id.state == 'draft': + data['date_open'] = fields.datetime.now() + if not case.user_id: + data['user_id'] = uid + self.case_set(cr, uid, [case.id], 'open', data, context=context) + self.case_open_send_note(cr, uid, [case.id], context=context) + return True + + def case_close(self, cr, uid, ids, context=None): + """ Closes case """ + self.case_set(cr, uid, ids, 'done', {'active': True, 'date_closed': fields.datetime.now()}, context=context) + self.case_close_send_note(cr, uid, ids, context=context) + return True + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True + + def case_pending(self, cr, uid, ids, context=None): + """ Set case as pending """ + self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context) + self.case_pending_send_note(cr, uid, ids, context=context) + return True + + def case_reset(self, cr, uid, ids, context=None): + """ Resets case as draft """ + self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context) + self.case_reset_send_note(cr, uid, ids, context=context) + return True + + def case_set(self, cr, uid, ids, new_state_name=None, values_to_update=None, new_stage_id=None, context=None): + """ Generic method for setting case. This methods wraps the update + of the record, as well as call to _action and browse_record + case setting to fill the cache. + + :params new_state_name: the new state of the record; this method + will call ``stage_set_with_state_name`` + that will find the stage matching the + new state, using the ``stage_find`` method. + :params new_stage_id: alternatively, you may directly give the + new stage of the record + :params state_name: the new value of the state, such as + 'draft' or 'close'. + :params update_values: values that will be added with the state + update when writing values to the record. + """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + # 1. update the stage + if new_state_name: + self.stage_set_with_state_name(cr, uid, cases, new_state_name, context=context) + elif not (new_stage_id is None): + self.stage_set(cr, uid, ids, new_stage_id, context=context) + # 2. update values + if values_to_update: + self.write(cr, uid, ids, values_to_update, context=context) + # 3. call _action for base action rule + if new_state_name: + self._action(cr, uid, cases, new_state_name, context=context) + elif not (new_stage_id is None): + new_state_name = self.read(cr, uid, ids, ['state'], context=context)[0]['state'] + self._action(cr, uid, cases, new_state_name, context=context) + return True + + def _action(self, cr, uid, cases, state_to, scrit=None, context=None): + if context is None: + context = {} + context['state_to'] = state_to + rule_obj = self.pool.get('base.action.rule') + if not rule_obj: + return True + model_obj = self.pool.get('ir.model') + model_ids = model_obj.search(cr, uid, [('model','=',self._name)], context=context) + rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])], context=context) + return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) + + def remind_partner(self, cr, uid, ids, context=None, attach=False): + return self.remind_user(cr, uid, ids, context, attach, + destination=False) + + def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True): + mail_message = self.pool.get('mail.message') + for case in self.browse(cr, uid, ids, context=context): + if not destination and not case.email_from: + return False + if not case.user_id.user_email: + return False + if destination and case.section_id.user_id: + case_email = case.section_id.user_id.user_email + else: + case_email = case.user_id.user_email + + src = case_email + dest = case.user_id.user_email or "" + body = case.description or "" + for message in case.message_ids: + if message.email_from and message.body_text: + body = message.body_text + break + + if not destination: + src, dest = dest, case.email_from + if body and case.user_id.signature: + if body: + body += '\n\n%s' % (case.user_id.signature) + else: + body = '\n\n%s' % (case.user_id.signature) + + body = self.format_body(body) + + attach_to_send = {} + + if attach: + attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)]) + attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas']) + attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send)) + + # Send an email + subject = "Reminder: [%s] %s" % (str(case.id), case.name, ) + mail_message.schedule_with_attach(cr, uid, + src, + [dest], + subject, + body, + model=self._name, + reply_to=case.section_id.reply_to, + res_id=case.id, + attachments=attach_to_send, + context=context + ) + return True + + def _check(self, cr, uid, ids=False, context=None): + """ Function called by the scheduler to process cases for date actions. + Must be overriden by inheriting classes. + """ + return True + + def format_body(self, body): + return self.pool.get('base.action.rule').format_body(body) + + def format_mail(self, obj, body): + return self.pool.get('base.action.rule').format_mail(obj, body) + + def message_thread_followers(self, cr, uid, ids, context=None): + res = {} + for case in self.browse(cr, uid, ids, context=context): + l=[] + if case.email_cc: + l.append(case.email_cc) + if case.user_id and case.user_id.user_email: + l.append(case.user_id.user_email) + res[case.id] = l + return res + + # ****************************** + # Notifications + # ****************************** + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Default prefix for notifications. For example: "%s has been + closed.". As several models will inherit from base_stage, + this method returns a void string. Class using base_stage + will have to override this method to define the prefix they + want to display. + """ + return '' + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Send a notification when the stage changes. This method has + to be overriden, because each document will have its particular + behavior and/or stage model (such as project.task.type or + crm.case.stage). + """ + return True + + def case_open_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been opened.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_close_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been closed.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_cancel_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been canceled.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_pending_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s is now pending.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_reset_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been renewed.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None): + for id in ids: + if new_section: + msg = '%s has been escalated to %s.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name) + else: + msg = '%s has been escalated.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context) + return True diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py new file mode 100644 index 00000000000..5baf71a01b6 --- /dev/null +++ b/addons/base_status/base_state.py @@ -0,0 +1,194 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA () +# +# 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 +from tools.translate import _ + +class base_state(object): + """ Base utility mixin class for objects willing to manage their state. + Object subclassing this class should define the following colums: + - ``date_open`` (datetime field) + - ``date_closed`` (datetime field) + - ``user_id`` (many2one to res.users) + - ``partner_id`` (many2one to res.partner) + - ``state`` (selection field) + """ + + def _get_default_partner(self, cr, uid, context=None): + """ Gives id of partner for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if hasattr(user, 'partner_address_id') and user.partner_address_id: + return user.partner_address_id + return user.company_id.partner_id.id + + def _get_default_email(self, cr, uid, context=None): + """ Gives default email address for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + return user.user_email + + def _get_default_user(self, cr, uid, context=None): + """ Gives current user id + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + return uid + + def onchange_partner_address_id(self, cr, uid, ids, add, email=False): + """ This function returns value of partner email based on Partner Address + :param add: Id of Partner's address + :param email: Partner's email ID + """ + data = {'value': {'email_from': False, 'phone':False}} + if add: + address = self.pool.get('res.partner').browse(cr, uid, add) + data['value'] = {'email_from': address and address.email or False , + 'phone': address and address.phone or False} + if 'phone' not in self._columns: + del data['value']['phone'] + return data + + def onchange_partner_id(self, cr, uid, ids, part, email=False): + """ This function returns value of partner address based on partner + :param part: Partner's id + :param email: Partner's email ID + """ + data={} + if part: + addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) + data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) + return {'value': data} + + def case_open(self, cr, uid, ids, context=None): + """ Opens case """ + cases = self.browse(cr, uid, ids, context=context) + for case in cases: + values = {'active': True} + if case.state == 'draft': + values['date_open'] = fields.datetime.now() + if not case.user_id: + values['user_id'] = uid + self.case_set(cr, uid, [case.id], 'open', values, context=context) + self.case_open_send_note(cr, uid, [case.id], context=context) + return True + + def case_close(self, cr, uid, ids, context=None): + """ Closes case """ + self.case_set(cr, uid, ids, 'done', {'date_closed': fields.datetime.now()}, context=context) + self.case_close_send_note(cr, uid, ids, context=context) + return True + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True + + def case_pending(self, cr, uid, ids, context=None): + """ Sets case as pending """ + self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context) + self.case_pending_send_note(cr, uid, ids, context=context) + return True + + def case_reset(self, cr, uid, ids, context=None): + """ Resets case as draft """ + self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context) + self.case_reset_send_note(cr, uid, ids, context=context) + return True + + def case_set(self, cr, uid, ids, state_name, update_values=None, context=None): + """ Generic method for setting case. This methods wraps the update + of the record, as well as call to _action and browse_record + case setting to fill the cache. + + :params: state_name: the new value of the state, such as + 'draft' or 'close'. + :params: update_values: values that will be added with the state + update when writing values to the record. + """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + if update_values is None: + update_values = {} + update_values['state'] = state_name + self.write(cr, uid, ids, update_values, context=context) + self._action(cr, uid, cases, state_name, context=context) + + def _action(self, cr, uid, cases, state_to, scrit=None, context=None): + if context is None: + context = {} + context['state_to'] = state_to + rule_obj = self.pool.get('base.action.rule') + model_obj = self.pool.get('ir.model') + model_ids = model_obj.search(cr, uid, [('model','=',self._name)]) + rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])]) + return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) + + # ****************************** + # Notifications + # ****************************** + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + return '' + + def case_open_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been opened.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_close_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been closed.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_cancel_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been canceled.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_pending_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s is now pending.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_reset_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been renewed.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True diff --git a/addons/board/i18n/gu.po b/addons/board/i18n/gu.po new file mode 100644 index 00000000000..31d883053f7 --- /dev/null +++ b/addons/board/i18n/gu.po @@ -0,0 +1,348 @@ +# Gujarati 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:09+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Gujarati \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: board +#: view:res.log.report:0 +msgid " Year " +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_menu_create +msgid "Menu Create" +msgstr "" + +#. module: board +#: view:board.menu.create:0 +msgid "Menu Information" +msgstr "" + +#. module: board +#: view:res.users:0 +msgid "Latest Connections" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid "Log created in last month" +msgstr "" + +#. module: board +#: view:board.board:0 +#: model:ir.actions.act_window,name:board.open_board_administration_form +msgid "Administration Dashboard" +msgstr "સંચાલન ડેશબોર્ડ" + +#. module: board +#: view:res.log.report:0 +msgid "Group By..." +msgstr "ગ્રુપ દ્વારા..." + +#. module: board +#: view:res.log.report:0 +msgid "Log created in current year" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_board +msgid "Board" +msgstr "બૉર્ડ" + +#. module: board +#: field:board.menu.create,menu_name:0 +msgid "Menu Name" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_weekly_res_log_report_action +#: view:res.log.report:0 +msgid "Weekly Global Activity" +msgstr "" + +#. module: board +#: field:board.board.line,name:0 +msgid "Title" +msgstr "શીર્ષક" + +#. module: board +#: field:res.log.report,nbr:0 +msgid "# of Entries" +msgstr "" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,month:0 +msgid "Month" +msgstr "મહિનો" + +#. module: board +#: view:res.log.report:0 +msgid "Log created in current month" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action +#: view:res.log.report:0 +msgid "Monthly Activity per Document" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Configuration Overview" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_view_board_list_form +#: model:ir.ui.menu,name:board.menu_view_board_form +msgid "Dashboard Definition" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "March" +msgstr "માર્ચ" + +#. module: board +#: selection:res.log.report,month:0 +msgid "August" +msgstr "ઑગસ્ટ" + +#. module: board +#: model:ir.actions.act_window,name:board.action_user_connection_tree +msgid "User Connections" +msgstr "" + +#. module: board +#: field:res.log.report,creation_date:0 +msgid "Creation Date" +msgstr "સર્જન તારીખ" + +#. module: board +#: view:res.log.report:0 +msgid "Log Analysis" +msgstr "" + +#. module: board +#: field:res.log.report,res_model:0 +msgid "Object" +msgstr "વસ્તુ" + +#. module: board +#: selection:res.log.report,month:0 +msgid "June" +msgstr "જૂન" + +#. module: board +#: field:board.board,line_ids:0 +msgid "Action Views" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_res_log_report +msgid "Log Report" +msgstr "" + +#. module: board +#: code:addons/board/wizard/board_menu_create.py:46 +#, python-format +msgid "Please Insert Dashboard View(s) !" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "July" +msgstr "જુલાઈ" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,day:0 +msgid "Day" +msgstr "દિવસ" + +#. module: board +#: view:board.menu.create:0 +msgid "Create Menu For Dashboard" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "February" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "October" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_board_line +msgid "Board Line" +msgstr "" + +#. module: board +#: field:board.menu.create,menu_parent_id:0 +msgid "Parent Menu" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid " Month-1 " +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "January" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Users" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "November" +msgstr "" + +#. module: board +#: help:board.board.line,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of " +"board lines." +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "April" +msgstr "" + +#. module: board +#: view:board.board:0 +#: field:board.board,name:0 +#: field:board.board.line,board_id:0 +#: model:ir.ui.menu,name:board.menu_dasboard +msgid "Dashboard" +msgstr "" + +#. module: board +#: code:addons/board/wizard/board_menu_create.py:45 +#, python-format +msgid "User Error!" +msgstr "" + +#. module: board +#: field:board.board.line,action_id:0 +msgid "Action" +msgstr "" + +#. module: board +#: field:board.board.line,position:0 +msgid "Position" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid "Model" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_homepage_action +msgid "Home Page" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_latest_activities_tree +msgid "Latest Activities" +msgstr "" + +#. module: board +#: selection:board.board.line,position:0 +msgid "Left" +msgstr "" + +#. module: board +#: field:board.board,view_id:0 +msgid "Board View" +msgstr "" + +#. module: board +#: selection:board.board.line,position:0 +msgid "Right" +msgstr "" + +#. module: board +#: field:board.board.line,width:0 +msgid "Width" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid " Month " +msgstr "" + +#. module: board +#: field:board.board.line,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "September" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "December" +msgstr "" + +#. module: board +#: view:board.board:0 +#: view:board.menu.create:0 +msgid "Create Menu" +msgstr "" + +#. module: board +#: field:board.board.line,height:0 +msgid "Height" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_board_menu_create +msgid "Create Board Menu" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "May" +msgstr "" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,name:0 +msgid "Year" +msgstr "" + +#. module: board +#: view:board.menu.create:0 +msgid "Cancel" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Dashboard View" +msgstr "" diff --git a/addons/caldav/i18n/pt.po b/addons/caldav/i18n/pt.po index 1a27f114f0c..2746ddd853a 100644 --- a/addons/caldav/i18n/pt.po +++ b/addons/caldav/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 17:59+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2012-05-31 15:16+0000\n" +"Last-Translator: ThinkOpen Solutions \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:13+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: caldav #: view:basic.calendar:0 @@ -672,7 +672,7 @@ msgstr "" #. module: caldav #: view:caldav.browse:0 msgid "Browse Caldav" -msgstr "" +msgstr "Pesquisa Caldav" #. module: caldav #: field:user.preference,host_name:0 diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index 2049b3a8cc9..0c9b75b4d41 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -57,6 +57,7 @@ Creates a dashboard for CRM that includes: 'depends': [ 'base_action_rule', 'base_setup', + 'base_status', 'process', 'mail', 'base_calendar', @@ -66,7 +67,6 @@ Creates a dashboard for CRM that includes: ], 'init_xml': [ 'crm_data.xml', - 'crm_meeting_data.xml', 'crm_lead_data.xml', 'crm_meeting_data.xml', 'crm_phonecall_data.xml', diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index b8e05b68cf5..fd6b95d81f9 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -11,27 +11,10 @@ - - - - - - - + diff --git a/addons/crm/crm.py b/addons/crm/crm.py index eb6314c5103..65af3f9e530 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,12 +19,11 @@ # ############################################################################## -import time import base64 -import tools - +import time from osv import fields from osv import osv +import tools from tools.translate import _ MAX_LEVEL = 15 @@ -57,8 +56,11 @@ class crm_case_channel(osv.osv): } class crm_case_stage(osv.osv): - """ Stage of case """ - + """ Model for case stages. This models the main stages of a document + management flow. Main CRM objects (leads, opportunities, project + issues, ...) will now use only stages, instead of state and stages. + Stages are for example used to display the kanban view of records. + """ _name = "crm.case.stage" _description = "Stage of case" _rec_name = 'name' @@ -66,22 +68,34 @@ class crm_case_stage(osv.osv): _columns = { 'name': fields.char('Stage Name', size=64, required=True, translate=True), - 'sequence': fields.integer('Sequence', help="Used to order stages."), + 'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."), 'probability': fields.float('Probability (%)', required=True, help="This percentage depicts the default/average probability of the Case for this stage to be a success"), 'on_change': fields.boolean('Change Probability Automatically', help="Setting this stage will change the probability automatically on the opportunity."), 'requirements': fields.text('Requirements'), - 'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', 'Sections'), - 'case_default': fields.boolean('Common to All Teams', help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', string='Sections', + help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."), + 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."), + 'case_default': fields.boolean('Common to All Teams', + help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'fold': fields.boolean('Hide in Views when Empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + 'type': fields.selection([ ('lead','Lead'), + ('opportunity', 'Opportunity'), + ('both', 'Both')], + string='Type', size=16, required=True, + help="This field is used to distinguish stages related to Leads from stages related to Opportunities, or to specify stages available for both types."), } _defaults = { 'sequence': lambda *args: 1, 'probability': lambda *args: 0.0, + 'state': 'draft', + 'fold': False, + 'type': 'both', } class crm_case_section(osv.osv): - """Sales Team""" - + """ Model for sales teams. """ _name = "crm.case.section" _description = "Sales Teams" _order = "complete_name" @@ -107,6 +121,7 @@ class crm_case_section(osv.osv): 'working_hours': fields.float('Working Hours', digits=(16,2 )), 'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'), } + def _get_stage_common(self, cr, uid, context): ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context) return ids @@ -171,429 +186,6 @@ class crm_case_resource_type(osv.osv): 'section_id': fields.many2one('crm.case.section', 'Sales Team'), } -class crm_base(object): - """ Base utility mixin class for crm objects, - Object subclassing this should define colums: - date_open - date_closed - user_id - partner_id - """ - def _get_default_partner_address(self, cr, uid, context=None): - """Gives id of default address for current user - :param context: if portal in context is false return false anyway - """ - if context is None: - context = {} - if not context.get('portal'): - return False - # was user.address_id.id, but address_id has been removed - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if hasattr(user, 'partner_address_id') and user.partner_address_id: - return user.partner_address_id - return False - - def _get_default_partner(self, cr, uid, context=None): - """Gives id of partner for current user - :param context: if portal in context is false return false anyway - """ - if context is None: - context = {} - if not context.get('portal', False): - return False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if hasattr(user, 'partner_address_id') and user.partner_address_id: - return user.partner_address_id - return user.company_id.partner_id.id - - def _get_default_email(self, cr, uid, context=None): - """Gives default email address for current user - :param context: if portal in context is false return false anyway - """ - if not context.get('portal', False): - return False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email - - def _get_default_user(self, cr, uid, context=None): - """Gives current user id - :param context: if portal in context is false return false anyway - """ - if context and context.get('portal', False): - return False - return uid - - def _get_section(self, cr, uid, context=None): - return False - - def onchange_partner_address_id(self, cr, uid, ids, add, email=False): - """This function returns value of partner email based on Partner Address - :param ids: List of case IDs - :param add: Id of Partner's address - :param email: Partner's email ID - """ - data = {'value': {'email_from': False, 'phone':False}} - if add: - address = self.pool.get('res.partner').browse(cr, uid, add) - data['value'] = {'email_from': address and address.email or False , - 'phone': address and address.phone or False} - if 'phone' not in self._columns: - del data['value']['phone'] - return data - - def onchange_partner_id(self, cr, uid, ids, part, email=False): - """This function returns value of partner address based on partner - :param ids: List of case IDs - :param part: Partner's id - :param email: Partner's email ID - """ - data={} - if part: - addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) - data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) - return {'value': data} - - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return '' - - def case_open_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been opened.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_close_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been closed.'% (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_cancel_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been canceled.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_pending_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s is now pending.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_reset_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been renewed.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_open(self, cr, uid, ids, context=None): - """Opens Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'state': 'open', 'active': True} - if not case.user_id: - data['user_id'] = uid - self.write(cr, uid, [case.id], data) - self.case_open_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'open') - - return True - - def case_close(self, cr, uid, ids, context=None): - """Closes Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), }) - # We use the cache of cases to keep the old case state - self.case_close_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'done') - return True - - def case_cancel(self, cr, uid, ids, context=None): - """Cancels Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'cancel', 'active': True}) - # We use the cache of cases to keep the old case state - self.case_cancel_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'cancel') - return True - - def case_pending(self, cr, uid, ids, context=None): - """Marks case as pending - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'pending', 'active': True}) - self.case_pending_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'pending') - return True - - def case_reset(self, cr, uid, ids, context=None): - """Resets case as draft - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'draft', 'active': True}) - self.case_reset_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'draft') - return True - - def _action(self, cr, uid, cases, state_to, scrit=None, context=None): - if context is None: - context = {} - context['state_to'] = state_to - rule_obj = self.pool.get('base.action.rule') - model_obj = self.pool.get('ir.model') - model_ids = model_obj.search(cr, uid, [('model','=',self._name)]) - rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])]) - return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) - -class crm_case(crm_base): - """ A simple python class to be used for common functions - Object that inherit from this class should inherit from mailgate.thread - And need a stage_id field - And object that inherit (orm inheritance) from a class the overwrite copy - """ - - def stage_find(self, cr, uid, section_id, domain=[], order='sequence'): - domain = list(domain) - if section_id: - domain.append(('section_ids', '=', section_id)) - stage_ids = self.pool.get('crm.case.stage').search(cr, uid, domain, order=order) - if stage_ids: - return stage_ids[0] - return False - - def stage_set(self, cr, uid, ids, stage_id, context=None): - value = {} - if hasattr(self,'onchange_stage_id'): - value = self.onchange_stage_id(cr, uid, ids, stage_id)['value'] - value['stage_id'] = stage_id - return self.write(cr, uid, ids, value, context=context) - - def stage_change(self, cr, uid, ids, op, order, context=None): - if context is None: - context = {} - for case in self.browse(cr, uid, ids, context=context): - seq = 0 - if case.stage_id: - seq = case.stage_id.sequence - section_id = None - if case.section_id: - section_id = case.section_id.id - next_stage_id = self.stage_find(cr, uid, section_id, [('sequence',op,seq)],order) - if next_stage_id: - return self.stage_set(cr, uid, [case.id], next_stage_id, context=context) - return False - - def stage_next(self, cr, uid, ids, context=None): - """This function computes next stage for case from its current stage - using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '>','sequence', context) - - def stage_previous(self, cr, uid, ids, context=None): - """This function computes previous stage for case from its current - stage using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '<', 'sequence desc', context) - - def copy(self, cr, uid, id, default=None, context=None): - """Overrides orm copy method to avoid copying messages, - as well as date_closed and date_open columns if they - exist.""" - if default is None: - default = {} - - default.update({ 'message_ids': [], }) - if hasattr(self, '_columns'): - if self._columns.get('date_closed'): - default.update({ 'date_closed': False, }) - if self._columns.get('date_open'): - default.update({ 'date_open': False }) - return super(crm_case, self).copy(cr, uid, id, default, context=context) - - def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None): - for id in ids: - if new_section: - msg = '%s has been escalated to %s.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name) - else: - msg = '%s has been escalated.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context) - return True - - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return '' - - def case_open(self, cr, uid, ids, context=None): - """Opens Case""" - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'state': 'open', 'active': True } - if not case.user_id: - data['user_id'] = uid - self.write(cr, uid, [case.id], data) - self.case_open_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'open') - return True - - def case_close(self, cr, uid, ids, context=None): - """Closes Case""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'done', - 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), - }) - # - # We use the cache of cases to keep the old case state - # - self.case_close_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'done') - return True - - def case_escalate(self, cr, uid, ids, context=None): - """Escalates case to parent level""" - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'active': True} - if case.section_id.parent_id: - data['section_id'] = case.section_id.parent_id.id - if case.section_id.parent_id.change_responsible: - if case.section_id.parent_id.user_id: - data['user_id'] = case.section_id.parent_id.user_id.id - else: - raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.')) - self.write(cr, uid, [case.id], data) - case.case_escalate_send_note(case.section_id.parent_id) - cases = self.browse(cr, uid, ids) - self._action(cr, uid, cases, 'escalate') - return True - - def case_cancel(self, cr, uid, ids, context=None): - """Cancels Case""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'cancel', - 'active': True}) - self.case_cancel_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'cancel') - return True - - def case_pending(self, cr, uid, ids, context=None): - """Marks case as pending""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'pending', 'active': True}) - self.case_pending_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'pending') - return True - - def case_reset(self, cr, uid, ids, context=None): - """Resets case as draft""" - state = 'draft' - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': state, 'active': True}) - self.case_reset_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, state) - return True - - def remind_partner(self, cr, uid, ids, context=None, attach=False): - return self.remind_user(cr, uid, ids, context, attach, - destination=False) - - def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True): - mail_message = self.pool.get('mail.message') - for case in self.browse(cr, uid, ids, context=context): - if not destination and not case.email_from: - return False - if not case.user_id.user_email: - return False - if destination and case.section_id.user_id: - case_email = case.section_id.user_id.user_email - else: - case_email = case.user_id.user_email - - src = case_email - dest = case.user_id.user_email or "" - body = case.description or "" - for message in case.message_ids: - if message.email_from and message.body_text: - body = message.body_text - break - - if not destination: - src, dest = dest, case.email_from - if body and case.user_id.signature: - if body: - body += '\n\n%s' % (case.user_id.signature) - else: - body = '\n\n%s' % (case.user_id.signature) - - body = self.format_body(body) - - attach_to_send = {} - - if attach: - attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)]) - attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas']) - attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send)) - - # Send an email - subject = "Reminder: [%s] %s" % (str(case.id), case.name, ) - mail_message.schedule_with_attach(cr, uid, - src, - [dest], - subject, - body, - model=self._name, - reply_to=case.section_id.reply_to, - res_id=case.id, - attachments=attach_to_send, - context=context - ) - return True - - def _check(self, cr, uid, ids=False, context=None): - """Function called by the scheduler to process cases for date actions - Only works on not done and cancelled cases - """ - cr.execute('select * from crm_case \ - where (date_action_last<%s or date_action_last is null) \ - and (date_action_next<=%s or date_action_next is null) \ - and state not in (\'cancel\',\'done\')', - (time.strftime("%Y-%m-%d %H:%M:%S"), - time.strftime('%Y-%m-%d %H:%M:%S'))) - - ids2 = map(lambda x: x[0], cr.fetchall() or []) - cases = self.browse(cr, uid, ids2, context=context) - return self._action(cr, uid, cases, False, context=context) - - def format_body(self, body): - return self.pool.get('base.action.rule').format_body(body) - - def format_mail(self, obj, body): - return self.pool.get('base.action.rule').format_mail(obj, body) - - def message_thread_followers(self, cr, uid, ids, context=None): - res = {} - for case in self.browse(cr, uid, ids, context=context): - l=[] - if case.email_cc: - l.append(case.email_cc) - if case.user_id and case.user_id.user_email: - l.append(case.user_id.user_email) - res[case.id] = l - return res def _links_get(self, cr, uid, context=None): """Gets links value for reference field""" diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index bf20deb0ce5..ee6b9835f02 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,15 +19,15 @@ # ############################################################################## -from osv import fields, osv -from datetime import datetime -import crm -import time -from tools.translate import _ -from crm import crm_case import binascii -import tools +from base_status.base_stage import base_stage +import crm +from datetime import datetime from mail.mail_message import to_email +from osv import fields, osv +import time +import tools +from tools.translate import _ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled @@ -35,22 +35,68 @@ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[4][0], # Pending ) -class crm_lead(crm_case, osv.osv): +class crm_lead(base_stage, osv.osv): """ CRM Lead Case """ _name = "crm.lead" _description = "Lead/Opportunity" _order = "priority,date_action,id desc" _inherit = ['ir.needaction_mixin', 'mail.thread','res.partner'] + def _get_default_section_id(self, cr, uid, context=None): + """ Gives default section by checking if present in the context """ + return (self._resolve_section_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + section_id = self._get_default_section_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], section_id, [('state', '=', 'draft'), ('type', '=', 'both')], context=context) + + def _resolve_section_id_from_context(self, cr, uid, context=None): + """ Returns ID of section based on the value of 'section_id' + context key, or None if it cannot be resolved to a single + Sales Team. + """ + if context is None: + context = {} + if type(context.get('default_section_id')) in (int, long): + return context.get('default_section_id') + if isinstance(context.get('default_section_id'), basestring): + section_name = context['default_section_id'] + section_ids = self.pool.get('crm.case.section').name_search(cr, uid, name=section_name, context=context) + if len(section_ids) == 1: + return int(section_ids[0][0]) + return None + + def _resolve_type_from_context(self, cr, uid, context=None): + """ Returns the type (lead or opportunity) from the type context + key. Returns None if it cannot be resolved. + """ + if context is None: + context = {} + return context.get('default_type') + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): access_rights_uid = access_rights_uid or uid stage_obj = self.pool.get('crm.case.stage') order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case if read_group_order == 'stage_id desc': - # lame hack to allow reverting search, should just work in the trivial case order = "%s desc" % order - stage_ids = stage_obj._search(cr, uid, ['|', ('id','in',ids),('case_default','=',1)], order=order, - access_rights_uid=access_rights_uid, context=context) + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('section_ids', '=', section_id), ('fold', '=', False) if section_id: add section columns that are not folded + search_domain = [] + section_id = self._resolve_section_id_from_context(cr, uid, context=context) + if section_id: + search_domain += ['|', '&', ('section_ids', '=', section_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + # retrieve type from the context (if set: choose 'type' or 'both') + type = self._resolve_type_from_context(cr, uid, context=context) + if type: + search_domain += ['|', ('type', '=', type), ('type', '=', 'both')] + # perform search + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) # restore order of the search result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) @@ -154,7 +200,6 @@ class crm_lead(crm_case, osv.osv): 'email_cc': fields.text('Global CC', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'description': fields.text('Notes'), 'write_date': fields.datetime('Update Date' , readonly=True), - 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"), 'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \ @@ -167,7 +212,8 @@ class crm_lead(crm_case, osv.osv): 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), - 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"), + 'stage_id': fields.many2one('crm.case.stage', 'Stage', + domain="['&', '|', ('section_ids', '=', section_id), ('case_default', '=', True), '|', ('type', '=', type), ('type', '=', 'both')]"), 'user_id': fields.many2one('res.users', 'Salesperson'), 'referred': fields.char('Referred By', size=64), 'date_open': fields.datetime('Opened', readonly=True), @@ -175,11 +221,13 @@ class crm_lead(crm_case, osv.osv): multi='day_open', type="float", store=True), 'day_close': fields.function(_compute_day, string='Days to Close', \ multi='day_close', type="float", store=True), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', 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 \'In progress\'.\ - \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\'.'), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), 'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64), @@ -192,23 +240,21 @@ class crm_lead(crm_case, osv.osv): 'date_deadline': fields.date('Expected Closing'), 'date_action': fields.date('Next Action Date', select=True), 'title_action': fields.char('Next Action', size=64), - 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"), 'color': fields.integer('Color Index'), 'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True), 'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True), 'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True), 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), 'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True), - } _defaults = { - 'active': lambda *a: 1, - 'user_id': crm_case._get_default_user, - 'email_from': crm_case._get_default_email, - 'state': lambda *a: 'draft', - 'type': lambda *a: 'lead', - 'section_id': crm_case._get_section, + 'active': 1, + 'type': 'lead', + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'color': 0, @@ -241,95 +287,104 @@ class crm_lead(crm_case, osv.osv): return {'value':{}} return {'value':{'probability': stage.probability}} - def stage_find_percent(self, cr, uid, percent, section_id): - """ Return the first stage with a probability == percent + def _check(self, cr, uid, ids=False, context=None): + """ Override of the base.stage method. + Function called by the scheduler to process cases for date actions + Only works on not done and cancelled cases """ - stage_pool = self.pool.get('crm.case.stage') - if section_id : - ids = stage_pool.search(cr, uid, [("probability", '=', percent), ("section_ids", 'in', [section_id])]) - else : - ids = stage_pool.search(cr, uid, [("probability", '=', percent)]) + cr.execute('select * from crm_case \ + where (date_action_last<%s or date_action_last is null) \ + and (date_action_next<=%s or date_action_next is null) \ + and state not in (\'cancel\',\'done\')', + (time.strftime("%Y-%m-%d %H:%M:%S"), + time.strftime('%Y-%m-%d %H:%M:%S'))) - if ids: - return ids[0] + ids2 = map(lambda x: x[0], cr.fetchall() or []) + cases = self.browse(cr, uid, ids2, context=context) + return self._action(cr, uid, cases, False, context=context) + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - type: stage type must be the same or 'both' + - section_id: if set, stages must belong to this section or + be a default stage; if not set, stages must be default + stages + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + types = ['both'] + if section_id: + section_ids.append(section_id) + for lead in cases: + if lead.section_id: + section_ids.append(lead.section_id.id) + if lead.type not in types: + types.append(lead.type) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with cases types + search_domain.append(('type', 'in', types)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] return False - def stage_find_lost(self, cr, uid, section_id): - return self.stage_find_percent(cr, uid, 0.0, section_id) - - def stage_find_won(self, cr, uid, section_id): - return self.stage_find_percent(cr, uid, 100.0, section_id) - - def case_open(self, cr, uid, ids, context=None): - for lead in self.browse(cr, uid, ids, context=context): - if lead.state == 'draft': - value = {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')} - self.write(cr, uid, [lead.id], value) - if lead.type == 'opportunity' and not lead.stage_id: - stage_id = self.stage_find(cr, uid, lead.section_id.id or False, [('sequence','>',0)]) - if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - res = super(crm_lead, self).case_open(cr, uid, ids, context) - return res - - def case_close(self, cr, uid, ids, context=None): - res = super(crm_lead, self).case_close(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')}) - return res - def case_cancel(self, cr, uid, ids, context=None): - """Overrides cancel for crm_case for setting probability - """ - res = super(crm_lead, self).case_cancel(cr, uid, ids, context) - self.write(cr, uid, ids, {'probability' : 0.0}) + """ Overrides case_cancel from base_stage to set probability """ + res = super(crm_lead, self).case_cancel(cr, uid, ids, context=context) + self.write(cr, uid, ids, {'probability' : 0.0}, context=context) return res def case_reset(self, cr, uid, ids, context=None): - """Overrides reset as draft in order to set the stage field as empty - """ - res = super(crm_lead, self).case_reset(cr, uid, ids, context) - self.write(cr, uid, ids, {'stage_id': False, 'probability': 0.0}) + """ Overrides case_reset from base_stage to set probability """ + res = super(crm_lead, self).case_reset(cr, uid, ids, context=context) + self.write(cr, uid, ids, {'probability': 0.0}, context=context) return res def case_mark_lost(self, cr, uid, ids, context=None): - """Mark the case as lost: state = done and probability = 0% - """ - res = super(crm_lead, self).case_close(cr, uid, ids, context) - self.write(cr, uid, ids, {'probability' : 0.0}) + """ Mark the case as lost: state=cancel and probability=0 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find_lost(cr, uid, lead.section_id.id or False) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 0.0)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - return res + self.case_set(cr, uid, [lead.id], values_to_update={'probability': 0.0}, new_stage_id=stage_id, context=context) + self.case_mark_lost_send_note(cr, uid, ids, context=context) + return True def case_mark_won(self, cr, uid, ids, context=None): - """Mark the case as lost: state = done and probability = 0% - """ - res = super(crm_lead, self).case_close(cr, uid, ids, context=None) - self.write(cr, uid, ids, {'probability' : 100.0}) + """ Mark the case as lost: state=done and probability=100 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find_won(cr, uid, lead.section_id.id or False) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 100.0)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - self.case_mark_won_send_note(cr, uid, [lead.id], context=context) - return res + self.case_set(cr, uid, [lead.id], values_to_update={'probability': 100.0}, new_stage_id=stage_id, context=context) + self.case_mark_won_send_note(cr, uid, ids, context=context) + return True def set_priority(self, cr, uid, ids, priority): - """Set lead priority + """ Set lead priority """ return self.write(cr, uid, ids, {'priority' : priority}) def set_high_priority(self, cr, uid, ids, context=None): - """Set lead priority to high + """ Set lead priority to high """ return self.set_priority(cr, uid, ids, '1') def set_normal_priority(self, cr, uid, ids, context=None): - """Set lead priority to normal + """ Set lead priority to normal """ return self.set_priority(cr, uid, ids, '3') - def _merge_data(self, cr, uid, ids, oldest, fields, context=None): # prepare opportunity data into dictionary for merging opportunities = self.browse(cr, uid, ids, context=context) @@ -807,22 +862,12 @@ class crm_lead(crm_case, osv.osv): "You should better cancel it, instead of deleting it.") % lead.name) return super(crm_lead, self).unlink(cr, uid, ids, context) - def write(self, cr, uid, ids, vals, context=None): - if not context: - context = {} - - if 'date_closed' in vals: - return super(crm_lead,self).write(cr, uid, ids, vals, context=context) - - if vals.get('stage_id'): - stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) + if vals.get('stage_id') and not vals.get('probability'): # change probability of lead(s) if required by stage - if not vals.get('probability') and stage.on_change: + stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) + if stage.on_change: vals['probability'] = stage.probability - for case in self.browse(cr, uid, ids, context=context): - message = _("Stage changed to %s.") % (stage.name) - case.message_append_note(body=message) return super(crm_lead,self).write(cr, uid, ids, vals, context) # ---------------------------------------- @@ -837,6 +882,11 @@ class crm_lead(crm_case, osv.osv): sub_ids.append(obj.user_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, lead, context=None): if isinstance(lead, (int, long)): lead = self.browse(cr, uid, [lead], context=context)[0] diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index aaa00307bfe..306a35924a9 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -3,47 +3,81 @@ - - Lost - - - - New + draft - + + both - Qualification + Opportunity + open - + + lead - Proposition + Qualification - - + open + + + opportunity - Negotiation + Proposition - - + open + + + opportunity + Negotiation + + open + + + opportunity + + Won + done + opportunity + + Dead + + + cancel + + + lead + + + Lost + + + cancel + + + opportunity + + Sales Department Sales - + diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index 19987f8f61a..21c7f9e31ab 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -8,14 +8,13 @@ lead - - - - - + + + + @@ -29,18 +28,17 @@ lead - + - - - - - + + + + - + @@ -50,15 +48,14 @@ lead - - - - + + + - + @@ -68,10 +65,9 @@ lead - - - - + + + @@ -87,16 +83,15 @@ lead - - - - - + + + + - + @@ -110,15 +105,14 @@ lead - - - - - + + + + - + @@ -130,15 +124,14 @@ lead - - - - - + + + + - + @@ -149,17 +142,16 @@ lead - - - - - + + + + - + @@ -168,17 +160,16 @@ lead - - - - - + + + + - + @@ -186,9 +177,8 @@ lead - - + @@ -198,12 +188,11 @@ lead - - + - + @@ -212,28 +201,15 @@ lead - - - - - - - - + @@ -245,11 +221,10 @@ - - + @@ -260,12 +235,11 @@ - - + @@ -283,12 +257,11 @@ - - + @@ -299,19 +272,18 @@ - + opportunity - - + @@ -323,19 +295,18 @@ - + opportunity - - + @@ -354,12 +325,11 @@ - - + @@ -372,11 +342,10 @@ - - + @@ -395,40 +364,37 @@ - - + - + opportunity - - + - + opportunity - - + @@ -439,7 +405,7 @@ - + opportunity @@ -447,11 +413,10 @@ - - + Thymbra @@ -461,7 +426,7 @@ - + opportunity @@ -469,11 +434,10 @@ - - + @@ -484,26 +448,24 @@ - + opportunity - - + opportunity - diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 0090ac8c3af..3cddeb1279e 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -1,35 +1,41 @@ - + - - - Stage - Search - crm.case.stage - search - - - - - - + - - - Stages - crm.case.stage - form - - Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle. - + + + Stage - Search + crm.case.stage + search + + + + + + + + - + + + Stages + crm.case.stage + form + + Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle. + + - + + Categories crm.case.categ @@ -44,6 +50,9 @@ id="menu_crm_lead_categ" name="Categories" parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/> + @@ -53,14 +62,17 @@ - - - - - - + + + + - + @@ -71,24 +83,9 @@ - - - - - - @@ -142,6 +139,7 @@ + @@ -161,72 +159,49 @@ - + - + + + Leads + crm.lead + tree + + + + + + + + + + + + + + + + + + + + + - - Leads - crm.lead - tree - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CRM - Leads Calendar - crm.lead - calendar - - - - - - - - + + + CRM - Leads Calendar + crm.lead + calendar + + + + + + + + @@ -235,7 +210,7 @@ kanban - + @@ -316,7 +291,6 @@ - CRM - Leads Search crm.lead @@ -391,6 +365,10 @@ + + Opportunities @@ -400,15 +378,23 @@ - - - - - - - + + + + + + + - + @@ -461,20 +447,8 @@ - - - - - - - - - + + @@ -534,41 +508,35 @@ - - - Opportunities Tree - crm.lead - tree - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Opportunities Tree + crm.lead + tree + + + + + + + + + + + + + + + + + + + + + + + + @@ -596,8 +564,7 @@ help="Unassigned Opportunities" /> + context="{'invisible_section': False, 'default_section_id': self}"> - - - CRM - Opportunity Graph - crm.lead - graph - - - - - - - - + + + CRM - Opportunity Graph + crm.lead + graph + + + + + + + + - + diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py index a0e4803cde7..740db3d967f 100644 --- a/addons/crm/crm_meeting.py +++ b/addons/crm/crm_meeting.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,43 +20,35 @@ ############################################################################## from base_calendar import base_calendar -from crm import crm_base, crm_case +from base_status.base_state import base_state +from base_status.base_stage import base_stage +import logging from osv import fields, osv import tools from tools.translate import _ -import logging -class crm_lead(crm_case, osv.osv): - """ CRM Leads """ - _name = 'crm.lead' -crm_lead() - -class crm_phonecall(crm_case, osv.osv): - """ CRM Phonecall """ - _name = 'crm.phonecall' -crm_phonecall() - - -class crm_meeting(crm_base, osv.osv): - """ CRM Meeting Cases """ +class crm_lead(base_stage, osv.osv): + """ CRM Leads """ + _name = 'crm.lead' +class crm_meeting(base_state, osv.Model): + """ Model for CRM meetings """ _name = 'crm.meeting' _description = "Meeting" _order = "id desc" _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] _columns = { - # From crm.case - 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), + # base_state required fields 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), 'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \ select=True, help='Sales team to which Case belongs to.'), 'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."), - 'id': fields.integer('ID', readonly=True), 'create_date': fields.datetime('Creation Date' , readonly=True), 'write_date': fields.datetime('Write Date' , readonly=True), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), # Meeting fields + 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), 'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \ domain="[('object_id.model', '=', 'crm.meeting')]", \ ), @@ -67,11 +59,11 @@ class crm_meeting(crm_base, osv.osv): 'date_closed': fields.datetime('Closed', readonly=True), 'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}), 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), - 'state': fields.selection([('open', 'Confirmed'), - ('draft', 'Unconfirmed'), + 'state': fields.selection([ ('draft', 'Unconfirmed'), + ('open', 'Confirmed'), ('cancel', 'Cancelled'), - ('done', 'Done')], 'Status', \ - size=16, readonly=True), + ('done', 'Done')], + string='Status', size=16, readonly=True), } _defaults = { 'state': 'draft', @@ -91,6 +83,17 @@ class crm_meeting(crm_base, osv.osv): result[obj.id] = [obj.user_id.id] return result + def case_open(self, cr, uid, ids, context=None): + """ Confirms meeting """ + res = super(crm_meeting, self).case_open(cr, uid, ids, context) + for (id, name) in self.name_get(cr, uid, ids): + id=base_calendar.base_calendar_id2real_id(id) + return res + + # ---------------------------------------- + # OpenChatter + # ---------------------------------------- + def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Meeting' @@ -119,32 +122,12 @@ class crm_meeting(crm_base, osv.osv): meeting.message_append_note(body=parent_message) return True - def case_close_send_note(self, cr, uid, ids, context=None): - message = _("Meeting has been done.") - return self.message_append_note(cr, uid, ids, body=message, context=context) - def case_open_send_note(self, cr, uid, ids, context=None): - for meeting in self.browse(cr, uid, ids, context=context): - if meeting.state != 'draft': - return False - message = _("Meeting has been confirmed.") - meeting.message_append_note(body=message) - return True + return self.message_append_note(cr, uid, ids, body=_("Meeting has been confirmed."), context=context) - def case_open(self, cr, uid, ids, context=None): - """Confirms meeting - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of Meeting Ids - @param *args: Tuple Value for additional Params - """ - res = super(crm_meeting, self).case_open(cr, uid, ids, context) - for (id, name) in self.name_get(cr, uid, ids): - id=base_calendar.base_calendar_id2real_id(id) - return res + def case_close_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been done."), context=context) -crm_meeting() class calendar_attendee(osv.osv): """ Calendar Attendee """ diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 5b0a35a185e..1d1422ee285 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -25,7 +25,22 @@ crm.meeting form - + + + + + + + + + + + + @@ -71,19 +86,6 @@ - - - - - - - - + + + + diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 309102ec366..8c7c3fe72df 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,26 +19,22 @@ # ############################################################################## -from crm import crm_base -from osv import fields, osv -from tools.translate import _ +from base_status.base_state import base_state import crm +from datetime import datetime +from osv import fields, osv import time from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP -from datetime import datetime - -class crm_phonecall(crm_base, osv.osv): - """ Phonecall Cases """ +from tools.translate import _ +class crm_phonecall(base_state, osv.osv): + """ Model for CRM phonecalls """ _name = "crm.phonecall" _description = "Phonecall" _order = "id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] _columns = { - # From crm.case - 'id': fields.integer('ID', readonly=True), - 'name': fields.char('Call Summary', size=64, required=True), - 'active': fields.boolean('Active', required=False), + # base_state required fields 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), 'create_date': fields.datetime('Creation Date' , readonly=True), @@ -48,20 +44,21 @@ class crm_phonecall(crm_base, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner'), 'company_id': fields.many2one('res.company', 'Company'), 'description': fields.text('Description'), - 'state': fields.selection([ - ('draft', 'Draft'), - ('open', 'Todo'), + 'state': fields.selection([ ('draft', 'Draft'), + ('open', 'Confirmed'), ('pending', 'Not Held'), ('cancel', 'Cancelled'), - ('done', 'Held'), - ], 'Status', size=16, readonly=True, - help='The state is set to \'Todo\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the call is over, the state is set to \'Held\'.\ - \nIf the call needs to be done then the state is set to \'Not Held\'.'), + ('done', 'Held'),], + string='Status', size=16, readonly=True, + help='The state is set to \'Todo\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the call is over, the state is set to \'Held\'.\ + If the call needs to be done then the state is set to \'Not Held\'.'), 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'date_open': fields.datetime('Opened', readonly=True), # phonecall fields + 'name': fields.char('Call Summary', size=64, required=True), + 'active': fields.boolean('Active', required=False), 'duration': fields.float('Duration', help="Duration in Minutes"), 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="['|',('section_id','=',section_id),('section_id','=',False),\ @@ -81,11 +78,10 @@ class crm_phonecall(crm_base, osv.osv): return 'open' _defaults = { - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), + 'date': fields.datetime.now, 'priority': crm.AVAILABLE_PRIORITIES[2][0], 'state': _get_default_state, 'user_id': lambda self,cr,uid,ctx: uid, - 'active': 1, } def create(self, cr, uid, vals, context=None): @@ -96,32 +92,23 @@ class crm_phonecall(crm_base, osv.osv): return obj_id def case_close(self, cr, uid, ids, context=None): - """Overrides close for crm_case for setting close date - """ + """ Overrides close for crm_case for setting duration """ res = True - for phone in self.browse(cr, uid, ids): + for phone in self.browse(cr, uid, ids, context=context): phone_id = phone.id - data = {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')} + data = {} if phone.duration <=0: - duration = datetime.now() - datetime.strptime(phone.date, '%Y-%m-%d %H:%M:%S') - data.update({'duration': duration.seconds/float(60)}) - res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context) - self.write(cr, uid, [phone_id], data) + duration = datetime.now() - datetime.strptime(phone.date, DEFAULT_SERVER_DATETIME_FORMAT) + data['duration'] = duration.seconds/float(60) + res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context=context) + self.write(cr, uid, [phone_id], data, context=context) return res def case_reset(self, cr, uid, ids, context=None): """Resets case as Todo """ res = super(crm_phonecall, self).case_reset(cr, uid, ids, context) - self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'}) - return res - - - def case_open(self, cr, uid, ids, context=None): - """Overrides cancel for crm_case for setting Open Date - """ - res = super(crm_phonecall, self).case_open(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')}) + self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'}, context=context) return res def schedule_another_phonecall(self, cr, uid, ids, schedule_time, call_summary, \ @@ -300,7 +287,7 @@ class crm_phonecall(crm_base, osv.osv): return value # ---------------------------------------- - # OpenChatter methods and notifications + # OpenChatter # ---------------------------------------- def get_needaction_user_ids(self, cr, uid, ids, context=None): @@ -336,9 +323,6 @@ class crm_phonecall(crm_base, osv.osv): def _call_set_partner_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Partner has been created"), context=context) - - -crm_phonecall() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index 55d8d8c9a64..788b69f8747 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -43,10 +43,14 @@ states="open,pending" icon="gtk-redo" name="action_make_meeting" type="object" /> - - - - + + + + @@ -60,13 +64,16 @@ - - - - - + + + + - + diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index dd24ef38911..c8f019e685b 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -143,6 +143,8 @@ + + @@ -162,6 +164,9 @@ + + + diff --git a/addons/crm/i18n/pt.po b/addons/crm/i18n/pt.po index 10a2ca3571f..89f79d998b4 100644 --- a/addons/crm/i18n/pt.po +++ b/addons/crm/i18n/pt.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: 2011-01-19 00:40+0000\n" -"Last-Translator: Tiago Baptista \n" +"PO-Revision-Date: 2012-05-31 15:17+0000\n" +"Last-Translator: ThinkOpen Solutions \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-05-11 04:45+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: crm #: view:crm.lead.report:0 @@ -792,7 +792,7 @@ msgstr "Continuar" #. module: crm #: field:crm.segmentation,som_interval:0 msgid "Days per Period" -msgstr "" +msgstr "Dias por Periodo" #. module: crm #: field:crm.meeting,byday:0 @@ -959,7 +959,7 @@ msgstr "Dias para abrir" #. module: crm #: view:crm.meeting:0 msgid "Show Time as" -msgstr "" +msgstr "Mostrar horas como" #. module: crm #: view:crm.phonecall2partner:0 diff --git a/addons/crm/test/process/cancel_lead.yml b/addons/crm/test/process/cancel_lead.yml index ca5f7d0174a..34dd8310022 100644 --- a/addons/crm/test/process/cancel_lead.yml +++ b/addons/crm/test/process/cancel_lead.yml @@ -6,8 +6,11 @@ - I check cancelled lead. - - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in cancel state}: - - state == "cancel" + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0')) + assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name) + assert lead.state == 'cancel', "Opportunity is not in 'cancel' state." + assert lead.probability == 0.0, 'Opportunity probability is wrong and should be 0.0.' - I reset cancelled lead into unqualified lead. - @@ -19,35 +22,24 @@ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}: - state == "draft" - - I put unqualified lead into pending. + I re-open the lead - !python {model: crm.lead}: | - self.case_pending(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) + self.case_open(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) - - I check status of pending lead. + I check stage and state of the re-opened lead - - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in pending state}: - - state == "pending" + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm.crm_case_itisatelesalescampaign0')) + assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'." + assert lead.state == 'open', "Opportunity should be in 'open' state." - I escalate the lead to parent team. - !python {model: crm.lead}: | self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) - - I check lead escalate to parent team. + I check the lead is correctly escalated to the parent team. - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}: - section_id.name == "Sales Department" -- - I mark as lost the opportunity. -- - !python {model: crm.lead}: | - self.case_mark_lost(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) -- - I check opportunity after lost. -- - !python {model: crm.lead}: | - lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0')) - assert lead.state == 'done', "lead is not done state" - assert lead.stage_id.id == ref('crm.stage_lead6'), 'Stage is not changed!' - assert lead.probability == 0.0, 'Probability is wrong!' diff --git a/addons/crm/test/process/lead2opportunity2win.yml b/addons/crm/test/process/lead2opportunity2win.yml index a5b6c421dbb..c1caf394c2e 100644 --- a/addons/crm/test/process/lead2opportunity2win.yml +++ b/addons/crm/test/process/lead2opportunity2win.yml @@ -51,7 +51,6 @@ - !python {model: crm.lead}: | self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')]) - - After communicated with customer, I put some notes with contract details. - @@ -60,18 +59,18 @@ note_id = self.create(cr, uid, {'body': "ces détails envoyés par le client sur le FAX pour la qualité"}) self.action_add(cr, uid, [note_id], context=context) - - Finally, I won this opportunity, so I close this opportunity. + I win this opportunity - !python {model: crm.lead}: | self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")]) - - I check details of the opportunity after won the opportunity. + I check details of the opportunity after having won the opportunity. - !python {model: crm.lead}: | lead = self.browse(cr, uid, ref('crm_case_qrecorp0')) - assert lead.state == 'done', 'Opportunity is not in done state!' - assert lead.stage_id.name == 'Won', ' Stage of Opportunity is not win!' - assert lead.probability == 100.0, 'probability revenue should not be 100.0!' + assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'." + assert lead.state == 'done', "Opportunity is not in 'done' state!" + assert lead.probability == 100.0, "Revenue probability should be 100.0!" - I convert mass lead into opportunity customer. - @@ -96,6 +95,19 @@ assert opp.name == "Interest in Your New Product", "Opportunity name not correct" assert opp.type == 'opportunity', 'Lead is not converted to opportunity!' assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!' +- + I loose the second opportunity +- + !python {model: crm.lead}: | + self.case_mark_lost(cr, uid, [ref("crm_case_electonicgoodsdealer0")]) +- + I check details of the opportunity after the loose +- + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0')) + assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'." + assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!" + assert lead.probability == 0.0, "Revenue probability should be 0.0!" - I confirm review needs meeting. - diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 1b6d386b0cc..c4e19a19dfd 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,25 +19,57 @@ # ############################################################################## -from osv import fields, osv -from crm import crm -import time -from crm import wizard +from base_status.base_stage import base_stage import binascii +from crm import crm +from crm import wizard +from osv import fields, osv +import time import tools from tools.translate import _ wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.claim') + CRM_CLAIM_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled crm.AVAILABLE_STATES[3][0], # Done crm.AVAILABLE_STATES[4][0], # Pending ) - -class crm_claim(crm.crm_case, osv.osv): +class crm_claim_stage(osv.osv): + """ Model for claim stages. This models the main stages of a claim + management flow. Main CRM objects (leads, opportunities, project + issues, ...) will now use only stages, instead of state and stages. + Stages are for example used to display the kanban view of records. """ - Crm claim + _name = "crm.claim.stage" + _description = "Claim stages" + _rec_name = 'name' + _order = "sequence" + + _columns = { + 'name': fields.char('Stage Name', size=64, required=True, translate=True), + 'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."), + 'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections', + help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."), + 'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."), + 'case_refused': fields.boolean('Refused stage', + help='Refused stages are specific stages for done.'), + 'case_default': fields.boolean('Common to All Teams', + help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'fold': fields.boolean('Hide in Views when Empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + } + + _defaults = { + 'sequence': lambda *args: 1, + 'state': 'draft', + 'fold': False, + 'case_refused': False, + } + +class crm_claim(base_stage, osv.osv): + """ Crm claim """ _name = "crm.claim" _description = "Claim" @@ -73,31 +105,68 @@ class crm_claim(crm.crm_case, osv.osv): 'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'partner_phone': fields.char('Phone', size=32), - 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_ids','=',section_id)]"), + 'stage_id': fields.many2one ('crm.claim.stage', 'Stage', + domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), 'cause': fields.text('Root Cause'), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', 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\'.'), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), } _defaults = { - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from':crm.crm_case. _get_default_email, - 'state': lambda *a: 'draft', - 'section_id':crm.crm_case. _get_section, - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), + 'date': fields.datetime.now, 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'active': lambda *a: 1 } - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return 'Claim' + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for claim in cases: + if claim.section_id: + section_ids.append(claim.section_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.claim.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + def case_refuse(self, cr, uid, ids, context=None): + """ Mark the case as refused: state=done and case_refused=True """ + for lead in self.browse(cr, uid, ids): + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, ['&', ('state', '=', 'done'), ('case_refused', '=', True)], context=context) + if stage_id: + self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context) + return self.case_refuse_send_note(cr, uid, ids, context=context) + def onchange_partner_id(self, cr, uid, ids, part, email=False): """This function returns value of partner address based on partner :param part: Partner's id @@ -110,19 +179,6 @@ class crm_claim(crm.crm_case, osv.osv): } address = self.pool.get('res.partner').browse(cr, uid, part) return {'value': {'email_from': address.email, 'partner_phone': address.phone}} - - def case_open(self, cr, uid, ids, *args): - """Opens Claim""" - for l in self.browse(cr, uid, ids): - # When coming from draft override date and stage otherwise just set state - if l.state == 'draft': - message = _("The claim '%s' has been opened.") % l.name - self.log(cr, uid, l.id, message) - stage_id = self.stage_find(cr, uid, l.section_id.id or False, [('sequence','>',0)]) - if stage_id: - self.stage_set(cr, uid, [l.id], stage_id) - res = super(crm_claim, self).case_open(cr, uid, ids, *args) - return res def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" @@ -177,6 +233,26 @@ class crm_claim(crm.crm_case, osv.osv): res = self.write(cr, uid, [case.id], values, context=context) return res + # --------------------------------------------------- + # OpenChatter methods and notifications + # --------------------------------------------------- + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Claim' + + def case_refuse_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been refused.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.claim.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + + class res_partner(osv.osv): _inherit = 'res.partner' _columns = { diff --git a/addons/crm_claim/crm_claim_data.xml b/addons/crm_claim/crm_claim_data.xml index 5b3a2b0ed2a..33bd280c364 100644 --- a/addons/crm_claim/crm_claim_data.xml +++ b/addons/crm_claim/crm_claim_data.xml @@ -42,27 +42,39 @@ Case Stage --> - - Accepted as Claim + + Draft claim + draft 26 + - + Actions Defined + open 27 + - + Actions Done + done 28 + - - Won't fix + + Refused + done 29 + + + + + + Cancelled + cancel + 30 + + - - Sales Department - Sales - - diff --git a/addons/crm_claim/crm_claim_demo.xml b/addons/crm_claim/crm_claim_demo.xml index 592e655b489..0e368bcdffa 100644 --- a/addons/crm_claim/crm_claim_demo.xml +++ b/addons/crm_claim/crm_claim_demo.xml @@ -12,7 +12,6 @@ - @@ -25,7 +24,6 @@ - @@ -38,7 +36,6 @@ - @@ -52,7 +49,6 @@ - @@ -65,7 +61,6 @@ - @@ -77,7 +72,6 @@ - @@ -91,7 +85,6 @@ - diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml index 734302fa7f9..75bfd9ce211 100644 --- a/addons/crm_claim/crm_claim_menu.xml +++ b/addons/crm_claim/crm_claim_menu.xml @@ -50,5 +50,10 @@ + + + + + diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 57a8827d528..57a3cb4a8db 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -23,12 +23,40 @@ + + crm.claim.stage.tree + crm.claim.stage + tree + + + + + + + + + + + crm.claim.stage.form + crm.claim.stage + form + + + + + + + + + + + + Claim Stages - crm.case.stage + crm.claim.stage form - - {'search_default_claim':1} + You can create claim stages to categorize the status of every claim entered in the system. The stages define all the steps required for the resolution of a claim. @@ -44,19 +72,13 @@ + - - - - + @@ -68,13 +90,23 @@ - - - - - + + + + + + + - + @@ -86,11 +118,7 @@ - - - - - + @@ -227,7 +255,7 @@ domain="[]" context="{'group_by':'categ_id'}" /> + domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/> ')]) claim = self.browse(cr, uid, claim_ids[0]) assert claim.state == "open", "Claim is not in Open state" - assert claim.stage_id.id == ref("crm.stage_lead1"), "Claim is not in New stage" + assert claim.stage_id.id == ref("crm.stage_lead2"), "Claim is not in Qualification stage" - After complete all service from our side, I close this claim. - diff --git a/addons/crm_fundraising/crm_fundraising.py b/addons/crm_fundraising/crm_fundraising.py index 90014188777..34b5f20203c 100644 --- a/addons/crm_fundraising/crm_fundraising.py +++ b/addons/crm_fundraising/crm_fundraising.py @@ -19,13 +19,14 @@ # ############################################################################## -from osv import fields, osv +from base_status.base_stage import base_stage from crm import crm from crm import wizard +from osv import fields, osv wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising') -class crm_fundraising(crm.crm_case, osv.osv): +class crm_fundraising(base_stage, osv.osv): """ Fund Raising Cases """ _name = "crm.fundraising" @@ -68,14 +69,58 @@ class crm_fundraising(crm.crm_case, osv.osv): 'duration': fields.float('Duration'), 'ref': fields.reference('Reference', selection=crm._links_get, size=128), 'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', 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\'.'), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), } + _defaults = { + 'active': 1, + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), + 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c), + 'priority': crm.AVAILABLE_PRIORITIES[2][0], + 'probability': 0.0, + 'planned_cost': 0.0, + 'planned_revenue': 0.0, + } + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for case in cases: + if case.section_id: + section_ids.append(case.section_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" @@ -93,21 +138,18 @@ class crm_fundraising(crm.crm_case, osv.osv): self.write(cr, uid, [res_id], vals, context=context) return res_id + # --------------------------------------------------- + # OpenChatter methods and notifications + # --------------------------------------------------- - _defaults = { - 'active': 1, - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case. _get_default_email, - 'state': '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.case', context=c), - 'priority': crm.AVAILABLE_PRIORITIES[2][0], - 'probability': 0.0, - 'planned_cost': 0.0, - 'planned_revenue': 0.0, - } + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Fundraising' + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_fundraising/crm_fundraising_demo.xml b/addons/crm_fundraising/crm_fundraising_demo.xml index 52b4094d126..70b32afabf3 100644 --- a/addons/crm_fundraising/crm_fundraising_demo.xml +++ b/addons/crm_fundraising/crm_fundraising_demo.xml @@ -9,7 +9,6 @@ - @@ -26,7 +25,6 @@ - @@ -43,7 +41,6 @@ - @@ -59,7 +56,6 @@ - @@ -75,7 +71,6 @@ - @@ -91,7 +86,6 @@ - @@ -109,7 +103,6 @@ - @@ -126,7 +119,6 @@ - diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml index b960fe2bccb..6c69072b2cc 100644 --- a/addons/crm_fundraising/crm_fundraising_view.xml +++ b/addons/crm_fundraising/crm_fundraising_view.xml @@ -50,22 +50,6 @@ - - - - - - diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index d5ee8efc17e..c77fe384fbe 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -19,10 +19,10 @@ # ############################################################################## +from base_status.base_state import base_state from crm import crm -from osv import fields, osv -import time from crm import wizard +from osv import fields, osv import tools from tools.translate import _ @@ -34,7 +34,7 @@ CRM_HELPDESK_STATES = ( wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.helpdesk') -class crm_helpdesk(crm.crm_case, osv.osv): +class crm_helpdesk(base_state, osv.osv): """ Helpdesk Cases """ _name = "crm.helpdesk" @@ -82,12 +82,11 @@ class crm_helpdesk(crm.crm_case, osv.osv): _defaults = { 'active': lambda *a: 1, - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case. _get_default_email, + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), 'state': lambda *a: 'draft', - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), - 'section_id': crm.crm_case. _get_section, + 'date': lambda *a: fields.datetime.now(), '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], } @@ -142,5 +141,12 @@ class crm_helpdesk(crm.crm_case, osv.osv): res = self.write(cr, uid, [case.id], values, context=context) return res + # ****************************** + # OpenChatter + # ****************************** + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + return 'Helpdesk' + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index b1d5a2b96f8..c4f715699c8 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -30,12 +30,18 @@ - - - - - - + + + + + + @@ -126,6 +132,9 @@ + + + @@ -147,23 +156,6 @@ - - - - - - diff --git a/addons/crm_helpdesk/i18n/gu.po b/addons/crm_helpdesk/i18n/gu.po new file mode 100644 index 00000000000..e9a7479516a --- /dev/null +++ b/addons/crm_helpdesk/i18n/gu.po @@ -0,0 +1,738 @@ +# Gujarati 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:11+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Gujarati \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_close:0 +msgid "Delay to Close" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,nbr:0 +msgid "# of Cases" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +msgid "Group By..." +msgstr "ગ્રુપ દ્વારા..." + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Today" +msgstr "આજે" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "March" +msgstr "માર્ચ" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in current year" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,company_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,company_id:0 +msgid "Company" +msgstr "કંપની" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_cc:0 +msgid "Watchers Emails" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Highest" +msgstr "ઉચ્ચતમ" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,day:0 +msgid "Day" +msgstr "દિવસ" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Add Internal Note" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Date of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Notes" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "My company" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree +msgid "Helpdesk Analysis" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,date_closed:0 +msgid "Close Date" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref:0 +msgid "Reference" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_next:0 +msgid "Next Action" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Supports" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Extra Info" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,partner_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Estimates" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,section_id:0 +msgid "Section" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in last month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send New Email" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk requests during last 7 days" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +msgid "New" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report +msgid "Helpdesk report after Sales Services" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_from:0 +msgid "Email" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,channel_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,channel_id:0 +msgid "Channel" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Lowest" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "# Mails" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +msgid "My Sales Team(s)" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,create_date:0 +#: field:crm.helpdesk.report,create_date:0 +msgid "Creation Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reset to Draft" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Pending" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date_deadline:0 +#: field:crm.helpdesk.report,date_deadline:0 +msgid "Deadline" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "July" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action +msgid "Helpdesk Categories" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act +msgid "Categories" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "New Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History Information" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Dates" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Month of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: code:addons/crm_helpdesk/crm_helpdesk.py:101 +#, python-format +msgid "No Subject" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "#Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "All pending Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Year of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "References" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "September" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,month:0 +msgid "Month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Escalate" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,write_date:0 +msgid "Update Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in current month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Salesman" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref2:0 +msgid "Reference 2" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,categ_id:0 +#: field:crm.helpdesk.report,categ_id:0 +msgid "Category" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Responsible User" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_cost:0 +#: field:crm.helpdesk.report,planned_cost:0 +msgid "Planned Costs" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,channel_id:0 +msgid "Communication channel." +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Search Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,state:0 +msgid "Draft" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Low" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_closed:0 +#: selection:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Closed" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reply" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "7 Days" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication & History" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "August" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Normal" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Global CC" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "June" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_revenue:0 +msgid "Planned Revenue" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,user_id:0 +msgid "User" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,active:0 +msgid "Active" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "November" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111 +msgid "Helpdesk Requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Search" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "October" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "January" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_from:0 +msgid "These people will receive email." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date:0 +msgid "Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,priority:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,priority:0 +msgid "Priority" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,partner_address_id:0 +msgid "Partner Contact" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Misc" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,state:0 +msgid "State" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "General" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send Reminder" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Done" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "December" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Cancel" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Close" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Open" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support Tree" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +msgid "In Progress" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Categorization" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk +msgid "Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,user_id:0 +msgid "Responsible" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_expected:0 +msgid "Overpassed Deadline" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,description:0 +msgid "Description" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "May" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,probability:0 +msgid "Probability (%)" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,email:0 +msgid "# Emails" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk +msgid "" +"Have a general overview of all support requests by sorting them with " +"specific criteria such as the processing time, number of requests answered, " +"emails sent and costs." +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "February" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,name:0 +msgid "Name" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Month-1" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main +msgid "Helpdesk and Support" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "April" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "My Case(s)" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Query" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,id:0 +msgid "ID" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action +msgid "" +"Create and manage helpdesk categories to better manage and classify your " +"support requests." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Todays's Helpdesk Requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Request Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Open Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "High" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,section_id:0 +#: view:crm.helpdesk.report:0 +msgid "Sales Team" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_last:0 +msgid "Last Action" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111 +msgid "" +"Helpdesk and Support allow you to track your interventions. Select a " +"customer, add notes and categorize interventions with partners if necessary. " +"You can also assign a priority level. Use the OpenERP Issues system to " +"manage your support activities. Issues can be connected to the email " +"gateway: new emails may create issues, each of them automatically gets the " +"history of the conversation with the customer." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,name:0 +msgid "Year" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,duration:0 +msgid "Duration" +msgstr "" diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index 387b97ae01d..127d255ec6b 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -116,8 +116,6 @@ - diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 6c4fada6621..4d05a2cf6b8 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -153,10 +153,6 @@ - - - - @@ -346,10 +342,6 @@ - - - - diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index d82f89930ef..edc6f0fd243 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -35,8 +35,6 @@ - - diff --git a/addons/hr_expense/i18n/ja.po b/addons/hr_expense/i18n/ja.po index d05a7215a7d..ca86e455ea2 100644 --- a/addons/hr_expense/i18n/ja.po +++ b/addons/hr_expense/i18n/ja.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: 2012-05-29 04:46+0000\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" "X-Generator: Launchpad (build 15316)\n" #. module: hr_expense diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index a9359d8ecf5..01830a970a0 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -177,8 +177,6 @@ - - @@ -234,9 +232,6 @@ - - - @@ -262,8 +257,6 @@ - - diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py index 4a29befbfaf..b83a482e1c1 100644 --- a/addons/hr_recruitment/__openerp__.py +++ b/addons/hr_recruitment/__openerp__.py @@ -37,7 +37,14 @@ system to store and search in your CV base. 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'], - 'depends': ['decimal_precision', 'hr', 'survey', 'crm', 'fetchmail'], + 'depends': [ + 'base_status', + 'decimal_precision', + 'hr', + 'survey', + 'crm', + 'fetchmail', + ], 'update_xml': [ 'wizard/hr_recruitment_phonecall_view.xml', 'wizard/hr_recruitment_employee_hired.xml', diff --git a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml index 8af4b0f8553..e9054416eea 100644 --- a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml +++ b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml @@ -12,7 +12,7 @@ - + diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 505509058e1..c77236cc456 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -19,6 +19,7 @@ # ############################################################################## +from base_status.base_stage import base_stage import time from datetime import datetime, timedelta @@ -57,8 +58,6 @@ class hr_recruitment_source(osv.osv): _columns = { 'name': fields.char('Source Name', size=64, required=True, translate=True), } -hr_recruitment_source() - class hr_recruitment_stage(osv.osv): """ Stage of HR Recruitment """ @@ -69,12 +68,15 @@ class hr_recruitment_stage(osv.osv): 'name': fields.char('Name', size=64, required=True, translate=True), 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."), 'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep tempy this field."), - 'requirements': fields.text('Requirements') + 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."), + 'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + 'requirements': fields.text('Requirements'), } _defaults = { 'sequence': 1, + 'state': 'draft', + 'fold': False, } -hr_recruitment_stage() class hr_recruitment_degree(osv.osv): """ Degree of HR Recruitment """ @@ -90,14 +92,60 @@ class hr_recruitment_degree(osv.osv): _sql_constraints = [ ('name_uniq', 'unique (name)', 'The name of the Degree of Recruitment must be unique!') ] -hr_recruitment_degree() -class hr_applicant(crm.crm_case, osv.osv): +class hr_applicant(base_stage, osv.Model): _name = "hr.applicant" _description = "Applicant" _order = "id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_department_id(self, cr, uid, context=None): + """ Gives default department by checking if present in the context """ + return (self._resolve_department_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + department_id = self._get_default_department_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], department_id, [('state', '=', 'draft')], context=context) + + def _resolve_department_id_from_context(self, cr, uid, context=None): + """ Returns ID of department based on the value of 'default_department_id' + context key, or None if it cannot be resolved to a single + department. + """ + if context is None: + context = {} + if type(context.get('default_department_id')) in (int, long): + return context.get('default_department_id') + if isinstance(context.get('default_department_id'), basestring): + department_name = context['default_department_id'] + department_ids = self.pool.get('hr.department').name_search(cr, uid, name=department_name, context=context) + if len(department_ids) == 1: + return int(department_ids[0][0]) + return None + + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + access_rights_uid = access_rights_uid or uid + stage_obj = self.pool.get('hr.recruitment.stage') + order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': + order = "%s desc" % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('department_id', '=', False), ('fold', '=', False): add default columns that are not folded + # - OR ('department_id', 'in', department_id), ('fold', '=', False) if department_id: add department columns that are not folded + department_id = self._resolve_department_id_from_context(cr, uid, context=context) + search_domain = [] + if department_id: + search_domain += ['|', '&', ('department_id', '=', department_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('department_id', '=', False), ('fold', '=', False)] + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) + result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) + # restore order of the search + result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) + return result + def _compute_day(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, @@ -143,12 +191,15 @@ class hr_applicant(crm.crm_case, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner'), 'create_date': fields.datetime('Creation Date', readonly=True, select=True), 'write_date': fields.datetime('Update Date', readonly=True), - 'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage'), - 'state': fields.selection(AVAILABLE_STATES, 'Status', 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\'.'), + 'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage', + domain="['|', ('department_id', '=', department_id), ('department_id', '=', False)]"), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'company_id': fields.many2one('res.company', 'Company'), 'user_id': fields.many2one('res.users', 'Responsible'), # Applicant Columns @@ -169,7 +220,6 @@ class hr_applicant(crm.crm_case, osv.osv): 'partner_mobile': fields.char('Mobile', size=32), 'type_id': fields.many2one('hr.recruitment.degree', 'Degree'), 'department_id': fields.many2one('hr.department', 'Department'), - 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True), 'survey': fields.related('job_id', 'survey_id', type='many2one', relation='survey', string='Survey'), 'response': fields.integer("Response"), 'reference': fields.char('Refered By', size=128), @@ -185,33 +235,19 @@ class hr_applicant(crm.crm_case, osv.osv): _defaults = { 'active': lambda *a: 1, - 'user_id': lambda self, cr, uid, context: uid, - 'email_from': crm.crm_case. _get_default_email, - 'state': lambda *a: 'draft', + 'user_id': lambda s, cr, uid, c: uid, + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'department_id': lambda s, cr, uid, c: s._get_default_department_id(cr, uid, c), 'priority': lambda *a: '', 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'color': 0, } - def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): - access_rights_uid = access_rights_uid or uid - stage_obj = self.pool.get('hr.recruitment.stage') - order = stage_obj._order - if read_group_order == 'stage_id desc': - # lame hack to allow reverting search, should just work in the trivial case - order = "%s desc" % order - stage_ids = stage_obj._search(cr, uid, ['|',('id','in',ids),('department_id','=',False)], order=order, - access_rights_uid=access_rights_uid, context=context) - result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) - # restore order of the search - result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) - return result - _group_by_full = { 'stage_id': _read_group_stage_ids } - def onchange_job(self,cr, uid, ids, job, context=None): result = {} @@ -229,47 +265,33 @@ class hr_applicant(crm.crm_case, osv.osv): stage_id = stage_ids and stage_ids[0] or False return {'value': {'stage_id': stage_id}} - def stage_previous(self, cr, uid, ids, context=None): - """This function computes previous stage for case from its current stage - using available stage for that case type - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of case IDs - @param context: A standard dictionary for contextual values""" - stage_obj = self.pool.get('hr.recruitment.stage') - for case in self.browse(cr, uid, ids, context=context): - department = (case.department_id.id or False) - st = case.stage_id.id or False - stage_ids = stage_obj.search(cr, uid, ['|',('department_id','=',department),('department_id','=',False)], context=context) - if st and stage_ids.index(st): - self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)-1]}, context=context) - else: - self.write(cr, uid, [case.id], {'stage_id': False}, context=context) - return True - - def stage_next(self, cr, uid, ids, context=None): - """This function computes next stage for case from its current stage - using available stage for that case type - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of case IDs - @param context: A standard dictionary for contextual values""" - stage_obj = self.pool.get('hr.recruitment.stage') - for case in self.browse(cr, uid, ids, context=context): - department = (case.department_id.id or False) - st = case.stage_id.id or False - stage_ids = stage_obj.search(cr, uid, ['|',('department_id','=',department),('department_id','=',False)], context=context) - val = False - if st and len(stage_ids) != stage_ids.index(st)+1: - val = stage_ids[stage_ids.index(st)+1] - elif (not st) and stage_ids: - val = stage_ids[0] - else: - val = False - self.write(cr, uid, [case.id], {'stage_id': val}, context=context) - return True + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - department_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + department_ids = [] + if section_id: + department_ids.append(section_id) + for case in cases: + if case.department_id: + department_ids.append(case.department_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if department_ids: + search_domain += ['|', ('department_id', 'in', department_ids)] + search_domain.append(('department_id', '=', False)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('hr.recruitment.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False def action_makeMeeting(self, cr, uid, ids, context=None): """ @@ -474,12 +496,6 @@ class hr_applicant(crm.crm_case, osv.osv): """ return self.set_priority(cr, uid, ids, '3') - def write(self, cr, uid, ids, vals, context=None): - if 'stage_id' in vals and vals['stage_id']: - stage = self.pool.get('hr.recruitment.stage').browse(cr, uid, vals['stage_id'], context=context) - self.message_append_note(cr, uid, ids, body=_("Stage changed to %s.") % stage.name, context=context) - return super(hr_applicant,self).write(cr, uid, ids, vals, context=context) - # ------------------------------------------------------- # OpenChatter methods and notifications # ------------------------------------------------------- @@ -497,7 +513,13 @@ class hr_applicant(crm.crm_case, osv.osv): if obj.state == 'draft' and obj.user_id: result[obj.id] = [obj.user_id.id] return result - + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + if not stage_id: return True + stage_name = self.pool.get('hr.recruitment.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Applicant' @@ -529,7 +551,6 @@ class hr_applicant(crm.crm_case, osv.osv): message = _("Applicant has been created.") return self.message_append_note(cr, uid, ids, body=message, context=context) -hr_applicant() class hr_job(osv.osv): _inherit = "hr.job" @@ -537,6 +558,6 @@ class hr_job(osv.osv): _columns = { 'survey_id': fields.many2one('survey', 'Interview Form', help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job"), } -hr_job() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index d6cb5952d38..8cbebda5f1f 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -1,7 +1,9 @@ + + @@ -37,30 +39,36 @@ Doctoral Degree 4 - Initial Qualification + draft 1 First Interview + open 2 Second Interview + open 3 Contract Proposed + pending 4 Contract Signed + done 5 Refused + cancel 6 + Job Survey diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index c3961c3330f..9b77a8e5d1e 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -50,8 +50,6 @@ - - @@ -62,9 +60,7 @@ - - - + @@ -76,14 +72,24 @@ - - - - - + + + + + + + - + + @@ -96,11 +102,7 @@ - - - - - + @@ -139,6 +141,13 @@ + + + + + + + @@ -241,7 +250,7 @@ - + @@ -360,6 +369,7 @@ + @@ -377,6 +387,7 @@ + diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml index e856747ed99..38b84fccab2 100644 --- a/addons/hr_recruitment/test/recruitment_process.yml +++ b/addons/hr_recruitment/test/recruitment_process.yml @@ -1,7 +1,7 @@ - In Order to test process of Recruitment, - - Applicant interested in job position. so He send resume by email. + An applicant is interested in the job position. So he sends a resume by email. - !python {model: mail.thread}: | import addons @@ -9,27 +9,42 @@ request_message = request_file.read() self.message_process(cr, uid, 'hr.applicant', request_message) - - After getting the mail, I check details of new applicant. + After getting the mail, I check the details of the new applicant. - !python {model: hr.applicant}: | applicant_ids = self.search(cr, uid, [('email_from','=', 'Mr. Richard Anderson ')]) assert applicant_ids, "Applicant is not created after getting the mail" applicant = self.browse(cr, uid, applicant_ids[0], context=context) resume_ids = self.pool.get('ir.attachment').search(cr, uid, [('datas_fname','=','resume.doc'),('res_model','=',self._name),('res_id','=',applicant.id)]) - assert applicant.name == "Application for the post of Jr.application Programmer.", "Subject does not match" - assert applicant.state == "draft" - assert len(resume_ids), "Resume does not attached." + assert applicant.name == "Application for the post of Jr.application Programmer.", "Applicant name does not match." + assert applicant.stage_id.id == ref('hr_recruitment.stage_job1'), "Stage should be 'Initial qualification' and is '%s'." % (applicant.stage_id.name) + assert applicant.state == "draft", "Applicant state should be 'draft'." + assert len(resume_ids), "Resume is not attached." - - I refuse applicant for the Recruitment. + I refuse the applicant (hr_case_programmer) - !python {model: hr.applicant}: | - self.case_close(cr, uid, [ref("hr_case_programmer")]) + self.case_cancel(cr, uid, [ref("hr_case_programmer")]) - - I open applicant for the Recruitment. + I check the details of the refused applicant. +- + !python {model: hr.applicant}: | + applicant = self.browse(cr, uid, ref("hr_case_programmer"), context=context) + assert applicant.stage_id.id == ref('hr_recruitment.stage_job6'), "Stage should be 'Refused' and is %s." % (applicant.stage_id.name) + assert applicant.state == 'cancel', "Applicant is not in 'cancel' state." +- + I reset and re-open the previously refused applicant. - !python {model: hr.applicant}: | self.case_reset(cr, uid, [ref("hr_case_programmer")]) self.case_open(cr, uid, [ref("hr_case_programmer")]) +- + I check the details of the re-opened applicant. +- + !python {model: hr.applicant}: | + applicant = self.browse(cr, uid, ref("hr_case_programmer"), context=context) + assert applicant.stage_id.id == ref('hr_recruitment.stage_job2'), "Stage should be 'First interview' and is '%s'." % (applicant.stage_id.name) + assert applicant.state == "open", "Applicant state should be 'open'." - I assign the Job position to the applicant - @@ -91,7 +106,7 @@ - I check that applicant is "Hired". - - !assert {model: hr.applicant, id: hr_case_programmer}: + !assert {model: hr.applicant, id: hr_case_programmer, string: Applicant state is done}: - state == 'done' - I do not give employment to the hired the applicant. diff --git a/addons/hr_timesheet_sheet/i18n/zh_CN.po b/addons/hr_timesheet_sheet/i18n/zh_CN.po index b912c7eabcd..f49530fecb1 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-02-13 04:47+0000\n" -"Last-Translator: Jeff Wang \n" +"PO-Revision-Date: 2012-05-29 05:42+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-02-14 05:44+0000\n" -"X-Generator: Launchpad (build 14781)\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" #. module: hr_timesheet_sheet #: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0 @@ -61,7 +61,7 @@ msgstr "本年的计工单" #. module: hr_timesheet_sheet #: model:process.transition,name:hr_timesheet_sheet.process_transition_tasktimesheet0 msgid "Task timesheet" -msgstr "工作记工单" +msgstr "工作计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -78,7 +78,7 @@ msgstr "请核实这表的总差异少于 %.2f !" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 msgid "March" -msgstr "3月" +msgstr "" #. module: hr_timesheet_sheet #: view:timesheet.report:0 field:timesheet.report,cost:0 @@ -105,7 +105,7 @@ msgstr "公司" #: model:process.node,name:hr_timesheet_sheet.process_node_timesheet0 #: view:timesheet.report:0 msgid "Timesheet" -msgstr "记工单" +msgstr "计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -120,7 +120,7 @@ msgstr "日期到" #. module: hr_timesheet_sheet #: model:process.node,note:hr_timesheet_sheet.process_node_invoiceonwork0 msgid "Based on the timesheet" -msgstr "根据记工单" +msgstr "根据计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 view:timesheet.report:0 @@ -173,7 +173,7 @@ msgstr "拒绝" #, python-format msgid "" "You cannot enter an attendance date outside the current timesheet dates!" -msgstr "您不能输入一个超过当前记工单日期的考勤日期!" +msgstr "您不能输入一个超过当前计工单日期的考勤日期!" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_current_open @@ -185,8 +185,8 @@ msgid "" "the user and can be validated by his manager. If required, as defined on the " "project, you can generate the invoices based on the timesheet." msgstr "" -"用\"我的记工单\"菜单开启您的记工单所以您能在系统预定你的活动。用相同方式,您能记录您的考勤(签入/签出)同时记录在不同项目的工作时间。在公司定义的期末" -",确认用户的记工单和经由经理使其生效。如果需要,可以定义为一个项目,你能给这记工单开发票。" +"用\"我的计工单\"菜单开启您的计工单所以您能在系统预定你的活动。用相同方式,您能记录您的考勤(签入/签出)同时记录在不同项目的工作时间。在公司定义的期末" +",确认用户的记工单和经由经理使其生效。如果需要,可以定义为一个项目,你能给这计工单开发票。" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 @@ -227,7 +227,7 @@ msgstr "警告!" #. module: hr_timesheet_sheet #: model:process.node,note:hr_timesheet_sheet.process_node_attendance0 msgid "Employee's timesheet entry" -msgstr "员工记工单" +msgstr "员工计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,account_id:0 @@ -259,7 +259,7 @@ msgstr " 月份 " #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form #: view:res.company:0 msgid "Timesheets" -msgstr "记工单" +msgstr "计工单" #. module: hr_timesheet_sheet #: model:process.node,name:hr_timesheet_sheet.process_node_confirmedtimesheet0 @@ -282,7 +282,7 @@ msgstr "确认" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,timesheet_ids:0 msgid "Timesheet lines" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: constraint:res.company:0 @@ -343,7 +343,7 @@ msgstr "总时间" #: view:hr_timesheet_sheet.sheet:0 #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet msgid "Timesheet Lines" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 @@ -370,7 +370,7 @@ msgstr "无效操作!" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0 msgid "The project manager validates the timesheets." -msgstr "项目经理审核记工单" +msgstr "项目经理审核计工单" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 @@ -403,7 +403,7 @@ msgstr "# 数量" #: view:hr_timesheet_sheet.sheet.day:0 #: field:hr_timesheet_sheet.sheet.day,total_timesheet:0 msgid "Total Timesheet" -msgstr "总记工单" +msgstr "总计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -418,7 +418,7 @@ msgstr "签入" #. module: hr_timesheet_sheet #: view:timesheet.report:0 field:timesheet.report,total_timesheet:0 msgid "#Total Timesheet" -msgstr "# 总记工单" +msgstr "# 总计工单" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open @@ -451,7 +451,7 @@ msgstr "要为员工创建计工单,你要给该员工指定一个产品,例 #. module: hr_timesheet_sheet #: view:hr.timesheet.current.open:0 msgid "It will open your current timesheet" -msgstr "它将开启您当前记工单" +msgstr "它将开启您当前计工单" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241 @@ -504,12 +504,12 @@ msgstr "开发票" msgid "" "The timesheet line represents the time spent by the employee on a specific " "service provided." -msgstr "记工单明细代表员工在特定服务所花费的时间。" +msgstr "计工单明细代表员工在特定服务所花费的时间。" #. module: hr_timesheet_sheet #: constraint:hr_timesheet_sheet.sheet:0 msgid "You must select a Current date which is in the timesheet dates !" -msgstr "您选择的当前日期必须要在记工单里!" +msgstr "您选择的当前日期必须要在计工单里!" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,name:0 @@ -523,7 +523,7 @@ msgid "" "in the system. It allows you to have a full overview of entries done by " "your employees. You can group them by specific selection criteria thanks to " "the search tool." -msgstr "在系统里这报表分析创建的记工单,它可以使您一览您的员工的工作。您可以在搜索工具选择具体的标准来分组。" +msgstr "在系统里这报表分析创建的计工单,它可以使您一览您的员工的工作。您可以在搜索工具选择具体的标准来分组。" #. module: hr_timesheet_sheet #: view:timesheet.report:0 selection:timesheet.report,state:0 @@ -533,17 +533,17 @@ msgstr "草稿" #. module: hr_timesheet_sheet #: field:res.company,timesheet_max_difference:0 msgid "Timesheet allowed difference(Hours)" -msgstr "记工单允许的差异(小时)" +msgstr "计工单允许的差异(小时)" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_invoiceontimesheet0 msgid "The invoice is created based on the timesheet." -msgstr "这发票创建基于这记工单" +msgstr "这发票创建基于这计工单" #. module: hr_timesheet_sheet #: model:process.node,name:hr_timesheet_sheet.process_node_drafttimesheetsheet0 msgid "Draft Timesheet" -msgstr "记工单草稿" +msgstr "计工单草稿" #. module: hr_timesheet_sheet #: selection:res.company,timesheet_range:0 @@ -574,13 +574,13 @@ msgstr "当前状态" #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646 #, python-format msgid "You cannot modify an entry in a confirmed timesheet !" -msgstr "您不能修改一个已确认的记工单!" +msgstr "您不能修改一个已确认的计工单!" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_account #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_day msgid "Timesheets by Period" -msgstr "记工单周期" +msgstr "计工单周期" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,user_id:0 @@ -592,7 +592,7 @@ msgstr "用户" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_account msgid "Timesheet by Account" -msgstr "辅助核算项的记工单" +msgstr "辅助核算项的计工单" #. module: hr_timesheet_sheet #: field:hr.timesheet.report,date:0 field:hr_timesheet_sheet.sheet.day,name:0 @@ -612,13 +612,13 @@ msgstr "增加筛选条件" #. module: hr_timesheet_sheet #: field:res.company,timesheet_range:0 msgid "Timesheet range" -msgstr "记工单范围" +msgstr "计工单范围" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548 #, python-format msgid "You can not modify an entry in a confirmed timesheet !" -msgstr "您不能修改一张已确认的记工单!" +msgstr "您不能修改一张已确认的计工单!" #. module: hr_timesheet_sheet #: view:board.board:0 @@ -646,7 +646,7 @@ msgid "" "Check your timesheets for a specific period. You can also encode time spent " "on a project (i.e. an analytic account) thus generating costs in the " "analytic account concerned." -msgstr "在指定的周期检查您的记工单。您也可以在项目花费的时间进行编码(即辅助核算项)因此在这辅助核算项生成有关成本。" +msgstr "在指定的周期检查您的计工单。您也可以在项目花费的时间进行编码(即辅助核算项)因此在这辅助核算项生成有关成本。" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:237 @@ -728,7 +728,7 @@ msgstr "查找辅助核算项" msgid "" "Allowed difference in hours between the sign in/out and the timesheet " "computation for one sheet. Set this to 0 if you do not want any control." -msgstr "签入/签出和在一个记工单里的容许的差异小时。如果您不想这样控制设为0." +msgstr "签入/签出和在一个计工单里的容许的差异小时。如果您不想这样控制设为0." #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 field:hr_timesheet_sheet.sheet,period_ids:0 @@ -789,13 +789,13 @@ msgstr "本月的计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.account:0 msgid "Timesheet by Accounts" -msgstr "辅助核算项记工单" +msgstr "辅助核算项计工单" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:51 #, python-format msgid "Open Timesheet" -msgstr "开始的记工单" +msgstr "开始的计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 view:timesheet.report:0 @@ -817,21 +817,21 @@ msgid "" "* The 'Done' state is used when users timesheet is accepted by his/her " "senior." msgstr "" -" * “草稿”状态用于一个新的和未确认的记工单。\n" -"* \"已确认\"状态用于用户确认一个记工单。\n" -"* “完成”状态用于用户记工单已被他/她的上级审核。" +" * “草稿”状态用于一个新的和未确认的计工单。\n" +"* \"已确认\"状态用于用户确认一个计工单。\n" +"* “完成”状态用于用户计工单已被他/她的上级审核。" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 #: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_report_stat_all #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_hr_timesheet_report_all msgid "Timesheet Analysis" -msgstr "记工单分析" +msgstr "计工单分析" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Search Timesheet" -msgstr "查找记工单" +msgstr "查找计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -841,7 +841,7 @@ msgstr "已确认的计工单" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_analytic_timesheet msgid "Timesheet Line" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,product_id:0 @@ -864,7 +864,7 @@ msgstr "说明" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_confirmtimesheet0 msgid "The employee periodically confirms his own timesheets." -msgstr "员工定期确认自己的记工单" +msgstr "员工定期确认自己的计工单" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 @@ -884,7 +884,7 @@ msgstr "签出" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_tasktimesheet0 msgid "Moves task entry into the timesheet line" -msgstr "把工作调入记工单明细中" +msgstr "把工作调入计工单明细中" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 @@ -895,7 +895,7 @@ msgstr "工作时长" #: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all msgid "Timesheet Sheet Analysis" -msgstr "记工单分析" +msgstr "计工单分析" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,total_difference:0 @@ -1008,7 +1008,7 @@ msgstr "当前日期" #. module: hr_timesheet_sheet #: model:process.process,name:hr_timesheet_sheet.process_process_hrtimesheetprocess0 msgid "Hr Timesheet" -msgstr "人力资源 记工单" +msgstr "人力资源 计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,year:0 diff --git a/addons/idea/i18n/gu.po b/addons/idea/i18n/gu.po new file mode 100644 index 00000000000..3cd7b9f5054 --- /dev/null +++ b/addons/idea/i18n/gu.po @@ -0,0 +1,710 @@ +# Gujarati 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 05:11+0000\n" +"Last-Translator: Jalpesh Patel(OpenERP) \n" +"Language-Team: Gujarati \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: idea +#: help:idea.category,visibility:0 +msgid "If True creator of the idea will be visible to others" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By States" +msgstr "" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_select +msgid "Idea select" +msgstr "વિચાર પસંદ કરો" + +#. module: idea +#: view:idea.idea:0 +#: view:idea.vote:0 +#: model:ir.ui.menu,name:idea.menu_idea_vote +msgid "Votes" +msgstr "મત" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,comment_ids:0 +msgid "Comments" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Submit Vote" +msgstr "મત જમા કરો" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_report_vote_all +#: model:ir.ui.menu,name:idea.menu_report_vote_all +msgid "Ideas Analysis" +msgstr "વિચારો નું પૃથક્કરણ" + +#. module: idea +#: view:idea.category:0 +#: view:idea.idea:0 +#: view:idea.vote:0 +#: view:report.vote:0 +msgid "Group By..." +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "March" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Accepted Ideas" +msgstr "સ્વીકૃત વિચારો" + +#. module: idea +#: code:addons/idea/wizard/idea_post_vote.py:94 +#, python-format +msgid "Idea must be in 'Open' state before vote for that idea." +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Open Date" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,day:0 +msgid "Day" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Refuse" +msgstr "નકારવા" + +#. module: idea +#: field:idea.idea,count_votes:0 +msgid "Count of votes" +msgstr "મતો ગણતરી" + +#. module: idea +#: model:ir.model,name:idea.model_report_vote +msgid "Idea Vote Statistics" +msgstr "વિચાર મતોની આંકડાકીય માહિતી" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Bad" +msgstr "ખરાબ" + +#. module: idea +#: selection:report.vote,idea_state:0 +msgid "Cancelled" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Category of ideas" +msgstr "વિચારો ની શ્રેણી" + +#. module: idea +#: code:addons/idea/idea.py:274 +#: code:addons/idea/wizard/idea_post_vote.py:91 +#: code:addons/idea/wizard/idea_post_vote.py:94 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Your Comment" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_vote +msgid "Idea Vote" +msgstr "" + +#. module: idea +#: field:idea.category,parent_id:0 +msgid "Parent Categories" +msgstr "પિતૃ શ્રેણીઓ" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Very Bad" +msgstr "ખૂબ ખરાબ" + +#. module: idea +#: view:idea.vote:0 +msgid "Ideas vote" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: idea +#: code:addons/idea/wizard/idea_post_vote.py:91 +#, python-format +msgid "You can not give Vote for this idea more than %s times" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Ideas Categories" +msgstr "વિચારોની શ્રેણીઓ" + +#. module: idea +#: help:idea.idea,description:0 +msgid "Content of the idea" +msgstr "વિચાર સામગ્રી" + +#. module: idea +#: model:ir.model,name:idea.model_idea_category +msgid "Idea Category" +msgstr "વિચાર શ્રેણીમાં" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,stat_vote_ids:0 +msgid "Statistics" +msgstr "આંકડાકીય માહિતી" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Not Voted" +msgstr "" + +#. module: idea +#: sql_constraint:idea.category:0 +msgid "The name of the category must be unique" +msgstr "શ્રેણી નામ વિશિષ્ટ હોવું જ જોઈએ" + +#. module: idea +#: model:ir.model,name:idea.model_idea_select +msgid "select idea" +msgstr "વિચાર પસંદ કરો" + +#. module: idea +#: view:idea.stat:0 +msgid "stat" +msgstr "" + +#. module: idea +#: field:idea.category,child_ids:0 +msgid "Child Categories" +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Next" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,state:0 +#: view:report.vote:0 +#: field:report.vote,idea_state:0 +msgid "State" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: selection:idea.idea,state:0 +msgid "New" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Good" +msgstr "" + +#. module: idea +#: help:idea.idea,open_date:0 +msgid "Date when an idea opened" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Idea Detail" +msgstr "વિચાર વિગતો" + +#. module: idea +#: help:idea.idea,state:0 +msgid "" +"When the Idea is created the state is 'Draft'.\n" +" It is opened by the user, the state is 'Opened'. \n" +"If the idea is accepted, the state is 'Accepted'." +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "New Ideas" +msgstr "નવા વિચારો" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created last month" +msgstr "" + +#. module: idea +#: field:idea.category,visibility:0 +#: field:idea.idea,visibility:0 +msgid "Open Idea?" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created in current month" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "July" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: selection:idea.idea,state:0 +#: view:report.vote:0 +#: selection:report.vote,idea_state:0 +msgid "Accepted" +msgstr "સ્વીકૃત" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_category +#: model:ir.ui.menu,name:idea.menu_idea_category +msgid "Categories" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Parent Category" +msgstr "પિતૃ શ્રેણીમાં" + +#. module: idea +#: field:idea.idea,open_date:0 +msgid "Open date" +msgstr "" + +#. module: idea +#: field:idea.idea,vote_ids:0 +#: model:ir.actions.act_window,name:idea.action_idea_post_vote +msgid "Vote" +msgstr "મત" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_vote_stat +#: model:ir.ui.menu,name:idea.menu_idea_vote_stat +msgid "Vote Statistics" +msgstr "મત ની આંકડાકીય માહિતી" + +#. module: idea +#: field:idea.idea,vote_limit:0 +msgid "Maximum Vote per User" +msgstr "મહત્તમ વપરાશકર્તા માટે મત" + +#. module: idea +#: view:idea.vote.stat:0 +msgid "vote_stat of ideas" +msgstr "" + +#. module: idea +#: field:idea.comment,content:0 +#: view:idea.idea:0 +#: view:idea.post.vote:0 +#: field:idea.vote,comment:0 +#: model:ir.model,name:idea.model_idea_comment +msgid "Comment" +msgstr "ટીકા" + +#. module: idea +#: selection:report.vote,month:0 +msgid "September" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "December" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,month:0 +msgid "Month" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: model:ir.actions.act_window,name:idea.action_idea_idea_categ_open +#: model:ir.actions.act_window,name:idea.action_idea_idea_open +msgid "Open Ideas" +msgstr "" + +#. module: idea +#: view:idea.category:0 +#: field:idea.category,name:0 +#: view:idea.idea:0 +#: field:idea.idea,category_id:0 +#: view:report.vote:0 +#: field:report.vote,category_id:0 +msgid "Category" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Very Good" +msgstr "" + +#. module: idea +#: selection:idea.idea,state:0 +#: selection:report.vote,idea_state:0 +msgid "Opened" +msgstr "" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_vote +msgid "Idea's Votes" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By Idea Category" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "New Idea" +msgstr "નવો વિચાર" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_category_tree +#: model:ir.ui.menu,name:idea.menu_idea_category_tree +msgid "Ideas by Categories" +msgstr "" + +#. module: idea +#: selection:report.vote,idea_state:0 +msgid "Draft" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "August" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Normal" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "June" +msgstr "" + +#. module: idea +#: field:report.vote,creater_id:0 +#: field:report.vote,user_id:0 +msgid "User Name" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_vote_stat +msgid "Idea Votes Statistics" +msgstr "" + +#. module: idea +#: field:idea.comment,user_id:0 +#: view:idea.vote:0 +#: field:idea.vote,user_id:0 +#: view:report.vote:0 +msgid "User" +msgstr "" + +#. module: idea +#: field:idea.vote,date:0 +msgid "Date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "November" +msgstr "" + +#. module: idea +#: field:idea.idea,my_vote:0 +msgid "My Vote" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "October" +msgstr "" + +#. module: idea +#: field:idea.comment,create_date:0 +#: field:idea.idea,created_date:0 +msgid "Creation date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "January" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_idea +msgid "idea.idea" +msgstr "" + +#. module: idea +#: field:idea.category,summary:0 +msgid "Summary" +msgstr "" + +#. module: idea +#: field:idea.idea,name:0 +msgid "Idea Summary" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +msgid "Post" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "History" +msgstr "" + +#. module: idea +#: field:report.vote,date:0 +msgid "Date Order" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,user_id:0 +#: view:report.vote:0 +msgid "Creator" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +#: model:ir.ui.menu,name:idea.menu_give_vote +msgid "Give Vote" +msgstr "" + +#. module: idea +#: help:idea.idea,vote_limit:0 +msgid "Set to one if you require only one Vote per user" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By Creators" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +msgid "Cancel" +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Close" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Open" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: view:report.vote:0 +msgid "In Progress" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote Analysis" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: model:ir.actions.act_window,name:idea.action_idea_idea +#: model:ir.ui.menu,name:idea.menu_idea_idea +#: model:ir.ui.menu,name:idea.menu_ideas +#: model:ir.ui.menu,name:idea.menu_ideas1 +msgid "Ideas" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_post_vote +msgid "Post vote" +msgstr "" + +#. module: idea +#: field:idea.vote.stat,score:0 +#: field:report.vote,score:0 +msgid "Score" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Votes Statistics" +msgstr "" + +#. module: idea +#: view:idea.vote:0 +msgid "Comments:" +msgstr "" + +#. module: idea +#: view:idea.category:0 +#: field:idea.idea,description:0 +#: field:idea.post.vote,note:0 +msgid "Description" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "May" +msgstr "" + +#. module: idea +#: selection:idea.idea,state:0 +#: view:report.vote:0 +msgid "Refused" +msgstr "" + +#. module: idea +#: view:idea.vote:0 +msgid "Vote Date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "February" +msgstr "" + +#. module: idea +#: field:idea.category,complete_name:0 +msgid "Name" +msgstr "" + +#. module: idea +#: field:idea.vote.stat,nbr:0 +msgid "Number of Votes" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Month-1" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "April" +msgstr "" + +#. module: idea +#: field:idea.idea,count_comments:0 +msgid "Count of comments" +msgstr "" + +#. module: idea +#: field:idea.vote,score:0 +msgid "Vote Status" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created in current year" +msgstr "" + +#. module: idea +#: field:idea.idea,vote_avg:0 +msgid "Average Score" +msgstr "" + +#. module: idea +#: constraint:idea.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: idea +#: field:idea.comment,idea_id:0 +#: field:idea.select,idea_id:0 +#: view:idea.vote:0 +#: field:idea.vote,idea_id:0 +#: field:idea.vote.stat,idea_id:0 +#: model:ir.ui.menu,name:idea.menu_idea_reporting +#: view:report.vote:0 +#: field:report.vote,idea_id:0 +msgid "Idea" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Accept" +msgstr "" + +#. module: idea +#: field:idea.post.vote,vote:0 +msgid "Post Vote" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,year:0 +msgid "Year" +msgstr "" + +#. module: idea +#: code:addons/idea/idea.py:274 +#, python-format +msgid "You can not vote on a Draft/Accepted/Cancelled ideas." +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Select Idea for Vote" +msgstr "" diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml index 3d541f8aa8e..eacb0804658 100644 --- a/addons/idea/idea_view.xml +++ b/addons/idea/idea_view.xml @@ -267,10 +267,6 @@ - - - - diff --git a/addons/l10n_multilang/i18n/ro.po b/addons/l10n_multilang/i18n/ro.po new file mode 100644 index 00000000000..e820dde38de --- /dev/null +++ b/addons/l10n_multilang/i18n/ro.po @@ -0,0 +1,178 @@ +# Romanian 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: 2012-02-08 01:06+0000\n" +"PO-Revision-Date: 2012-05-30 20:18+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template +msgid "Template for Fiscal Position" +msgstr "Sablon pentru Pozitia Fiscala" + +#. module: l10n_multilang +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "Codul sumei trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "" +"Configuration Error!\n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Eroare de Configurare!\n" +"Nu puteti defini conturi secundare intr-un cont cu tipul intern diferit de " +"\"Vizualizare\"! " + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_journal +msgid "Analytic Journal" +msgstr "Jurnal Analitic" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "Eroare! Nu puteti crea sabloane de cont recurente." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_journal +msgid "Journal" +msgstr "Jurnal" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_chart_template +msgid "Templates for Account Chart" +msgstr "Sabloane pentru Planul de Conturi" + +#. module: l10n_multilang +#: sql_constraint:account.tax:0 +msgid "The description must be unique per company!" +msgstr "Descrierea trebuie sa fie unica pe companie!" + +#. module: l10n_multilang +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "Eroare ! Nu puteti crea Coduri fiscale recursive." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_template +msgid "account.tax.template" +msgstr "sablon.taxa.cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax +msgid "account.tax" +msgstr "taxa.cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account +msgid "Account" +msgstr "Cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts +msgid "wizard.multi.charts.accounts" +msgstr "wizard.plan.de.conturi.multi" + +#. module: l10n_multilang +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"Eroare de configurare! Moneda aleasa trebuie sa fie comuna si conturilor " +"predefinite." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account_template +msgid "Templates for Accounts" +msgstr "Sabloane pentru Conturi" + +#. module: l10n_multilang +#: help:account.chart.template,spoken_languages:0 +msgid "" +"State here the languages for which the translations of templates could be " +"loaded at the time of installation of this localization module and copied in " +"the final object when generating them from templates. You must provide the " +"language codes separated by ';'" +msgstr "" +"Aici introduceti limbile pentru care pot fi incarcate traducerile " +"sabloanelor in momentul instalarii acestui modul de localizare si pot fi " +"copiate in obiectul final atunci cand le generati din sabloane. Trebuie sa " +"introduceti codurile limbilor separat cu ';'" + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Eroare ! Nu puteti crea conturi recursive." + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not select an account type with a deferral method different of " +"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +msgstr "" +"Eroare de configurare! \n" +"Nu puteti selecta un tip de cont cu o metoda de amanare diferita de " +"\"Nereconciliat\" pentru conturile cu tipul intern \"Plati/Incasari\"! " + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "Numele jurnalului trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_account +msgid "Analytic Account" +msgstr "Cont Analitic" + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "Codul jurnalului trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Pozitie fiscala" + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Eroare de configurare! \n" +"Nu puteti defini conturi subordonate unui cont cu tipul intern diferit de " +"\"Vizualizare\"! " + +#. module: l10n_multilang +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Eroare! Nu puteti crea conturi analitice recursive." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_code_template +msgid "Tax Code Template" +msgstr "Sablon Cod Taxa" + +#. module: l10n_multilang +#: field:account.chart.template,spoken_languages:0 +msgid "Spoken Languages" +msgstr "Limbi Vorbite" diff --git a/addons/l10n_syscohada/i18n/ro.po b/addons/l10n_syscohada/i18n/ro.po new file mode 100644 index 00000000000..4bd661a2da3 --- /dev/null +++ b/addons/l10n_syscohada/i18n/ro.po @@ -0,0 +1,123 @@ +# Romanian 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-05-30 20:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_receivable +msgid "Receivable" +msgstr "Incasari" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stocks +msgid "Actif circulant" +msgstr "Active" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_commitment +msgid "Engagements" +msgstr "Angajamente" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_expense +msgid "Expense" +msgstr "Cheltuiala" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stock +msgid "Stocks" +msgstr "Actiuni" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_provision +msgid "Provisions" +msgstr "Clauze" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_income +msgid "Income" +msgstr "Venit" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_tax +msgid "Tax" +msgstr "Taxa" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cash +msgid "Cash" +msgstr "Numerar" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations +msgid "Immobilisations" +msgstr "Imobiliare" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_special +msgid "Comptes spéciaux" +msgstr "Conturi speciale" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_payable +msgid "Payable" +msgstr "Plati" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_asset +msgid "Asset" +msgstr "Active" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_view +msgid "View" +msgstr "Vizualizare" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_equity +msgid "Equity" +msgstr "Capital" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cloture +msgid "Cloture" +msgstr "Inchidere" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_dettes +msgid "Dettes long terme" +msgstr "Datorii pe termen lung" + +#. module: l10n_syscohada +#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada +msgid "" +"Generate Chart of Accounts from a SYSCOHADA 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" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Creati Planul de Conturi dintr-un Sablon SYSCOHADA de planuri. Vi se va cere " +"sa introduceti numele companiei, sablonul de planuri de urmat, numarul de " +"cifre pentru crearea codului pentru conturile d-voastra si Contul Bancar, " +"moneda pentru a crea Jurnalele. Astfel, este creata copia originala a " +"Sablonului de planuri.\n" +"\t Acesta este acelasi wizard care ruleaza din Managementul " +"Financiar/Configurare/Contabilitate Financiara/Conturi Financiare/Creati " +"Planul de Conturi dintr-un Sablon de planuri." diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml index adfccfc2041..aeb5eed5034 100644 --- a/addons/lunch/lunch_view.xml +++ b/addons/lunch/lunch_view.xml @@ -60,16 +60,6 @@ - - @@ -340,7 +330,7 @@ tree - + diff --git a/addons/marketing_campaign/i18n/hi.po b/addons/marketing_campaign/i18n/hi.po new file mode 100644 index 00000000000..eb5bb64f495 --- /dev/null +++ b/addons/marketing_campaign/i18n/hi.po @@ -0,0 +1,1073 @@ +# Hindi 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-29 12:12+0000\n" +"Last-Translator: FULL NAME \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: 2012-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Manual Mode" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_from_id:0 +msgid "Previous Activity" +msgstr "पिछली गतिविधि" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "The current step for this item has no email or report to preview." +msgstr "" + +#. module: marketing_campaign +#: constraint:marketing.campaign.transition:0 +msgid "The To/From Activity of transition must be of the same Campaign " +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Time" +msgstr "समय" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "Custom Action" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Group By..." +msgstr "इस आधार पर समूहीकृत" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,revenue:0 +msgid "" +"Set an expected revenue if you consider that every campaign item that has " +"reached this point has generated a certain revenue. You can get revenue " +"statistics in the Reporting section" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,trigger:0 +msgid "Trigger" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,count:0 +msgid "# of Actions" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Campaign Editor" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign.workitem:0 +msgid "Today" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: selection:marketing.campaign.segment,state:0 +msgid "Running" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "March" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,object_id:0 +msgid "Object" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records created after last sync" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_2 +msgid "" +"Hello, We are happy to announce that you now become our Silver Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Set to Draft" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,to_ids:0 +msgid "Next Activities" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronization" +msgstr "" + +#. module: marketing_campaign +#: sql_constraint:marketing.campaign.transition:0 +msgid "The interval must be positive or zero" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "No preview" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,date_run:0 +msgid "Launch Date" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,day:0 +msgid "Day" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Outgoing Transitions" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Reset" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,object_id:0 +msgid "Choose the resource on which you want this campaign to be run" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_last_date:0 +msgid "Last Synchronization" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "You can not duplicate a campaign, it's not supported yet." +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Year(s)" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_last_date:0 +msgid "" +"Date on which this segment was synchronized last time (automatically or " +"manually)" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Cancelled" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Automatic" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,mode:0 +msgid "" +"Test - It creates and process all the activities directly (without waiting " +"for the delay on transitions) but does not send emails or produce reports.\n" +"Test in Realtime - It creates and processes all the activities directly but " +"does not send emails or produce reports.\n" +"With Manual Confirmation - the campaigns runs normally, but the user has to " +"validate all workitem manually.\n" +"Normal - the campaign runs normally and automatically sends all emails and " +"reports (be very careful with this mode, you're live!)" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_run:0 +msgid "Initial start date of this segment." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,campaign_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign.activity,campaign_id:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,campaign_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,campaign_id:0 +msgid "Campaign" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_3 +msgid "Congratulation! You become our Gold Partner." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,segment_id:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,segment_id:0 +msgid "Segment" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Cost / Revenue" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,type:0 +msgid "" +"The type of action to execute when an item enters this activity, such as:\n" +" - Email: send an email using a predefined email template\n" +" - Report: print an existing Report defined on the resource item and save " +"it into a specific directory\n" +" - Custom Action: execute a predefined action, e.g. to modify the fields " +"of the resource record\n" +" " +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_next_sync:0 +msgid "Next time the synchronization job is scheduled to run automatically" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Month(s)" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,partner_id:0 +#: model:ir.model,name:marketing_campaign.model_res_partner +#: field:marketing.campaign.workitem,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Transitions" +msgstr "" + +#. module: marketing_campaign +#: model:ir.filters,name:marketing_campaign.filter0 +msgid "Partners" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "Don't delete workitems" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,state:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,state:0 +msgid "State" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Marketing Reports" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +msgid "New" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,type:0 +msgid "Type" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,name:0 +#: field:marketing.campaign.activity,name:0 +#: field:marketing.campaign.segment,name:0 +#: field:marketing.campaign.transition,name:0 +msgid "Name" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.workitem,res_name:0 +msgid "Resource Name" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_mode:0 +msgid "Synchronization mode" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Run" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,from_ids:0 +msgid "Previous Activities" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_done:0 +msgid "Date this segment was last closed or cancelled." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Marketing Campaign Activities" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,error_msg:0 +msgid "Error Message" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form +#: view:marketing.campaign:0 +msgid "Campaigns" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_type:0 +msgid "Interval Unit" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:792 +#, python-format +msgid "Email Preview" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_id:0 +#: selection:marketing.campaign.activity,type:0 +msgid "Report" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "July" +msgstr "" + +#. module: marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration +msgid "Configuration" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,variable_cost:0 +msgid "" +"Set a variable cost if you consider that every campaign item that has " +"reached this point has entailed a certain cost. You can get cost statistics " +"in the Reporting section" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Hour(s)" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid " Month-1 " +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment +msgid "Campaign Segment" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Cancel" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "" +"By activating this option, workitems that aren't executed because the " +"condition is not met are marked as cancelled instead of being deleted." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Exceptions" +msgstr "" + +#. module: marketing_campaign +#: field:res.partner,workitem_ids:0 +msgid "Workitems" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,fixed_cost:0 +msgid "Fixed Cost" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_2 +msgid "Congratulation! You become now our Silver Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Modified" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_nbr:0 +msgid "Interval Value" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,revenue:0 +#: field:marketing.campaign.activity,revenue:0 +msgid "Revenue" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "September" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "December" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,partner_field_id:0 +msgid "" +"The generated workitems will be linked to the partner related to the record. " +"If the record is the partner itself leave this field empty. This is useful " +"for reporting purposes, via the Campaign Analysis or Campaign Follow-up " +"views." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,month:0 +msgid "Month" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_to_id:0 +msgid "Next Activity" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup +msgid "Campaign Follow-up" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,email_template_id:0 +msgid "The e-mail to send when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Test Mode" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records modified after last sync (no duplicates)" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml +msgid "ir.actions.report.xml" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_stat +msgid "Campaign Statistics" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,server_action_id:0 +msgid "The action to perform when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,partner_field_id:0 +msgid "Partner Field" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all +#: model:ir.model,name:marketing_campaign.model_campaign_analysis +#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all +msgid "Campaign Analysis" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_mode:0 +msgid "" +"Determines an additional criterion to add to the filter when selecting new " +"records to inject in the campaign. \"No duplicates\" prevents selecting " +"records which have already entered the campaign previously.If the campaign " +"has a \"unique field\" set, \"no duplicates\" will also prevent selecting " +"records which have the same value for the unique field as other records that " +"already entered the campaign." +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test in Realtime" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test Directly" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_directory_id:0 +msgid "Directory" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Draft" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Preview" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Related Resource" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "August" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Normal" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,start:0 +msgid "This activity is launched when the campaign starts." +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,signal:0 +msgid "" +"An activity with a signal can be called programmatically. Be careful, the " +"workitem is always created when a signal is sent" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "June" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_email_template +msgid "Email Templates" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: all records" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "All records (no duplicates)" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Created" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,date:0 +#: view:marketing.campaign.workitem:0 +msgid "Date" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "November" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,condition:0 +msgid "Condition" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_id:0 +msgid "The report to generate when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#, python-format +msgid "" +"The campaign cannot be started: it doesn't have any starting activity. " +"Modify campaign's activities to mark one as the starting point." +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,unique_field_id:0 +msgid "Unique Field" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Exception" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "October" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,email_template_id:0 +msgid "Email Template" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "January" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,date:0 +msgid "Execution Date" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem +msgid "Campaign Workitem" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity +msgid "Campaign Activity" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_directory_id:0 +msgid "This folder is used to store the generated reports" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "Error" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,server_action_id:0 +msgid "Action" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:528 +#, python-format +msgid "Automatic transition" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,start:0 +msgid "Start" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: view:res.partner:0 +msgid "History" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Process" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:530 +#: selection:marketing.campaign.transition,trigger:0 +#, python-format +msgid "Cosmetic" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.transition,trigger:0 +msgid "How is the destination workitem triggered" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,help:marketing_campaign.action_marketing_campaign_form +msgid "" +"A marketing campaign is an event or activity that will help you manage and " +"reach your partners with specific messages. A campaign can have many " +"activities that will be triggered from a specific situation. One action " +"could be sending an email template that has previously been created in the " +"system." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Done" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "Operation not supported" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_3 +msgid "Hello, We are happy to announce that you become our Gold Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Close" +msgstr "" + +#. module: marketing_campaign +#: constraint:marketing.campaign.segment:0 +msgid "Model of filter must be same as resource model of Campaign " +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,condition:0 +msgid "" +"Python expression to decide whether the activity can be executed, otherwise " +"it will be deleted or cancelled.The expression may use the following " +"[browsable] variables:\n" +" - activity: the campaign activity\n" +" - workitem: the campaign workitem\n" +" - resource: the resource object this campaign item represents\n" +" - transitions: list of campaign transitions outgoing from this activity\n" +"...- re: Python regular expression module" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronize Manually" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#, python-format +msgid "The campaign cannot be started: there are no activities in it." +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition +msgid "Campaign Transition" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "To Do" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Campaign Step" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form +#: view:marketing.campaign.segment:0 +msgid "Segments" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened +msgid "All Segments" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Incoming Transitions" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "E-mail" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Day(s)" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,activity_ids:0 +#: view:marketing.campaign.activity:0 +msgid "Activities" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "May" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,unique_field_id:0 +msgid "" +"If set, this field will help segments that work in \"no duplicates\" mode to " +"avoid selecting similar records twice. Similar records are records that have " +"the same value for this unique field. For example by choosing the " +"\"email_from\" field for CRM Leads you would prevent sending the same " +"campaign to the same email address again. If not set, the \"no duplicates\" " +"segments will only avoid selecting the same record again if it entered the " +"campaign previously. Only easily comparable fields like textfields, " +"integers, selections or single relationships may be used." +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:529 +#, python-format +msgid "After %(interval_nbr)d %(interval_type)s" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_1 +msgid "Welcome in OpenERP Partner Channel!" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign +msgid "Marketing Campaign" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_done:0 +msgid "End Date" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "February" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,res_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,object_id:0 +#: field:marketing.campaign.segment,object_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,object_id:0 +msgid "Resource" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,fixed_cost:0 +msgid "" +"Fixed cost for running this campaign. You may also specify variable cost and " +"revenue on each campaign activity. Cost and Revenue statistics are included " +"in Campaign Reporting." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records updated after last sync" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,country_id:0 +msgid "Country" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,signal:0 +msgid "Signal" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.workitem,date:0 +msgid "If date is not set, this workitem has to be run manually" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "April" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "The campaign cannot be marked as done before all segments are closed." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: field:marketing.campaign,mode:0 +msgid "Mode" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,activity_id:0 +#: view:marketing.campaign.activity:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,activity_id:0 +msgid "Activity" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,ir_filter_id:0 +msgid "" +"Filter to select the matching resource records that belong to this segment. " +"New filters can be created and saved using the advanced search on the list " +"view of the Resource. If no filter is set, all records are selected without " +"filtering. The synchronization mode may also add a criterion to the filter." +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem +#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem +msgid "Campaign Followup" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_next_sync:0 +msgid "Next Synchronization" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,ir_filter_id:0 +msgid "Filter" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "All" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records created after last sync" +msgstr "" + +#. module: marketing_campaign +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,variable_cost:0 +msgid "Variable Cost" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "With Manual Confirmation" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,total_cost:0 +#: view:marketing.campaign:0 +msgid "Cost" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_1 +msgid "Hello, We are very happy to send Welcome message." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,year:0 +msgid "Year" +msgstr "" diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml index 4f401b386ef..a8edeb81ca4 100644 --- a/addons/marketing_campaign/marketing_campaign_view.xml +++ b/addons/marketing_campaign/marketing_campaign_view.xml @@ -189,7 +189,6 @@ - diff --git a/addons/membership/i18n/ja.po b/addons/membership/i18n/ja.po index 78e4abe3a5c..82790ae2d4c 100644 --- a/addons/membership/i18n/ja.po +++ b/addons/membership/i18n/ja.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: 2012-05-29 04:45+0000\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" "X-Generator: Launchpad (build 15316)\n" #. module: membership diff --git a/addons/mrp/i18n/ja.po b/addons/mrp/i18n/ja.po index 9168d24393a..2943ce294da 100644 --- a/addons/mrp/i18n/ja.po +++ b/addons/mrp/i18n/ja.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:49+0000\n" -"PO-Revision-Date: 2012-05-29 04:20+0000\n" +"PO-Revision-Date: 2012-05-31 06:17+0000\n" "Last-Translator: Akira Hiyama \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-29 04:45+0000\n" -"X-Generator: Launchpad (build 15316)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: mrp #: view:mrp.routing.workcenter:0 msgid "Routing Work Centers" -msgstr "配送ワークセンター" +msgstr "経路作業センタ" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_production_action @@ -37,12 +37,12 @@ msgstr "" #. module: mrp #: help:mrp.production,location_src_id:0 msgid "Location where the system will look for components." -msgstr "システムが部品を探す場所" +msgstr "システムが構成部品を探す場所" #. module: mrp #: field:mrp.production,workcenter_lines:0 msgid "Work Centers Utilisation" -msgstr "ワークセンター活用" +msgstr "作業センタ活用" #. module: mrp #: model:product.template,name:mrp.product_sugar_product_template @@ -52,12 +52,12 @@ msgstr "砂糖" #. module: mrp #: report:mrp.production.order:0 msgid "No. Of Cycles" -msgstr "周期数" +msgstr "サイクル数" #. module: mrp #: field:mrp.routing.workcenter,cycle_nbr:0 msgid "Number of Cycles" -msgstr "周期数" +msgstr "サイクル数" #. module: mrp #: model:product.uom.categ,name:mrp.product_uom_categ_fluid @@ -102,7 +102,7 @@ msgstr "経路" #. module: mrp #: field:mrp.workcenter,product_id:0 msgid "Work Center Product" -msgstr "ワークセンター製品" +msgstr "作業センタ製品" #. module: mrp #: view:mrp.bom:0 @@ -124,7 +124,7 @@ msgstr "生産する" msgid "" "Number of iterations this work center has to do in the specified operation " "of the routing." -msgstr "このワークセンターは配送の特定の操作の中で反復回数実行される必要があります。" +msgstr "この作業センタは経路の特定の操作の中で反復回数実行される必要があります。" #. module: mrp #: view:mrp.bom:0 @@ -153,7 +153,7 @@ msgstr "購入のため" #. module: mrp #: model:process.transition,note:mrp.process_transition_purchaseprocure0 msgid "The system launches automatically a RFQ to the preferred supplier." -msgstr "システムは優先仕入先にRFQ(見積依頼書)を自動的に起こします。" +msgstr "システムは優先仕入先にRFQ(見積依頼)を自動的に起こします。" #. module: mrp #: view:mrp.production:0 @@ -191,7 +191,7 @@ msgstr "これは例えばトレーニングセッションといった、シス #. module: mrp #: view:mrp.production:0 msgid "UOM" -msgstr "" +msgstr "単位" #. module: mrp #: field:change.production.qty,product_qty:0 @@ -199,151 +199,151 @@ msgstr "" #: field:mrp.production,product_qty:0 #: field:mrp.production.product.line,product_qty:0 msgid "Product Qty" -msgstr "" +msgstr "製品数量" #. module: mrp #: help:mrp.workcenter,product_id:0 msgid "" "Fill this product to track easily your production costs in the analytic " "accounting." -msgstr "" +msgstr "分析会計の中で生産コストを簡単に追跡するためのこの製品を満たして下さい。" #. module: mrp #: model:process.node,note:mrp.process_node_purchaseprocure0 msgid "For purchased material" -msgstr "" +msgstr "仕入済材料" #. module: mrp #: field:mrp.bom.revision,indice:0 msgid "Revision" -msgstr "" +msgstr "改訂" #. module: mrp #: model:ir.actions.act_window,help:mrp.product_form_config_action msgid "" "Create a product form for everything you buy or sell. Specify a supplier if " "the product can be purchased." -msgstr "" +msgstr "購入または販売した全ての製品フォームを作成して下さい。製品を購入することがでできる場合、仕入先を指定して下さい。" #. module: mrp #: model:ir.ui.menu,name:mrp.next_id_77 msgid "Reporting" -msgstr "" +msgstr "レポート" #. module: mrp #: field:mrp.workcenter,costs_cycle_account_id:0 msgid "Cycle Account" -msgstr "" +msgstr "サイクルアカウント" #. module: mrp #: code:addons/mrp/report/price.py:130 #, python-format msgid "Work Cost" -msgstr "" +msgstr "作業コスト" #. module: mrp #: report:bom.structure:0 msgid "[" -msgstr "" +msgstr "[" #. module: mrp #: model:process.transition,name:mrp.process_transition_procureserviceproduct0 msgid "Procurement of services" -msgstr "" +msgstr "サービスの調達" #. module: mrp #: view:mrp.workcenter:0 msgid "Capacity Information" -msgstr "" +msgstr "容量情報" #. module: mrp #: field:mrp.production,move_created_ids2:0 msgid "Produced Products" -msgstr "" +msgstr "生産される製品" #. module: mrp #: report:mrp.production.order:0 msgid "Destination Location" -msgstr "" +msgstr "宛先場所" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_bom msgid "Master Data" -msgstr "" +msgstr "マスターデータ" #. module: mrp #: model:process.transition,note:mrp.process_transition_stockmts0 msgid "" "The system waits for the products to be available in the stock. These " "products are typically procured manually or through a minimum stock rule." -msgstr "" +msgstr "システムは在庫にするための製品を待っています。これらの製品は一般的には手動でまたは最低在庫ルールを通して調達されます。" #. module: mrp #: report:mrp.production.order:0 msgid "Partner Ref" -msgstr "" +msgstr "パートナ参照" #. module: mrp #: field:mrp.production,origin:0 #: report:mrp.production.order:0 msgid "Source Document" -msgstr "" +msgstr "基となるドキュメント" #. module: mrp #: field:mrp.production,product_lines:0 msgid "Scheduled goods" -msgstr "" +msgstr "予定済製品" #. module: mrp #: selection:mrp.bom,type:0 msgid "Sets / Phantom" -msgstr "" +msgstr "設定 / 模型" #. module: mrp #: help:mrp.bom,position:0 msgid "Reference to a position in an external plan." -msgstr "" +msgstr "外部計画の中への参照" #. module: mrp #: constraint:stock.move:0 msgid "You try to assign a lot which is not from the same product" -msgstr "" +msgstr "違う製品のロットを割り当てることはできません。" #. module: mrp #: model:product.template,name:mrp.product_cloth_product_template msgid "Cloth" -msgstr "" +msgstr "生地" #. module: mrp #: model:ir.model,name:mrp.model_mrp_product_produce msgid "Product Produce" -msgstr "" +msgstr "製品生産" #. module: mrp #: constraint:mrp.bom:0 msgid "Error ! You cannot create recursive BoM." -msgstr "" +msgstr "エラー。再帰的な部品表を作ることはできません。" #. module: mrp #: model:ir.model,name:mrp.model_mrp_routing_workcenter msgid "Work Center Usage" -msgstr "" +msgstr "作業センタの用途" #. module: mrp #: model:process.transition,name:mrp.process_transition_procurestockableproduct0 msgid "Procurement of stockable Product" -msgstr "" +msgstr "在庫可能製品の調達" #. module: mrp #: view:mrp.bom:0 msgid "Default UOM" -msgstr "" +msgstr "デフォルト単位" #. module: mrp #: sql_constraint:mrp.production:0 #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "参照は会社ごとに固有でなければいけません。" #. module: mrp #: code:addons/mrp/report/price.py:139 @@ -352,31 +352,31 @@ msgstr "" #: report:mrp.production.order:0 #, python-format msgid "Quantity" -msgstr "" +msgstr "数量" #. module: mrp #: field:mrp.production.workcenter.line,hour:0 msgid "Nbr of hours" -msgstr "" +msgstr "時間数" #. module: mrp #: view:mrp.production:0 msgid "Confirm Production" -msgstr "" +msgstr "生産確認" #. module: mrp #: model:process.transition,note:mrp.process_transition_stockproduct0 msgid "" "The system creates an order (production or purchased) depending on the sold " "quantity and the products parameters." -msgstr "" +msgstr "システムは販売数量そして製品のパラメータに応じてオーダー(生産または仕入)を作成します。" #. module: mrp #: model:process.transition,note:mrp.process_transition_stockproduction0 msgid "" "In case the Supply method of the product is Produce, the system creates a " "production order." -msgstr "" +msgstr "製品の供給方法が生産である場合は、システムは生産オーダーを作成します。" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_property_action @@ -387,40 +387,43 @@ msgid "" "sales person creates a sales order, he can relate it to several properties " "and OpenERP will automatically select the BoM to use according the needs." msgstr "" +"同じ製品で異なった構築方法を持つ場合、OpenERPのプロパティは製品製造のための正しい部品表を選択するのに使用されます。それぞれの部品表には幾つかのプロ" +"パティを割り当てることができます。販売員が販売オーダーを作成した時、彼はそれを幾つかのプロパティに関連付けることができ、そして、OpenERPは要求によっ" +"て使用する部品表を自動的に選択します。" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" "This is the Internal Picking List that brings the finished product to the " "production plan" -msgstr "" +msgstr "これは生産計画のために完成した製品を持ってくる内部の集荷リストです。" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp msgid "Working Time" -msgstr "" +msgstr "作業時間" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree msgid "Weekly Stock Value Variation" -msgstr "" +msgstr "週次在庫価値変動" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,date_planned_date:0 #: report:mrp.production.order:0 msgid "Scheduled Date" -msgstr "" +msgstr "予定日" #. module: mrp #: view:mrp.bom:0 msgid "Component Product" -msgstr "" +msgstr "構成部品の製品" #. module: mrp #: report:mrp.production.order:0 msgid "Bill Of Material" -msgstr "" +msgstr "部品表" #. module: mrp #: help:mrp.routing,location_id:0 @@ -429,53 +432,55 @@ msgid "" "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 #: view:board.board:0 msgid "Stock Value Variation" -msgstr "" +msgstr "在庫価値変動" #. module: mrp #: model:ir.actions.act_window,name:mrp.action2 msgid "Bill of Materials Structure" -msgstr "" +msgstr "構造の部品表" #. module: mrp #: model:process.node,note:mrp.process_node_serviceproduct0 msgid "Product type is service" -msgstr "" +msgstr "製品タイプはサービスです。" #. module: mrp #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "会社名は固有でなければいけません。" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_property_group_action msgid "" "Define specific property groups that can be assigned to the properties of " "your bill of materials." -msgstr "" +msgstr "部品表のプロパティに割り当てることができる特定のプロパティグループを定義して下さい。" #. module: mrp #: help:mrp.workcenter,costs_cycle:0 msgid "Specify Cost of Work Center per cycle." -msgstr "" +msgstr "サイクル当りの作業センタのコストを指定して下さい。" #. module: mrp #: model:process.transition,name:mrp.process_transition_bom0 msgid "Manufacturing decomposition" -msgstr "" +msgstr "製造分解" #. module: mrp #: model:process.node,note:mrp.process_node_serviceproduct1 msgid "For Services." -msgstr "" +msgstr "サービス用" #. module: mrp #: field:mrp.bom.revision,date:0 msgid "Modification Date" -msgstr "" +msgstr "修正日" #. module: mrp #: help:mrp.workcenter,costs_cycle_account_id:0 @@ -483,178 +488,178 @@ msgstr "" msgid "" "Complete this only if you want automatic analytic accounting entries on " "production orders." -msgstr "" +msgstr "製造オーダーの自動分析会計行を望む場合は、これのみを完了して下さい。" #. module: mrp #: field:mrp.production.workcenter.line,cycle:0 msgid "Nbr of cycles" -msgstr "" +msgstr "サイクル数" #. module: mrp #: model:process.node,note:mrp.process_node_orderrfq0 #: model:process.node,note:mrp.process_node_rfq0 msgid "Request for Quotation." -msgstr "" +msgstr "見積要求" #. module: mrp #: model:process.transition,note:mrp.process_transition_billofmaterialrouting0 msgid "" "The Bill of Material is linked to a routing, i.e. the succession of work " "centers." -msgstr "" +msgstr "部品表は経路、すなわち作業センタの連携とリンクしています。" #. module: mrp #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "エラー:無効な商品識別番号です。" #. module: mrp #: field:mrp.production,move_created_ids:0 msgid "Products to Produce" -msgstr "" +msgstr "生産する製品" #. module: mrp #: view:mrp.routing:0 #: field:mrp.routing,location_id:0 msgid "Production Location" -msgstr "" +msgstr "生産場所" #. module: mrp #: view:mrp.production:0 msgid "Change Qty" -msgstr "" +msgstr "数量の変更" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_configure_workcenter msgid "Configure your work centers" -msgstr "" +msgstr "作業センタの設定" #. module: mrp #: view:mrp.production:0 msgid "Force Reservation" -msgstr "" +msgstr "強制予約" #. module: mrp #: field:mrp.bom.revision,author_id:0 msgid "Author" -msgstr "" +msgstr "著者" #. module: mrp #: field:report.mrp.inout,value:0 msgid "Stock value" -msgstr "" +msgstr "在庫価値" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_product_bom_structure msgid "Product BoM Structure" -msgstr "" +msgstr "製品部品表構成" #. module: mrp #: view:mrp.production:0 msgid "Search Production" -msgstr "" +msgstr "生産の検索" #. module: mrp #: code:addons/mrp/report/price.py:139 #, python-format msgid "Supplier Price per Uom" -msgstr "" +msgstr "単位当りの仕入価格" #. module: mrp #: help:mrp.routing.workcenter,sequence:0 msgid "" "Gives the sequence order when displaying a list of routing Work Centers." -msgstr "" +msgstr "作業センタの経路のリストを表示する時の順序を与えて下さい。" #. module: mrp #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "タイプビューの場所から、あるいは場所へは製品を動かすことはできません。" #. module: mrp #: field:mrp.bom,child_complete_ids:0 msgid "BoM Hierarchy" -msgstr "" +msgstr "部品表の階層" #. module: mrp #: field:mrp.bom,product_uom:0 #: field:mrp.production,product_uom:0 #: field:mrp.production.product.line,product_uom:0 msgid "Product UOM" -msgstr "" +msgstr "製品の単位" #. module: mrp #: selection:mrp.production,state:0 msgid "Picking Exception" -msgstr "" +msgstr "例外の集荷" #. module: mrp #: field:mrp.bom,bom_lines:0 msgid "BoM Lines" -msgstr "" +msgstr "部品表ライン" #. module: mrp #: field:mrp.workcenter,time_start:0 msgid "Time before prod." -msgstr "" +msgstr "製造前の時間" #. module: mrp #: help:mrp.routing,active:0 msgid "" "If the active field is set to False, it will allow you to hide the routing " "without removing it." -msgstr "" +msgstr "このアクティブ項目をFalseに設定すると、経路は削除することなく非表示にすることができます。" #. module: mrp #: model:process.transition,name:mrp.process_transition_billofmaterialrouting0 msgid "Material Routing" -msgstr "" +msgstr "材料の経路" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,move_lines2:0 #: report:mrp.production.order:0 msgid "Consumed Products" -msgstr "" +msgstr "消費製品" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_mrp_workcenter_load_wizard #: model:ir.model,name:mrp.model_mrp_workcenter_load #: model:ir.model,name:mrp.model_report_workcenter_load msgid "Work Center Load" -msgstr "" +msgstr "作業センタの負荷" #. module: mrp #: code:addons/mrp/procurement.py:43 #, python-format msgid "No BoM defined for this product !" -msgstr "" +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 Material Components" -msgstr "" +msgstr "構成部品の部品表" #. module: mrp #: model:ir.model,name:mrp.model_stock_move msgid "Stock Move" -msgstr "" +msgstr "在庫移動" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_planning msgid "Planning" -msgstr "" +msgstr "計画" #. module: mrp #: view:mrp.production:0 msgid "Ready" -msgstr "" +msgstr "準備完了" #. module: mrp #: model:product.template,name:mrp.product_buttons_product_template msgid "Shirt Buttons" -msgstr "" +msgstr "シャツのボタン" #. module: mrp #: help:mrp.production,routing_id:0 @@ -664,111 +669,113 @@ msgid "" "operations and to plan future loads on work centers based on production " "plannification." msgstr "" +"完成した製品を生産するための操作のリスト(作業センタのリスト)。経路は操作の間の作業センタのコストを計算し、生産計画化を基本とする作業センタの将来の負荷を" +"計画するために主に利用されます。" #. module: mrp #: help:mrp.workcenter,time_cycle:0 msgid "Time in hours for doing one cycle." -msgstr "" +msgstr "1サイクルの時間(時)" #. module: mrp #: constraint:mrp.bom:0 msgid "BoM line product should not be same as BoM product." -msgstr "" +msgstr "部品表のライン製品は部品表製品と同じではいけません。" #. module: mrp #: view:mrp.production:0 msgid "In Production" -msgstr "" +msgstr "生産中" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_property msgid "Master Bill of Materials" -msgstr "" +msgstr "マスター部品表" #. module: mrp #: help:mrp.bom,product_uos:0 msgid "" "Product UOS (Unit of Sale) is the unit of measurement for the invoicing and " "promotion of stock." -msgstr "" +msgstr "製品の販売単位は請求、そして在庫の販売促進の単位です。" #. module: mrp #: view:mrp.product_price:0 #: view:mrp.workcenter.load:0 msgid "Print" -msgstr "" +msgstr "印刷" #. module: mrp #: view:mrp.bom:0 #: view:mrp.workcenter:0 msgid "Type" -msgstr "" +msgstr "タイプ" #. module: mrp #: model:process.node,note:mrp.process_node_minimumstockrule0 msgid "Linked to the 'Minimum stock rule' supplying method." -msgstr "" +msgstr "供給方法の最小在庫ルールとリンクしています。" #. module: mrp #: selection:mrp.workcenter.load,time_unit:0 msgid "Per month" -msgstr "" +msgstr "月毎" #. module: mrp #: code:addons/mrp/wizard/change_production_qty.py:78 #: code:addons/mrp/wizard/change_production_qty.py:83 #, python-format msgid "Couldn't find bill of material for product" -msgstr "" +msgstr "製品のための部品表がありません。" #. module: mrp #: report:bom.structure:0 msgid "Product Name" -msgstr "" +msgstr "製品名" #. module: mrp #: code:addons/mrp/mrp.py:503 #, python-format msgid "Invalid action !" -msgstr "" +msgstr "無効なアクションです。" #. module: mrp #: help:mrp.bom,product_efficiency:0 msgid "A factor of 0.9 means a loss of 10% within the production process." -msgstr "" +msgstr "0.9の数は生産過程の中での10%の損失を意味します。" #. module: mrp #: code:addons/mrp/mrp.py:734 #: code:addons/mrp/mrp.py:762 #, python-format msgid "Warning!" -msgstr "" +msgstr "警告" #. module: mrp #: report:mrp.production.order:0 msgid "Printing date" -msgstr "" +msgstr "印刷日" #. module: mrp #: model:process.node,name:mrp.process_node_orderrfq0 #: model:process.node,name:mrp.process_node_rfq0 msgid "RFQ" -msgstr "" +msgstr "見積依頼" #. module: mrp #: model:process.transition,name:mrp.process_transition_producttostockrules0 msgid "Procurement rule" -msgstr "" +msgstr "調達ルール" #. module: mrp #: view:mrp.production:0 msgid "Partial" -msgstr "" +msgstr "部分" #. module: mrp #: report:mrp.production.order:0 msgid "WorkCenter" -msgstr "" +msgstr "作業センタ" #. module: mrp #: model:process.transition,note:mrp.process_transition_procureserviceproduct0 @@ -777,16 +784,17 @@ msgid "" "order creates a RFQ for a subcontracting purchase order or waits until the " "service is done (= the delivery of the products)." msgstr "" +"サービス提供のための選択された方法に応じて、調達オーダーは下請け仕入のための見積依頼を作成するか、またはサービスが完了(製品の配達)するまで待ちます。" #. module: mrp #: selection:mrp.production,priority:0 msgid "Urgent" -msgstr "" +msgstr "緊急" #. module: mrp #: view:mrp.production:0 msgid "Manufacturing Orders which are waiting for raw materials." -msgstr "" +msgstr "原材料を待っている製造オーダーです。" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_workcenter_action @@ -797,71 +805,73 @@ msgid "" "resource leave are not taken into account in the time computation of the " "work center." msgstr "" +"作業センタは製造ユニットを作成し管理します。それらは容量と計画予測のユニットとして考えられる作業員と機械により構成されます。労働時間とリソースの休暇は作業" +"センタの時間計算で考慮されないことに留意して下さい。" #. module: mrp #: model:ir.model,name:mrp.model_mrp_production msgid "Manufacturing Order" -msgstr "" +msgstr "製造オーダー" #. module: mrp #: model:process.transition,name:mrp.process_transition_productionprocureproducts0 msgid "Procurement of raw material" -msgstr "" +msgstr "原材料の調達" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,cycle_total:0 msgid "Total Cycles" -msgstr "" +msgstr "合計サイクル" #. module: mrp #: selection:mrp.production,state:0 msgid "Ready to Produce" -msgstr "" +msgstr "生産準備完了" #. module: mrp #: field:mrp.bom.revision,name:0 msgid "Modification name" -msgstr "" +msgstr "変更の名前" #. module: mrp #: view:mrp.bom:0 #: view:mrp.production:0 msgid "Date" -msgstr "" +msgstr "日付" #. module: mrp #: field:mrp.bom,type:0 msgid "BoM Type" -msgstr "" +msgstr "部品表タイプ" #. module: mrp #: code:addons/mrp/procurement.py:45 #, python-format msgid "" "Procurement '%s' has an exception: 'No BoM defined for this product !'" -msgstr "" +msgstr "調達 %s は例外があります:この製品の部品表が定義されていません。" #. module: mrp #: view:mrp.property:0 msgid "Search" -msgstr "" +msgstr "検索" #. module: mrp #: code:addons/mrp/mrp.py:626 #, python-format msgid "Could not cancel manufacturing order !" -msgstr "" +msgstr "製造オーダーはキャンセルできません。" #. module: mrp #: field:report.workcenter.load,cycle:0 msgid "Nbr of cycle" -msgstr "" +msgstr "サイクル数" #. module: mrp #: model:ir.model,name:mrp.model_res_company msgid "Companies" -msgstr "" +msgstr "会社" #. module: mrp #: code:addons/mrp/mrp.py:627 @@ -869,76 +879,76 @@ msgstr "" msgid "" "You must first cancel related internal picking attached to this " "manufacturing order." -msgstr "" +msgstr "最初に、この製造オーダーに付属している内部集荷の関連をキャンセルする必要があります。" #. module: mrp #: model:process.node,name:mrp.process_node_minimumstockrule0 #: model:process.node,name:mrp.process_node_productminimumstockrule0 msgid "Minimum Stock" -msgstr "" +msgstr "最小在庫" #. module: mrp #: code:addons/mrp/mrp.py:503 #, python-format msgid "Cannot delete a manufacturing order in state '%s'" -msgstr "" +msgstr "製造オーダーは %s 状態であるため削除できません。" #. module: mrp #: model:ir.ui.menu,name:mrp.menus_dash_mrp msgid "Dashboard" -msgstr "" +msgstr "ダッシュボード" #. module: mrp #: code:addons/mrp/report/price.py:160 #: code:addons/mrp/report/price.py:211 #, python-format msgid "Total Cost of %s %s" -msgstr "" +msgstr "合計コスト %s %s" #. module: mrp #: model:process.node,name:mrp.process_node_stockproduct0 #: model:process.node,name:mrp.process_node_stockproduct1 #: model:process.process,name:mrp.process_process_stockableproductprocess0 msgid "Stockable Product" -msgstr "" +msgstr "在庫可能製品" #. module: mrp #: code:addons/mrp/report/price.py:130 #, python-format msgid "Work Center name" -msgstr "" +msgstr "作業センタ名" #. module: mrp #: field:mrp.routing,code:0 msgid "Code" -msgstr "" +msgstr "コード" #. module: mrp #: report:mrp.production.order:0 msgid "No. Of Hours" -msgstr "" +msgstr "時間数" #. module: mrp #: view:mrp.property:0 #: view:mrp.property.group:0 msgid "Property Group" -msgstr "" +msgstr "プロパティグループ" #. module: mrp #: view:mrp.production:0 msgid "Qty" -msgstr "" +msgstr "数量" #. module: mrp #: model:process.node,note:mrp.process_node_production0 msgid "Manufacturing Plan." -msgstr "" +msgstr "製造計画" #. module: mrp #: view:mrp.routing:0 #: view:mrp.workcenter:0 msgid "Inactive" -msgstr "" +msgstr "非アクティブ" #. module: mrp #: view:change.production.qty:0 @@ -947,71 +957,71 @@ msgstr "" #: view:mrp.production:0 #: view:mrp.workcenter.load:0 msgid "Cancel" -msgstr "" +msgstr "キャンセル" #. module: mrp #: code:addons/mrp/wizard/change_production_qty.py:63 #, python-format msgid "Active Id is not found" -msgstr "" +msgstr "アクティブIDが存在しません。" #. module: mrp #: model:process.transition,note:mrp.process_transition_servicerfq0 msgid "" "If the service has a 'Buy' supply method, this creates a RFQ, a " "subcontracting demand for instance." -msgstr "" +msgstr "サービスが供給方法として購入の場合、これは、例えば下請けへの見積依頼を作成します。" #. module: mrp #: field:mrp.production,move_prod_id:0 msgid "Move product" -msgstr "" +msgstr "移動製品" #. module: mrp #: view:mrp.production:0 msgid "Late" -msgstr "" +msgstr "遅延" #. module: mrp #: model:process.node,name:mrp.process_node_servicemts0 msgid "Make to stock" -msgstr "" +msgstr "在庫作成" #. module: mrp #: report:bom.structure:0 msgid "BOM Name" -msgstr "" +msgstr "部品表名" #. module: mrp #: view:mrp.production:0 msgid "Start Production" -msgstr "" +msgstr "生産の開始" #. module: mrp #: model:ir.actions.act_window,name:mrp.open_board_manufacturing #: model:ir.ui.menu,name:mrp.menu_board_manufacturing msgid "Production Dashboard" -msgstr "" +msgstr "生産のダッシュボード" #. module: mrp #: model:res.groups,name:mrp.group_mrp_manager msgid "Manager" -msgstr "" +msgstr "マネジャ" #. module: mrp #: view:mrp.production:0 msgid "Source Loc." -msgstr "" +msgstr "元の場所" #. module: mrp #: field:mrp.bom,position:0 msgid "Internal Reference" -msgstr "" +msgstr "内部参照" #. module: mrp #: model:process.node,note:mrp.process_node_billofmaterial0 msgid "Product's structure" -msgstr "" +msgstr "製品の構成" #. module: mrp #: field:mrp.bom,name:0 @@ -1020,22 +1030,22 @@ msgstr "" #: field:mrp.routing,name:0 #: field:mrp.routing.workcenter,name:0 msgid "Name" -msgstr "" +msgstr "名前" #. module: mrp #: field:mrp.product.produce,mode:0 msgid "Mode" -msgstr "" +msgstr "モード" #. module: mrp #: report:bom.structure:0 msgid "]" -msgstr "" +msgstr "]" #. module: mrp #: field:mrp.workcenter.load,measure_unit:0 msgid "Amount measuring unit" -msgstr "" +msgstr "単位量" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_production_action_planning @@ -1047,28 +1057,30 @@ msgid "" "materials have been defined, OpenERP is capable of automatically deciding on " "the manufacturing route depending on the needs of the company." msgstr "" +"製造オーダーは実行される必要がある操作と各生産段階で原材料の用途について説明しています。仕様(部品表)は原材料の要求と完成製品のための製造オーダーの必要と" +"される処理のために使われます。部品表が定義されると、OpenERPは会社のニーズに依存した製造経路を自動的に決める能力を持っています。" #. module: mrp #: model:ir.actions.todo.category,name:mrp.category_mrp_config msgid "MRP Management" -msgstr "" +msgstr "MRP管理" #. module: mrp #: help:mrp.workcenter,costs_hour:0 msgid "Specify Cost of Work Center per hour." -msgstr "" +msgstr "時間当りの作業センタコストを指定して下さい。" #. module: mrp #: help:mrp.workcenter,capacity_per_cycle:0 msgid "" "Number of operations this Work Center can do in parallel. If this Work " "Center represents a team of 5 workers, the capacity per cycle is 5." -msgstr "" +msgstr "この作業センタが並列に処理できる操作の数。この作業センタが5人の作業員のチームを表すなら、サイクル当りの容量は5となります。" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action3 msgid "Manufacturing Orders in Progress" -msgstr "" +msgstr "製造オーダーは進行中です。" #. module: mrp #: view:mrp.bom:0 @@ -1077,52 +1089,52 @@ msgstr "" #: view:mrp.routing:0 #: view:mrp.workcenter:0 msgid "Group By..." -msgstr "" +msgstr "グループ化…" #. module: mrp #: code:addons/mrp/report/price.py:130 #, python-format msgid "Cycles Cost" -msgstr "" +msgstr "サイクルコスト" #. module: mrp #: selection:mrp.workcenter.load,measure_unit:0 msgid "Amount in cycles" -msgstr "" +msgstr "サイクルの量" #. module: mrp #: field:mrp.production,location_dest_id:0 msgid "Finished Products Location" -msgstr "" +msgstr "完成した製品の場所" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_pm_resources_config msgid "Resources" -msgstr "" +msgstr "リソース" #. module: mrp #: help:mrp.routing.workcenter,hour_nbr:0 msgid "" "Time in hours for this Work Center to achieve the operation of the specified " "routing." -msgstr "" +msgstr "特定経路の操作を達成するためのこの作業センタの時間(時)" #. module: mrp #: field:mrp.workcenter,costs_journal_id:0 msgid "Analytic Journal" -msgstr "" +msgstr "分析仕訳帳" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_workcenter_action #: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp #: field:mrp.routing,workcenter_lines:0 msgid "Work Centers" -msgstr "" +msgstr "作業センタ" #. module: mrp #: selection:mrp.workcenter.load,time_unit:0 msgid "Per week" -msgstr "" +msgstr "週毎" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_routing_action @@ -1132,31 +1144,32 @@ msgid "" "They are attached to bills of materials that will define the required raw " "materials." msgstr "" +"経路は製品の生産のための作業センタの中で行わなければならない製造操作の作成と管理を行います。それには要求された原材料を定義した部品表が添付されます。" #. module: mrp #: model:ir.actions.act_window,name:mrp.product_form_config_action msgid "Create or Import Products" -msgstr "" +msgstr "製品を作成またはインポート" #. module: mrp #: field:report.workcenter.load,hour:0 msgid "Nbr of hour" -msgstr "" +msgstr "時間数" #. module: mrp #: view:mrp.routing:0 msgid "Work Center Operations" -msgstr "" +msgstr "作業センタ操作" #. module: mrp #: view:mrp.routing:0 msgid "Notes" -msgstr "" +msgstr "注記" #. module: mrp #: view:mrp.production:0 msgid "Manufacturing Orders which are ready to start production." -msgstr "" +msgstr "生産開始準備ができた製造オーダーです。" #. module: mrp #: model:ir.model,name:mrp.model_mrp_bom @@ -1164,22 +1177,22 @@ msgstr "" #: field:mrp.production,bom_id:0 #: model:process.node,name:mrp.process_node_billofmaterial0 msgid "Bill of Material" -msgstr "" +msgstr "部品表" #. module: mrp #: view:mrp.workcenter.load:0 msgid "Select time unit" -msgstr "" +msgstr "時間の単位の選択" #. module: mrp #: view:report.workcenter.load:0 msgid "Work Center load" -msgstr "" +msgstr "作業センタの負荷" #. module: mrp #: help:mrp.production,location_dest_id:0 msgid "Location where the system will stock the finished products." -msgstr "" +msgstr "システムが完成した製品を在庫する場所です。" #. module: mrp #: help:mrp.routing.workcenter,routing_id:0 @@ -1188,6 +1201,8 @@ msgid "" "Routing is indicated then,the third tab of a production order (Work Centers) " "will be automatically pre-completed." msgstr "" +"経路は全ての作業センタが長さとサイクルがどのくらい使われるかを示します。経路が示される場合、生産オーダー(作業センタ)の第3のタブは自動的に事前完了します" +"。" #. module: mrp #: model:process.transition,note:mrp.process_transition_producttostockrules0 @@ -1195,93 +1210,93 @@ msgid "" "The Minimum Stock Rule is an automatic procurement rule based on a mini and " "maxi quantity. It's available in the Inventory management menu and " "configured by product." -msgstr "" +msgstr "最小在庫ルールは最小と最大の量に基づき自動調達するルールです。これは在庫管理メニューで利用可能で製品ごとに設定できます。" #. module: mrp #: code:addons/mrp/report/price.py:187 #, python-format msgid "Components Cost of %s %s" -msgstr "" +msgstr "%s %s の構成部品コスト" #. module: mrp #: selection:mrp.workcenter.load,time_unit:0 msgid "Day by day" -msgstr "" +msgstr "日々" #. module: mrp #: view:mrp.bom:0 msgid "Revisions" -msgstr "" +msgstr "改訂" #. module: mrp #: model:product.template,name:mrp.product_shirt_product_template msgid "Shirt" -msgstr "" +msgstr "シャツ" #. module: mrp #: field:mrp.production,priority:0 msgid "Priority" -msgstr "" +msgstr "優先度" #. module: mrp #: model:ir.model,name:mrp.model_stock_picking msgid "Picking List" -msgstr "" +msgstr "集荷リスト" #. module: mrp #: code:addons/mrp/mrp.py:1000 #, python-format msgid "Manufacturing order '%s' is scheduled for the %s." -msgstr "" +msgstr "製造オーダー %s は %s に予定されています。" #. module: mrp #: report:mrp.production.order:0 msgid "Production Order N° :" -msgstr "" +msgstr "s生産オーダー番号:" #. module: mrp #: code:addons/mrp/mrp.py:647 #, python-format msgid "Manufacturing order '%s' is ready to produce." -msgstr "" +msgstr "製造オーダー %s は生産する準備ができています。" #. module: mrp #: model:ir.model,name:mrp.model_mrp_production_product_line msgid "Production Scheduled Product" -msgstr "" +msgstr "生産予定済製品" #. module: mrp #: code:addons/mrp/report/price.py:204 #, python-format msgid "Work Cost of %s %s" -msgstr "" +msgstr "作業コスト %s %s" #. module: mrp #: help:res.company,manufacturing_lead:0 msgid "Security days for each manufacturing operation." -msgstr "" +msgstr "各製造操作の安全保障の日" #. module: mrp #: model:product.template,name:mrp.product_water_product_template msgid "Water" -msgstr "" +msgstr "水" #. module: mrp #: view:mrp.bom:0 msgid "Component Name" -msgstr "" +msgstr "構成部品名" #. module: mrp #: model:process.node,name:mrp.process_node_mts0 #: model:process.transition,name:mrp.process_transition_servicemts0 #: model:process.transition,name:mrp.process_transition_stockmts0 msgid "Make to Stock" -msgstr "" +msgstr "在庫の作成" #. module: mrp #: constraint:mrp.production:0 msgid "Order quantity cannot be negative or zero!" -msgstr "" +msgstr "オーダー数量は負または0にはできません。" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_bom_form_action @@ -1292,108 +1307,110 @@ msgid "" "product needs. You can either create a bill of materials to define specific " "production steps or define a single multi-level bill of materials." msgstr "" +"マスター部品表は完成品を作るために使用される必要な原材料のリストを作成し管理します。OpenERPは製品のニーズに応じて製造オーダーを自動的に提案するため" +"にそれらの部品表を使用します。特定の生産手順の定義や、単一の多層部品表の定義のために部品表を作成できます。" #. module: mrp #: model:process.transition,note:mrp.process_transition_stockrfq0 msgid "" "In case the Supply method of the product is Buy, the system creates a " "purchase order." -msgstr "" +msgstr "製品の供給方法が購入の場合、システムは仕入オーダーを作成します。" #. module: mrp #: model:ir.model,name:mrp.model_procurement_order msgid "Procurement" -msgstr "" +msgstr "調達" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard #: view:mrp.product_price:0 msgid "Product Cost Structure" -msgstr "" +msgstr "製品のコスト構造" #. module: mrp #: code:addons/mrp/report/price.py:139 #, python-format msgid "Components suppliers" -msgstr "" +msgstr "構成部品仕入先" #. module: mrp #: view:mrp.production:0 msgid "Production Work Centers" -msgstr "" +msgstr "生産作業センタ" #. module: mrp #: view:mrp.production:0 msgid "Split in production lots" -msgstr "" +msgstr "生産ロットに分割" #. module: mrp #: view:mrp.workcenter:0 msgid "Search for mrp workcenter" -msgstr "" +msgstr "MRP作業センタの検索" #. module: mrp #: view:mrp.bom:0 msgid "BoM Structure" -msgstr "" +msgstr "部品表の構造" #. module: mrp #: field:mrp.production,date_start:0 msgid "Start Date" -msgstr "" +msgstr "開始日" #. module: mrp #: field:mrp.workcenter,costs_hour_account_id:0 msgid "Hour Account" -msgstr "" +msgstr "時間アカウント" #. module: mrp #: view:mrp.production:0 msgid "Destination Loc." -msgstr "" +msgstr "目的地" #. module: mrp #: field:mrp.bom,method:0 msgid "Method" -msgstr "" +msgstr "方法" #. module: mrp #: view:mrp.production:0 msgid "Pending" -msgstr "" +msgstr "保留中" #. module: mrp #: code:addons/mrp/mrp.py:603 #, python-format msgid "Couldn't find a bill of material for this product." -msgstr "" +msgstr "この製品のための部品表がありません。" #. module: mrp #: field:mrp.bom,active:0 #: field:mrp.routing,active:0 msgid "Active" -msgstr "" +msgstr "アクティブ" #. module: mrp #: model:process.node,name:mrp.process_node_procureproducts0 msgid "Procure Products" -msgstr "" +msgstr "調達製品" #. module: mrp #: view:report.workcenter.load:0 msgid "Work Center Loads" -msgstr "" +msgstr "作業センタの負荷" #. module: mrp #: model:ir.model,name:mrp.model_mrp_bom_revision msgid "Bill of Material Revision" -msgstr "" +msgstr "部品表の改訂" #. module: mrp #: help:mrp.production,origin:0 msgid "" "Reference of the document that generated this production order request." -msgstr "" +msgstr "この生産オーダー要求を生成したドキュメントへの参照" #. module: mrp #: sql_constraint:mrp.bom:0 @@ -1402,56 +1419,58 @@ msgid "" "You should install the mrp_subproduct module if you want to manage extra " "products on BoMs !" msgstr "" +"全製品の数量は0より大きい必要があります。\n" +"部品表上で追加の製品を管理したい場合は、mrp_subproductモジュールをインストールする必要があります。" #. module: mrp #: view:mrp.production:0 msgid "Extra Information" -msgstr "" +msgstr "追加情報" #. module: mrp #: model:ir.model,name:mrp.model_change_production_qty msgid "Change Quantity of Products" -msgstr "" +msgstr "製品の数量変更" #. module: mrp #: model:process.node,note:mrp.process_node_productionorder0 msgid "Drives the procurement orders for raw material." -msgstr "" +msgstr "原材料の調達オーダーを起こす" #. module: mrp #: field:mrp.workcenter,costs_general_account_id:0 msgid "General Account" -msgstr "" +msgstr "一般アカウント" #. module: mrp #: report:mrp.production.order:0 msgid "SO Number" -msgstr "" +msgstr "受注番号" #. module: mrp #: selection:mrp.production,state:0 msgid "Done" -msgstr "" +msgstr "完了" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action4 msgid "Manufacturing Orders Waiting Products" -msgstr "" +msgstr "製造オーダー待ち製品" #. module: mrp #: selection:mrp.production,priority:0 msgid "Not urgent" -msgstr "" +msgstr "緊急外" #. module: mrp #: field:mrp.production,user_id:0 msgid "Responsible" -msgstr "" +msgstr "担当" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action2 msgid "Manufacturing Orders To Start" -msgstr "" +msgstr "製造オーダー開始" #. module: mrp #: model:ir.model,name:mrp.model_mrp_workcenter @@ -1460,12 +1479,12 @@ msgstr "" #: view:mrp.workcenter:0 #: field:report.workcenter.load,workcenter_id:0 msgid "Work Center" -msgstr "" +msgstr "作業センタ" #. module: mrp #: field:mrp.workcenter,capacity_per_cycle:0 msgid "Capacity per Cycle" -msgstr "" +msgstr "サイクル当りの容量" #. module: mrp #: model:ir.model,name:mrp.model_product_product @@ -1476,92 +1495,92 @@ msgstr "" #: report:mrp.production.order:0 #: field:mrp.production.product.line,product_id:0 msgid "Product" -msgstr "" +msgstr "製品" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,hour_total:0 msgid "Total Hours" -msgstr "" +msgstr "合計時間" #. module: mrp #: field:mrp.production,location_src_id:0 msgid "Raw Materials Location" -msgstr "" +msgstr "原材料の場所" #. module: mrp #: view:mrp.product_price:0 msgid "Print Cost Structure of Product." -msgstr "" +msgstr "製品のコスト構造の印刷" #. module: mrp #: field:mrp.bom,product_uos:0 #: field:mrp.production.product.line,product_uos:0 msgid "Product UOS" -msgstr "" +msgstr "製品販売単位" #. module: mrp #: view:mrp.production:0 msgid "Consume Products" -msgstr "" +msgstr "消費製品" #. module: mrp #: model:ir.actions.act_window,name:mrp.act_mrp_product_produce #: view:mrp.product.produce:0 #: view:mrp.production:0 msgid "Produce" -msgstr "" +msgstr "生産" #. module: mrp #: model:process.node,name:mrp.process_node_stock0 #: model:process.transition,name:mrp.process_transition_servicemto0 #: model:process.transition,name:mrp.process_transition_stockproduct0 msgid "Make to Order" -msgstr "" +msgstr "オーダーの作成" #. module: mrp #: code:addons/mrp/mrp.py:358 #, python-format msgid "Copy" -msgstr "" +msgstr "コピー" #. module: mrp #: help:mrp.workcenter,note:0 msgid "" "Description of the Work Center. Explain here what's a cycle according to " "this Work Center." -msgstr "" +msgstr "作業センタの説明。この作業センタは何がサイクルであるかをここで説明して下さい。" #. module: mrp #: view:mrp.production.lot.line:0 msgid "Production Products" -msgstr "" +msgstr "生産製品" #. module: mrp #: field:mrp.production,date_finished:0 msgid "End Date" -msgstr "" +msgstr "終了日" #. module: mrp #: field:mrp.workcenter,resource_id:0 msgid "Resource" -msgstr "" +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 "" +msgstr "部品表や構成部品の妥当性。常に有効な場合は空のままとして下さい。" #. module: mrp #: field:mrp.production,product_uos:0 msgid "Product UoS" -msgstr "" +msgstr "製品販売単位" #. module: mrp #: selection:mrp.production,priority:0 msgid "Very Urgent" -msgstr "" +msgstr "非常に緊急" #. module: mrp #: help:mrp.bom,routing_id:0 @@ -1571,37 +1590,39 @@ msgid "" "operations and to plan future loads on work centers based on production " "planning." msgstr "" +"完成した製品を生産するための操作のリスト(作業センタのリスト)。経路は操作の間の作業センタのコストを計算し、生産計画化を基本とする作業センタの将来の負荷を" +"計画するために主に利用されます。" #. module: mrp #: view:change.production.qty:0 msgid "Approve" -msgstr "" +msgstr "承認" #. module: mrp #: view:mrp.property.group:0 msgid "Properties categories" -msgstr "" +msgstr "プロパティの分類" #. module: mrp #: help:mrp.production.workcenter.line,sequence:0 msgid "Gives the sequence order when displaying a list of work orders." -msgstr "" +msgstr "作業オーダーリストの表示の際には並びの順序を与えて下さい。" #. module: mrp #: report:mrp.production.order:0 msgid "Source Location" -msgstr "" +msgstr "元の場所" #. module: mrp #: view:mrp.production:0 #: view:mrp.production.product.line:0 msgid "Scheduled Products" -msgstr "" +msgstr "予定済製品" #. module: mrp #: view:mrp.production.lot.line:0 msgid "Production Products Consommation" -msgstr "" +msgstr "生産製品の消費" #. module: mrp #: model:ir.actions.act_window,name:mrp.act_product_manufacturing_open @@ -1611,7 +1632,7 @@ msgstr "" #: model:ir.ui.menu,name:mrp.menu_mrp_production_order_action #: view:mrp.production:0 msgid "Manufacturing Orders" -msgstr "" +msgstr "製造オーダー" #. module: mrp #: help:mrp.product.produce,mode:0 @@ -1622,34 +1643,36 @@ msgid "" "the quantity selected and it will finish the production order when total " "ordered quantities are produced." msgstr "" +"消費のみモードでは、製品は選択した量だけを消費します。\n" +"消費と生産モードでは、製品を選択した数量生産すると同様に消費もされます。そして合計注文量が生産された時に生産オーダーが終わります。" #. module: mrp #: view:mrp.production:0 #: report:mrp.production.order:0 msgid "Work Orders" -msgstr "" +msgstr "作業オーダー" #. module: mrp #: field:mrp.workcenter,costs_cycle:0 msgid "Cost per cycle" -msgstr "" +msgstr "サイクル当りのコスト" #. module: mrp #: model:process.node,name:mrp.process_node_serviceproduct0 #: model:process.node,name:mrp.process_node_serviceproduct1 msgid "Service" -msgstr "" +msgstr "サービス" #. module: mrp #: selection:mrp.production,state:0 msgid "Cancelled" -msgstr "" +msgstr "キャンセル済" #. module: mrp #: help:mrp.bom,product_uom:0 msgid "" "UoM (Unit of Measure) is the unit of measurement for the inventory control" -msgstr "" +msgstr "UOMは在庫管理のための単位です。" #. module: mrp #: code:addons/mrp/mrp.py:734 @@ -1658,6 +1681,8 @@ msgid "" "You are going to consume total %s quantities of \"%s\".\n" "But you can only consume up to total %s quantities." msgstr "" +"合計 %s のうち %s を消費しようとしています。\n" +"しかし、あなたは合計 %s の量までのみ使用することができます。" #. module: mrp #: model:process.transition,note:mrp.process_transition_bom0 @@ -1665,7 +1690,7 @@ msgid "" "The Bill of Material is the product's decomposition. The components (that " "are products themselves) can also have their own Bill of Material (multi-" "level)." -msgstr "" +msgstr "部品表は製品を分解したものである。構成部品(それ自身が製品)は自分自身の部品表(多層)を持ちます。" #. module: mrp #: field:mrp.bom,company_id:0 @@ -1674,17 +1699,17 @@ msgstr "" #: field:mrp.routing.workcenter,company_id:0 #: view:mrp.workcenter:0 msgid "Company" -msgstr "" +msgstr "会社" #. module: mrp #: selection:mrp.workcenter.load,measure_unit:0 msgid "Amount in hours" -msgstr "" +msgstr "時間の量" #. module: mrp #: field:mrp.workcenter,time_cycle:0 msgid "Time for 1 cycle (hour)" -msgstr "" +msgstr "サイクル当りの時間(時)" #. module: mrp #: model:ir.actions.report.xml,name:mrp.report_mrp_production_report @@ -1693,61 +1718,61 @@ msgstr "" #: model:process.node,name:mrp.process_node_production0 #: model:process.node,name:mrp.process_node_productionorder0 msgid "Production Order" -msgstr "" +msgstr "生産オーダー" #. module: mrp #: model:process.node,note:mrp.process_node_productminimumstockrule0 msgid "Automatic procurement rule" -msgstr "" +msgstr "自動調達ルール" #. module: mrp #: view:mrp.production:0 msgid "Compute Data" -msgstr "" +msgstr "データ計算" #. module: mrp #: field:mrp.production,product_uos_qty:0 msgid "Product UoS Qty" -msgstr "" +msgstr "製品販売単位数量" #. module: mrp #: code:addons/mrp/report/price.py:139 #: view:mrp.bom:0 #, python-format msgid "Components" -msgstr "" +msgstr "構成部品" #. module: mrp #: report:bom.structure:0 #: model:ir.actions.report.xml,name:mrp.report_bom_structure msgid "BOM Structure" -msgstr "" +msgstr "部品表構造" #. module: mrp #: field:mrp.bom,date_stop:0 msgid "Valid Until" -msgstr "" +msgstr "失効日" #. module: mrp #: field:mrp.bom,date_start:0 msgid "Valid From" -msgstr "" +msgstr "発効日" #. module: mrp #: selection:mrp.bom,type:0 msgid "Normal BoM" -msgstr "" +msgstr "通常部品表" #. module: mrp #: field:res.company,manufacturing_lead:0 msgid "Manufacturing Lead Time" -msgstr "" +msgstr "製造リードタイム" #. module: mrp #: field:mrp.bom,product_uos_qty:0 #: field:mrp.production.product.line,product_uos_qty:0 msgid "Product UOS Qty" -msgstr "" +msgstr "製品販売単位数量" #. module: mrp #: model:ir.actions.act_window,help:mrp.action_report_in_out_picking_tree @@ -1755,49 +1780,49 @@ msgid "" "Weekly Stock Value Variation enables you to track the stock value evolution " "linked to manufacturing activities, receptions of products and delivery " "orders." -msgstr "" +msgstr "週次在庫価値変動は生産活動、製品の受付と配達オーダーと関連付けられている在庫価値の変化を追跡できます。" #. module: mrp #: view:mrp.product.produce:0 msgid "Confirm" -msgstr "" +msgstr "確認" #. module: mrp #: field:mrp.bom,product_efficiency:0 msgid "Manufacturing Efficiency" -msgstr "" +msgstr "製造の効率化" #. module: mrp #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "エラー。再帰的な関係となる会社を作ることはできません。" #. module: mrp #: help:mrp.bom,active:0 msgid "" "If the active field is set to False, it will allow you to hide the bills of " "material without removing it." -msgstr "" +msgstr "アクティブな項目をFalseに設定すると、部品表は削除することなく非表示にできます。" #. module: mrp #: field:mrp.bom,product_rounding:0 msgid "Product Rounding" -msgstr "" +msgstr "製品の丸め" #. module: mrp #: selection:mrp.production,state:0 msgid "New" -msgstr "" +msgstr "新規" #. module: mrp #: selection:mrp.product.produce,mode:0 msgid "Consume Only" -msgstr "" +msgstr "消費のみ" #. module: mrp #: view:mrp.production:0 msgid "Recreate Picking" -msgstr "" +msgstr "集荷の再作成" #. module: mrp #: help:mrp.bom,type:0 @@ -1808,6 +1833,8 @@ msgid "" "product, it will be sold and shipped as a set of components, instead of " "being produced." msgstr "" +"サブ製品が複数の製品の中で使われている場合、それ自身の部品表を作成すると便利です。このサブ製品のために分離された生産オーダーを望まない場合、部品表タイプに" +"設定 / 模型を選択して下さい。模型部品表が根幹の製品に使われる場合、生産される代わりに構成部品のセットとして販売され、出荷されます。" #. module: mrp #: help:mrp.production,state:0 @@ -1820,159 +1847,165 @@ msgid "" " When the production gets started then the state is set to 'In Production'.\n" " When the production is over, the state is set to 'Done'." msgstr "" +"生産オーダーが作成された時、状態はドラフトに設定されます。\n" +" オーダーが確認されると、状態は商品待ちに設定されます。\n" +" 何か例外がある場合は、状態は集荷例外に設定されます。\n" +"在庫が使用可能になった時に、状態は生産準備完了に設定されます。\n" +" 生産が開始されると、状態は生産中に設定されます。\n" +" 生産が終了すると、状態は完了に設定されます。" #. module: mrp #: selection:mrp.bom,method:0 msgid "On Order" -msgstr "" +msgstr "注文中" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_configuration #: view:res.company:0 msgid "Configuration" -msgstr "" +msgstr "設定" #. module: mrp #: view:mrp.bom:0 msgid "Starting Date" -msgstr "" +msgstr "開始日" #. module: mrp #: field:mrp.workcenter,time_stop:0 msgid "Time after prod." -msgstr "" +msgstr "生産後の時間" #. module: mrp #: field:mrp.workcenter.load,time_unit:0 msgid "Type of period" -msgstr "" +msgstr "期間のタイプ" #. module: mrp #: view:mrp.production:0 msgid "Total Qty" -msgstr "" +msgstr "合計数量" #. module: mrp #: field:mrp.routing.workcenter,hour_nbr:0 msgid "Number of Hours" -msgstr "" +msgstr "時間数" #. module: mrp #: view:mrp.workcenter:0 msgid "Costing Information" -msgstr "" +msgstr "コスト情報" #. module: mrp #: model:process.node,name:mrp.process_node_purchaseprocure0 msgid "Procurement Orders" -msgstr "" +msgstr "調達オーダー" #. module: mrp #: help:mrp.bom,product_rounding:0 msgid "Rounding applied on the product quantity." -msgstr "" +msgstr "丸めは製品数量に適用されます。" #. module: mrp #: model:process.node,note:mrp.process_node_stock0 msgid "Assignment from Production or Purchase Order." -msgstr "" +msgstr "生産または仕入オーダーから割り当てて下さい。" #. module: mrp #: field:mrp.routing.workcenter,routing_id:0 msgid "Parent Routing" -msgstr "" +msgstr "親経路" #. module: mrp #: help:mrp.workcenter,time_start:0 msgid "Time in hours for the setup." -msgstr "" +msgstr "設定のための時間(時)" #. module: mrp #: model:product.template,name:mrp.product_orangejuice_product_template msgid "Orange Juice" -msgstr "" +msgstr "オレンジジュース" #. module: mrp #: field:mrp.bom.revision,bom_id:0 #: field:procurement.order,bom_id:0 msgid "BoM" -msgstr "" +msgstr "部品表" #. module: mrp #: model:ir.model,name:mrp.model_report_mrp_inout #: view:report.mrp.inout:0 msgid "Stock value variation" -msgstr "" +msgstr "在庫価値変動" #. module: mrp #: model:process.node,note:mrp.process_node_mts0 #: model:process.node,note:mrp.process_node_servicemts0 msgid "Assignment from stock." -msgstr "" +msgstr "在庫から割り当てて下さい。" #. module: mrp #: selection:mrp.production,state:0 msgid "Waiting Goods" -msgstr "" +msgstr "待機商品" #. module: mrp #: field:mrp.bom.revision,last_indice:0 msgid "last indice" -msgstr "" +msgstr "最終インデックス" #. module: mrp #: field:mrp.bom,revision_ids:0 #: view:mrp.bom.revision:0 msgid "BoM Revisions" -msgstr "" +msgstr "部品表改訂" #. module: mrp #: field:report.mrp.inout,date:0 #: field:report.workcenter.load,name:0 msgid "Week" -msgstr "" +msgstr "週" #. module: mrp #: selection:mrp.production,priority:0 msgid "Normal" -msgstr "" +msgstr "通常" #. module: mrp #: view:mrp.production:0 msgid "Production started late" -msgstr "" +msgstr "生産が遅れて開始" #. module: mrp #: model:process.node,note:mrp.process_node_routing0 msgid "Manufacturing Steps." -msgstr "" +msgstr "製造工程" #. module: mrp #: code:addons/mrp/report/price.py:146 #: model:ir.actions.report.xml,name:mrp.report_cost_structure #, python-format msgid "Cost Structure" -msgstr "" +msgstr "コスト構造" #. module: mrp #: model:res.groups,name:mrp.group_mrp_user msgid "User" -msgstr "" +msgstr "ユーザ" #. module: mrp #: selection:mrp.product.produce,mode:0 msgid "Consume & Produce" -msgstr "" +msgstr "消費と生産" #. module: mrp #: field:mrp.bom,bom_id:0 msgid "Parent BoM" -msgstr "" +msgstr "親部品表" #. module: mrp #: report:bom.structure:0 msgid "BOM Ref" -msgstr "" +msgstr "部品表参照" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2 @@ -1981,11 +2014,13 @@ msgid "" "master bills of materials. Use this menu to search in which BoM a specific " "component is used." msgstr "" +"構成部品の部品表はマスター部品表を作成するために使われる構成部品とサブ製品です。特定の構成部品が使われている部品表を検索するにはこのメニューを使って下さい" +"。" #. module: mrp #: model:product.uom,name:mrp.product_uom_litre msgid "Litre" -msgstr "" +msgstr "リットル" #. module: mrp #: code:addons/mrp/mrp.py:762 @@ -1994,11 +2029,13 @@ msgid "" "You are going to produce total %s quantities of \"%s\".\n" "But you can only produce up to total %s quantities." msgstr "" +"合計 %s の %s を生産しようとしています。\n" +"しかし、あなたは合計 %s の量までのみ生産することができます。" #. module: mrp #: model:process.node,note:mrp.process_node_stockproduct0 msgid "Product type is Stockable or Consumable." -msgstr "" +msgstr "製品タイプは在庫可能または消費可能です。" #. module: mrp #: code:addons/mrp/mrp.py:603 @@ -2006,17 +2043,17 @@ msgstr "" #: code:addons/mrp/wizard/change_production_qty.py:83 #, python-format msgid "Error" -msgstr "" +msgstr "エラー" #. module: mrp #: selection:mrp.production,state:0 msgid "Production Started" -msgstr "" +msgstr "生産開始済" #. module: mrp #: field:mrp.product.produce,product_qty:0 msgid "Select Quantity" -msgstr "" +msgstr "数量選択" #. module: mrp #: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom @@ -2024,7 +2061,7 @@ msgstr "" #: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action #: field:product.product,bom_ids:0 msgid "Bill of Materials" -msgstr "" +msgstr "部品表" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_property_action @@ -2035,18 +2072,18 @@ msgstr "" #: view:procurement.order:0 #: field:procurement.order,property_ids:0 msgid "Properties" -msgstr "" +msgstr "プロパティ" #. module: mrp #: view:mrp.routing.workcenter:0 #: view:mrp.workcenter:0 msgid "General Information" -msgstr "" +msgstr "一般情報" #. module: mrp #: view:mrp.production:0 msgid "Productions" -msgstr "" +msgstr "生産" #. module: mrp #: model:ir.model,name:mrp.model_mrp_routing @@ -2057,59 +2094,59 @@ msgstr "" #: view:mrp.routing:0 #: model:process.node,name:mrp.process_node_routing0 msgid "Routing" -msgstr "" +msgstr "経路" #. module: mrp #: field:mrp.production,date_planned:0 msgid "Scheduled date" -msgstr "" +msgstr "予定日" #. module: mrp #: constraint:stock.move:0 msgid "You must assign a production lot for this product" -msgstr "" +msgstr "この製品に生産ロットを割り当てて下さい。" #. module: mrp #: field:stock.move,production_id:0 msgid "Production" -msgstr "" +msgstr "生産" #. module: mrp #: model:ir.model,name:mrp.model_mrp_production_workcenter_line #: field:mrp.production.workcenter.line,name:0 msgid "Work Order" -msgstr "" +msgstr "作業オーダー" #. module: mrp #: view:board.board:0 msgid "Procurements in Exception" -msgstr "" +msgstr "例外の調達" #. module: mrp #: model:process.transition,name:mrp.process_transition_minimumstockprocure0 msgid "'Minimum stock rule' material" -msgstr "" +msgstr "材料の最上在庫ルール" #. module: mrp #: model:ir.model,name:mrp.model_mrp_product_price msgid "Product Price" -msgstr "" +msgstr "製品価格" #. module: mrp #: model:ir.model,name:mrp.model_stock_move_split msgid "Split in Production lots" -msgstr "" +msgstr "生産ロットに分割" #. module: mrp #: view:change.production.qty:0 msgid "Change Quantity" -msgstr "" +msgstr "数量変更" #. module: mrp #: view:change.production.qty:0 #: model:ir.actions.act_window,name:mrp.action_change_production_qty msgid "Change Product Qty" -msgstr "" +msgstr "製品数量変更" #. module: mrp #: view:mrp.bom.revision:0 @@ -2122,45 +2159,45 @@ msgstr "" #: view:mrp.workcenter:0 #: field:mrp.workcenter,note:0 msgid "Description" -msgstr "" +msgstr "説明" #. module: mrp #: view:board.board:0 msgid "Manufacturing board" -msgstr "" +msgstr "製造ボード" #. module: mrp #: field:mrp.production,date_planned_end:0 msgid "Scheduled End Date" -msgstr "" +msgstr "終了予定日" #. module: mrp #: model:process.node,note:mrp.process_node_procureproducts0 msgid "The way to procurement depends on the product type." -msgstr "" +msgstr "調達方法は製品タイプに依存します。" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing msgid "Manufacturing" -msgstr "" +msgstr "製造" #. module: mrp #: view:board.board:0 msgid "Next Production Orders" -msgstr "" +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 Groups" -msgstr "" +msgstr "プロパティグループ" #. module: mrp #: model:process.transition,note:mrp.process_transition_procurestockableproduct0 msgid "" "Depending on the chosen method to supply the stockable products, the " "procurement order creates a RFQ, a production order, ... " -msgstr "" +msgstr "在庫可能製品の供給をするために選択された方法にしたがって、調達オーダーは見積依頼や生産オーダーなどを作成します。 " #. module: mrp #: code:addons/mrp/mrp.py:874 @@ -2168,24 +2205,24 @@ msgstr "" #: code:addons/mrp/mrp.py:954 #, python-format msgid "PROD: %s" -msgstr "" +msgstr "生産:%s" #. module: mrp #: help:mrp.workcenter,time_stop:0 msgid "Time in hours for the cleaning." -msgstr "" +msgstr "清掃のための時間(時)" #. module: mrp #: model:process.transition,name:mrp.process_transition_purchaseprocure0 msgid "Automatic RFQ" -msgstr "" +msgstr "自動見積依頼" #. module: mrp #: model:process.transition,note:mrp.process_transition_servicemto0 msgid "" "If the service has a 'Produce' supply method, this creates a task in the " "project management module of OpenERP." -msgstr "" +msgstr "サービスが提供方法として生産であるなら、これはOpenERPのプロジェクト管理モジュールの中にタスクを生成します。" #. module: mrp #: model:process.transition,note:mrp.process_transition_productionprocureproducts0 @@ -2194,18 +2231,20 @@ msgid "" "production order creates as much procurement orders as components listed in " "the BOM, through a run of the schedulers (MRP)." msgstr "" +"原料を供給するために(仕入または生産される)、生産オーダーはMRPスケジューラを実行することを通して、部品表にリストされている構成部品と同様の調達オーダー" +"を作成します。" #. module: mrp #: help:mrp.product_price,number:0 msgid "" "Specify quantity of products to produce or buy. Report of Cost structure " "will be displayed base on this quantity." -msgstr "" +msgstr "生産あるいは購入する製品の数量を指定して下さい。コスト構造のレポートはこの数量を元にして表示されます。" #. module: mrp #: selection:mrp.bom,method:0 msgid "On Stock" -msgstr "" +msgstr "在庫" #. module: mrp #: field:mrp.bom,sequence:0 @@ -2213,21 +2252,21 @@ msgstr "" #: field:mrp.production.workcenter.line,sequence:0 #: field:mrp.routing.workcenter,sequence:0 msgid "Sequence" -msgstr "" +msgstr "順序" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp msgid "Resource Leaves" -msgstr "" +msgstr "リソースの休暇" #. module: mrp #: help:mrp.bom,sequence:0 msgid "Gives the sequence order when displaying a list of bills of material." -msgstr "" +msgstr "部品表のリストを表示する際には並び順を与えて下さい。" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,move_lines:0 #: report:mrp.production.order:0 msgid "Products to Consume" -msgstr "" +msgstr "消費製品" diff --git a/addons/mrp_jit/i18n/ja.po b/addons/mrp_jit/i18n/ja.po new file mode 100644 index 00000000000..3958d6d94ce --- /dev/null +++ b/addons/mrp_jit/i18n/ja.po @@ -0,0 +1,64 @@ +# Japanese 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-01-11 11:15+0000\n" +"PO-Revision-Date: 2012-05-30 23:20+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_jit +#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information +msgid "MRP JIT" +msgstr "MRPジャストインタイム" + +#. module: mrp_jit +#: model:ir.module.module,description:mrp_jit.module_meta_information +msgid "" +"\n" +" This module allows Just In Time computation of procurement orders.\n" +"\n" +" If you install this module, you will not have to run the regular " +"procurement \n" +" scheduler anymore (but you still need to run the minimum order point " +"rule \n" +" scheduler, or for example let it run daily.)\n" +" All procurement orders will be processed immediately, which could in " +"some\n" +" cases entail a small performance impact.\n" +"\n" +" It may also increase your stock size because products are reserved as " +"soon\n" +" as possible and the scheduler time range is not taken into account " +"anymore. \n" +" In that case, you can not use priorities any more on the different " +"picking.\n" +" \n" +" \n" +" " +msgstr "" +"\n" +" このモジュールは調達オーダーのジャストインタイム計算を行います。\n" +"\n" +" このモジュールをインストールしたなら、もう定期的な調達スケジューラを実行させる必要は \n" +" ありません(しかし、まだ最小発注点ルールスケジューラを実行するか、または、例えば、\n" +" それを毎日実行させる必要があります)。\n" +" 全ての調達オーダーは即座に実行されますが、幾つかのケースにおいてはパフォーマンス\n" +" に多少影響するかもしれません。\n" +"\n" +" 製品は可能な限り早く予約され、もはやスケジュールI時間の範囲は考慮されないので、\n" +" 在庫サイズは増えることになるかも知れません。\n" +" そのケースには異なる集荷による優先度をもはや使うことはできません。\n" +" \n" +" \n" +" " diff --git a/addons/mrp_operations/i18n/ja.po b/addons/mrp_operations/i18n/ja.po new file mode 100644 index 00000000000..02be80e9da7 --- /dev/null +++ b/addons/mrp_operations/i18n/ja.po @@ -0,0 +1,836 @@ +# Japanese 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 04:26+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_action_planning +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_order +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +msgid "Work Orders" +msgstr "作業オーダー" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:489 +#, python-format +msgid "Operation is already finished!" +msgstr "操作は既に終了しています。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_canceloperation0 +msgid "Cancel the operation." +msgstr "操作のキャンセル" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_operations_operation_code +msgid "mrp_operations.operation.code" +msgstr "" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_workorder0 +msgid "Information from the routing definition." +msgstr "経路定義からの情報" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "March" +msgstr "3月" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_resource_planning +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_resource_planning +msgid "Work Centers" +msgstr "作業センタ" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Resume" +msgstr "再開" + +#. module: mrp_operations +#: report:mrp.code.barcode:0 +msgid "(" +msgstr "(" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Product to Produce" +msgstr "生産製品" + +#. module: mrp_operations +#: view:mrp_operations.operation:0 +msgid "Production Operation" +msgstr "製造操作" + +#. module: mrp_operations +#: view:mrp.production:0 +msgid "Set to Draft" +msgstr "ドラフトに設定" + +#. module: mrp_operations +#: field:mrp.production,allow_reorder:0 +msgid "Free Serialisation" +msgstr "自由な直列化" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_production +msgid "Manufacturing Order" +msgstr "製造オーダー" + +#. module: mrp_operations +#: model:process.process,name:mrp_operations.process_process_mrpoperationprocess0 +msgid "Mrp Operations" +msgstr "MRP操作" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,day:0 +msgid "Day" +msgstr "日" + +#. module: mrp_operations +#: view:mrp.production:0 +msgid "Cancel Order" +msgstr "オーダーのキャンセル" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_productionorder0 +msgid "Production Order" +msgstr "生産オーダー" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Picking Exception" +msgstr "例外の集荷" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_productionstart0 +msgid "Creation of the work order" +msgstr "作業オーダーの作成" + +#. module: mrp_operations +#: help:mrp.production.workcenter.line,state:0 +msgid "" +"* When a work order is created it is set in 'Draft' state.\n" +"* When user sets work order in start mode that time it will be set in 'In " +"Progress' state.\n" +"* 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' state.\n" +"* When the user cancels the work order it will be set in 'Canceled' state.\n" +"* When order is completely processed that time it is set in 'Finished' state." +msgstr "" +"・ 作業オーダーが作成されると、それはドラフト状態に設定されます。\n" +"・ ユーザが作業オーダーに開始モードを設定すると、それは進行中に設定されます。\n" +"・ 作業オーダーが実行中モードになった時にユーザが停止やオーダーを変更した場合、保留中状態に設定されます。\n" +"・ ユーザが作業オーダーをキャンセルすると、キャンセル済状態に設定されます。\n" +"・ オーダーが完全に処理されると、完了状態に設定されます。" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_productionstart0 +msgid "The work orders are created on the basis of the production order." +msgstr "作業オーダーは生産オーダーを元にして作成されます。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:134 +#: code:addons/mrp_operations/mrp_operations.py:470 +#: code:addons/mrp_operations/mrp_operations.py:474 +#: code:addons/mrp_operations/mrp_operations.py:486 +#: code:addons/mrp_operations/mrp_operations.py:489 +#, python-format +msgid "Error!" +msgstr "エラー" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Cancelled" +msgstr "キャンセル済" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:486 +#, python-format +msgid "There is no Operation to be cancelled!" +msgstr "キャンセルされる操作がありません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:482 +#, python-format +msgid "Operation is Already Cancelled!" +msgstr "操作は既にキャンセル済です。" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_operation_action +#: view:mrp.production.workcenter.line:0 +msgid "Operations" +msgstr "操作" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_stock_move +msgid "Stock Move" +msgstr "在庫移動" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:479 +#, python-format +msgid "" +"In order to Finish the operation, it must be in the Start or Resume state!" +msgstr "操作を完了するには、開始か再開状態でなければなりません。" + +#. module: mrp_operations +#: field:mrp.workorder,nbr:0 +msgid "# of Lines" +msgstr "行数" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Finish Order" +msgstr "オーダーの完了" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_finished:0 +#: field:mrp.production.workcenter.line,date_planned_end:0 +#: field:mrp_operations.operation,date_finished:0 +msgid "End Date" +msgstr "終了日" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "In Production" +msgstr "生産中" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: field:mrp.production.workcenter.line,state:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,state:0 +msgid "State" +msgstr "状態" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,production_state:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.action_report_mrp_workorder +#: model:ir.model,name:mrp_operations.model_mrp_production_workcenter_line +msgid "Work Order" +msgstr "作業オーダー" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_workstartoperation0 +msgid "" +"There is 1 work order per work center. The information about the number of " +"cycles or the cycle time." +msgstr "作業センタごとに1つの作業オーダーがあります。サイクルの数あるいはサイクル時間についての情報です。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Month -1" +msgstr "月 -1" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,uom:0 +msgid "UOM" +msgstr "単位" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "タイプビューの場所から、あるいは場所へは製品を動かすことはできません。" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Planned Date" +msgstr "予定日" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,product_qty:0 +msgid "Product Qty" +msgstr "製品数量" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:134 +#, python-format +msgid "Manufacturing order cannot start in state \"%s\"!" +msgstr "製造オーダーは %s 状態であるため開始できません。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "July" +msgstr "7月" + +#. module: mrp_operations +#: field:mrp_operations.operation.code,name:0 +msgid "Operation Name" +msgstr "操作名" + +#. module: mrp_operations +#: field:mrp_operations.operation.code,start_stop:0 +msgid "Status" +msgstr "状態" + +#. module: mrp_operations +#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_planning +msgid "" +"To manufacture or assemble products, and use raw materials and finished " +"products you must also handle manufacturing operations. Manufacturing " +"operations are often called Work Orders. The various operations will have " +"different impacts on the costs of manufacturing and planning depending on " +"the available workload." +msgstr "" +"製品を製造または組み立て、原材料を使って製品を完成させるために、製造操作を処理しなくてはなりません。製造操作はよく、作業オーダーと呼ばれます。多種な操作は" +"製造と使用可能な作業負荷に応じた計画のコストに異なる影響を持ちます。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Year" +msgstr "計画年" + +#. module: mrp_operations +#: field:mrp_operations.operation,order_date:0 +msgid "Order Date" +msgstr "オーダー日" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_draft_action +msgid "Future Work Orders" +msgstr "将来の作業オーダー" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders during last month" +msgstr "先月の作業オーダー" + +#. module: mrp_operations +#: help:mrp.production.workcenter.line,delay:0 +msgid "The elapsed time between operation start and stop in this Work Center" +msgstr "この作業センタでの操作の開始と終了の間の経過時間" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_canceloperation0 +msgid "Operation Cancelled" +msgstr "操作はキャンセルされました。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Pause Work Order" +msgstr "作業オーダーの中断" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "September" +msgstr "9月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "December" +msgstr "12月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,month:0 +msgid "Month" +msgstr "月" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Canceled" +msgstr "キャンセル済" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_operations_operation +msgid "mrp_operations.operation" +msgstr "" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_workorder +msgid "Work Order Report" +msgstr "作業オーダーレポート" + +#. module: mrp_operations +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "オーダー数量は負または0にはできません。" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_start:0 +#: field:mrp.production.workcenter.line,date_start_date:0 +#: field:mrp_operations.operation,date_start:0 +msgid "Start Date" +msgstr "開始日" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Waiting Goods" +msgstr "待機商品" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders made during current year" +msgstr "現在年中になされた作業オーダー" + +#. module: mrp_operations +#: selection:mrp.workorder,state:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Pause" +msgstr "一時停止" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "In Progress" +msgstr "進行中" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:470 +#, python-format +msgid "" +"In order to Pause the operation, it must be in the Start or Resume state!" +msgstr "操作を一時停止するには、開始または再開状態でなければなりません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:474 +#, python-format +msgid "In order to Resume the operation, it must be in the Pause state!" +msgstr "操作を再開するには、一時停止状態でなければなりません。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Start" +msgstr "開始" + +#. module: mrp_operations +#: view:mrp_operations.operation:0 +msgid "Calendar View" +msgstr "カレンダービュー" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_startcanceloperation0 +msgid "" +"When the operation needs to be cancelled, you can do it in the work order " +"form." +msgstr "操作をキャンセルする必要がある時、作業オーダーフォームの中で行うことができます。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Set Draft" +msgstr "ドラフトにセット" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +msgid "Pending" +msgstr "保留中" + +#. module: mrp_operations +#: view:mrp_operations.operation.code:0 +msgid "Production Operation Code" +msgstr "生産操作コード" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:466 +#, python-format +msgid "" +"Operation has already started !Youcan either Pause/Finish/Cancel the " +"operation" +msgstr "操作は既に開始されました。一時停止 / 完了 / キャンセル操作ができます。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "August" +msgstr "8月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Started" +msgstr "開始済" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Production started late" +msgstr "生産が遅れて開始" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Day" +msgstr "計画日" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "June" +msgstr "6月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,total_cycles:0 +msgid "Total Cycles" +msgstr "合計サイクル" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Ready to Produce" +msgstr "生産準備完了" + +#. module: mrp_operations +#: field:stock.move,move_dest_id_lines:0 +msgid "Children Moves" +msgstr "子の移動" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_planning +msgid "Work Orders Planning" +msgstr "作業オーダー計画" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: field:mrp.workorder,date:0 +msgid "Date" +msgstr "日付" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "November" +msgstr "11月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Search" +msgstr "検索" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "October" +msgstr "10月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "January" +msgstr "1月" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Resume Work Order" +msgstr "作業オーダーの再開" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_doneoperation0 +msgid "Finish the operation." +msgstr "操作の終了" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:459 +#, python-format +msgid "Operation is not started yet !" +msgstr "操作はまだ開始されていません。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_productionorder0 +msgid "Information from the production order." +msgstr "生産オーダーからの情報" + +#. module: mrp_operations +#: sql_constraint:mrp.production:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:459 +#: code:addons/mrp_operations/mrp_operations.py:466 +#: code:addons/mrp_operations/mrp_operations.py:479 +#: code:addons/mrp_operations/mrp_operations.py:482 +#, python-format +msgid "Sorry!" +msgstr "残念です。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Current" +msgstr "現在" + +#. module: mrp_operations +#: field:mrp_operations.operation,code_id:0 +#: field:mrp_operations.operation.code,code:0 +msgid "Code" +msgstr "コード" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_confirm_action +msgid "Confirmed Work Orders" +msgstr "確認済作業オーダー" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_code_action +msgid "Operation Codes" +msgstr "操作コード" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,qty:0 +msgid "Qty" +msgstr "数量" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_doneoperation0 +msgid "Operation Done" +msgstr "操作完了" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +#: view:mrp.workorder:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Done" +msgstr "完了" + +#. module: mrp_operations +#: model:ir.actions.report.xml,name:mrp_operations.report_code_barcode +msgid "Start/Stop Barcode" +msgstr "開始 / 停止バーコード" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: mrp_operations +#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_form +msgid "" +"Work Orders is the list of operations to be performed for each manufacturing " +"order. Once you start the first work order of a manufacturing order, the " +"manufacturing order is automatically marked as started. Once you finish the " +"latest operation of a manufacturing order, the MO is automatically done and " +"the related products are produced." +msgstr "" +"作業オーダーは各製造オーダーを実行するための操作のリストです。製造オーダーの最初の作業オーダーを開始すると、製造オーダーは自動的に開始したとマークされます" +"。製造オーダーの最後の操作が終わると、製造オーダーは自動的に完了となり関連製品は生産されます。" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_startoperation0 +msgid "Start Operation" +msgstr "操作を開始" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Information" +msgstr "情報" + +#. module: mrp_operations +#: model:ir.actions.report.xml,name:mrp_operations.report_wc_barcode +msgid "Work Centers Barcode" +msgstr "作業センターバーコード" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "この製品に生産ロットを割り当てて下さい。" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Late" +msgstr "遅延" + +#. module: mrp_operations +#: field:mrp.workorder,delay:0 +msgid "Delay" +msgstr "遅延" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,production_id:0 +#: field:mrp_operations.operation,production_id:0 +msgid "Production" +msgstr "生産" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Search Work Orders" +msgstr "作業オーダーの検索" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,workcenter_id:0 +#: field:mrp_operations.operation,workcenter_id:0 +#: model:process.node,name:mrp_operations.process_node_workorder0 +msgid "Work Center" +msgstr "作業センタ" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Real" +msgstr "実物" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_planned:0 +msgid "Scheduled Date" +msgstr "予定日" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,product:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,total_hours:0 +msgid "Total Hours" +msgstr "合計時間" + +#. module: mrp_operations +#: help:mrp.production,allow_reorder:0 +msgid "" +"Check this to be able to move independently all production orders, without " +"moving dependent ones." +msgstr "依存する物を動かすことなく、全ての製造オーダー独立して移動させるためにはこれをチェックして下さい。" + +#. module: mrp_operations +#: report:mrp.code.barcode:0 +msgid ")" +msgstr ")" + +#. module: mrp_operations +#: model:ir.ui.menu,name:mrp_operations.menu_report_mrp_workorders_tree +msgid "Work Order Analysis" +msgstr "作業オーダー分析" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "Finished" +msgstr "完了" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Hours by Work Center" +msgstr "作業センター毎の時間" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,delay:0 +msgid "Working Hours" +msgstr "労働時間" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Month" +msgstr "計画月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "February" +msgstr "2月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders made during current month" +msgstr "現在月中になされた作業オーダー" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_startcanceloperation0 +msgid "Operation cancelled" +msgstr "操作はキャンセルされました。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_startoperation0 +msgid "Start the operation." +msgstr "操作を開始します。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "April" +msgstr "4月" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_startdoneoperation0 +msgid "Operation done" +msgstr "操作完了" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "#Line Orders" +msgstr "オーダー行数" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Start Working" +msgstr "作業開始" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_startdoneoperation0 +msgid "" +"When the operation is finished, the operator updates the system by finishing " +"the work order." +msgstr "操作が完了した時、操作者は作業オーダーを終えるとシステムを更新します。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "May" +msgstr "5月" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_workstartoperation0 +msgid "Details of the work order" +msgstr "作業オーダーの詳細" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,production_state:0 +msgid "Production State" +msgstr "生産状態" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,year:0 +msgid "Year" +msgstr "年" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Duration" +msgstr "期間" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "違う製品のロットを割り当てることはできません。" diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index 53a14fe52da..30c0202ff98 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -57,10 +57,6 @@ - - - - diff --git a/addons/mrp_repair/i18n/ja.po b/addons/mrp_repair/i18n/ja.po new file mode 100644 index 00000000000..2b3d8b6b3d0 --- /dev/null +++ b/addons/mrp_repair/i18n/ja.po @@ -0,0 +1,795 @@ +# Japanese 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 04:27+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Fees Line" +msgstr "料金行" + +#. module: mrp_repair +#: help:mrp.repair,state:0 +msgid "" +" * The 'Draft' state is used when a user is encoding a new and unconfirmed " +"repair order. \n" +"* The 'Confirmed' state is used when a user confirms the repair order. " +" \n" +"* The 'Ready to Repair' state is used to start to repairing, user can start " +"repairing only after repair order is confirmed. \n" +"* The 'To be Invoiced' state is used to generate the invoice before or after " +"repairing done. \n" +"* The 'Done' state is set when repairing is completed. \n" +"* The 'Cancelled' state is used when user cancel repair order." +msgstr "" +" ・ ドラフト状態は、ユーザが未確認の修理オーダーを新たにエンコードした時に使われます。\n" +"・ 確認済状態は、ユーザが修理オーダーを確認した時に使われます。\n" +"・ 修理準備完了状態は、修理を開始するために、修理オーダー確認後、修理を開始できる時に使われます。\n" +"・ 請求状態は、修理の完了前または完了後で請求書を生成した時に使われます。\n" +"・ 完了状態は、修理が終了した時に設定されます。\n" +"・ キャンセル済状態は、ユーザが修理オーダーをキャンセルした時に使われます。" + +#. module: mrp_repair +#: field:mrp.repair.line,move_id:0 +msgid "Inventory Move" +msgstr "在庫移動" + +#. module: mrp_repair +#: model:ir.actions.act_window,help:mrp_repair.action_repair_order_tree +msgid "" +"Repair orders allow you to organize your product repairs. In a repair order, " +"you can detail the components you remove, add or replace and record the time " +"you spent on the different operations. The repair order uses the warranty " +"date on the production lot in order to know if whether the repair should be " +"invoiced to the customer or not." +msgstr "" +"修理オーダーは製品の修理を手配します。修理オーダーでは、取除いた、追加した、交換した部品を詳述でき、異なる操作で費やした時間を記録できます。修理オーダーは" +"、その修理を顧客に請求すべきであるかどうかを知るために生産ロットの保証日付を使用します。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Recreate Invoice" +msgstr "請求書再作成" + +#. module: mrp_repair +#: help:mrp.repair,deliver_bool:0 +msgid "" +"Check this box if you want to manage the delivery once the product is " +"repaired. If cheked, it will create a picking with selected product. Note " +"that you can select the locations in the Info tab, if you have the extended " +"view." +msgstr "" +"製品が修理された後の配送を管理したい場合、このボックスをチェックして下さい。チェックすると、製品の選択とともに集荷を作成します。拡張ビューをしている場合は" +"、情報タブで場所を指定することができます。" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair +#: view:mrp.repair.cancel:0 +msgid "Cancel Repair Order" +msgstr "修理オーダーのキャンセル" + +#. module: mrp_repair +#: field:mrp.repair.fee,to_invoice:0 +#: field:mrp.repair.line,to_invoice:0 +msgid "To Invoice" +msgstr "請求対象" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Printing Date" +msgstr "印刷日" + +#. module: mrp_repair +#: field:mrp.repair.make_invoice,group:0 +msgid "Group by partner invoice address" +msgstr "パートナの請求書住所によるグループ" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:435 +#, python-format +msgid "No product defined on Fees!" +msgstr "料金が定義されていない製品です。" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Set to Draft" +msgstr "ドラフトに設定" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Invoice Exception" +msgstr "請求書の例外" + +#. module: mrp_repair +#: field:mrp.repair,address_id:0 +msgid "Delivery Address" +msgstr "配達住所" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.act_mrp_repair_invoice +#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice +#: view:mrp.repair:0 +msgid "Make Invoice" +msgstr "請求書作成" + +#. module: mrp_repair +#: field:mrp.repair.fee,price_subtotal:0 +#: field:mrp.repair.line,price_subtotal:0 +msgid "Subtotal" +msgstr "小計" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Invoice address :" +msgstr "請求書住所:" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,guarantee_limit:0 +msgid "Guarantee limit" +msgstr "保証制限" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Notes" +msgstr "注記" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,amount_tax:0 +#: field:mrp.repair.fee,tax_id:0 +#: field:mrp.repair.line,tax_id:0 +msgid "Taxes" +msgstr "税金" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Net Total :" +msgstr "合計:" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:435 +#, python-format +msgid "Warning !" +msgstr "警告" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "VAT" +msgstr "消費税" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Operations" +msgstr "操作" + +#. module: mrp_repair +#: field:mrp.repair,move_id:0 +msgid "Move" +msgstr "移動" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:370 +#, python-format +msgid "You have to select a Partner Invoice Address in the repair form !" +msgstr "修理フォームではパートなの請求書住所を選択する必要があります。" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree +#: model:ir.ui.menu,name:mrp_repair.menu_repair_order +msgid "Repair Orders" +msgstr "修理オーダー" + +#. module: mrp_repair +#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair +msgid "Quotation / Order" +msgstr "見積 / オーダー" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:337 +#, python-format +msgid "Warning" +msgstr "警告" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Extra Info" +msgstr "追加情報" + +#. module: mrp_repair +#: field:mrp.repair.fee,repair_id:0 +#: field:mrp.repair.line,repair_id:0 +msgid "Repair Order Reference" +msgstr "修理オーダー参照" + +#. module: mrp_repair +#: selection:mrp.repair.line,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:384 +#, python-format +msgid "No account defined for partner \"%s\"." +msgstr "パートナ %s にアカウントが定義されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: selection:mrp.repair,state:0 +#: selection:mrp.repair.line,state:0 +msgid "Confirmed" +msgstr "確認済" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Repairs order" +msgstr "修理オーダー" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Repair Order N° :" +msgstr "修理オーダー番号:" + +#. module: mrp_repair +#: field:mrp.repair,prodlot_id:0 +#: field:mrp.repair.line,prodlot_id:0 +#: report:repair.order:0 +msgid "Lot Number" +msgstr "ロット番号" + +#. module: mrp_repair +#: field:mrp.repair,fees_lines:0 +msgid "Fees Lines" +msgstr "料金行" + +#. module: mrp_repair +#: field:mrp.repair.line,type:0 +msgid "Type" +msgstr "タイプ" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Fees Line(s)" +msgstr "料金行" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "To be Invoiced" +msgstr "請求" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Shipping address :" +msgstr "送付先:" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:334 +#: code:addons/mrp_repair/mrp_repair.py:384 +#: code:addons/mrp_repair/mrp_repair.py:413 +#: code:addons/mrp_repair/mrp_repair.py:442 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: mrp_repair +#: field:mrp.repair.line,product_uom_qty:0 +msgid "Quantity (UoM)" +msgstr "数量" + +#. module: mrp_repair +#: help:mrp.repair.line,state:0 +msgid "" +" * The 'Draft' state is set automatically as draft when repair order in " +"draft state. \n" +"* The 'Confirmed' state is set automatically as confirm when repair order in " +"confirm state. \n" +"* The 'Done' state is set automatically when repair order is completed. " +" \n" +"* The 'Cancelled' state is set automatically when user cancel repair order." +msgstr "" +" ・ ドラフト状態は、修理オーダーがドラフト状態の時に自動的に設定されます。\n" +"・ 確認済状態は、修理オーダーが確認状態の時に自動的に設定されます。\n" +"・ 完了状態は、修理オーダーが完了した時に自動的に設定されます。\n" +"・ キャンセル済状態は、ユーザが修理オーダーをキャンセルした時に設定されます。" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Total :" +msgstr "合計:" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "" +"This operation will cancel the Repair process, but will not cancel it's " +"Invoice. Do you want to continue?" +msgstr "この操作は修理処理でキャンセルされます。しかし、その請求書はキャンセルできません。続行しますか?" + +#. module: mrp_repair +#: field:mrp.repair,pricelist_id:0 +msgid "Pricelist" +msgstr "価格リスト" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,quotation_notes:0 +msgid "Quotation Notes" +msgstr "見積注記" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:49 +#, python-format +msgid "Warning!" +msgstr "警告" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Search Reair Orders" +msgstr "修理オーダー検索" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "(Add)" +msgstr "(追加)" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_line +#: view:mrp.repair:0 +msgid "Repair Line" +msgstr "修理行" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: mrp_repair +#: field:mrp.repair,invoice_method:0 +msgid "Invoice Method" +msgstr "請求の方法" + +#. module: mrp_repair +#: field:mrp.repair,repaired:0 +msgid "Repaired" +msgstr "修理済" + +#. module: mrp_repair +#: field:mrp.repair.fee,invoice_line_id:0 +#: field:mrp.repair.line,invoice_line_id:0 +msgid "Invoice Line" +msgstr "請求書行" + +#. module: mrp_repair +#: selection:mrp.repair.line,state:0 +msgid "Canceled" +msgstr "キャンセル済" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:337 +#, python-format +msgid "Production lot is required for opration line with product '%s'" +msgstr "生産ロットは製品 %s が操作ラインのために必要です。" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "Before Repair" +msgstr "修理前" + +#. module: mrp_repair +#: field:mrp.repair,location_id:0 +msgid "Current Location" +msgstr "現在の場所" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "Yes" +msgstr "" + +#. module: mrp_repair +#: field:mrp.repair,invoiced:0 +#: field:mrp.repair.fee,invoiced:0 +#: field:mrp.repair.line,invoiced:0 +msgid "Invoiced" +msgstr "請求済" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "No" +msgstr "" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Create invoices" +msgstr "請求書作成" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "(Remove)" +msgstr "(取除く)" + +#. module: mrp_repair +#: selection:mrp.repair.line,type:0 +msgid "Add" +msgstr "追加" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Do you really want to create the invoice(s)?" +msgstr "本当に請求書を作成しますか?" + +#. module: mrp_repair +#: field:mrp.repair,name:0 +msgid "Repair Reference" +msgstr "修理参照" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair +msgid "Repair Order" +msgstr "修理オーダー" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Under Repair" +msgstr "修理中" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Ready To Repair" +msgstr "修理準備完了" + +#. module: mrp_repair +#: field:mrp.repair,amount_untaxed:0 +msgid "Untaxed Amount" +msgstr "非課税金額" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Guarantee Limit" +msgstr "保証制限" + +#. module: mrp_repair +#: field:mrp.repair,default_address_id:0 +msgid "unknown" +msgstr "不明" + +#. module: mrp_repair +#: field:mrp.repair,product_id:0 +#: report:repair.order:0 +msgid "Product to Repair" +msgstr "修理製品" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "N° :" +msgstr "番号:" + +#. module: mrp_repair +#: help:mrp.repair,pricelist_id:0 +msgid "The pricelist comes from the selected partner, by default." +msgstr "価格リストはデフォルトで選択したパートナから来ます。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Date" +msgstr "日付" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_fee +msgid "Repair Fees Line" +msgstr "修理費行" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:334 +#, python-format +msgid "You cannot confirm a repair order which has no line." +msgstr "修理行には明細行がないため確認できません。" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Quotation" +msgstr "見積" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Compute" +msgstr "計算" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Confirm Repair" +msgstr "修理の確認" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Repair Quotation" +msgstr "修理見積" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "End Repair" +msgstr "修理終了" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:413 +#: code:addons/mrp_repair/mrp_repair.py:442 +#, python-format +msgid "No account defined for product \"%s\"." +msgstr "製品 %s のアカウントが定義されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Quotations" +msgstr "見積" + +#. module: mrp_repair +#: field:mrp.repair.fee,product_uom_qty:0 +#: report:repair.order:0 +msgid "Quantity" +msgstr "数量" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Start Repair" +msgstr "修理開始" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,state:0 +#: field:mrp.repair.line,state:0 +msgid "State" +msgstr "状態" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Qty" +msgstr "数量" + +#. module: mrp_repair +#: field:mrp.repair.fee,price_unit:0 +#: field:mrp.repair.line,price_unit:0 +#: report:repair.order:0 +msgid "Unit Price" +msgstr "単価" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +#: selection:mrp.repair.line,state:0 +msgid "Done" +msgstr "完了" + +#. module: mrp_repair +#: help:mrp.repair,guarantee_limit:0 +msgid "" +"The guarantee limit is computed as: last move date + warranty defined on " +"selected product. If the current date is below the guarantee limit, each " +"operation and fee you will add will be set as 'not to invoiced' by default. " +"Note that you can change manually afterwards." +msgstr "" +"保証制限は次のように計算されます:最終移動日+選択製品で定義された保証期間。現在日付が保証期限内であれば、各操作と料金にはデフォルトで請求外としてセットさ" +"れます。その後、手作業で変更ができます。" + +#. module: mrp_repair +#: field:mrp.repair,invoice_id:0 +msgid "Invoice" +msgstr "請求書" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Fees" +msgstr "費用" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +#: view:mrp.repair.make_invoice:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: mrp_repair +#: field:mrp.repair.line,location_dest_id:0 +msgid "Dest. Location" +msgstr "宛先場所" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Operation Line(s)" +msgstr "操作行" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "History" +msgstr "履歴" + +#. module: mrp_repair +#: field:mrp.repair,location_dest_id:0 +msgid "Delivery Location" +msgstr "配達場所" + +#. module: mrp_repair +#: help:mrp.repair,invoice_method:0 +msgid "" +"This field allow you to change the workflow of the repair order. If value " +"selected is different from 'No Invoice', it also allow you to select the " +"pricelist and invoicing address." +msgstr "" +"この項目は修理オーダーのワークフローを変更することを許します。請求書なしと異なる値が選択された場合、価格リストと請求書住所の選択ができます。" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Create Invoice" +msgstr "請求書作成" + +#. module: mrp_repair +#: field:mrp.repair.fee,name:0 +#: field:mrp.repair.line,name:0 +#: report:repair.order:0 +msgid "Description" +msgstr "説明" + +#. module: mrp_repair +#: field:mrp.repair,operations:0 +msgid "Operation Lines" +msgstr "操作行" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "invoiced" +msgstr "請求済" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair.fee,product_id:0 +#: field:mrp.repair.line,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Invoice Corrected" +msgstr "修正された請求書" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Price" +msgstr "価格" + +#. module: mrp_repair +#: field:mrp.repair,deliver_bool:0 +msgid "Deliver" +msgstr "配達" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,internal_notes:0 +msgid "Internal Notes" +msgstr "内部注記" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Taxes:" +msgstr "税金:" + +#. module: mrp_repair +#: field:mrp.repair,picking_id:0 +msgid "Picking" +msgstr "集荷" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Untaxed amount" +msgstr "税抜金額" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:41 +#, python-format +msgid "Active ID is not Found" +msgstr "アクティブIDが見つかりません。" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:49 +#, python-format +msgid "Repair order is not invoiced." +msgstr "修理オーダーは請求されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Total amount" +msgstr "合計金額" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "UoM" +msgstr "単位" + +#. module: mrp_repair +#: selection:mrp.repair.line,type:0 +msgid "Remove" +msgstr "取除く" + +#. module: mrp_repair +#: field:mrp.repair.fee,product_uom:0 +#: field:mrp.repair.line,product_uom:0 +msgid "Product UoM" +msgstr "製品単位" + +#. module: mrp_repair +#: field:mrp.repair,partner_invoice_id:0 +msgid "Invoicing Address" +msgstr "請求住所" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "After Repair" +msgstr "修理後" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Invoicing" +msgstr "請求中" + +#. module: mrp_repair +#: field:mrp.repair.line,location_id:0 +msgid "Source Location" +msgstr "元の場所" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_cancel +#: view:mrp.repair:0 +msgid "Cancel Repair" +msgstr "修理のキャンセル" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "No Invoice" +msgstr "請求外" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "States" +msgstr "状態" + +#. module: mrp_repair +#: help:mrp.repair,partner_id:0 +msgid "" +"This field allow you to choose the parner that will be invoiced and delivered" +msgstr "この項目は請求して配信されるパートナを選択することを許します。" + +#. module: mrp_repair +#: field:mrp.repair,amount_total:0 +msgid "Total" +msgstr "合計" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Ready to Repair" +msgstr "修理準備完了" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:370 +#, python-format +msgid "No partner !" +msgstr "パートナがありません。" diff --git a/addons/mrp_subproduct/i18n/ja.po b/addons/mrp_subproduct/i18n/ja.po new file mode 100644 index 00000000000..369cb9ec43d --- /dev/null +++ b/addons/mrp_subproduct/i18n/ja.po @@ -0,0 +1,128 @@ +# Japanese 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 06:38+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_subproduct +#: selection:mrp.subproduct,subproduct_type:0 +msgid "Fixed" +msgstr "固定" + +#. module: mrp_subproduct +#: sql_constraint:mrp.bom:0 +msgid "" +"All product quantities must be greater than 0.\n" +"You should install the mrp_subproduct module if you want to manage extra " +"products on BoMs !" +msgstr "" +"全製品の数量は0より大きい必要があります。\n" +"部品表上で追加の製品を管理したい場合は、mrp_subproductモジュールをインストールする必要があります。" + +#. module: mrp_subproduct +#: view:mrp.bom:0 +msgid "sub products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_production +msgid "Manufacturing Order" +msgstr "製造オーダー" + +#. module: mrp_subproduct +#: constraint:mrp.bom:0 +msgid "BoM line product should not be same as BoM product." +msgstr "部品表のライン製品は部品表製品と同じではいけません。" + +#. module: mrp_subproduct +#: view:mrp.bom:0 +msgid "Sub Products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: field:mrp.subproduct,subproduct_type:0 +msgid "Quantity Type" +msgstr "数量タイプ" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_bom +msgid "Bill of Material" +msgstr "部品表" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_qty:0 +msgid "Product Qty" +msgstr "製品数量" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_uom:0 +msgid "Product UOM" +msgstr "製品単位" + +#. module: mrp_subproduct +#: field:mrp.subproduct,bom_id:0 +msgid "BoM" +msgstr "部品表" + +#. module: mrp_subproduct +#: sql_constraint:mrp.production:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: mrp_subproduct +#: field:mrp.bom,sub_products:0 +msgid "sub_products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: selection:mrp.subproduct,subproduct_type:0 +msgid "Variable" +msgstr "変数" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct +msgid "Sub Product" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "オーダー数量は負または0にはできません。" + +#. module: mrp_subproduct +#: help:mrp.subproduct,subproduct_type:0 +msgid "" +"Define how the quantity of subproducts will be set on the production orders " +"using this BoM. 'Fixed' depicts a situation where the quantity of created " +"subproduct is always equal to the quantity set on the BoM, regardless of how " +"many are created in the production order. By opposition, 'Variable' means " +"that the quantity will be computed as '(quantity of subproduct set on the " +"BoM / quantity of manufactured product set on the BoM * quantity of " +"manufactured product in the production order.)'" +msgstr "" +"この部品表を使った生産オーダー上にセットされるサブ製品の数量をどのくらいにするかを定義して下さい。固定は、生産オーダーによってどのくらい作成されるのかに関" +"係なく、作成されるサブ製品の数量は部品表上にセットする数量といつも一致します。反対に可変は、その数量は(部品表上のサブ製品設定の数量 / " +"部品表情の製造製品設定の数量 * 生産オーダーの製造製品の数量)として計算されます。" + +#. module: mrp_subproduct +#: constraint:mrp.bom:0 +msgid "Error ! You cannot create recursive BoM." +msgstr "エラー。再帰的な部品表を作ることはできません。" diff --git a/addons/multi_company/i18n/ja.po b/addons/multi_company/i18n/ja.po new file mode 100644 index 00000000000..9c792f95913 --- /dev/null +++ b/addons/multi_company/i18n/ja.po @@ -0,0 +1,97 @@ +# Japanese 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: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 06:13+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: multi_company +#: model:res.company,overdue_msg:multi_company.res_company_odoo +#: model:res.company,overdue_msg:multi_company.res_company_oerp_be +#: model:res.company,overdue_msg:multi_company.res_company_oerp_editor +#: model:res.company,overdue_msg:multi_company.res_company_oerp_in +#: model:res.company,overdue_msg:multi_company.res_company_oerp_us +msgid "" +"\n" +"Date: %(date)s\n" +"\n" +"Dear %(partner_name)s,\n" +"\n" +"Please find in attachment a reminder of all your unpaid invoices, for a " +"total amount due of:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"Thanks,\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s\n" +" " +msgstr "" +"\n" +"日付:%(date)s\n" +"\n" +"%(partner_name)s 様、\n" +"\n" +"どうぞ、添付いたしました御社のお支払をいただいていない請求書をご確認下さい。合計金額は次のとおりです:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"それではよろしくお願いいたします。\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s\n" +" " + +#. module: multi_company +#: model:product.category,name:multi_company.Odoo1 +msgid "Odoo Offers" +msgstr "Odoo提案" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Returning" +msgstr "返品" + +#. module: multi_company +#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany +msgid "Multi-Companies" +msgstr "多角化会社" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Multi Company" +msgstr "多角化会社" + +#. module: multi_company +#: model:ir.actions.act_window,name:multi_company.action_inventory_form +#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form +msgid "Default Company per Object" +msgstr "オブジェクト毎のデフォルト会社" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Matching" +msgstr "マッチング" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Condition" +msgstr "条件" + +#. module: multi_company +#: model:product.template,name:multi_company.product_product_odoo1_product_template +msgid "Odoo Offer" +msgstr "Odoo提案" diff --git a/addons/plugin_thunderbird/i18n/ja.po b/addons/plugin_thunderbird/i18n/ja.po new file mode 100644 index 00000000000..b929d9c05e4 --- /dev/null +++ b/addons/plugin_thunderbird/i18n/ja.po @@ -0,0 +1,100 @@ +# Japanese 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: 2012-02-09 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 22:07+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,pdf_file:0 +msgid "Installation Manual" +msgstr "インストールマニュアル" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,description:0 +msgid "Description" +msgstr "説明" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "title" +msgstr "タイトル" + +#. module: plugin_thunderbird +#: model:ir.model,name:plugin_thunderbird.model_plugin_thunderbird_installer +msgid "plugin_thunderbird.installer" +msgstr "" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,config_logo:0 +msgid "Image" +msgstr "画像" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,plugin_file:0 +#: field:plugin_thunderbird.installer,thunderbird:0 +msgid "Thunderbird Plug-in" +msgstr "Thunderbirdプラグイン" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "" +"This plug-in allows you to link your e-mail to OpenERP's documents. You can " +"attach it to any existing one in OpenERP or create a new one." +msgstr "" +"このプラグインはあなたのEメールをOpenERPのドキュメントにリンクさせることができます。OpenERPの既存あるいは新しく作成したドキュメントを添付で" +"きます。" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,thunderbird:0 +msgid "" +"Allows you to select an object that you would like to add to your email and " +"its attachments." +msgstr "あなたがEメールに追加したい、添付したいオブジェクトを選択するのが許されます。" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,pdf_file:0 +msgid "The documentation file :- how to install Thunderbird Plug-in." +msgstr "ドキュメントファイル:Thunderbirdプラグインのインストール方法" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "_Close" +msgstr "閉じる" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "Installation and Configuration Steps" +msgstr "インストールと設定の手順" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,name:0 +#: field:plugin_thunderbird.installer,pdf_name:0 +msgid "File name" +msgstr "ファイル名" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,plugin_file:0 +msgid "" +"Thunderbird plug-in file. Save as this file and install this plug-in in " +"thunderbird." +msgstr "Thunderbirdプラグインファイル。このファイルを保存し、Thunderbirdの中にこのプラグインをインストールして下さい。" + +#. module: plugin_thunderbird +#: model:ir.actions.act_window,name:plugin_thunderbird.action_thunderbird_installer +#: model:ir.ui.menu,name:plugin_thunderbird.menu_base_config_plugins_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "Install Thunderbird Plug-In" +msgstr "Thunderbirdプラグインのインストール" diff --git a/addons/point_of_sale/i18n/ja.po b/addons/point_of_sale/i18n/ja.po new file mode 100644 index 00000000000..98a5e9cb828 --- /dev/null +++ b/addons/point_of_sale/i18n/ja.po @@ -0,0 +1,2725 @@ +# Japanese 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: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-06-01 05:21+0000\n" +"Last-Translator: Akira Hiyama \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: point_of_sale +#: field:report.transaction.pos,product_nb:0 +msgid "Product Nb." +msgstr "製品番号" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today +msgid "Sales by day" +msgstr "日毎の販売" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_open_statement.py:49 +#, python-format +msgid "" +"You must define which payment method must be available through the point of " +"sale by reusing existing bank and cash through \"Accounting > Configuration " +"> Financial Accounting > Journals\". Select a journal and check the field " +"\"PoS Payment Method\" from the \"Point of Sale\" tab. You can also create " +"new payment methods directly from menu \"PoS Backend > Configuration > " +"Payment Methods\"." +msgstr "" +"会計 > 設定 > 財務会計 > 仕訳帳 " +"から既存の銀行と現金を再利用することによって、POSを通して利用可能にしなければならない支払方法を定義する必要があります。仕訳帳を選択し、POSタブからP" +"OS支払方法項目をチェックして下さい。POS後方事務 > 設定 > 支払方法メニューから直接新しい支払方法を作成することもできます。" + +#. module: point_of_sale +#: view:pos.order:0 view:report.pos.order:0 +msgid "Today" +msgstr "本日" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.plain_water +msgid "Plain Water" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Year from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の年" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Post All Orders" +msgstr "全ての注文を記帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_2l_product_template +msgid "Spa Reine 2L" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_box_out +msgid "Pos Box Out" +msgstr "POSボックスアウト" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_cash_register_all +#: model:ir.ui.menu,name:point_of_sale.menu_report_cash_register_all +msgid "Register Analysis" +msgstr "レジスター分析" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Details of Sales" +msgstr "販売の詳細" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,day:0 +#: view:report.pos.order:0 field:report.pos.order,day:0 +msgid "Day" +msgstr "日" + +#. module: point_of_sale +#: view:pos.make.payment:0 +msgid "Add payment :" +msgstr "支払の追加:" + +#. module: point_of_sale +#: field:pos.box.out,name:0 +msgid "Description / Reason" +msgstr "説明 / 理由" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,product_name:0 +#: field:report.sales.by.margin.pos.month,product_name:0 +msgid "Product Name" +msgstr "製品名" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Month from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の月" + +#. module: point_of_sale +#: report:account.statement:0 field:pos.box.entries,amount:0 +#: field:pos.box.out,amount:0 report:pos.invoice:0 +#: field:pos.make.payment,amount:0 report:pos.user.product:0 +#: field:report.transaction.pos,amount:0 +msgid "Amount" +msgstr "金額" + +#. module: point_of_sale +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "設定エラー。選択された通貨はデフォルトアカウントによっても共有されなければなりません。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.pos_category_action +#: model:ir.ui.menu,name:point_of_sale.menu_pos_category view:pos.category:0 +msgid "PoS Categories" +msgstr "POS分類" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_box_out +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2 +msgid "Take Money Out" +msgstr "お金の取り出し" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "VAT" +msgstr "消費税" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Origin" +msgstr "起点" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Tax" +msgstr "税金" + +#. module: point_of_sale +#: report:pos.user.product:0 +msgid "Starting Date" +msgstr "開始日" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_entries.py:46 +#, python-format +msgid "" +"You do not have any open cash register. You must create a payment method or " +"open a cash register." +msgstr "開いているキャッシュレジスタを持っていません。支払方法を作成するか、キャッシュレジスタを開く必要があります。" + +#. module: point_of_sale +#: report:account.statement:0 field:report.pos.order,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total of the day" +msgstr "1日の合計" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,average_price:0 +msgid "Average Price" +msgstr "平均価格" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Disc. (%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_open_config +msgid "Cash Register Management" +msgstr "キャッシュレジスタ管理" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_45g_product_template +msgid "Lays Naturel 45g" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Accounting Information" +msgstr "会計情報" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_2l_product_template +msgid "Coca-Cola Regular 2L" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month +msgid "Sales by month" +msgstr "月毎の売上" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.soda_orange +msgid "Orange" +msgstr "オレンジ" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_today +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +msgid "Sales by User" +msgstr "ユーザ毎の売上" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Disc.(%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: field:pos.box.entries,ref:0 +msgid "Ref" +msgstr "参照" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,price_total:0 +msgid "Total Price" +msgstr "合計価格" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_brune_33cl_product_template +msgid "Leffe Brune 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user +#: report:pos.sales.user:0 +msgid "Sales Report" +msgstr "販売レポート" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.beverage +msgid "Beverages" +msgstr "飲物" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.stella_50cl_product_template +msgid "Stella Artois 50cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.details:0 +msgid "Dates" +msgstr "日付" + +#. module: point_of_sale +#: field:pos.category,parent_id:0 +msgid "Parent Category" +msgstr "親分類" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.lines:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 +msgid "[" +msgstr "[" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,total:0 +#: field:report.sales.by.margin.pos.month,total:0 +msgid "Margin" +msgstr "粗利益" + +#. module: point_of_sale +#: field:pos.discount,discount:0 field:pos.order.line,discount:0 +msgid "Discount (%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_speciale_product_template +msgid "Dr. Oetker Ristorante Speciale" +msgstr "ピザレストランスペシャル" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Total qty" +msgstr "合計数量" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_33cl_product_template +msgid "Fanta Orange 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_month +msgid "Sales by User Monthly" +msgstr "月間ユーザ別販売" + +#. module: point_of_sale +#: report:all.closed.cashbox.of.the.day:0 +msgid "Today's Closed Cashbox" +msgstr "本日の閉じられた金庫" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Day from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の日" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale +msgid "Daily Operations" +msgstr "日常業務" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:285 +#, python-format +msgid "Configuration Error !" +msgstr "設定エラーです。" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.sparkling_water +msgid "Sparkling Water" +msgstr "" + +#. module: point_of_sale +#: view:pos.box.entries:0 +msgid "Fill in this form if you put money in the cash register:" +msgstr "キャッシュレジスタ内にお金を入れる場合はこのフォームに記入して下さい。" + +#. module: point_of_sale +#: view:account.bank.statement:0 +msgid "Search Cash Statements" +msgstr "現金取引明細書の検索" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "August" +msgstr "8月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_lemon_33cl_product_template +msgid "Pepsi Max Cool Lemon 33cl" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "June" +msgstr "6月" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order line" +msgstr "POSオーダー行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_50cl_product_template +msgid "Fanta Orange 50cl" +msgstr "" + +#. module: point_of_sale +#: field:pos.category,child_id:0 +msgid "Children Categories" +msgstr "子分類" + +#. module: point_of_sale +#: field:pos.make.payment,payment_date:0 +msgid "Payment Date" +msgstr "支払日" + +#. module: point_of_sale +#: help:product.product,pos_categ_id:0 +msgid "" +"If you want to sell this product through the point of sale, select the " +"category it belongs to." +msgstr "POSを通してこの製品を販売したい場合は、それが属する分類を選択して下さい。" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Closing Date" +msgstr "締切日" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "October" +msgstr "10月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_1l_product_template +msgid "Coca-Cola Light 1L" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Summary" +msgstr "要約" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_50cl_product_template +msgid "Chaudfontaine 50cl" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 report:pos.lines:0 field:pos.order.line,qty:0 +#: field:report.sales.by.user.pos,qty:0 +#: field:report.sales.by.user.pos.month,qty:0 +msgid "Quantity" +msgstr "数量" + +#. module: point_of_sale +#: field:pos.order.line,name:0 +msgid "Line No" +msgstr "行番号" + +#. module: point_of_sale +#: view:account.bank.statement:0 +msgid "Period" +msgstr "期間" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_open_statement.py:49 +#, python-format +msgid "No Cash Register Defined !" +msgstr "キャッシュレジスタが定義されていません。" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Net Total:" +msgstr "合計:" + +#. module: point_of_sale +#: field:pos.make.payment,payment_name:0 +msgid "Payment Reference" +msgstr "支払参照" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Mode of Payment" +msgstr "支払モード" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_confirm +msgid "Post POS Journal Entries" +msgstr "POS仕訳帳エントリーの記帳" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:408 +#, python-format +msgid "Customer Invoice" +msgstr "顧客請求書" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Output Operation" +msgstr "出力操作" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,total_discount:0 +msgid "Total Discount" +msgstr "合計割引" + +#. module: point_of_sale +#: view:pos.details:0 view:pos.payment.report:0 view:pos.payment.report.user:0 +#: view:pos.sale.user:0 +msgid "Print Report" +msgstr "レポートの印刷" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_bolognese_product_template +msgid "Dr. Oetker Ristorante Bolognese" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_entries.py:105 +#, python-format +msgid "Please check that income account is set to %s" +msgstr "その損益勘定が %s にセットされていることをチェックして下さい。" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.pizza +msgid "Pizza" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_return.py:85 +#: code:addons/point_of_sale/wizard/pos_return.py:240 +#, python-format +msgid "Add Product" +msgstr "製品追加" + +#. module: point_of_sale +#: field:report.transaction.pos,invoice_am:0 +msgid "Invoice Amount" +msgstr "請求書金額" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.coke +msgid "Coke" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Tel. :" +msgstr "TEL:" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_confirm +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_pos_confirm +msgid "Create Sale Entries" +msgstr "販売エントリーの作成" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment +#: report:pos.details:0 view:pos.order:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:87 +msgid "Payment" +msgstr "支払" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created in current month" +msgstr "現在月中に作成された現金分析" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Ending Balance" +msgstr "期末残高" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_50cl_product_template +msgid "Pepsi Max 50cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.san_pellegrino_1l_product_template +msgid "San Pellegrino 1L" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Post Entries" +msgstr "エントリーの記帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_1l_product_template +msgid "Spa Reine 1L" +msgstr "" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Mode of Taxes" +msgstr "税金のモード" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:50 +#, python-format +msgid "Cash registers are already closed." +msgstr "キャッシュレジスタは既に閉じられました。" + +#. module: point_of_sale +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_open_statement +#: view:pos.open.statement:0 +msgid "Open Statements" +msgstr "取引明細書を開く" + +#. module: point_of_sale +#: field:pos.details,date_end:0 field:pos.sale.user,date_end:0 +msgid "Date End" +msgstr "終了日" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created during current year" +msgstr "現在年中に作成されたPOSオーダー" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_pos_form +#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale view:pos.order:0 +msgid "PoS Orders" +msgstr "POSオーダー" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Sales total(Revenue)" +msgstr "販売合計(売上)" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total paid" +msgstr "合計支払" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_all_menu_all_register +msgid "List of Cash Registers" +msgstr "キャッシュレジスタのリスト" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.maes_50cl_product_template +msgid "Maes 50cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_transaction_pos +msgid "transaction for the pos" +msgstr "POS取引" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Not Invoiced" +msgstr "請求外" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "March" +msgstr "3月" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_users_product_re +#: report:pos.user.product:0 +msgid "User's Product" +msgstr "ユーザ製品" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:641 +#, python-format +msgid "" +"You have to select a pricelist in the sale form !\n" +"Please set one before choosing a product." +msgstr "" +"販売フォームの中の価格リストを選択する必要があります。\n" +"製品を選択する前にそれをセットして下さい。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_2l_product_template +msgid "Fanta Orange 2L" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_33cl_product_template +msgid "Spa Reine 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_discount +msgid "Add a Global Discount" +msgstr "全体割引を追加" + +#. module: point_of_sale +#: field:pos.order.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "小計" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_prosciutto_product_template +msgid "Dr. Oetker Ristorante Prosciutto" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_light_paprika_170g_product_template +#: model:product.template,name:point_of_sale.lays_paprika_170g_product_template +msgid "Lays Light Paprika 170g" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_50cl_product_template +msgid "Coca-Cola Light Lemon 50cl" +msgstr "" + +#. module: point_of_sale +#: field:report.cash.register,balance_end_real:0 +msgid "Closing Balance" +msgstr "期末残高" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.act_pos_open_statement +#: model:ir.model,name:point_of_sale.model_pos_close_statement +msgid "Close Statements" +msgstr "取引明細書を閉じる" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_naturel_45g_product_template +msgid "Croky Naturel 45g" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.product_product_putmoneyforchange1_product_template +msgid "Cash Out" +msgstr "現金引出" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Starting Balance" +msgstr "期首残高" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_category +#: field:product.product,pos_categ_id:0 +msgid "PoS Category" +msgstr "POS分類" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_bleu_75cl_product_template +msgid "Chimay Bleu 75cl" +msgstr "" + +#. module: point_of_sale +#: report:pos.payment.report.user:0 +msgid "Payment By User" +msgstr "ユーザによる支払" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,nbr:0 +msgid "# of Lines" +msgstr "行数" + +#. module: point_of_sale +#: help:account.journal,check_dtls:0 +msgid "" +"This field authorize Validation of Cashbox without controlling the closing " +"balance." +msgstr "この項目は期末残高を制御することなく金庫の検証を許可します。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_details +#: model:ir.ui.menu,name:point_of_sale.menu_pos_details +msgid "Sale Details" +msgstr "販売詳細" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.pils +msgid "Pils" +msgstr "ピルスナー" + +#. module: point_of_sale +#: report:all.closed.cashbox.of.the.day:0 +msgid "St.Name" +msgstr "" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Sales total" +msgstr "販売合計" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Sum of subtotals" +msgstr "小計の合計" + +#. module: point_of_sale +#: field:pos.order,lines:0 +msgid "Order Lines" +msgstr "受注行" + +#. module: point_of_sale +#: view:report.transaction.pos:0 +msgid "Total Transaction" +msgstr "合計取引" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_50cl_product_template +msgid "Chaudfontaine Petillante 50cl" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,create_date:0 +msgid "Creation Date" +msgstr "作成日" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user_today +msgid "Today's Sales" +msgstr "本日の販売" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_300g_product_template +msgid "Lays Naturel XXL 300g" +msgstr "" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS " +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 report:pos.user.product:0 +msgid "Total :" +msgstr "合計:" + +#. module: point_of_sale +#: view:report.cash.register:0 view:report.pos.order:0 +msgid "My Sales" +msgstr "私の販売" + +#. module: point_of_sale +#: field:pos.order,pricelist_id:0 +msgid "Pricelist" +msgstr "価格リスト" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total invoiced" +msgstr "請求合計" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,product_qty:0 +msgid "# of Qty" +msgstr "数量の数" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos_month +msgid "Sales by margin monthly" +msgstr "月間利鞘別売上" + +#. module: point_of_sale +#: view:pos.order:0 field:report.sales.by.margin.pos,date_order:0 +#: field:report.sales.by.margin.pos.month,date_order:0 +#: field:report.sales.by.user.pos,date_order:0 +#: field:report.sales.by.user.pos.month,date_order:0 +msgid "Order Date" +msgstr "オーダー日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.stella_33cl_product_template +msgid "Stella Artois 33cl" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created during this year" +msgstr "今年中に作成された現金分析" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Draft Invoice" +msgstr "ドラフト請求書" + +#. module: point_of_sale +#: constraint:account.bank.statement.line:0 +msgid "" +"The amount of the voucher must be the same amount as the one on the " +"statement line" +msgstr "バウチャーの金額は明細行のひとつの金額と同じでなければなりません。" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Fiscal Position Remark :" +msgstr "会計ポジションの注釈:" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_2l_product_template +msgid "Evian 2L" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "September" +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Opening Date" +msgstr "開始日" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Taxes :" +msgstr "税金:" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_2l_product_template +msgid "Coca-Cola Light 2L" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_funghi_product_template +msgid "Dr. Oetker Ristorante Funghi" +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,disc:0 +msgid "Disc." +msgstr "割引" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lindemans_kriek_37,5cl_product_template +msgid "Lindemans Kriek 37.5cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_33cl_product_template +msgid "Coca-Cola Zero 33cl" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "VAT :" +msgstr "消費税:" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order lines" +msgstr "POSオーダー行" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Receipt :" +msgstr "レシート:" + +#. module: point_of_sale +#: field:account.bank.statement.line,pos_statement_id:0 +#: field:pos.order,amount_return:0 +msgid "unknown" +msgstr "不明" + +#. module: point_of_sale +#: report:pos.details:0 field:report.transaction.pos,date_create:0 +msgid "Date" +msgstr "日付" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_discount +#: view:pos.discount:0 +msgid "Apply Discount" +msgstr "割引適用" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +#: view:pos.details:0 report:pos.sales.user:0 report:pos.sales.user.today:0 +#: report:pos.user.product:0 view:report.cash.register:0 +#: field:report.cash.register,user_id:0 +#: field:report.sales.by.margin.pos,user_id:0 +#: field:report.sales.by.margin.pos.month,user_id:0 +#: field:report.sales.by.user.pos,user_id:0 +#: field:report.sales.by.user.pos.month,user_id:0 +#: field:report.transaction.pos,user_id:0 +#: model:res.groups,name:point_of_sale.group_pos_user +msgid "User" +msgstr "ユーザ" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_33cl_product_template +msgid "Coca-Cola Light 33cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.perrier_1l_product_template +msgid "Perrier 1L" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total discount" +msgstr "合計割引" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_box_entries +msgid "Pos Box Entries" +msgstr "POSボックスエントリー" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.boon_framboise_37,5cl_product_template +msgid "Boon Framboise 37.5cl" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "November" +msgstr "11月" + +#. module: point_of_sale +#: field:pos.config.journal,code:0 +msgid "Code" +msgstr "コード" + +#. module: point_of_sale +#: view:account.bank.statement:0 report:account.statement:0 +#: report:all.closed.cashbox.of.the.day:0 +#: model:ir.model,name:point_of_sale.model_account_journal +#: field:pos.config.journal,journal_id:0 field:pos.order,sale_journal:0 +#: view:report.cash.register:0 field:report.cash.register,journal_id:0 +#: field:report.pos.order,journal_id:0 +msgid "Journal" +msgstr "仕訳帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_faro_37,5cl_product_template +msgid "Timmermans Faro 37.5cl" +msgstr "" + +#. module: point_of_sale +#: view:account.bank.statement:0 view:pos.order:0 field:pos.order,state:0 +#: report:pos.sales.user:0 report:pos.sales.user.today:0 +#: field:report.cash.register,state:0 field:report.pos.order,state:0 +msgid "State" +msgstr "状態" + +#. module: point_of_sale +#: field:report.transaction.pos,no_trans:0 +msgid "Number of Transaction" +msgstr "取引数" + +#. module: point_of_sale +#: view:pos.box.entries:0 view:pos.box.out:0 view:pos.confirm:0 +#: view:pos.make.payment:0 view:pos.open.statement:0 view:pos.receipt:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_details_summary +msgid "Sales (summary)" +msgstr "販売(合計)" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_kriek_37,5cl_product_template +msgid "Timmermans Kriek 37.5cl" +msgstr "" + +#. module: point_of_sale +#: field:account.journal,check_dtls:0 +msgid "Control Balance Before Closing" +msgstr "閉じる前のコントロール残高" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_order_line +msgid "Lines of Point of Sale" +msgstr "POSの行" + +#. module: point_of_sale +#: view:pos.order:0 view:report.transaction.pos:0 +msgid "Amount total" +msgstr "金額合計" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_all_tree +msgid "Cash Registers" +msgstr "キャッシュレジスタ" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Users" +msgstr "ユーザ" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.food +msgid "Food" +msgstr "食品" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:pos.details:0 report:pos.invoice:0 report:pos.lines:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:30 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:69 +msgid "Price" +msgstr "価格" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_stracciatella_2,5l_product_template +msgid "ijsboerke Stracciatella 2.5L" +msgstr "" + +#. module: point_of_sale +#: field:account.journal,journal_user:0 +msgid "PoS Payment Method" +msgstr "POS支払方法" + +#. module: point_of_sale +#: help:product.product,expense_pdt:0 +msgid "" +"This is a product you can use to take cash from a statement for the point of " +"sale backend, exemple: money lost, transfer to bank, etc." +msgstr "これはPOS後方事務のための取引明細書から現金を出すために使用できる製品です。例えば、現金の紛失、銀行への転送など。" + +#. module: point_of_sale +#: field:report.cash.register,date:0 +msgid "Create Date" +msgstr "作成日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_33cl_product_template +msgid "Coca-Cola Regular 33cl" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:65 +#, python-format +msgid "Unable to Delete !" +msgstr "削除できません。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_oven_150g_product_template +msgid "Lays Paprika Oven Baked 150g" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Start Period" +msgstr "期首日" + +#. module: point_of_sale +#: report:account.statement:0 field:pos.category,complete_name:0 +#: field:pos.category,name:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 +msgid "Name" +msgstr "名前" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_33cl_product_template +msgid "Spa Barisart 33cl" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:284 +#, python-format +msgid "" +"There is no receivable account defined to make payment for the partner: " +"\"%s\" (id:%d)" +msgstr "パートナに支払をするための売掛金勘定がありません:%s (id:%d)" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "" +"Generate all sale journal entries for non invoiced orders linked to a closed " +"cash register or statement." +msgstr "閉じたキャッシュレジスタや取引明細書に関連する請求書なしのオーダーのための全ての仕訳帳エントリーを生成します。" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:293 +#: code:addons/point_of_sale/point_of_sale.py:472 +#: code:addons/point_of_sale/report/pos_invoice.py:46 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:46 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:100 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:105 +#: code:addons/point_of_sale/wizard/pos_box_out.py:86 +#: code:addons/point_of_sale/wizard/pos_box_out.py:88 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.lines:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 +msgid "]" +msgstr "]" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_account_bank_statement +msgid "Bank Statement" +msgstr "銀行取引明細書" + +#. module: point_of_sale +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "仕訳帳の名前は会社ごとに固有でなければなりません、" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_light_naturel_170g_product_template +#: model:product.template,name:point_of_sale.lays_naturel_170g_product_template +msgid "Lays Light Naturel 170g" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 report:pos.lines:0 +#: report:pos.payment.report.user:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 report:pos.user.product:0 +msgid "Print Date" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:282 +#, python-format +msgid "There is no receivable account defined to make payment" +msgstr "" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "Do you want to open cash registers?" +msgstr "" + +#. module: point_of_sale +#: help:pos.category,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of product categories." +msgstr "" + +#. module: point_of_sale +#: field:product.product,expense_pdt:0 +msgid "PoS Cash Output" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.soda +msgid "Soda" +msgstr "" + +#. module: point_of_sale +#: view:account.bank.statement:0 view:pos.order:0 view:report.cash.register:0 +#: view:report.pos.order:0 +msgid "Group By..." +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "POS Orders" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.all_closed_cashbox_of_the_day +msgid "All Closed CashBox" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:640 +#, python-format +msgid "No Pricelist !" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Update" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Base" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.categ_others +msgid "Others" +msgstr "" + +#. module: point_of_sale +#: view:product.product:0 +msgid "Point-of-Sale" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_50cl_product_template +msgid "Evian 50cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Notes" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Sale Order" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_2l_product_template +msgid "Coca-Cola Light Lemon 2L" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.invoice:0 field:pos.order,amount_tax:0 +msgid "Taxes" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_day +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_form +msgid "Sale line" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_oven_150g_product_template +msgid "Lays Naturel Oven Baked 150g" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_decaf_33cl_product_template +msgid "Coca-Cola Light Decaf 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.product_normal_action +#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale_product +#: model:ir.ui.menu,name:point_of_sale.menu_pos_products +msgid "Products" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_4formaggi_product_template +msgid "Dr. Oetker Ristorante Quattro Formaggi" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_1l_product_template +msgid "Coca-Cola Zero 1L" +msgstr "" + +#. module: point_of_sale +#: report:pos.sales.user:0 report:pos.sales.user.today:0 +#: field:report.pos.order,date:0 +msgid "Date Order" +msgstr "" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_product_output +#: model:ir.ui.menu,name:point_of_sale.products_for_output_operations +msgid "Products 'Put Money In'" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_bolognaise_250g_product_template +msgid "Croky Bolognaise 250g" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Extra Info" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Fax :" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,user_id:0 +msgid "Connected Salesman" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_sale_all +#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale_all +msgid "All Sales Orders" +msgstr "" + +#. module: point_of_sale +#: help:product.product,income_pdt:0 +msgid "" +"This is a product you can use to put cash into a statement for the point of " +"sale backend." +msgstr "これはPOS後方事務のために取引明細書の中に現金を入れるために使用できる製品です。" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Print the Receipt of the Sale" +msgstr "" + +#. module: point_of_sale +#: field:pos.make.payment,journal:0 +msgid "Payment Mode" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_45g_product_template +msgid "Lays Paprika 45g" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:pos.details:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 field:report.sales.by.margin.pos,qty:0 +#: field:report.sales.by.margin.pos.month,qty:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:32 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:59 +msgid "Qty" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 view:report.pos.order:0 +msgid "Month -1" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_sale_user +#: model:ir.model,name:point_of_sale.model_pos_sale_user +#: view:pos.payment.report.user:0 +msgid "Sale by User" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_1l_product_template +msgid "Evian 1L" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_open_statement +msgid "Open Cash Registers" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.water +msgid "Water" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "state" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "July" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_poivre_sel_oven_150g_product_template +msgid "Lays Sel et Poivre Oven Baked 150g" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Qty of product" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_rouge_33cl_product_template +msgid "Chimay Rouge 33cl" +msgstr "" + +#. module: point_of_sale +#: field:report.pos.order,delay_validation:0 +msgid "Delay Validation" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,nb_print:0 +msgid "Number of Print" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_make_payment +msgid "Point of Sale Payment" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_50cl_product_template +msgid "Coca-Cola Light 50cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.jupiler_50cl_product_template +msgid "Jupiler 50cl" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "End Period" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_33cl_product_template +msgid "Coca-Cola Light Lemon 33cl" +msgstr "" + +#. module: point_of_sale +#: field:account.journal,auto_cash:0 +msgid "Automatic Opening" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_ketchup_250g_product_template +msgid "Lays Ketchup 250g" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.perrier_50cl_product_template +msgid "Perrier 50cl" +msgstr "" + +#. module: point_of_sale +#: selection:report.pos.order,state:0 +msgid "Synchronized" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,month:0 +#: view:report.pos.order:0 field:report.pos.order,month:0 +msgid "Month" +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 +msgid "Statement Name" +msgstr "取引明細書名" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Year of order date" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_tree +#: field:pos.box.entries,journal_id:0 field:pos.box.out,journal_id:0 +msgid "Cash Register" +msgstr "" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "Yes" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_receipt +msgid "Point of sale receipt" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_today +msgid "Sales by User Daily margin" +msgstr "" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "Open Registers" +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,journal_id:0 +msgid "Sales Journal" +msgstr "" + +#. module: point_of_sale +#: field:report.cash.register,balance_start:0 +msgid "Opening Balance" +msgstr "" + +#. module: point_of_sale +#: view:account.bank.statement:0 selection:report.pos.order,state:0 +msgid "Closed" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_vegetale_product_template +msgid "Dr. Oetker Ristorante Vegetale" +msgstr "" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created by today" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_2l_product_template +msgid "Coca-Cola Zero 2L" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,amount_paid:0 selection:pos.order,state:0 +msgid "Paid" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_all_sales_lines +msgid "All sales lines" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Discount" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created in last month" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.beers +msgid "Beers" +msgstr "" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "" +"OpenERP will close all cash registers he can close automatically without " +"validation. He will also open all cash registers for which you have to " +"control the ending belance before closing manually." +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created by today" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,state:0 +msgid "Quotation" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.product_product_putmoneyforchange0_product_template +msgid "Cash In" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:all.closed.cashbox.of.the.day:0 report:pos.invoice:0 +#: report:pos.lines:0 report:pos.payment.report.user:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:49 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:93 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:271 +msgid "Total:" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos +msgid "Sales by margin" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_config_journal +msgid "Journal Configuration" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Statement lines" +msgstr "取引明細書行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_paprika_45g_product_template +msgid "Croky Paprika 45g" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Reprint" +msgstr "" + +#. module: point_of_sale +#: help:pos.order,user_id:0 +msgid "" +"Person who uses the the cash register. It could be a reliever, a student or " +"an interim employee." +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,invoice_id:0 +msgid "Nbr Invoice" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_receipt +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:231 +msgid "Receipt" +msgstr "" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "" +"The system will open all cash registers, so that you can start recording " +"payments. We suggest you to control the opening balance of each register, " +"using their CashBox tab." +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 report:pos.lines:0 field:pos.order.line,price_unit:0 +#: report:pos.payment.report.user:0 +msgid "Unit Price" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Done" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_invoice_report +#: report:pos.invoice:0 view:pos.order:0 field:pos.order,invoice_id:0 +msgid "Invoice" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.rochefort_8_33cl_product_template +msgid "Rochefort \"8\" 33cl" +msgstr "" + +#. module: point_of_sale +#: view:account.bank.statement:0 selection:report.cash.register,state:0 +msgid "Open" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,name:0 field:pos.order.line,order_id:0 +msgid "Order Ref" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_geuze_37,5cl_product_template +msgid "Timmermans Geuze 37.5cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_pickles_250g_product_template +msgid "Lays Pickels 250g" +msgstr "" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,net_margin_per_qty:0 +#: field:report.sales.by.margin.pos.month,net_margin_per_qty:0 +msgid "Net margin per Qty" +msgstr "1個当り正味利鞘" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos_month +msgid "Sales by user monthly" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_et_fruit_50cl_product_template +msgid "Spa et Fruit Orange 50cl" +msgstr "" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +msgid "Sales by User Margin" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_payment.py:59 +#, python-format +msgid "Paiement" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Taxes:" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_33cl_product_template +msgid "Pepsi Max 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_pos_order +msgid "Point of Sale Orders Statistics" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.model,name:point_of_sale.model_product_product +#: report:pos.details:0 field:pos.order.line,product_id:0 +#: report:pos.payment.report.user:0 report:pos.user.product:0 +#: view:report.pos.order:0 field:report.pos.order,product_id:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:29 +msgid "Product" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_pollo_product_template +msgid "Dr. Oetker Ristorante Pollo" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_report +msgid "Pos Lines" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.grisette_cerise_25cl_product_template +msgid "Grisette Cerise 25cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_33cl_product_template +msgid "Chaudfontaine 33cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_margherita_product_template +msgid "Dr. Oetker La Margherita" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_root +msgid "PoS Backend" +msgstr "POS後方事務" + +#. module: point_of_sale +#: view:pos.order:0 selection:pos.order,state:0 +msgid "Posted" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,date_order:0 +msgid "Date Ordered" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_report_user +#: model:ir.model,name:point_of_sale.model_pos_payment_report_user +msgid "Sales lines by Users" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_2l_product_template +msgid "Pepsi 2L" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Order" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:472 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: point_of_sale +#: view:pos.details:0 +msgid "POS Details" +msgstr "" + +#. module: point_of_sale +#: field:pos.details,user_ids:0 +msgid "Salesmen" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_cash_register +#: view:report.cash.register:0 +msgid "Point of Sale Cash Register Analysis" +msgstr "" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Net Total :" +msgstr "" + +#. module: point_of_sale +#: model:res.groups,name:point_of_sale.group_pos_manager +msgid "Manager" +msgstr "" + +#. module: point_of_sale +#: field:pos.details,date_start:0 field:pos.sale.user,date_start:0 +msgid "Date Start" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: field:pos.order,amount_total:0 report:pos.payment.report.user:0 +#: field:report.sales.by.user.pos,amount:0 +#: field:report.sales.by.user.pos.month,amount:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:33 +msgid "Total" +msgstr "" + +#. module: point_of_sale +#: view:pos.sale.user:0 +msgid "Sale By User" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_open_statement +msgid "Open Cash Register" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lindemans_pecheresse_37,5cl_product_template +msgid "Lindemans Pecheresse 37.5cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_33cl_product_template +msgid "Pepsi 33cl" +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 +#: model:ir.actions.report.xml,name:point_of_sale.account_statement +msgid "Statement" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment_report +#: model:ir.model,name:point_of_sale.model_pos_payment_report +#: view:pos.payment.report:0 +msgid "Payment Report" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_25cl_product_template +msgid "Fanta Orange 25cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Generate Journal Entries" +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +#: report:pos.details:0 report:pos.details_summary:0 report:pos.lines:0 +#: field:pos.order,company_id:0 field:pos.order.line,company_id:0 +#: report:pos.payment.report.user:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 report:pos.user.product:0 +#: field:report.pos.order,company_id:0 +msgid "Company" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Invoice Date" +msgstr "" + +#. module: point_of_sale +#: field:pos.box.entries,name:0 +msgid "Reason" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orangina_33cl_product_template +msgid "Orangina 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_product_input +#: model:ir.ui.menu,name:point_of_sale.products_for_input_operations +msgid "Products 'Take Money Out'" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_bleu_33cl_product_template +msgid "Chimay Bleu 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_account_journal_form +#: model:ir.ui.menu,name:point_of_sale.menu_action_account_journal_form_open +msgid "Payment Methods" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.chips +msgid "Chips" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_spinaci_product_template +msgid "Dr. Oetker Ristorante Spinaci" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:293 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:100 +#: code:addons/point_of_sale/wizard/pos_box_out.py:88 +#, python-format +msgid "You have to open at least one cashbox" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report_user +msgid "Today's Payment By User" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_box_entries +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl +msgid "Put Money In" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:238 +#: code:addons/point_of_sale/point_of_sale.py:253 +#, python-format +msgid "Error!" +msgstr "" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "No. Of Articles" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_vanille_2,5l_product_template +msgid "ijsboerke Vanille 2.5L" +msgstr "" + +#. module: point_of_sale +#: selection:pos.order,state:0 selection:report.pos.order,state:0 +msgid "Cancelled" +msgstr "" + +#. module: point_of_sale +#: report:pos.user.product:0 +msgid "Ending Date" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orangina_1,5l_product_template +msgid "Orangina 1.5L" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,picking_id:0 +msgid "Picking" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.ice_cream +msgid "Ice Cream" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,shop_id:0 field:report.pos.order,shop_id:0 +msgid "Shop" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.belle_vue_kriek_25cl_product_template +msgid "Belle-Vue Kriek 25cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_1,5l_product_template +msgid "Chaudfontaine Petillante 1.5l" +msgstr "" + +#. module: point_of_sale +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS Report" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_1,5l_product_template +msgid "Chaudfontaine 1.5l" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_close_statement +msgid "Close Cash Register" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:65 +#, python-format +msgid "In order to delete a sale, it must be new or cancelled." +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_50cl_product_template +msgid "Coca-Cola Regular 50cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Generate Entries" +msgstr "" + +#. module: point_of_sale +#: field:pos.box.entries,product_id:0 field:pos.box.out,product_id:0 +msgid "Operation" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,account_move:0 +msgid "Journal Entry" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,state:0 +msgid "Confirmed" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Cancelled Invoice" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Confirm" +msgstr "" + +#. module: point_of_sale +#: help:account.journal,auto_cash:0 +msgid "" +"This field authorize the automatic creation of the cashbox, without control " +"of the initial balance." +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_50cl_product_template +msgid "Coca-Cola Zero 50cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_tonno_product_template +msgid "Dr. Oetker Ristorante Tonno" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Supplier Invoice" +msgstr "" + +#. module: point_of_sale +#: constraint:account.bank.statement:0 +msgid "The journal and period chosen have to belong to the same company." +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 selection:pos.order,state:0 +#: selection:report.pos.order,state:0 +msgid "New" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:238 +#, python-format +msgid "In order to set to draft a sale, it must be cancelled." +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_zero_orange_33cl_product_template +msgid "Fanta Zero Orange 33cl" +msgstr "" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Day of order date" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_rep +msgid "Reporting" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.maes_33cl_product_template +msgid "Maes 33cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.box.entries:0 +msgid "Put Money" +msgstr "" + +#. module: point_of_sale +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_config_product +msgid "Configuration" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orval_33cl_product_template +msgid "Orval 33cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_1l_product_template +msgid "Coca-Cola Regular 1L" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:253 +#, python-format +msgid "Unable to cancel the picking." +msgstr "" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created during current month" +msgstr "現在月中に作成されたPOSオーダー" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created last month" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_invoice +msgid "Invoices" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "December" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_1,5l_product_template +msgid "Spa Barisart 1.5l" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:329 view:pos.order:0 +#, python-format +msgid "Return Products" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.jupiler_33cl_product_template +msgid "Jupiler 33cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_chocolat_2,5l_product_template +msgid "ijsboerke Chocolat 2.5L" +msgstr "" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Take Money" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_details +msgid "Sales Details" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:50 +#, python-format +msgid "Message" +msgstr "" + +#. module: point_of_sale +#: view:account.journal:0 model:ir.model,name:point_of_sale.model_pos_order +#: model:ir.ui.menu,name:point_of_sale.menu_point_root_touchscreen +#: view:product.product:0 +msgid "Point of Sale" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 field:pos.payment.report.user,user_id:0 +#: field:pos.sale.user,user_id:0 field:pos.sales.user.today,user_id:0 +#: view:report.pos.order:0 field:report.pos.order,user_id:0 +msgid "Salesman" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 view:pos.order:0 selection:pos.order,state:0 +#: view:report.pos.order:0 selection:report.pos.order,state:0 +msgid "Invoiced" +msgstr "" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "No" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_50cl_product_template +msgid "Spa Barisart 50cl" +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.special_beers +msgid "Special Beers" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,notice:0 +msgid "Discount Notice" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Re-Print" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Draft" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_zero_orange_1,5l_product_template +msgid "Fanta Zero Orange 1.5L" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "PRO-FORMA" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:358 +#, python-format +msgid "Please provide a partner for the sale." +msgstr "" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.fruity_beers +msgid "Fruity Beers" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_dame_blanche_2,5l_product_template +msgid "ijsboerke Dame Blanche 2.5L" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_moka_2,5l_product_template +msgid "ijsboerke Moka 2.5L" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Search Sales Order" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,help:point_of_sale.action_account_journal_form +msgid "" +"Payment methods are defined by accounting journals having the field Payment " +"Method checked." +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree +#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos +msgid "Sales by user" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_hawaii_product_template +msgid "Dr. Oetker Ristorante Hawaii" +msgstr "" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Print Receipt" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "January" +msgstr "" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Orders lines" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_33cl_product_template +msgid "Chaudfontaine Petillante 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,help:point_of_sale.product_normal_action +msgid "" +"You must define a Product for everything you buy or sell. Products can be " +"raw materials, stockable products, consumables or services. The Product form " +"contains detailed information about your products related to procurement " +"logistics, sales price, product category, suppliers and so on." +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_2l_product_template +msgid "Pepsi Max 2L" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:358 +#, python-format +msgid "Error" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_300g_product_template +msgid "Lays Paprika XXL 300g" +msgstr "" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "Do you want to close your cash registers?" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Refund" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/report/pos_invoice.py:46 +#, python-format +msgid "Please create an invoice for this sale." +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_mozzarella_product_template +msgid "Dr. Oetker Ristorante Mozzarella" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:66 +#: model:ir.ui.menu,name:point_of_sale.menu_close_statement +#: view:pos.close.statement:0 +#, python-format +msgid "Close Cash Registers" +msgstr "" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.payment.report.user:0 +msgid "Disc(%)" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "General Information" +msgstr "" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: view:pos.details:0 view:pos.discount:0 view:pos.payment.report:0 +#: view:pos.payment.report.user:0 view:pos.sale.user:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:13 +msgid "Close" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Order lines" +msgstr "" + +#. module: point_of_sale +#: view:account.journal:0 +msgid "Extended Configuration" +msgstr "" + +#. module: point_of_sale +#: field:pos.order.line,price_subtotal:0 +msgid "Subtotal w/o Tax" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_50cl_product_template +msgid "Spa Reine 50cl" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_blonde_33cl_product_template +msgid "Leffe Blonde 33cl" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment +msgid "Pyament Report" +msgstr "" + +#. module: point_of_sale +#: field:report.transaction.pos,jl_id:0 +msgid "Cash Journals" +msgstr "" + +#. module: point_of_sale +#: report:pos.sales.user.today:0 +msgid "Today's Sales By User" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Customer Code" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_out.py:86 +#, python-format +msgid "please check that account is set to %s" +msgstr "" + +#. module: point_of_sale +#: field:pos.config.journal,name:0 report:pos.invoice:0 report:pos.lines:0 +msgid "Description" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "May" +msgstr "" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Sales lines" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Yesterday" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,note:0 +msgid "Internal Notes" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_decaf_33cl_product_template +msgid "Coca-Cola Zero Decaf 33cl" +msgstr "" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Describe why you take money from the cash register:" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_order_all +#: model:ir.ui.menu,name:point_of_sale.menu_report_pos_order_all +#: view:report.pos.order:0 +msgid "Point of Sale Analysis" +msgstr "" + +#. module: point_of_sale +#: view:pos.order:0 field:pos.order,partner_id:0 view:report.pos.order:0 +msgid "Customer" +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "February" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid " Today " +msgstr "" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "April" +msgstr "" + +#. module: point_of_sale +#: field:pos.order,statement_ids:0 +msgid "Payments" +msgstr "" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Supplier Refund" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_month +msgid "Sales by User Monthly margin" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_9_33cl_product_template +msgid "Leffe Brune \"9\" 33cl" +msgstr "" + +#. module: point_of_sale +#: help:account.journal,journal_user:0 +msgid "" +"Check this box if this journal define a payment method that can be used in " +"point of sales." +msgstr "" + +#. module: point_of_sale +#: field:pos.category,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_return.py:316 view:pos.make.payment:0 +#, python-format +msgid "Make Payment" +msgstr "" + +#. module: point_of_sale +#: constraint:pos.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_sales_user_today +msgid "Sales User Today" +msgstr "" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Month of order date" +msgstr "" + +#. module: point_of_sale +#: field:product.product,income_pdt:0 +msgid "PoS Cash Input" +msgstr "" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,year:0 +#: view:report.pos.order:0 field:report.pos.order,year:0 +msgid "Year" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:31 +msgid "Disc (%)" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:41 +msgid "Subtotal:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:45 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:268 +msgid "Tax:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:64 +msgid "Disc" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:71 +msgid "+/-" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:105 +msgid "Paid:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:113 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:288 +msgid "Change:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:124 +msgid "Back to Products" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:127 +msgid "Validate" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:140 +msgid "pending orders" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:145 +msgid "" +"There are pending operations that could not be saved into the database, are " +"you sure you want to exit?" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:236 +msgid "Print" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:238 +msgid "Next Order" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:248 +msgid "Phone:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:249 +msgid "User:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:250 +msgid "Shop:" +msgstr "" diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index ef26425d3c9..2c53fc2a28a 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -28,7 +28,7 @@ "category": "Project Management", "sequence": 8, "images": ["images/gantt.png", "images/project_dashboard.jpeg","images/project_task_tree.jpeg","images/project_task.jpeg","images/project.jpeg","images/task_analysis.jpeg"], - "depends": ["base_setup", "product", "analytic", "board", "mail", "resource","web_kanban"], + "depends": ["base_setup", "base_status", "product", "analytic", "board", "mail", "resource","web_kanban"], "description": """ Project management module tracks multi-level projects, tasks, work done on tasks, eso. ====================================================================================== diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml index fa6816ebbf7..a4b302f33f2 100644 --- a/addons/project/board_project_view.xml +++ b/addons/project/board_project_view.xml @@ -17,11 +17,8 @@ - - - - - + + @@ -39,10 +36,8 @@ - - - - + + diff --git a/addons/project/project.py b/addons/project/project.py index 0b23196a67f..fa3e0c33f4d 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,18 +19,15 @@ # ############################################################################## -from lxml import etree -import time +from base_status.base_stage import base_stage from datetime import datetime, date - -from tools.translate import _ +from lxml import etree from osv import fields, osv from openerp.addons.resource.faces import task as Task +import time +from tools.translate import _ -# I think we can remove this in v6.1 since VMT's improvements in the framework ? -#class project_project(osv.osv): -# _name = 'project.project' -#project_project() +_TASK_STATE = [('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done'), ('cancelled', 'Cancelled')] class project_task_type(osv.osv): _name = 'project.task.type' @@ -40,14 +37,20 @@ class project_task_type(osv.osv): 'name': fields.char('Stage Name', required=True, size=64, translate=True), 'description': fields.text('Description'), 'sequence': fields.integer('Sequence'), - 'project_default': fields.boolean('Common to All Projects', help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."), + 'case_default': fields.boolean('Common to All Projects', + help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."), 'project_ids': fields.many2many('project.project', 'project_task_type_rel', 'type_id', 'project_id', 'Projects'), + 'state': fields.selection(_TASK_STATE, 'State', required=True, + help="The related state for the stage. The state of your document will automatically change regarding the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."), + 'fold': fields.boolean('Hide in views if empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), } _defaults = { - 'sequence': 1 + 'sequence': 1, + 'state': 'draft', + 'fold': False, } _order = 'sequence' -project_task_type() class project(osv.osv): _name = "project.project" @@ -208,7 +211,7 @@ class project(osv.osv): return True def _get_type_common(self, cr, uid, context): - ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) + ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)], context=context) return ids _order = "sequence" @@ -239,7 +242,7 @@ class project(osv.osv): def set_done(self, cr, uid, ids, context=None): task_obj = self.pool.get('project.task') task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', 'not in', ('cancelled', 'done'))]) - task_obj.write(cr, uid, task_ids, {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) + task_obj.case_close(cr, uid, task_ids, context=context) self.write(cr, uid, ids, {'state':'close'}, context=context) self.set_close_send_note(cr, uid, ids, context=context) return True @@ -247,7 +250,7 @@ class project(osv.osv): def set_cancel(self, cr, uid, ids, context=None): task_obj = self.pool.get('project.task') task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', '!=', 'done')]) - task_obj.write(cr, uid, task_ids, {'state': 'cancelled', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) + task_obj.case_cancel(cr, uid, task_ids, context=context) self.write(cr, uid, ids, {'state':'cancelled'}, context=context) self.set_cancel_send_note(cr, uid, ids, context=context) return True @@ -501,49 +504,61 @@ def Project(): def set_close_send_note(self, cr, uid, ids, context=None): message = _("Project has been closed.") return self.message_append_note(cr, uid, ids, body=message, context=context) - -project() -class task(osv.osv): + +class task(base_stage, osv.osv): _name = "project.task" _description = "Task" _log_create = True _date_name = "date_start" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_project_id(self, cr, uid, context=None): + """ Gives default section by checking if present in the context """ + return (self._resolve_project_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + project_id = self._get_default_project_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], project_id, [('state', '=', 'draft')], context=context) def _resolve_project_id_from_context(self, cr, uid, context=None): - """Return ID of project based on the value of 'project_id' - context key, or None if it cannot be resolved to a single project. + """ Returns ID of project based on the value of 'default_project_id' + context key, or None if it cannot be resolved to a single + project. """ if context is None: context = {} if type(context.get('default_project_id')) in (int, long): - project_id = context['default_project_id'] - return project_id + return context['default_project_id'] if isinstance(context.get('default_project_id'), basestring): project_name = context['default_project_id'] - project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name) + project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name, context=context) if len(project_ids) == 1: return project_ids[0][0] + return None - def _read_group_type_id(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): stage_obj = self.pool.get('project.task.type') - project_id = self._resolve_project_id_from_context(cr, uid, context=context) order = stage_obj._order access_rights_uid = access_rights_uid or uid - if read_group_order == 'type_id desc': - # lame way to allow reverting search, should just work in the trivial case + # lame way to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': order = '%s desc' % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('project_ids', 'in', project_id), ('fold', '=', False) if project_id: add project columns that are not folded + search_domain = [] + project_id = self._resolve_project_id_from_context(cr, uid, context=context) if project_id: - domain = ['|', ('id','in',ids), ('project_ids','in',project_id)] - else: - domain = ['|', ('id','in',ids), ('project_default','=',1)] - stage_ids = stage_obj._search(cr, uid, domain, order=order, access_rights_uid=access_rights_uid, context=context) + search_domain += ['|', '&', ('project_ids', '=', project_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) # restore order of the search result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) return result - + def _read_group_user_id(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): res_users = self.pool.get('res.users') project_id = self._resolve_project_id_from_context(cr, uid, context=context) @@ -562,11 +577,10 @@ class task(osv.osv): return result _group_by_full = { - 'type_id': _read_group_type_id, - 'user_id': _read_group_user_id + 'stage_id': _read_group_stage_ids, + 'user_id': _read_group_user_id, } - def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False): obj_project = self.pool.get('project.project') for domain in args: @@ -597,7 +611,6 @@ class task(osv.osv): res[task.id]['progress'] = 100.0 return res - def onchange_remaining(self, cr, uid, ids, remaining=0.0, planned = 0.0): if remaining and not planned: return {'value':{'planned_hours': remaining}} @@ -640,7 +653,7 @@ class task(osv.osv): if not default.get('remaining_hours', False): default['remaining_hours'] = float(self.read(cr, uid, id, ['planned_hours'])['planned_hours']) default['active'] = True - default['type_id'] = False + default['stage_id'] = False if not default.get('name', False): default['name'] = self.browse(cr, uid, id, context=context).name or '' if not context.get('copy',False): @@ -670,10 +683,15 @@ class task(osv.osv): 'description': fields.text('Description'), 'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority', select=True), 'sequence': fields.integer('Sequence', select=True, help="Gives the sequence order when displaying a list of tasks."), - 'type_id': fields.many2one('project.task.type', 'Stage'), - 'state': fields.selection([('draft', 'New'),('cancelled', 'Cancelled'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done')], 'Status', readonly=True, required=True, - help='If the task is created the state is \'Draft\'.\n If the task is started, the state becomes \'In Progress\'.\n If review is needed the task is in \'Pending\' state.\ - \n If the task is over, the states is set to \'Done\'.'), + 'stage_id': fields.many2one('project.task.type', 'Stage', + domain="['|', ('project_ids', '=', project_id), ('case_default', '=', True)]"), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=_TASK_STATE, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State', help="A task's kanban state indicates special situations affecting it:\n" " * Normal is the default situation\n" @@ -722,6 +740,8 @@ class task(osv.osv): } _defaults = { + 'stage_id': _get_default_stage_id, + 'project_id': _get_default_project_id, 'state': 'draft', 'kanban_state': 'normal', 'priority': '2', @@ -729,7 +749,7 @@ class task(osv.osv): 'sequence': 10, 'active': True, 'user_id': lambda obj, cr, uid, context: uid, - 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c) + 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c), } _order = "priority, sequence, date_start, name, id" @@ -828,6 +848,41 @@ class task(osv.osv): res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm) return res + # **************************************** + # Case management + # **************************************** + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default stage; if not set, stages must be default + stages + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for task in cases: + if task.project_id: + section_ids.append(task.project_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('project_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('project.task.type').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + def _check_child_task(self, cr, uid, ids, context=None): if context == None: context = {} @@ -840,9 +895,9 @@ class task(osv.osv): return True def action_close(self, cr, uid, ids, context=None): - # This action open wizard to send email to partner or project manager after close task. - if context == None: - context = {} + """ This action closes the task, then opens the wizard to send an + email to the partner or the project manager. + """ task_id = len(ids) and ids[0] or False self._check_child_task(cr, uid, ids, context=context) if not task_id: return False @@ -863,12 +918,14 @@ class task(osv.osv): } return res - def do_close(self, cr, uid, ids, context={}): - """ - Close Task - """ + def do_close(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_close. """ + return self.case_close(cr, uid, ids, context=context) + + def case_close(self, cr, uid, ids, context=None): + """ Closes Task """ request = self.pool.get('res.request') - if not isinstance(ids,list): ids = [ids] + if not isinstance(ids, list): ids = [ids] for task in self.browse(cr, uid, ids, context=context): vals = {} project = task.project_id @@ -884,7 +941,6 @@ class task(osv.osv): 'ref_doc1': 'project.task,%d'% (task.id,), 'ref_doc2': 'project.project,%d'% (project.id,), }, context=context) - for parent_id in task.parent_ids: if parent_id.state in ('pending','draft'): reopen = True @@ -893,12 +949,12 @@ class task(osv.osv): reopen = False if reopen: self.do_reopen(cr, uid, [parent_id.id], context=context) - vals.update({'state': 'done'}) - vals.update({'remaining_hours': 0.0}) + # close task + vals['remaining_hours'] = 0.0 if not task.date_end: - vals.update({ 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')}) - self.write(cr, uid, [task.id],vals, context=context) - self.do_close_send_note(cr, uid, [task.id], context) + vals['date_end'] = fields.datetime.now() + self.case_set(cr, uid, [task.id], 'done', vals, context=context) + self.case_close_send_note(cr, uid, [task.id], context=context) return True def do_reopen(self, cr, uid, ids, context=None): @@ -916,12 +972,15 @@ class task(osv.osv): 'ref_doc1': 'project.task,%d' % task.id, 'ref_doc2': 'project.project,%d' % project.id, }, context=context) - - self.write(cr, uid, [task.id], {'state': 'open'}, context=context) - self.do_open_send_note(cr, uid, [task.id], context) + self.case_set(cr, uid, [task.id], 'open', {}, context=context) + self.case_open_send_note(cr, uid, [task.id], context) return True - def do_cancel(self, cr, uid, ids, context={}): + def do_cancel(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_cancel. """ + return self.case_cancel(cr, uid, ids, context=context) + + def case_cancel(self, cr, uid, ids, context=None): request = self.pool.get('res.request') tasks = self.browse(cr, uid, ids, context=context) self._check_child_task(cr, uid, ids, context=context) @@ -937,27 +996,38 @@ class task(osv.osv): 'ref_doc1': 'project.task,%d' % task.id, 'ref_doc2': 'project.project,%d' % project.id, }, context=context) - self.write(cr, uid, [task.id], {'state': 'cancelled', 'remaining_hours':0.0}, context=context) - self.do_cancel_send_note(cr, uid, [task.id], context) + # cancel task + self.case_set(cr, uid, [task.id], 'cancelled', {'remaining_hours': 0.0}, context=context) + self.case_cancel_send_note(cr, uid, [task.id], context=context) return True - def do_open(self, cr, uid, ids, context={}): + def do_open(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_open. """ + return self.case_open(cr, uid, ids, context=context) + + def case_open(self, cr, uid, ids, context=None): if not isinstance(ids,list): ids = [ids] - tasks= self.browse(cr, uid, ids, context=context) - for t in tasks: - data = {'state': 'open'} - if not t.date_start: - data['date_start'] = time.strftime('%Y-%m-%d %H:%M:%S') - self.write(cr, uid, [t.id], data, context=context) - self.do_open_send_note(cr, uid, [t.id], context) + self.case_set(cr, uid, ids, 'open', {'date_start': fields.datetime.now()}, context=context) + self.case_open_send_note(cr, uid, ids, context) return True - def do_draft(self, cr, uid, ids, context={}): - self.write(cr, uid, ids, {'state': 'draft'}, context=context) - self.do_draft_send_note(cr, uid, ids, context) + def do_draft(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_draft. """ + return self.case_draft(cr, uid, ids, context=context) + + def case_draft(self, cr, uid, ids, context=None): + self.case_set(cr, uid, ids, 'draft', {}, context=context) + self.case_draft_send_note(cr, uid, ids, context=context) return True - + def do_pending(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_pending. """ + return self.case_pending(cr, uid, ids, context=context) + + def case_pending(self, cr, uid, ids, context=None): + self.case_set(cr, uid, ids, 'pending', {}, context=context) + return self.case_pending_send_note(cr, uid, ids, context=context) + def _delegate_task_attachments(self, cr, uid, task_id, delegated_task_id, context=None): attachment = self.pool.get('ir.attachment') attachment_ids = attachment.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', task_id)], context=context) @@ -966,7 +1036,6 @@ class task(osv.osv): new_attachment_ids.append(attachment.copy(cr, uid, attachment_id, default={'res_id': delegated_task_id}, context=context)) return new_attachment_ids - def do_delegate(self, cr, uid, ids, delegate_data={}, context=None): """ Delegate Task to another users. @@ -1000,11 +1069,6 @@ class task(osv.osv): delegated_tasks[task.id] = delegated_task_id return delegated_tasks - def do_pending(self, cr, uid, ids, context={}): - self.write(cr, uid, ids, {'state': 'pending'}, context=context) - self.do_pending_send_note(cr, uid, ids, context) - return True - def set_remaining_time(self, cr, uid, ids, remaining_time=1.0, context=None): for task in self.browse(cr, uid, ids, context=context): if (task.state=='draft') or (task.planned_hours==0.0): @@ -1033,36 +1097,6 @@ class task(osv.osv): def set_kanban_state_done(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'kanban_state': 'done'}, context=context) - def _change_type(self, cr, uid, ids, next, context=None): - """ - go to the next stage - if next is False, go to previous stage - """ - for task in self.browse(cr, uid, ids): - if task.project_id.type_ids: - typeid = task.type_id.id - types_seq={} - for type in task.project_id.type_ids : - types_seq[type.id] = type.sequence - if next: - types = sorted(types_seq.items(), lambda x, y: cmp(x[1], y[1])) - else: - types = sorted(types_seq.items(), lambda x, y: cmp(y[1], x[1])) - sorted_types = [x[0] for x in types] - if not typeid: - self.write(cr, uid, task.id, {'type_id': sorted_types[0]}) - elif typeid and typeid in sorted_types and sorted_types.index(typeid) != len(sorted_types)-1: - index = sorted_types.index(typeid) - self.write(cr, uid, task.id, {'type_id': sorted_types[index+1]}) - self.state_change_send_note(cr, uid, [task.id], context) - return True - - def next_type(self, cr, uid, ids, context=None): - return self._change_type(cr, uid, ids, True, context=context) - - def prev_type(self, cr, uid, ids, context=None): - return self._change_type(cr, uid, ids, False, context=context) - def _store_history(self, cr, uid, ids, context=None): for task in self.browse(cr, uid, ids, context=context): self.pool.get('project.task.history').create(cr, uid, { @@ -1070,7 +1104,7 @@ class task(osv.osv): 'remaining_hours': task.remaining_hours, 'planned_hours': task.planned_hours, 'kanban_state': task.kanban_state, - 'type_id': task.type_id.id, + 'type_id': task.stage_id.id, 'state': task.state, 'user_id': task.user_id.id @@ -1084,22 +1118,25 @@ class task(osv.osv): return task_id # Overridden to reset the kanban_state to normal whenever - # the stage (type_id) of the task changes. + # the stage (stage_id) of the task changes. def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids] - if vals and not 'kanban_state' in vals and 'type_id' in vals: - new_stage = vals.get('type_id') + if vals and not 'kanban_state' in vals and 'stage_id' in vals: + new_stage = vals.get('stage_id') vals_reset_kstate = dict(vals, kanban_state='normal') for t in self.browse(cr, uid, ids, context=context): - write_vals = vals_reset_kstate if t.type_id != new_stage else vals + #TO FIX:Kanban view doesn't raise warning + #stages = [stage.id for stage in t.project_id.type_ids] + #if new_stage not in stages: + #raise osv.except_osv(_('Warning !'), _('Stage is not defined in the project.')) + write_vals = vals_reset_kstate if t.stage_id != new_stage else vals super(task,self).write(cr, uid, [t.id], write_vals, context=context) result = True else: result = super(task,self).write(cr, uid, ids, vals, context=context) - if ('type_id' in vals) or ('remaining_hours' in vals) or ('user_id' in vals) or ('state' in vals) or ('kanban_state' in vals): + if ('stage_id' in vals) or ('remaining_hours' in vals) or ('user_id' in vals) or ('state' in vals) or ('kanban_state' in vals): self._store_history(cr, uid, ids, context=context) - self.state_change_send_note(cr, uid, ids, context) return result def unlink(self, cr, uid, ids, context=None): @@ -1139,7 +1176,11 @@ class task(osv.osv): # --------------------------------------------------- # OpenChatter methods and notifications # --------------------------------------------------- - + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Task' + def get_needaction_user_ids(self, cr, uid, ids, context=None): result = dict.fromkeys(ids, []) for obj in self.browse(cr, uid, ids, context=context): @@ -1156,28 +1197,16 @@ class task(osv.osv): sub_ids.append(obj.manager_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + def create_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Task has been created."), context=context) - def do_pending_send_note(self, cr, uid, ids, context=None): - if not isinstance(ids,list): ids = [ids] - msg = _('Task is now pending.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_open_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been opened.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_cancel_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been canceled.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_close_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been closed.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_draft_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been renewed.') + def case_draft_send_note(self, cr, uid, ids, context=None): + msg = _('Task has been set as draft.') return self.message_append_note(cr, uid, ids, body=msg, context=context) def do_delegation_send_note(self, cr, uid, ids, context=None): @@ -1186,13 +1215,6 @@ class task(osv.osv): self.message_append_note(cr, uid, [task.id], body=msg, context=context) return True - def state_change_send_note(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids, context=context): - msg = _('Stage changed to %s') % (task.type_id.name) - self.message_append_note(cr, uid, [task.id], body=msg, context=context) - return True - -task() class project_work(osv.osv): _name = "project.task.work" @@ -1231,7 +1253,7 @@ class project_work(osv.osv): for work in self.browse(cr, uid, ids): cr.execute('update project_task set remaining_hours=remaining_hours + %s where id=%s', (work.hours, work.task_id.id)) return super(project_work,self).unlink(cr, uid, ids,*args, **kwargs) -project_work() + class account_analytic_account(osv.osv): @@ -1252,7 +1274,6 @@ class account_analytic_account(osv.osv): raise osv.except_osv(_('Warning !'), _('Please delete the project linked with this account first.')) return super(account_analytic_account, self).unlink(cr, uid, ids, *args, **kwargs) -account_analytic_account() # # Tasks History, used for cumulative flow charts (Lean/Agile) @@ -1313,7 +1334,7 @@ class project_task_history(osv.osv): _defaults = { 'date': fields.date.context_today, } -project_task_history() + class project_task_history_cumulative(osv.osv): _name = 'project.task.history.cumulative' @@ -1341,4 +1362,4 @@ class project_task_history_cumulative(osv.osv): ) as history ) """) -project_task_history_cumulative() + diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml index b7b59911fa4..4c95373d91f 100644 --- a/addons/project/project_data.xml +++ b/addons/project/project_data.xml @@ -24,22 +24,40 @@ 1 Design - + draft + 2 Development - + open + 3 Testing - + open + + + + 4 + Pending + pending + + - 4 + 5 Deployment - + done + + + + 6 + Cancelled + cancelled + + diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml index 2f8c9e9638a..f685f14c85b 100644 --- a/addons/project/project_demo.xml +++ b/addons/project/project_demo.xml @@ -77,7 +77,7 @@ 2 Prepare Requirements Document - + 3 @@ -88,7 +88,7 @@ 2 Make SRS - + @@ -99,7 +99,7 @@ Design Use Cases - + @@ -112,7 +112,7 @@ Use the account_budget module 3 - + @@ -125,7 +125,7 @@ done 0 - + @@ -135,7 +135,7 @@ 2 Risk Management Planning - + @@ -145,7 +145,7 @@ 2 Create Project Schedules - + @@ -156,7 +156,7 @@ Dataflow Design 0 - + @@ -166,7 +166,7 @@ 2 User Interface Design - + @@ -177,7 +177,7 @@ Develop Module in Sale Management blocked - + @@ -187,7 +187,7 @@ 2 Develop module in Warehouse - + @@ -199,7 +199,7 @@ 2 Integrate Modules - + @@ -211,7 +211,7 @@ 2 Unit Testing - + @@ -223,8 +223,7 @@ 2 Regression Test - - pending + @@ -234,7 +233,7 @@ 2 Documentation - + 2011-02-06 @@ -247,7 +246,7 @@ Performance Tuning Test on Runbot - + @@ -258,7 +257,7 @@ 2 Deploy and Review on Customer System - + @@ -269,7 +268,7 @@ 2 Training and Presentation - + diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 70cdac1efa0..08d0a23ea16 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -161,7 +161,7 @@ - + - - - - - - - + + + + + + + + + - + @@ -362,7 +373,8 @@ - + + @@ -376,16 +388,13 @@ + - - - - - + @@ -397,22 +406,22 @@ - + project.task.kanban project.task kanban - + - + - + @@ -508,20 +517,11 @@ - - + + - - - - @@ -589,7 +589,7 @@ - + @@ -660,7 +660,7 @@ - + @@ -674,10 +674,14 @@ form - - - - + + + + + + + + @@ -693,6 +697,7 @@ + @@ -707,10 +712,10 @@ - + - - + + diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml index 89667992f0a..3c04d36feb6 100644 --- a/addons/project/report/project_cumulative.xml +++ b/addons/project/report/project_cumulative.xml @@ -15,7 +15,8 @@ - + + diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index 1012ca9d518..58f7739e96d 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -82,7 +82,7 @@ class report_project_task_user(osv.osv): t.name as name, t.company_id, t.partner_id, - t.type_id, + t.stage_id, remaining_hours as remaining_hours, total_hours as total_hours, t.delay_hours as hours_delay, @@ -114,7 +114,7 @@ class report_project_task_user(osv.osv): name, t.company_id, t.partner_id, - t.type_id + t.stage_id """) diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 3bdec47fcb9..240176f7941 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -214,7 +214,7 @@ - + diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index c4d17f783f6..ad4bbe53bb3 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -40,7 +40,7 @@ I change the stage of task to next stage. - !python {model: project.task}: | - self.next_type(cr, uid, [ref("project_task_1")]) + self.stage_next(cr, uid, [ref("project_task_1")]) - !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 @@ -68,9 +68,9 @@ I change the stage of task to previous stage. - !python {model: project.task}: | - self.prev_type(cr, uid, [ref("project_task_1")]) + self.stage_previous(cr, uid, [ref("project_task_1")]) - I cancel Task. - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_2")]) \ No newline at end of file + self.do_cancel(cr, uid, [ref("project_task_2")]) diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index fc88372fe90..9037523d41e 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -38,6 +38,7 @@ and decide on their status as they evolve. 'website': 'http://www.openerp.com', 'images': ['images/issue_analysis.jpeg','images/project_issue.jpeg'], 'depends': [ + 'base_status', 'crm', 'project', ], diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml index a070bdbe521..b6e1f8a5d99 100644 --- a/addons/project_issue/board_project_issue_view.xml +++ b/addons/project_issue/board_project_issue_view.xml @@ -35,7 +35,7 @@ graph - + @@ -96,18 +96,10 @@ - - - - - - - - - - + + diff --git a/addons/project_issue/i18n/sv.po b/addons/project_issue/i18n/sv.po new file mode 100644 index 00000000000..134b7a9477b --- /dev/null +++ b/addons/project_issue/i18n/sv.po @@ -0,0 +1,952 @@ +# Swedish 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: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-05-30 19:13+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Previous Month" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,delay_open:0 +msgid "Avg. Delay to Open" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +msgid "Group By..." +msgstr "" + +#. module: project_issue +#: field:project.issue,working_hours_open:0 +msgid "Working Hours to Open the Issue" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" + +#. module: project_issue +#: field:project.issue,date_open:0 +msgid "Opened" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,opening_date:0 +msgid "Date of Opening" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "March" +msgstr "" + +#. module: project_issue +#: field:project.issue,progress:0 +msgid "Progress (%)" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:406 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: project_issue +#: field:project.issue,company_id:0 view:project.issue.report:0 +#: field:project.issue.report,company_id:0 +msgid "Company" +msgstr "" + +#. module: project_issue +#: field:project.issue,email_cc:0 +msgid "Watchers Emails" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Today's features" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_version +msgid "project.issue.version" +msgstr "" + +#. module: project_issue +#: field:project.issue,day_open:0 +msgid "Days to Open" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:406 +#, python-format +msgid "" +"You cannot escalate this issue.\n" +"The relevant Project has not configured the Escalation Project!" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Highest" +msgstr "" + +#. module: project_issue +#: help:project.issue,inactivity_days:0 +msgid "Difference in days between last action and current date" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,day:0 +msgid "Day" +msgstr "" + +#. module: project_issue +#: field:project.issue,days_since_creation:0 +msgid "Days since creation date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Add Internal Note" +msgstr "" + +#. module: project_issue +#: field:project.issue,task_id:0 view:project.issue.report:0 +#: field:project.issue.report,task_id:0 +msgid "Task" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By Stage" +msgstr "" + +#. module: project_issue +#: field:project.issue,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: project_issue +#: field:project.issue,inactivity_days:0 +msgid "Days since last action" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_project +#: view:project.issue:0 field:project.issue,project_id:0 +#: view:project.issue.report:0 field:project.issue.report,project_id:0 +msgid "Project" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_open_project_issue_tree +msgid "My Open Project issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue,state:0 selection:project.issue.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change to Next Stage" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,date_closed:0 +msgid "Date of Closing" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Search" +msgstr "" + +#. module: project_issue +#: field:project.issue,color:0 +msgid "Color Index" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue / Partner" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_open:0 +msgid "Avg. Working Hours to Open" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_next:0 +msgid "Next Action" +msgstr "" + +#. module: project_issue +#: help:project.project,project_escalation_id:0 +msgid "" +"If any issue is escalated from the current Project, it will be listed under " +"the project selected here." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Extra Info" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.action_project_issue_report +msgid "" +"This report on the project issues allows you to analyse the quality of your " +"support or after-sales services. You can track the issues per age. You can " +"analyse the time required to open or close an issue, the number of email to " +"exchange and the time spent on average by issues." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change Color" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:482 +#, python-format +msgid " (copy)" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Responsible" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Low" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Statistics" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Convert To Task" +msgstr "" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.bug_categ +msgid "Maintenance" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_report +#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree +#: view:project.issue.report:0 +msgid "Issues Analysis" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Next" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,priority:0 +#: view:project.issue.report:0 field:project.issue.report,priority:0 +msgid "Priority" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Send New Email" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,version_id:0 +#: view:project.issue.report:0 field:project.issue.report,version_id:0 +msgid "Version" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 +msgid "New" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action +msgid "Issue Categories" +msgstr "" + +#. module: project_issue +#: field:project.issue,email_from:0 +msgid "Email" +msgstr "" + +#. module: project_issue +#: field:project.issue,channel_id:0 field:project.issue.report,channel_id:0 +msgid "Channel" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Lowest" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Unassigned Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,create_date:0 view:project.issue.report:0 +#: field:project.issue.report,creation_date:0 +msgid "Creation Date" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_version_action +#: model:ir.ui.menu,name:project_issue.menu_project_issue_version_act +msgid "Versions" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "To Do Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reset to Draft" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Today" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.open_board_project_issue +#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue +msgid "Project Issue Dashboard" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 +msgid "Done" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "July" +msgstr "" + +#. module: project_issue +#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act +msgid "Categories" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +#: field:project.issue.report,type_id:0 +msgid "Stage" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History Information" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree +#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree +msgid "Project issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Communication & History" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "My Open Project Issue" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_project_issue_tree +msgid "My Project Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Contact" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,partner_id:0 +#: view:project.issue.report:0 field:project.issue.report,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change to Previous Stage" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_version_action +msgid "" +"You can use the issues tracker in OpenERP to handle bugs in the software " +"development project, to handle claims in after-sales services, etc. Define " +"here the different versions of your products on which you can work on issues." +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:330 +#, python-format +msgid "Tasks" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,nbr:0 +msgid "# of Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "September" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "December" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Tree" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +#: field:project.issue.report,month:0 +msgid "Month" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_report +msgid "project.issue.report" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:408 view:project.issue:0 +#, python-format +msgid "Escalate" +msgstr "" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.feature_request_categ +msgid "Feature Requests" +msgstr "" + +#. module: project_issue +#: field:project.issue,write_date:0 +msgid "Update Date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Open Features" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Previous" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,categ_id:0 +#: view:project.issue.report:0 field:project.issue.report,categ_id:0 +msgid "Category" +msgstr "" + +#. module: project_issue +#: field:project.issue,user_email:0 +msgid "User Email" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Number of Project Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reset to New" +msgstr "" + +#. module: project_issue +#: help:project.issue,channel_id:0 +msgid "Communication channel." +msgstr "" + +#. module: project_issue +#: help:project.issue,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,state:0 +msgid "Draft" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Contact Information" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_closed:0 selection:project.issue.report,state:0 +msgid "Closed" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reply" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,delay_close:0 +msgid "Avg. Delay to Close" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 selection:project.issue.report,state:0 +msgid "Pending" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Status" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Project Issues" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Current Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "August" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Normal" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Global CC" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +msgid "To Do" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "June" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "New Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,day_close:0 +msgid "Days to Close" +msgstr "" + +#. module: project_issue +#: field:project.issue,active:0 field:project.issue.version,active:0 +msgid "Active" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "November" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Search" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "October" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues Dashboard" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,type_id:0 +msgid "Stages" +msgstr "" + +#. module: project_issue +#: help:project.issue,days_since_creation:0 +msgid "Difference in days between creation date and current date" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "January" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Tree" +msgstr "" + +#. module: project_issue +#: help:project.issue,email_from:0 +msgid "These people will receive email." +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By State" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,date:0 +msgid "Date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History" +msgstr "" + +#. module: project_issue +#: field:project.issue,user_id:0 view:project.issue.report:0 +#: field:project.issue.report,user_id:0 +msgid "Assigned to" +msgstr "" + +#. module: project_issue +#: field:project.project,reply_to:0 +msgid "Reply-To Email Address" +msgstr "" + +#. module: project_issue +#: field:project.issue,partner_address_id:0 +msgid "Partner Contact" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Form" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,state:0 +#: view:project.issue.report:0 field:project.issue.report,state:0 +msgid "State" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "General" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Current Features" +msgstr "" + +#. module: project_issue +#: view:project.issue.version:0 +msgid "Issue Version" +msgstr "" + +#. module: project_issue +#: field:project.issue.version,name:0 +msgid "Version Number" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Cancel" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Close" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue.report,state:0 +msgid "Open" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0 +#: model:ir.ui.menu,name:project_issue.menu_project_confi +#: model:ir.ui.menu,name:project_issue.menu_project_issue_track +#: view:project.issue:0 +msgid "Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue,state:0 +msgid "In Progress" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state +#: model:ir.model,name:project_issue.model_project_issue +#: view:project.issue.report:0 +msgid "Project Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Creation Month" +msgstr "" + +#. module: project_issue +#: help:project.issue,progress:0 +msgid "Computed as: Time Spent / Total Time." +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0 +msgid "" +"Issues such as system bugs, customer complaints, and material breakdowns are " +"collected here. You can define the stages assigned when solving the project " +"issue (analysis, development, done). With the mailgateway module, issues can " +"be integrated through an email address (example: support@mycompany.com)" +msgstr "" + +#. module: project_issue +#: view:board.board:0 view:project.issue:0 +msgid "Pending Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,name:0 +msgid "Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Search" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,description:0 +msgid "Description" +msgstr "" + +#. module: project_issue +#: field:project.issue,section_id:0 +msgid "Sales Team" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "May" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,email:0 +msgid "# Emails" +msgstr "" + +#. module: project_issue +#: help:project.issue,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "February" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:70 +#, python-format +msgid "Issue '%s' has been opened." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature description" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Edit" +msgstr "" + +#. module: project_issue +#: field:project.project,project_escalation_id:0 +msgid "Project Escalation" +msgstr "" + +#. module: project_issue +#: help:project.issue,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Month-1" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:85 +#, python-format +msgid "Issue '%s' has been closed." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "April" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "References" +msgstr "" + +#. module: project_issue +#: field:project.issue,working_hours_close:0 +msgid "Working Hours to Close the Issue" +msgstr "" + +#. module: project_issue +#: field:project.issue,id:0 +msgid "ID" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Current Year" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:415 +#, python-format +msgid "No Title" +msgstr "" + +#. module: project_issue +#: help:project.issue.report,delay_close:0 +#: help:project.issue.report,delay_open:0 +msgid "Number of Days to close the project issue" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,section_id:0 +msgid "Sale Team" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_close:0 +msgid "Avg. Working Hours to Close" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "High" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_deadline:0 +msgid "Deadline" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_last:0 +msgid "Last Action" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,name:0 +msgid "Year" +msgstr "" + +#. module: project_issue +#: field:project.issue,duration:0 +msgid "Duration" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Open Issues by Creation Date" +msgstr "" diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 176ffa61acd..177c21570cd 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -19,6 +19,7 @@ # ############################################################################## +from base_status.base_stage import base_stage from crm import crm from datetime import datetime from osv import fields,osv @@ -42,12 +43,62 @@ class project_issue_version(osv.osv): } project_issue_version() -class project_issue(crm.crm_case, osv.osv): +_ISSUE_STATE= [('draft', 'New'), ('open', 'In Progress'), ('cancel', 'Cancelled'), ('done', 'Done'),('pending', 'Pending')] + +class project_issue(base_stage, osv.osv): _name = "project.issue" _description = "Project Issue" _order = "priority, create_date desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_project_id(self, cr, uid, context=None): + """ Gives default project by checking if present in the context """ + return self._resolve_project_id_from_context(cr, uid, context=context) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + project_id = self._get_default_project_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], project_id, [('state', '=', 'draft')], context=context) + + def _resolve_project_id_from_context(self, cr, uid, context=None): + """ Returns ID of project based on the value of 'default_project_id' + context key, or None if it cannot be resolved to a single + project. + """ + if context is None: + context = {} + if type(context.get('default_project_id')) in (int, long): + return context.get('default_project_id') + if isinstance(context.get('default_project_id'), basestring): + project_name = context['default_project_id'] + project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name, context=context) + if len(project_ids) == 1: + return int(project_ids[0][0]) + return None + + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + access_rights_uid = access_rights_uid or uid + stage_obj = self.pool.get('project.task.type') + order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': + order = "%s desc" % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('project_ids', 'in', project_id), ('fold', '=', False) if project_id: add project columns that are not folded + search_domain = [] + project_id = self._resolve_project_id_from_context(cr, uid, context=context) + if project_id: + search_domain += ['|', '&', ('project_ids', '=', project_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + # perform search + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) + result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) + # restore order of the search + result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) + return result + def _compute_day(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, @@ -173,11 +224,13 @@ class project_issue(crm.crm_case, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner', select=1), 'company_id': fields.many2one('res.company', 'Company'), 'description': fields.text('Description'), - 'state': fields.selection([('draft', 'New'), ('cancel', 'Cancelled'), ('open', 'In Progress'),('pending', 'Pending'),('done', 'Done') ], 'Status', 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\'.'), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=_ISSUE_STATE, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If 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.", select=1), 'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'date_open': fields.datetime('Opened', readonly=True,select=True), @@ -188,7 +241,8 @@ class project_issue(crm.crm_case, osv.osv): 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'version_id': fields.many2one('project.issue.version', 'Version'), - 'type_id': fields.many2one ('project.task.type', 'Stages', domain="[('project_ids', '=', project_id)]"), + 'stage_id': fields.many2one ('project.task.type', 'Stages', + domain="['|', ('project_ids', '=', project_id), ('case_default', '=', True)]"), 'project_id':fields.many2one('project.project', 'Project'), 'duration': fields.float('Duration'), 'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"), @@ -221,15 +275,20 @@ class project_issue(crm.crm_case, osv.osv): _defaults = { 'active': 1, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case._get_default_email, + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), 'state': 'draft', - 'section_id': crm.crm_case._get_section, + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'priority': crm.AVAILABLE_PRIORITIES[2][0], 'categ_id' : lambda *a: False, } + _group_by_full = { + 'stage_id': _read_group_stage_ids + } + def set_priority(self, cr, uid, ids, priority): """Set lead priority """ @@ -312,36 +371,20 @@ class project_issue(crm.crm_case, osv.osv): def convert_to_bug(self, cr, uid, ids, context=None): return self._convert(cr, uid, ids, 'bug_categ', context=context) - def next_type(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids): - typeid = task.type_id.id - types = map(lambda x:x.id, task.project_id.type_ids or []) - if types: - if not typeid: - self.write(cr, uid, [task.id], {'type_id': types[0]}) - elif typeid and typeid in types and types.index(typeid) != len(types)-1 : - index = types.index(typeid) - self.write(cr, uid, [task.id], {'type_id': types[index+1]}) - return True - - def prev_type(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids): - typeid = task.type_id.id - types = map(lambda x:x.id, task.project_id and task.project_id.type_ids or []) - if types: - if typeid and typeid in types: - index = types.index(typeid) - self.write(cr, uid, [task.id], {'type_id': index and types[index-1] or False}) - return True - + def copy(self, cr, uid, id, default=None, context=None): + issue = self.read(cr, uid, id, ['name'], context=context) + if not default: + default = {} + default = default.copy() + default['name'] = issue['name'] + _(' (copy)') + return super(project_issue, self).copy(cr, uid, id, default=default, + context=context) + def write(self, cr, uid, ids, vals, context=None): #Update last action date every time the user change the stage, the state or send a new email - logged_fields = ['type_id', 'state', 'message_ids'] + logged_fields = ['stage_id', 'state', 'message_ids'] if any([field in vals for field in logged_fields]): vals['date_action_last'] = time.strftime('%Y-%m-%d %H:%M:%S') - if vals.get('type_id', False): - stage = self.pool.get('project.task.type').browse(cr, uid, vals['type_id'], context=context) - self.message_append_note(cr, uid, ids, body=_("Stage changed to %s.") % stage.name, context=context) return super(project_issue, self).write(cr, uid, ids, vals, context) def onchange_task_id(self, cr, uid, ids, task_id, context=None): @@ -363,15 +406,51 @@ class project_issue(crm.crm_case, osv.osv): self.create_send_note(cr, uid, [obj_id], context=context) return obj_id - def case_open(self, cr, uid, ids, context=None): - res = super(project_issue, self).case_open(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'), 'user_id' : uid}) - return res + # ------------------------------------------------------- + # Stage management + # ------------------------------------------------------- + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the issue: + - type: stage type must be the same or 'both' + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for task in cases: + if task.project_id: + section_ids.append(task.project_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('project_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('project.task.type').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancelled', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True def case_escalate(self, cr, uid, ids, context=None): cases = self.browse(cr, uid, ids) for case in cases: - data = {'state' : 'draft'} + 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: @@ -380,10 +459,14 @@ class project_issue(crm.crm_case, osv.osv): self.pool.get('project.task').write(cr, uid, [case.task_id.id], {'project_id': data['project_id'], 'user_id': False}) else: 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) - self.case_escalate_send_note(cr, uid, [case.id], context) + self.case_set(cr, uid, ids, 'draft', data, context=context) + self.case_escalate_send_note(cr, uid, [case.id], context=context) return True + # ------------------------------------------------------- + # Mail gateway + # ------------------------------------------------------- + def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" if context is None: @@ -434,7 +517,7 @@ class project_issue(crm.crm_case, osv.osv): # Reassign the 'open' state to the case if this one is in pending or done for record in self.browse(cr, uid, ids, context=context): if record.state in ('pending', 'done'): - record.write({'state' : 'open'}) + self.case_set(cr, uid, ids, 'open', {}, context=context) vls = { } for line in msg['body_text'].split('\n'): @@ -448,15 +531,6 @@ class project_issue(crm.crm_case, osv.osv): res = self.write(cr, uid, ids, vals) self.message_append_dict(cr, uid, ids, msg, context=context) return res - - def copy(self, cr, uid, id, default=None, context=None): - issue = self.read(cr, uid, id, ['name'], context=context) - if not default: - default = {} - default = default.copy() - default['name'] = issue['name'] + _(' (copy)') - return super(project_issue, self).copy(cr, uid, id, default=default, - context=context) # ------------------------------------------------------- # OpenChatter methods and notifications @@ -475,9 +549,15 @@ class project_issue(crm.crm_case, osv.osv): if obj.user_id: sub_ids.append(obj.user_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) - + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return 'Project issue ' + """ Override of default prefix for notifications. """ + return 'Project issue' def convert_to_task_send_note(self, cr, uid, ids, context=None): message = _("Project issue has been converted in to task.") diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml index 358e9e55aa5..a213cb02c2e 100644 --- a/addons/project_issue/project_issue_demo.xml +++ b/addons/project_issue/project_issue_demo.xml @@ -7,7 +7,6 @@ - @@ -15,7 +14,7 @@ - + @@ -23,28 +22,26 @@ - - + - - + @@ -52,14 +49,13 @@ - - + @@ -67,14 +63,13 @@ - - + @@ -82,14 +77,13 @@ - - + @@ -97,14 +91,13 @@ - - + @@ -112,14 +105,13 @@ - - + @@ -127,13 +119,12 @@ - - + @@ -141,14 +132,13 @@ - - + @@ -156,14 +146,13 @@ - - + @@ -171,7 +160,6 @@ - @@ -179,7 +167,7 @@ - + @@ -187,7 +175,6 @@ - @@ -195,7 +182,7 @@ - + @@ -203,14 +190,13 @@ - - + @@ -218,14 +204,13 @@ - - + @@ -233,14 +218,13 @@ - - + diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 148d2f79b97..082ce6afd78 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -52,14 +52,26 @@ - - - - - - + + + + + + + + - + @@ -75,11 +87,7 @@ - - - - - + @@ -138,19 +146,11 @@ - - - - - - - - - - + + @@ -192,7 +192,7 @@ + context="{'group_by':'stage_id'}" /> @@ -224,9 +224,9 @@ project.issue kanban - + - + @@ -270,8 +270,7 @@ - - + @@ -304,18 +303,10 @@ - - - - - - - - - - + + @@ -326,13 +317,13 @@ search - - + diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py index 7cc520308e8..be3309d7175 100644 --- a/addons/project_issue/report/project_issue_report.py +++ b/addons/project_issue/report/project_issue_report.py @@ -51,7 +51,7 @@ class project_issue_report(osv.osv): 'creation_date': fields.date('Creation Date', readonly=True), 'date_closed': fields.date('Date of Closing', readonly=True), 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"), - 'type_id': fields.many2one('project.task.type', 'Stage'), + 'stage_id': fields.many2one('project.task.type', 'Stage'), 'nbr': fields.integer('# of Issues', readonly=True), 'working_hours_open': fields.float('Avg. Working Hours to Open', readonly=True), 'working_hours_close': fields.float('Avg. Working Hours to Close', readonly=True), @@ -87,7 +87,7 @@ class project_issue_report(osv.osv): c.working_hours_close, c.section_id, c.categ_id, - c.type_id, + c.stage_id, to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, c.company_id as company_id, c.priority as priority, diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml index 51b92d8b197..593d54fffe9 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_view.xml @@ -11,7 +11,7 @@ - + @@ -103,7 +103,7 @@ - + diff --git a/addons/project_issue/test/cancel_issue.yml b/addons/project_issue/test/cancel_issue.yml index ff05d923ed0..76ffa212638 100644 --- a/addons/project_issue/test/cancel_issue.yml +++ b/addons/project_issue/test/cancel_issue.yml @@ -7,7 +7,7 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel' + - state == 'cancelled' - I re-open the Issue. - @@ -37,7 +37,7 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel' + - state == 'cancelled' - I close Issue. - @@ -57,4 +57,4 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel' \ No newline at end of file + - state == 'cancelled' diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 5573fc32b5d..eb2c86a0f1b 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -330,8 +330,8 @@ search - - + + diff --git a/addons/project_planning/project_planning_view.xml b/addons/project_planning/project_planning_view.xml index 11e9b057c06..ef230543e9c 100644 --- a/addons/project_planning/project_planning_view.xml +++ b/addons/project_planning/project_planning_view.xml @@ -129,7 +129,7 @@ - + diff --git a/addons/project_scrum/board_project_scrum_view.xml b/addons/project_scrum/board_project_scrum_view.xml index 284208ee21f..08e3fd1bb25 100644 --- a/addons/project_scrum/board_project_scrum_view.xml +++ b/addons/project_scrum/board_project_scrum_view.xml @@ -16,12 +16,6 @@ - - - - - @@ -114,8 +108,6 @@ - diff --git a/addons/project_scrum/project_scrum_demo.xml b/addons/project_scrum/project_scrum_demo.xml index 50c67146716..6e3de7665bd 100644 --- a/addons/project_scrum/project_scrum_demo.xml +++ b/addons/project_scrum/project_scrum_demo.xml @@ -265,7 +265,6 @@ Review all English Terms - done @@ -274,7 +273,6 @@ Review all french terms - done @@ -283,7 +281,6 @@ Analytic Accounting features - done @@ -292,7 +289,6 @@ Test and improve automatic migration system - open @@ -300,7 +296,6 @@ General accounting features - open @@ -316,7 +311,6 @@ Cash book, general ledger, accounts list, aged trial balance Accounting Report General - open @@ -332,7 +326,6 @@ Accounting Report Analytic - open @@ -340,7 +333,6 @@ Bugfix - memory leak - done @@ -349,7 +341,6 @@ Bugfix - Translations - open @@ -358,7 +349,6 @@ Finish the automated plugin system - pending @@ -373,7 +363,6 @@ Test 3.2.0 before releasing - open @@ -382,7 +371,6 @@ default values, onchange, required, add on top or bottom and shortcuts (Ctrl S, Ctrl X, ...) Editable trees - open diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml index ef8a2681620..1c73aa0fe3b 100644 --- a/addons/project_scrum/project_scrum_view.xml +++ b/addons/project_scrum/project_scrum_view.xml @@ -43,10 +43,6 @@ - - - - @@ -106,7 +102,7 @@ - - - - - - @@ -578,7 +568,7 @@ search - + diff --git a/addons/report_webkit/header_view.xml b/addons/report_webkit/header_view.xml index 267bc7cb0a4..c66afd4f66c 100644 --- a/addons/report_webkit/header_view.xml +++ b/addons/report_webkit/header_view.xml @@ -53,7 +53,7 @@ form tree,form - + Webkit Headers/Footers @@ -61,7 +61,7 @@ form tree,form - + diff --git a/addons/sale/i18n/is.po b/addons/sale/i18n/is.po new file mode 100644 index 00000000000..d69da3752bc --- /dev/null +++ b/addons/sale/i18n/is.po @@ -0,0 +1,2173 @@ +# Icelandic 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: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-05-29 17:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Icelandic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: sale +#: field:sale.config.picking_policy,timesheet:0 +msgid "Based on Timesheet" +msgstr "Samkvæmt Tímaskjali" + +#. module: sale +#: view:sale.order.line:0 +msgid "" +"Sale Order Lines that are confirmed, done or in exception state and haven't " +"yet been invoiced" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_by_salesman +msgid "Sales by Salesman in last 90 days" +msgstr "Sala eftir sölumanni síðustu 90 daga" + +#. module: sale +#: help:sale.order,picking_policy:0 +msgid "" +"If you don't have enough stock available to deliver all at once, do you " +"accept partial shipments or not?" +msgstr "" +"Ef þú hefur ekki nægan lager til að afhenta allt í einu, villtu þá leyfa að " +"senda hluta sendingar eða ekki?" + +#. module: sale +#: view:sale.order:0 +msgid "UoS" +msgstr "" + +#. module: sale +#: help:sale.order,partner_shipping_id:0 +msgid "Shipping address for current sales order." +msgstr "Sendingar heimilisfang fyrir þessa sölupöntun." + +#. module: sale +#: field:sale.advance.payment.inv,qtty:0 report:sale.order:0 +msgid "Quantity" +msgstr "Magn" + +#. module: sale +#: view:sale.report:0 field:sale.report,day:0 +msgid "Day" +msgstr "Dagur" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancelorder0 +#: view:sale.order:0 +msgid "Cancel Order" +msgstr "Afpanta sölupöntun" + +#. module: sale +#: code:addons/sale/sale.py:638 +#, python-format +msgid "The quotation '%s' has been converted to a sales order." +msgstr "Tilboðið '%s' hefur verið breitt í sölupöntun" + +#. module: sale +#: view:sale.order:0 +msgid "Print Quotation" +msgstr "Prenta Tilboð" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice.py:42 +#, python-format +msgid "Warning !" +msgstr "Aðvörun !" + +#. module: sale +#: report:sale.order:0 +msgid "VAT" +msgstr "VSK" + +#. module: sale +#: model:process.node,note:sale.process_node_saleorderprocurement0 +msgid "Drives procurement orders for every sales order line." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,analytic_account_id:0 +#: field:sale.shop,project_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_line_tree2 +msgid "" +"Here is a list of each sales order line to be invoiced. You can invoice " +"sales orders partially, by lines of sales order. You do not need this list " +"if you invoice from the delivery orders or if you invoice sales totally." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:295 +#, python-format +msgid "" +"In order to delete a confirmed sale order, you must cancel it before ! To " +"cancel a sale order, you must first cancel related picking or delivery " +"orders." +msgstr "" +"Til að eyða staðfestri sölupöntun, verður þú að af-panta hana fyrst ! Til að " +"af-panta sölupöntun, verður þú fyrst að af-panta tengdar færslur einnig." + +#. module: sale +#: model:process.node,name:sale.process_node_saleprocurement0 +msgid "Procurement Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,partner_id:0 +msgid "Partner" +msgstr "Viðskipta aðili" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Invoice based on deliveries" +msgstr "Gera reikn út frá sendingum" + +#. module: sale +#: view:sale.order:0 +msgid "Order Line" +msgstr "Sölu lína" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_form +msgid "" +"Sales Orders help you manage quotations and orders from your customers. " +"OpenERP suggests that you start by creating a quotation. Once it is " +"confirmed, the quotation will be converted into a Sales Order. OpenERP can " +"handle several types of products so that a sales order may trigger tasks, " +"delivery orders, manufacturing orders, purchases and so on. Based on the " +"configuration of the sales order, a draft invoice will be generated so that " +"you just have to confirm it when you want to bill your customer." +msgstr "" +"Sölu pantanir hjálpa við að halda utan um tilboð og pantanir frá " +"viðskiptavinum. OpenERP mælir með því að þú byrjir á því að gera tilboð. " +"Þegar það er staðfest, verður tilboðið að sölupöntun. OpenERP getur ráðið " +"við nokkrar gerðir af vörum svo sölu pöntunin setur af stað verk, " +"vörusendingu, framleiðslu pöntun, innkaup o.s.fr. \r\n" +"Byggt á hvernig sölupöntunin er gerð, verður til uppkast af reikning sem " +"þarf að staðfesta þegar senda á reikning á viðskiptavininn." + +#. module: sale +#: help:sale.order,invoice_quantity:0 +msgid "" +"The sale order will automatically create the invoice proposition (draft " +"invoice). Ordered and delivered quantities may not be the same. You have to " +"choose if you want your invoice based on ordered or shipped quantities. If " +"the product is a service, shipped quantities means hours spent on the " +"associated tasks." +msgstr "" +"Sölu pöntunin mun sjálfkrafa gera uppkast að reikning. Pantað og afhent magn " +"gæti verið mismunandi. Velja verður hvort gera á reikning eftir pöntuðu eða " +"afhentu magni. Ef varan er þjónusta, þá gæti afhent magn þítt tímar sem eitt " +"var í verk." + +#. module: sale +#: field:sale.shop,payment_default_id:0 +msgid "Default Payment Term" +msgstr "Sjálfgefnir greiðslu skilmálar" + +#. module: sale +#: field:sale.config.picking_policy,deli_orders:0 +msgid "Based on Delivery Orders" +msgstr "Byggt á afhentu magni" + +#. module: sale +#: field:sale.config.picking_policy,time_unit:0 +msgid "Main Working Time Unit" +msgstr "Aðal einingar formið" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 field:sale.order.line,state:0 +#: view:sale.report:0 +msgid "State" +msgstr "Staða" + +#. module: sale +#: report:sale.order:0 +msgid "Disc.(%)" +msgstr "Afsl.(%)" + +#. module: sale +#: view:sale.report:0 field:sale.report,price_total:0 +msgid "Total Price" +msgstr "Samtals Verð" + +#. module: sale +#: help:sale.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same customers" +msgstr "Hakið í boxið til að taka saman reikninga fyrir hvern viðskiptavin" + +#. module: sale +#: view:sale.order:0 +msgid "My Sale Orders" +msgstr "Mínar sölupantanir" + +#. module: sale +#: selection:sale.order,invoice_quantity:0 +msgid "Ordered Quantities" +msgstr "Pantað Magn" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Salesman" +msgstr "Sala eftir Sölumanni" + +#. module: sale +#: field:sale.order.line,move_ids:0 +msgid "Inventory Moves" +msgstr "Lager færslur" + +#. module: sale +#: field:sale.order,name:0 field:sale.order.line,order_id:0 +msgid "Order Reference" +msgstr "Tilvísun í Pöntun" + +#. module: sale +#: view:sale.order:0 +msgid "Other Information" +msgstr "Aðrar upplýsingar" + +#. module: sale +#: view:sale.order:0 +msgid "Dates" +msgstr "Dagsetningar" + +#. module: sale +#: model:process.transition,note:sale.process_transition_invoiceafterdelivery0 +msgid "" +"The invoice is created automatically if the shipping policy is 'Invoice from " +"pick' or 'Invoice on order after delivery'." +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,task_work:0 +msgid "Based on Tasks' Work" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order +msgid "Quotations and Sales" +msgstr "Tilboð og Sölur" + +#. module: sale +#: model:ir.model,name:sale.model_sale_make_invoice +msgid "Sales Make Invoice" +msgstr "Sölur gera reikninga" + +#. module: sale +#: code:addons/sale/sale.py:330 +#, python-format +msgid "Pricelist Warning!" +msgstr "Viðvörun út frá verðlista!" + +#. module: sale +#: field:sale.order.line,discount:0 +msgid "Discount (%)" +msgstr "Afsláttur (%)" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_quotation_for_sale +msgid "My Quotations" +msgstr "Mín Tilboð" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.open_board_sales_manager +#: model:ir.ui.menu,name:sale.menu_board_sales_manager +msgid "Sales Manager Dashboard" +msgstr "Mælaborð Sölustjóra" + +#. module: sale +#: field:sale.order.line,product_packaging:0 +msgid "Packaging" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleinvoice0 +msgid "From a sales order" +msgstr "Frá sölu pöntun" + +#. module: sale +#: field:sale.shop,name:0 +msgid "Shop Name" +msgstr "Nafn Verslunar" + +#. module: sale +#: help:sale.order,order_policy:0 +msgid "" +"The Invoice Policy is used to synchronise invoice and delivery operations.\n" +" - The 'Pay before delivery' choice will first generate the invoice and " +"then generate the picking order after the payment of this invoice.\n" +" - The 'Deliver & Invoice on demand' will create the picking order directly " +"and wait for the user to manually click on the 'Invoice' button to generate " +"the draft invoice based on the sale order or the sale order lines.\n" +" - The 'Invoice on order after delivery' choice will generate the draft " +"invoice based on sales order after all picking lists have been finished.\n" +" - The 'Invoice based on deliveries' choice is used to create an invoice " +"during the picking process." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1171 +#, python-format +msgid "No Customer Defined !" +msgstr "Enginn viðskiptavinur skilgreindur !" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree2 +msgid "Sales in Exception" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1158 code:addons/sale/sale.py:1277 +#: code:addons/sale/wizard/sale_make_invoice_advance.py:70 +#, python-format +msgid "Configuration Error !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Conditions" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1034 +#, python-format +msgid "" +"There is no income category account defined in default Properties for " +"Product Category or Fiscal Position is not defined !" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "August" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:655 +#, python-format +msgid "invalid mode for test_state" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "June" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:617 +#, python-format +msgid "Could not cancel this sales order !" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_report +msgid "Sales Orders Statistics" +msgstr "" + +#. module: sale +#: help:sale.order,project_id:0 +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "October" +msgstr "" + +#. module: sale +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "" + +#. module: sale +#: view:board.board:0 view:sale.order:0 view:sale.report:0 +msgid "Quotations" +msgstr "" + +#. module: sale +#: help:sale.order,pricelist_id:0 +msgid "Pricelist for current sales order." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "TVA :" +msgstr "" + +#. module: sale +#: help:sale.order.line,delay:0 +msgid "" +"Number of days between the order confirmation the shipping of the products " +"to the customer" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Quotation Date" +msgstr "Dags Tilboðs" + +#. module: sale +#: field:sale.order,fiscal_position:0 +msgid "Fiscal Position" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 field:sale.report,product_uom:0 +msgid "UoM" +msgstr "" + +#. module: sale +#: field:sale.order.line,number_packages:0 +msgid "Number Packages" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "In Progress" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_confirmquotation0 +msgid "" +"The salesman confirms the quotation. The state of the sales order becomes " +"'In progress' or 'Manual in progress'." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1074 +#, python-format +msgid "You cannot cancel a sale order line that has already been invoiced!" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1079 +#, python-format +msgid "You must first cancel stock moves attached to this sales order line." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1147 +#, python-format +msgid "(n/a)" +msgstr "" + +#. module: sale +#: help:sale.advance.payment.inv,product_id:0 +msgid "" +"Select a product of type service which is called 'Advance Product'. You may " +"have to create it and set it as a default value on this field." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Tel. :" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:64 +#, python-format +msgid "" +"You cannot make an advance on a sales order " +"that is defined as 'Automatic Invoice after delivery'." +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,note:0 view:sale.order.line:0 +#: field:sale.order.line,notes:0 +msgid "Notes" +msgstr "" + +#. module: sale +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: sale +#: help:sale.order,partner_invoice_id:0 +msgid "Invoice address for current sales order." +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Month-1" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered month of the sales order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:504 +#, python-format +msgid "" +"You cannot group sales having different currencies for the same partner." +msgstr "" + +#. module: sale +#: selection:sale.order,picking_policy:0 +msgid "Deliver each product when available" +msgstr "" + +#. module: sale +#: field:sale.order,invoiced_rate:0 field:sale.order.line,invoiced:0 +msgid "Invoiced" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_deliveryorder0 +msgid "Delivery Order" +msgstr "" + +#. module: sale +#: field:sale.order,date_confirm:0 +msgid "Confirmation Date" +msgstr "Dags Staðfestingar" + +#. module: sale +#: field:sale.order,incoterm:0 +msgid "Incoterm" +msgstr "" + +#. module: sale +#: field:sale.order.line,address_allotment_id:0 +msgid "Allotment Partner" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "March" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,sale_orders:0 +msgid "Based on Sales Orders" +msgstr "" + +#. module: sale +#: help:sale.order,amount_total:0 +msgid "The total amount." +msgstr "" + +#. module: sale +#: field:sale.order.line,price_subtotal:0 +msgid "Subtotal" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Invoice address :" +msgstr "" + +#. module: sale +#: field:sale.order.line,sequence:0 +msgid "Line Sequence" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleorderprocurement0 +msgid "" +"For every sales order line, a procurement order is created to supply the " +"sold product." +msgstr "" + +#. module: sale +#: help:sale.order,incoterm:0 +msgid "" +"Incoterm which stands for 'International Commercial terms' implies its a " +"series of sales terms which are used in the commercial transaction." +msgstr "" + +#. module: sale +#: field:sale.order,partner_invoice_id:0 +msgid "Invoice Address" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Search Uninvoiced Lines" +msgstr "" + +#. module: sale +#: model:ir.actions.report.xml,name:sale.report_sale_order +msgid "Quotation / Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_open_invoice +msgid "Sales Open Invoice" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order_line +#: field:stock.move,sale_line_id:0 +msgid "Sales Order Line" +msgstr "" + +#. module: sale +#: field:sale.shop,warehouse_id:0 +msgid "Warehouse" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Order N°" +msgstr "" + +#. module: sale +#: field:sale.order,order_line:0 +msgid "Order Lines" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Untaxed amount" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_tree2 +#: model:ir.ui.menu,name:sale.menu_invoicing_sales_order_lines +msgid "Lines to Invoice" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uom_qty:0 +msgid "Quantity (UoM)" +msgstr "" + +#. module: sale +#: field:sale.order,create_date:0 +msgid "Creation Date" +msgstr "Búið til þann" + +#. module: sale +#: model:ir.ui.menu,name:sale.menu_sales_configuration_misc +msgid "Miscellaneous" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_tree3 +msgid "Uninvoiced and Delivered Lines" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Total :" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "My Sales" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:295 code:addons/sale/sale.py:1074 +#: code:addons/sale/sale.py:1303 +#, python-format +msgid "Invalid action !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Extra Info" +msgstr "" + +#. module: sale +#: field:sale.order,pricelist_id:0 field:sale.report,pricelist_id:0 +#: field:sale.shop,pricelist_id:0 +msgid "Pricelist" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,product_uom_qty:0 +msgid "# of Qty" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1327 +#, python-format +msgid "Hour" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Order Date" +msgstr "Dags. Pöntunar" + +#. module: sale +#: view:sale.order.line:0 view:sale.report:0 field:sale.report,shipped:0 +#: field:sale.report,shipped_qty_1:0 +msgid "Shipped" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree5 +msgid "All Quotations" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "Options" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "September" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:632 +#, python-format +msgid "You cannot confirm a sale order which has no line." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1259 +#, python-format +msgid "" +"You have to select a pricelist or a customer in the sales form !\n" +"Please set one before choosing a product." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,categ_id:0 +msgid "Category of Product" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Taxes :" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Stock Moves" +msgstr "" + +#. module: sale +#: field:sale.order,state:0 field:sale.report,state:0 +msgid "Order State" +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Do you really want to create the invoice(s)?" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales By Month" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1078 +#, python-format +msgid "Could not cancel sales order line!" +msgstr "" + +#. module: sale +#: field:res.company,security_lead:0 +msgid "Security Days" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleorderprocurement0 +msgid "Procurement of sold material" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Create Final Invoice" +msgstr "" + +#. module: sale +#: field:sale.order,partner_shipping_id:0 +msgid "Shipping Address" +msgstr "" + +#. module: sale +#: help:sale.order,shipped:0 +msgid "" +"It indicates that the sales order has been delivered. This field is updated " +"only after the scheduler(s) have been launched." +msgstr "" + +#. module: sale +#: field:sale.order,date_order:0 +msgid "Date" +msgstr "Dags." + +#. module: sale +#: view:sale.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Exception" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_res_company +msgid "Companies" +msgstr "" + +#. module: sale +#: help:sale.order,state:0 +msgid "" +"Gives the state of the quotation or sales order. \n" +"The exception state is automatically set when a cancel operation occurs in " +"the invoice validation (Invoice Exception) or in the picking list process " +"(Shipping Exception). \n" +"The 'Waiting Schedule' state is set when the invoice is confirmed but " +"waiting for the scheduler to run on the order date." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1272 +#, python-format +msgid "No valid pricelist line found ! :" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "History" +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Invoice on order after delivery" +msgstr "" + +#. module: sale +#: help:sale.order,invoice_ids:0 +msgid "" +"This is the list of invoices that have been generated for this sales order. " +"The same sales order may have been invoiced in several times (by line for " +"example)." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Your Reference" +msgstr "" + +#. module: sale +#: help:sale.order,partner_order_id:0 +msgid "" +"The name and address of the contact who requested the order or quotation." +msgstr "" + +#. module: sale +#: help:res.company,security_lead:0 +msgid "" +"This is the days added to what you promise to customers for security purpose" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Qty" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "References" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "My Sales Order Lines" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancel0 +#: model:process.transition.action,name:sale.process_transition_action_cancel1 +#: model:process.transition.action,name:sale.process_transition_action_cancel2 +#: view:sale.advance.payment.inv:0 view:sale.make.invoice:0 +#: view:sale.order.line:0 view:sale.order.line.make.invoice:0 +msgid "Cancel" +msgstr "" + +#. module: sale +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique per Company!" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_invoice0 +#: model:process.transition,name:sale.process_transition_invoiceafterdelivery0 +#: model:process.transition.action,name:sale.process_transition_action_createinvoice0 +#: view:sale.advance.payment.inv:0 view:sale.order.line:0 +msgid "Create Invoice" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Total Tax Excluded" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Order reference" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 +msgid "You invoice has been successfully created!" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Partner" +msgstr "" + +#. module: sale +#: field:sale.order,partner_order_id:0 +msgid "Ordering Contact" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_view_sale_open_invoice +#: view:sale.open.invoice:0 +msgid "Open Invoice" +msgstr "" + +#. module: sale +#: model:ir.actions.server,name:sale.ir_actions_server_edi_sale +msgid "Auto-email confirmed sale orders" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:413 +#, python-format +msgid "There is no sales journal defined for this company: \"%s\" (id:%d)" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_forceassignation0 +msgid "Force Assignation" +msgstr "" + +#. module: sale +#: selection:sale.order.line,type:0 +msgid "on order" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_invoiceafterdelivery0 +msgid "Based on the shipped or on the ordered quantities." +msgstr "" + +#. module: sale +#: selection:sale.order,picking_policy:0 +msgid "Deliver all products at once" +msgstr "" + +#. module: sale +#: field:sale.order,picking_ids:0 +msgid "Related Picking" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,name:0 +msgid "Name" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Shipping address :" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_by_partner +msgid "Sales per Customer in last 90 days" +msgstr "Sala á hvern Viðskiptavin síðustu 90 daga" + +#. module: sale +#: model:process.node,note:sale.process_node_quotation0 +msgid "Draft state of sales order" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_deliver0 +msgid "Create Delivery Order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1303 +#, python-format +msgid "Cannot delete a sales order line which is in state '%s'!" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Qty(UoS)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Total Tax Included" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_packing0 +msgid "Create Pick List" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered date of the sales order" +msgstr "Pöntunar dags. sölupöntunar" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Product Category" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_confirmquotation0 +msgid "Confirm Quotation" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:63 +#, python-format +msgid "Error" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 view:sale.report:0 +msgid "Group By..." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Recreate Invoice" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.outgoing_picking_list_to_invoice +#: model:ir.ui.menu,name:sale.menu_action_picking_list_to_invoice +msgid "Deliveries to Invoice" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Waiting Schedule" +msgstr "" + +#. module: sale +#: field:sale.order.line,type:0 +msgid "Procurement Method" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_packinglist0 +msgid "Pick List" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Set to Draft" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_packinglist0 +msgid "Document of the move to the output or to the customer." +msgstr "" + +#. module: sale +#: model:email.template,body_text:sale.email_template_edi_sale +msgid "" +"\n" +"Hello${object.partner_order_id.name and ' ' or " +"''}${object.partner_order_id.name or ''},\n" +"\n" +"Here is your order confirmation for ${object.partner_id.name}:\n" +" | Order number: *${object.name}*\n" +" | Order total: *${object.amount_total} " +"${object.pricelist_id.currency_id.name}*\n" +" | Order date: ${object.date_order}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" % if object.client_order_ref:\n" +" | Your reference: ${object.client_order_ref}\n" +" % endif\n" +" | Your contact: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"You can view the order confirmation, download it and even pay online using " +"the following link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.order_policy in ('prepaid','manual') and " +"object.company_id.paypal_account:\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"order_name = quote(object.name)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"order_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.pricelist_id.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Order%%20%s&invoice=%s&amo" +"unt=%s\" \\\n" +" " +"\"¤cy_code=%s&button_subtype=services&no_note=1&bn=OpenERP_Order_PayNow" +"_%s\" % \\\n" +" " +"(paypal_account,comp_name,order_name,order_name,order_amount,cur_name,cur_nam" +"e)\n" +"%>\n" +"It is also possible to directly pay with Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"If you have any question, do not hesitate to contact us.\n" +"\n" +"\n" +"Thank you for choosing ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_validate0 +msgid "Validate" +msgstr "Staðfesta" + +#. module: sale +#: view:sale.order:0 +msgid "Confirm Order" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleprocurement0 +msgid "Create Procurement Order" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,amount_tax:0 +#: field:sale.order.line,tax_id:0 +msgid "Taxes" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Sales Order ready to be invoiced" +msgstr "" + +#. module: sale +#: help:sale.order,create_date:0 +msgid "Date on which sales order is created." +msgstr "Dags. hvenær sölu pöntun er gerð." + +#. module: sale +#: model:ir.model,name:sale.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Create Invoices" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in current month" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Fax :" +msgstr "" + +#. module: sale +#: help:sale.order.line,type:0 +msgid "" +"If 'on order', it triggers a procurement when the sale order is confirmed to " +"create a task, purchase order or manufacturing order linked to this sale " +"order line." +msgstr "" + +#. module: sale +#: field:sale.advance.payment.inv,amount:0 +msgid "Advance Amount" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,charge_delivery:0 +msgid "Do you charge the delivery?" +msgstr "" + +#. module: sale +#: selection:sale.order,invoice_quantity:0 +msgid "Shipped Quantities" +msgstr "" + +#. module: sale +#: selection:sale.config.picking_policy,order_policy:0 +msgid "Invoice Based on Sales Orders" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:331 +#, python-format +msgid "" +"If you change the pricelist of this order (and eventually the currency), " +"prices of existing order lines will not be updated." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:412 code:addons/sale/sale.py:503 +#: code:addons/sale/sale.py:632 code:addons/sale/sale.py:1016 +#: code:addons/sale/sale.py:1033 +#, python-format +msgid "Error !" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:603 +#, python-format +msgid "Could not cancel sales order !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Qty(UoM)" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered Year of the sales order" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "July" +msgstr "" + +#. module: sale +#: field:sale.order.line,procurement_id:0 +msgid "Procurement" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Shipping Exception" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1156 +#, python-format +msgid "Picking Information ! : " +msgstr "" + +#. module: sale +#: field:sale.make.invoice,grouped:0 +msgid "Group the invoices" +msgstr "" + +#. module: sale +#: field:sale.order,order_policy:0 +msgid "Invoice Policy" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_config_picking_policy +#: view:sale.config.picking_policy:0 +msgid "Setup your Invoicing Method" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_invoice0 +msgid "To be reviewed by the accountant." +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Reference UoM" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "" +"This tool will help you to install the right module and configure the system " +"according to the method you use to invoice your customers." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order_line_make_invoice +msgid "Sale OrderLine Make_invoice" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Invoice Exception" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_saleorder0 +msgid "Drives procurement and invoicing" +msgstr "" + +#. module: sale +#: field:sale.order,invoiced:0 +msgid "Paid" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_report_all +#: model:ir.ui.menu,name:sale.menu_report_product_all view:sale.report:0 +msgid "Sales Analysis" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1151 +#, python-format +msgid "" +"You selected a quantity of %d Units.\n" +"But it's not compatible with the selected packaging.\n" +"Here is a proposition of quantities according to the packaging:\n" +"EAN: %s Quantity: %s Type of ul: %s" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Recreate Packing" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order.line,property_ids:0 +msgid "Properties" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_quotation0 +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Quotation" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_invoice0 +msgid "" +"The Salesman creates an invoice manually, if the sales order shipping policy " +"is 'Shipping and Manual in Progress'. The invoice is created automatically " +"if the shipping policy is 'Payment before Delivery'." +msgstr "" + +#. module: sale +#: help:sale.config.picking_policy,order_policy:0 +msgid "" +"You can generate invoices based on sales orders or based on shippings." +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Confirmed sale order lines, not yet delivered" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:473 +#, python-format +msgid "Customer Invoices" +msgstr "Reikningar Viðskiptavinar" + +#. module: sale +#: model:process.process,name:sale.process_process_salesprocess0 +#: view:sale.order:0 view:sale.report:0 +msgid "Sales" +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order.line,price_unit:0 +msgid "Unit Price" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 view:sale.order.line:0 +#: selection:sale.order.line,state:0 selection:sale.report,state:0 +msgid "Done" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_invoice0 +#: model:process.node,name:sale.process_node_invoiceafterdelivery0 +msgid "Invoice" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1171 +#, python-format +msgid "" +"You have to select a customer in the sales form !\n" +"Please set one customer before choosing a product." +msgstr "" + +#. module: sale +#: field:sale.order,origin:0 +msgid "Source Document" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "To Do" +msgstr "" + +#. module: sale +#: field:sale.order,picking_policy:0 +msgid "Picking Policy" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_deliveryorder0 +msgid "Document of the move to the customer." +msgstr "" + +#. module: sale +#: help:sale.order,amount_untaxed:0 +msgid "The amount without tax." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:604 +#, python-format +msgid "You must first cancel all picking attached to this sales order." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,month:0 +msgid "Month" +msgstr "" + +#. module: sale +#: model:email.template,subject:sale.email_template_edi_sale +msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 field:sale.order.line,product_id:0 +#: view:sale.report:0 field:sale.report,product_id:0 +msgid "Product" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancelassignation0 +msgid "Cancel Assignation" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_config_picking_policy +msgid "sale.config.picking_policy" +msgstr "" + +#. module: sale +#: view:account.invoice.report:0 view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_turnover_by_month +msgid "Monthly Turnover" +msgstr "" + +#. module: sale +#: field:sale.order,invoice_quantity:0 +msgid "Invoice on" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Date Ordered" +msgstr "Dags Pantað" + +#. module: sale +#: field:sale.order.line,product_uos:0 +msgid "Product UoS" +msgstr "" + +#. module: sale +#: selection:sale.report,state:0 +msgid "Manual In Progress" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uom:0 +msgid "Product UoM" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Logistic" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1017 +#: code:addons/sale/wizard/sale_make_invoice_advance.py:71 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Ignore Exception" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleinvoice0 +msgid "" +"Depending on the Invoicing control of the sales order, the invoice can be " +"based on delivered or on ordered quantities. Thus, a sales order can " +"generates an invoice or a delivery order as soon as it is confirmed by the " +"salesman." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1251 +#, python-format +msgid "" +"You plan to sell %.2f %s but you only have %.2f %s available !\n" +"The real stock is %.2f %s. (without reservations)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "States" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "res_config_contents" +msgstr "" + +#. module: sale +#: field:sale.order,client_order_ref:0 +msgid "Customer Reference" +msgstr "Tilvísun viðskiptavinar" + +#. module: sale +#: field:sale.order,amount_total:0 view:sale.order.line:0 +msgid "Total" +msgstr "" + +#. module: sale +#: report:sale.order:0 view:sale.order.line:0 +msgid "Price" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_deliver0 +msgid "" +"Depending on the configuration of the location Output, the move between the " +"output area and the customer is done through the Delivery Order manually or " +"automatically." +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Pay before delivery" +msgstr "" + +#. module: sale +#: view:board.board:0 model:ir.actions.act_window,name:sale.open_board_sales +msgid "Sales Dashboard" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_sale_order_make_invoice +#: model:ir.actions.act_window,name:sale.action_view_sale_order_line_make_invoice +#: view:sale.order:0 +msgid "Make Invoices" +msgstr "" + +#. module: sale +#: view:sale.order:0 selection:sale.order,state:0 view:sale.order.line:0 +msgid "To Invoice" +msgstr "" + +#. module: sale +#: help:sale.order,date_confirm:0 +msgid "Date on which sales order is confirmed." +msgstr "Dags. hvenær sölu pöntun er staðfest." + +#. module: sale +#: field:sale.order,project_id:0 +msgid "Contract/Analytic Account" +msgstr "" + +#. module: sale +#: field:sale.order,company_id:0 field:sale.order.line,company_id:0 +#: view:sale.report:0 field:sale.report,company_id:0 +#: field:sale.shop,company_id:0 +msgid "Company" +msgstr "" + +#. module: sale +#: field:sale.make.invoice,invoice_date:0 +msgid "Invoice Date" +msgstr "Dags. Reiknings" + +#. module: sale +#: help:sale.advance.payment.inv,amount:0 +msgid "The amount to be invoiced in advance." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1269 +#, python-format +msgid "" +"Couldn't find a pricelist line matching this product and quantity.\n" +"You have to change either the product, the quantity or the pricelist." +msgstr "" + +#. module: sale +#: help:sale.order,picking_ids:0 +msgid "" +"This is a list of picking that has been generated for this sales order." +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Create invoices" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Net Total :" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.order.line,state:0 +#: selection:sale.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sales Order Lines related to a Sales Order of mine" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_shop_form +#: model:ir.ui.menu,name:sale.menu_action_shop_form field:sale.order,shop_id:0 +#: view:sale.report:0 field:sale.report,shop_id:0 +msgid "Shop" +msgstr "" + +#. module: sale +#: field:sale.report,date_confirm:0 +msgid "Date Confirm" +msgstr "Dags. Staðfest" + +#. module: sale +#: code:addons/sale/wizard/sale_line_invoice.py:113 +#, python-format +msgid "Warning" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_view_sales_by_month +msgid "Sales by Month" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order +#: model:process.node,name:sale.process_node_order0 +#: model:process.node,name:sale.process_node_saleorder0 +#: model:res.request.link,name:sale.req_link_sale_order view:sale.order:0 +#: field:stock.picking,sale_id:0 +msgid "Sales Order" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uos_qty:0 +msgid "Quantity (UoS)" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale Order Lines that are in 'done' state" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_packing0 +msgid "" +"The Pick List form is created as soon as the sales order is confirmed, in " +"the same time as the procurement order. It represents the assignment of " +"parts to the sales order. There is 1 pick list by sales order line which " +"evolves with the availability of parts." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Confirmed" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,order_policy:0 +msgid "Main Method Based On" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_confirm0 +msgid "Confirm" +msgstr "" + +#. module: sale +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_product_total_price +msgid "Sales by Product's Category in last 90 days" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order.line,invoice_lines:0 +msgid "Invoice Lines" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_product_tree +#: view:sale.order:0 view:sale.order.line:0 +msgid "Sales Order Lines" +msgstr "" + +#. module: sale +#: field:sale.order.line,delay:0 +msgid "Delivery Lead Time" +msgstr "" + +#. module: sale +#: view:res.company:0 +msgid "Configuration" +msgstr "" + +#. module: sale +#: code:addons/sale/edi/sale_order.py:146 +#, python-format +msgid "EDI Pricelist (%s)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Print Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in current year" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_line_invoice.py:113 +#, python-format +msgid "" +"Invoice cannot be created for this Sales Order Line due to one of the " +"following reasons:\n" +"1.The state of this sales order line is either \"draft\" or \"cancel\"!\n" +"2.The Sales Order Line is Invoiced!" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale order lines done" +msgstr "" + +#. module: sale +#: field:sale.order.line,th_weight:0 +msgid "Weight" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 view:sale.order:0 field:sale.order,invoice_ids:0 +msgid "Invoices" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "December" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,config_logo:0 +msgid "Image" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleprocurement0 +msgid "" +"A procurement order is automatically created as soon as a sales order is " +"confirmed or as the invoice is paid. It drives the purchasing and the " +"production of products regarding to the rules and to the sales order's " +"parameters. " +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Uninvoiced" +msgstr "" + +#. module: sale +#: report:sale.order:0 view:sale.order:0 field:sale.order,user_id:0 +#: view:sale.order.line:0 field:sale.order.line,salesman_id:0 +#: view:sale.report:0 field:sale.report,user_id:0 +msgid "Salesman" +msgstr "Sölumaður" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree +msgid "Old Quotations" +msgstr "" + +#. module: sale +#: field:sale.order,amount_untaxed:0 +msgid "Untaxed Amount" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:170 +#: model:ir.actions.act_window,name:sale.action_view_sale_advance_payment_inv +#: view:sale.advance.payment.inv:0 view:sale.order:0 +#, python-format +msgid "Advance Invoice" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:624 +#, python-format +msgid "The sales order '%s' has been cancelled." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Draft" +msgstr "" + +#. module: sale +#: help:sale.order.line,state:0 +msgid "" +"* The 'Draft' state is set when the related sales order in draft state. " +" \n" +"* The 'Confirmed' state is set when the related sales order is confirmed. " +" \n" +"* The 'Exception' state is set when the related sales order is set as " +"exception. \n" +"* The 'Done' state is set when the sales order line has been picked. " +" \n" +"* The 'Cancelled' state is set when a user cancel the sales order related." +msgstr "" + +#. module: sale +#: help:sale.order,amount_tax:0 +msgid "The tax amount." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Packings" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale Order Lines ready to be invoiced" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in last month" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_email_templates +#: model:ir.ui.menu,name:sale.menu_email_templates +msgid "Email Templates" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_form +#: model:ir.ui.menu,name:sale.menu_sale_order view:sale.order:0 +msgid "Sales Orders" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_shop view:sale.shop:0 +msgid "Sales Shop" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "November" +msgstr "" + +#. module: sale +#: field:sale.advance.payment.inv,product_id:0 +msgid "Advance Product" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Compute" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:618 +#, python-format +msgid "You must first cancel all invoices attached to this sales order." +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "January" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree4 +msgid "Sales Order in Progress" +msgstr "" + +#. module: sale +#: help:sale.order,origin:0 +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,delay:0 +msgid "Commitment Delay" +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Deliver & invoice on demand" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_saleprocurement0 +msgid "" +"One Procurement order for each sales order line and for each of the " +"components." +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_assign0 +msgid "Assign" +msgstr "" + +#. module: sale +#: field:sale.report,date:0 +msgid "Date Order" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_order0 +msgid "Confirmed sales order to invoice." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Sales Order that haven't yet been confirmed" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:322 +#, python-format +msgid "The sales order '%s' has been set in draft state." +msgstr "" + +#. module: sale +#: selection:sale.order.line,type:0 +msgid "from stock" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 +msgid "Close" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1261 +#, python-format +msgid "No Pricelist ! : " +msgstr "" + +#. module: sale +#: field:sale.order,shipped:0 +msgid "Delivered" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_shop_form +msgid "" +"If you have more than one shop reselling your company products, you can " +"create and manage that from here. Whenever you will record a new quotation " +"or sales order, it has to be linked to a shop. The shop also defines the " +"warehouse from which the products will be delivered for each particular " +"sales." +msgstr "" + +#. module: sale +#: help:sale.order,invoiced:0 +msgid "It indicates that an invoice has been paid." +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order.line,name:0 +msgid "Description" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "May" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,partner_id:0 +#: field:sale.order.line,order_partner_id:0 +msgid "Customer" +msgstr "Viðskiptavinur" + +#. module: sale +#: model:product.template,name:sale.advance_product_0_product_template +msgid "Advance" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "February" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "April" +msgstr "" + +#. module: sale +#: view:sale.shop:0 +msgid "Accounting" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 +msgid "Search Sales Order" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_saleorderprocurement0 +msgid "Sales Order Requisition" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1255 +#, python-format +msgid "Not enough stock ! : " +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order,payment_term:0 +msgid "Payment Term" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_report_all +msgid "" +"This report performs analysis on your quotations and sales orders. Analysis " +"check your sales revenues and sort it by different group criteria (salesman, " +"partner, product, etc.) Use this report to perform analysis on sales not " +"having invoiced yet. If you want to analyse your turnover, you should use " +"the Invoice Analysis report in the Accounting application." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Quotation N°" +msgstr "" + +#. module: sale +#: field:sale.order,picked_rate:0 view:sale.report:0 +msgid "Picked" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,year:0 +msgid "Year" +msgstr "" + +#. module: sale +#: selection:sale.config.picking_policy,order_policy:0 +msgid "Invoice Based on Deliveries" +msgstr "" diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index cff0298d08b..ab9b84275fe 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -462,7 +462,7 @@ - + @@ -697,7 +697,6 @@ - @@ -912,14 +911,13 @@ + - + - - @@ -1032,6 +1030,7 @@ + @@ -1039,8 +1038,6 @@ - - @@ -1349,8 +1346,6 @@ states="draft,assigned,confirmed,done"/> - - @@ -1367,7 +1362,6 @@ - diff --git a/addons/subscription/subscription_view.xml b/addons/subscription/subscription_view.xml index 13ebe096843..6f21af8c401 100644 --- a/addons/subscription/subscription_view.xml +++ b/addons/subscription/subscription_view.xml @@ -67,9 +67,6 @@ - - -