diff --git a/addons/account/__terp__.py b/addons/account/__terp__.py
index 3fabb495ba1..6faf8772a67 100644
--- a/addons/account/__terp__.py
+++ b/addons/account/__terp__.py
@@ -25,15 +25,19 @@
"version" : "1.1",
"depends" : ["product", "analytic", "process"],
"author" : "Tiny",
+ "category": 'Generic Modules/Accounting',
"description": """Financial and accounting module that covers:
- General accounting
+ General accountings
Cost / Analytic accounting
Third party accounting
Taxes management
Budgets
Customer and Supplier Invoices
Bank statements
- Account Balance Report
+
+The processes like maintaining of general ledger is done through the defined financial Journals (entry move line or
+grouping is maintained through journal) for a particular financial year and for preparation of vouchers there is a
+module named account_voucherss
""",
'website': 'http://www.openerp.com',
'init_xml': [],
diff --git a/addons/account/account.py b/addons/account/account.py
index 84e7e0c74c5..12868487c49 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -2182,6 +2182,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
#create all the tax code
children_tax_code_template = self.pool.get('account.tax.code.template').search(cr, uid, [('parent_id','child_of',[tax_code_root_id])], order='id')
+ children_tax_code_template.sort()
for tax_code_template in self.pool.get('account.tax.code.template').browse(cr, uid, children_tax_code_template):
vals={
'name': (tax_code_root_id == tax_code_template.id) and obj_multi.company_id.name or tax_code_template.name,
diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py
index 18f63733ff6..c42597e785d 100644
--- a/addons/account/account_analytic_line.py
+++ b/addons/account/account_analytic_line.py
@@ -147,8 +147,9 @@ class account_analytic_line(osv.osv):
# Compute based on pricetype
pricetype=self.pool.get('product.price.type').browse(cr,uid,company_obj.browse(cr,uid,company_id).property_valuation_price_type.id)
+ # Take the company currency as the reference one
+ context['currency_id']=company_obj.browse(cr,uid,company_id).currency_id.id
amount_unit=prod.price_get(pricetype.field, context)[prod.id]
-
amount=amount_unit*unit_amount or 1.0
return {'value': {
'amount': - round(amount, 2),
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 0adc85a942e..07d8e1a02ac 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -278,7 +278,7 @@ class account_move_line(osv.osv):
data['amount_currency'] = v
return data
- def _on_create_write(self, cr, uid, id, context={}):
+ def on_create_write(self, cr, uid, id, context={}):
ml = self.browse(cr, uid, id, context)
return map(lambda x: x.id, ml.move_id.line_id)
@@ -733,7 +733,7 @@ class account_move_line(osv.osv):
state = ' colors="red:state==\'draft\'"'
#xml = '''\n\n\t''' % (title, state)
- xml = '''\n\n\t''' % (title, state)
+ xml = '''\n\n\t''' % (title, state)
fields = []
widths = {
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index d865823e9cd..88205521b1c 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -159,7 +159,7 @@
-
+
List of Accountsaccount.account
@@ -681,7 +681,7 @@
tree
-
+
diff --git a/addons/account/i18n/cs.po b/addons/account/i18n/cs.po
index 932d4e3cf3d..417964044e5 100644
--- a/addons/account/i18n/cs.po
+++ b/addons/account/i18n/cs.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-17 20:55+0000\n"
+"PO-Revision-Date: 2010-03-28 20:40+0000\n"
"Last-Translator: mitev.dmitry \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-18 04:34+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -110,7 +110,7 @@ msgstr "Vytištěné reporty o daních"
#. module: account
#: field:account.account,parent_id:0
msgid "Parent"
-msgstr ""
+msgstr "Rodič"
#. module: account
#: selection:account.move,type:0
@@ -415,7 +415,7 @@ msgstr "Datum:"
#. module: account
#: selection:account.account.type,sign:0
msgid "Negative"
-msgstr ""
+msgstr "Negativ"
#. module: account
#: rml:account.partner.balance:0
diff --git a/addons/account/i18n/fi.po b/addons/account/i18n/fi.po
index c26e1b0416a..516525d921d 100644
--- a/addons/account/i18n/fi.po
+++ b/addons/account/i18n/fi.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-18 14:20+0000\n"
+"PO-Revision-Date: 2010-03-22 15:02+0000\n"
"Last-Translator: Henri Kovalainen \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-19 07:50+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -824,7 +824,7 @@ msgstr "(Jätä tyhjäksi käyttääksesi kaikkia avoimia tilikausia)"
#. module: account
#: field:account.invoice,move_lines:0
msgid "Move Lines"
-msgstr "Siirtymärivit"
+msgstr "Siirron rivit"
#. module: account
#: model:ir.model,name:account.model_account_config_wizard
@@ -1041,12 +1041,12 @@ msgstr "Talouskanta"
#: field:account.analytic.line,product_uom_id:0
#: field:account.move.line,product_uom_id:0
msgid "UoM"
-msgstr "Yksikkö"
+msgstr "Mittayksikkö"
#. module: account
#: wizard_field:account.third_party_ledger.report,init,page_split:0
msgid "One Partner Per Page"
-msgstr "Yksi kumppani sivulla"
+msgstr "Yksi kumppani per sivu"
#. module: account
#: field:account.account,child_parent_ids:0
@@ -1577,7 +1577,7 @@ msgstr "Luo tilikartta mallista"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Statements"
-msgstr "Lailliset lausunnot"
+msgstr "Lakimääräiset tiliotteet"
#. module: account
#: field:account.tax.code,parent_id:0
@@ -4759,7 +4759,7 @@ msgstr "Muuta"
#. module: account
#: field:account.journal.period,icon:0
msgid "Icon"
-msgstr "Kuvake"
+msgstr "Icon"
#. module: account
#: model:ir.model,name:account.model_account_journal_period
diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po
index 45ef33f37ce..11692706164 100644
--- a/addons/account/i18n/pt_BR.po
+++ b/addons/account/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-04 15:48+0000\n"
-"Last-Translator: JCF \n"
+"PO-Revision-Date: 2010-03-24 00:57+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:52+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -911,7 +911,7 @@ msgstr "Diário de Baixas"
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
msgid "Amount Currency"
-msgstr ""
+msgstr "Moeda do valor"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
@@ -1415,7 +1415,7 @@ msgstr "Crédito do cliente"
#. module: account
#: field:account.invoice,tax_line:0
msgid "Tax Lines"
-msgstr "Linhas de taxa"
+msgstr "Linhas de Impostos"
#. module: account
#: field:ir.sequence,fiscal_ids:0
@@ -1464,7 +1464,7 @@ msgstr "Exibir histórico"
#. module: account
#: wizard_field:account.third_party_ledger.report,init,date1:0
msgid " Start date"
-msgstr " Data de inicío"
+msgstr " Data de início"
#. module: account
#: wizard_field:account.account.balance.report,checktype,display_account:0
@@ -1475,13 +1475,13 @@ msgstr "Exibir contas "
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_reconcile_line
msgid "Statement reconcile line"
-msgstr "Linha de procecimentos de conciliação"
+msgstr "Linha de reconciliação do Demonstrativo"
#. module: account
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Keep empty to use the income account"
-msgstr "Manter vazio para usar a conta da fatura"
+msgstr "Manter vazio para usar a conta de receita"
#. module: account
#: view:account.bank.statement.reconcile:0
@@ -1489,7 +1489,7 @@ msgstr "Manter vazio para usar a conta da fatura"
#: wizard_view:account.move.line.reconcile,init_full:0
#: wizard_view:account.move.line.reconcile,init_partial:0
msgid "Write-Off"
-msgstr "Amortização"
+msgstr "Baixa ou exclusão"
#. module: account
#: help:account.invoice,partner_bank:0
@@ -1543,7 +1543,7 @@ msgstr "Tel. :"
#. module: account
#: field:account.invoice.tax,tax_amount:0
msgid "Tax Code Amount"
-msgstr "Quantia de taxa"
+msgstr "Valor do Código do Imposto"
#. module: account
#: selection:account.account.type,sign:0
@@ -1566,7 +1566,7 @@ msgstr "Modelo de plano de contas"
#. module: account
#: field:account.invoice,move_id:0
msgid "Invoice Movement"
-msgstr "Movimento da fatura"
+msgstr "Movimento de Faturas"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
@@ -1578,18 +1578,18 @@ msgstr "Gerar plano de contas de um modelo de plano"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Statements"
-msgstr "Procedimentos legais"
+msgstr "Demonstrativos Legais"
#. module: account
#: field:account.tax.code,parent_id:0
#: field:account.tax.code.template,parent_id:0
msgid "Parent Code"
-msgstr "Código pai"
+msgstr "Código da Conta-pai"
#. module: account
#: wizard_button:account.move.line.reconcile.select,init,open:0
msgid "Open for reconciliation"
-msgstr "Abrir para conciliação"
+msgstr "Abrir para reconciliação"
#. module: account
#: model:account.journal,name:account.bilan_journal
@@ -1600,7 +1600,7 @@ msgstr "Diário de abertura"
#: selection:account.tax,tax_group:0
#: selection:account.tax.template,tax_group:0
msgid "VAT"
-msgstr "Imposto"
+msgstr "VAT (imposto europeu)"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -1629,7 +1629,7 @@ msgstr "Código parceiro"
#: selection:account.partner.balance.report,init,result_selection:0
#: selection:account.third_party_ledger.report,init,result_selection:0
msgid "Receivable and Payable Accounts"
-msgstr "Contas a receber e a pagar"
+msgstr "Contas a Pagar e Receber"
#. module: account
#: view:account.subscription:0
@@ -1643,7 +1643,7 @@ msgstr "Linhas de inscrição"
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Purchase"
-msgstr "Compras"
+msgstr "Compra"
#. module: account
#: view:account.analytic.line:0
@@ -1674,12 +1674,12 @@ msgstr "Terceiros"
#. module: account
#: view:account.journal:0
msgid "Accounts Type Allowed (empty for no control)"
-msgstr "Tipo de contas permitidas (vazio para não controlar)"
+msgstr "Tipos de contas permitidas (vazio para não controlar)"
#. module: account
#: field:account.bank.statement,balance_start:0
msgid "Starting Balance"
-msgstr "Iniciar balanço"
+msgstr "Saldo Inicial"
#. module: account
#: wizard_field:account.analytic.account.quantity_cost_ledger.report,init,journal:0
@@ -1697,7 +1697,7 @@ msgstr "Qtd máx:"
#. module: account
#: wizard_button:account.invoice.refund,init,refund:0
msgid "Refund Invoice"
-msgstr "Reembolso da fatura"
+msgstr "Fatura de Devolução"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_period_tree
@@ -1734,7 +1734,7 @@ msgstr "Forçar período"
#. module: account
#: help:account.account.type,sequence:0
msgid "Gives the sequence order when displaying a list of account types."
-msgstr "Dá a ordem da seqüência ao indicar uma lista de tipos de conta."
+msgstr "Dá a ordem sequencial ao mostrar uma lista de tipos de conta."
#. module: account
#: view:account.invoice:0
@@ -1765,7 +1765,7 @@ msgstr "Desfazer reconciliação de Lançamentos"
#. module: account
#: model:process.node,note:account.process_node_supplierdraftinvoices0
msgid "Pre-generated invoice from control"
-msgstr "Fatura pré-gerada pelo controle"
+msgstr "Fatura pré-gerada do controle"
#. module: account
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
@@ -1776,7 +1776,7 @@ msgstr "Custo Razão para um período"
#: model:ir.actions.act_window,name:account.action_bank_statement_tree2
#: model:ir.ui.menu,name:account.menu_bank_statement_tree2
msgid "New Statement"
-msgstr "Novo procedimento"
+msgstr "Novo Demonstrativo"
#. module: account
#: wizard_field:account.analytic.account.chart,init,from_date:0
@@ -1788,7 +1788,7 @@ msgstr "De"
#: model:process.node,note:account.process_node_reconciliation0
#: model:process.node,note:account.process_node_supplierreconciliation0
msgid "Reconciliation of entries from invoice(s) and payment(s)"
-msgstr "Conciliação de entradas de fatura(s) e pagamento(s)"
+msgstr "Reconciliação dos lançamentos das fatura(s) e pagamento(s)"
#. module: account
#: wizard_view:account.central.journal.report,init:0
@@ -1820,7 +1820,7 @@ msgstr "Planos"
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Sale"
-msgstr "vender"
+msgstr "Venda"
#. module: account
#: wizard_button:account.account.balance.report,account_selection,checktype:0
@@ -1834,7 +1834,7 @@ msgid ""
"The fiscal position will determine taxes and the accounts used for the the "
"partner."
msgstr ""
-"A posição fiscal poderá determinar as taxas e as contas usadas para o "
+"A posição fiscal irá determinar os impostos e as contas usadas para o "
"parceiro."
#. module: account
@@ -1845,7 +1845,7 @@ msgstr "Data ou Código"
#. module: account
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
-msgstr "Administrar contas"
+msgstr "Gerente de Contas"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -1856,7 +1856,7 @@ msgstr "para:"
#: wizard_field:account.move.line.reconcile,init_full,debit:0
#: wizard_field:account.move.line.reconcile,init_partial,debit:0
msgid "Debit amount"
-msgstr "Quantia de débito"
+msgstr "Valor do débito"
#. module: account
#: selection:account.subscription,period_type:0
@@ -1904,18 +1904,18 @@ msgstr "Tipo"
#. module: account
#: view:account.journal:0
msgid "Accounts Allowed (empty for no control)"
-msgstr "Contas permitidas(Vazio para não controlar)"
+msgstr "Contas permitidas (Vazio para não controlar)"
#. module: account
#: view:account.invoice:0
msgid "Untaxed amount"
-msgstr "Quantia não taxada"
+msgstr "Valor não tributado"
#. module: account
#: field:account.tax,account_collected_id:0
#: field:account.tax.template,account_collected_id:0
msgid "Invoice Tax Account"
-msgstr "Conta de taxa da fatura"
+msgstr "Conta de Impostos da Fatura"
#. module: account
#: view:account.move.line:0
@@ -1937,7 +1937,7 @@ msgstr "Erro: Número Bvr Inválido (erro dígito verificador)."
#: model:ir.actions.act_window,name:account.action_invoice_tree5
#: model:ir.ui.menu,name:account.menu_invoice_draft
msgid "Draft Customer Invoices"
-msgstr "Esboço de faturas de clientes"
+msgstr "Fatura de Clientes Provisória"
#. module: account
#: model:ir.model,name:account.model_account_subscription_line
@@ -2006,7 +2006,7 @@ msgstr "Este nome será exibido nos relatórios"
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "Printing date"
-msgstr "Imprimindo data"
+msgstr "Data de impressão"
#. module: account
#: constraint:ir.ui.view:0
@@ -2161,7 +2161,7 @@ msgstr "Conciliar pagamento"
#: model:ir.actions.act_window,name:account.action_bank_statement_reconciliation_form
#: model:ir.ui.menu,name:account.menu_action_account_bank_reconcile_tree
msgid "Statements reconciliation"
-msgstr "Procedimento de conciliação"
+msgstr "Reconciliação dos Demonstrativos"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_new
@@ -2198,7 +2198,7 @@ msgstr "Quantia"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open
msgid "Reconciled entries"
-msgstr "Lançamentos conciliados"
+msgstr "Lançamentos reconciliados"
#. module: account
#: field:account.invoice,address_contact_id:0
@@ -2219,7 +2219,7 @@ msgstr "(Mantenha vazio para usar o período atual)"
#: model:ir.actions.act_window,name:account.action_invoice_tree8
#: model:ir.ui.menu,name:account.menu_action_invoice_tree8
msgid "Draft Supplier Invoices"
-msgstr "Esboço de faturas de fornecedores"
+msgstr "Fatura Provisória de Fornecedores"
#. module: account
#: wizard_field:account.invoice.refund,init,period:0
@@ -2276,7 +2276,7 @@ msgstr "x Conferências diárias"
#: model:ir.actions.wizard,name:account.wizard_generate_subscription
#: model:ir.ui.menu,name:account.menu_generate_subscription
msgid "Create subscription entries"
-msgstr "Crie entradas da subscrição"
+msgstr "Criar lançamentos de inscrição"
#. module: account
#: wizard_field:account.fiscalyear.close,init,journal_id:0
@@ -2286,7 +2286,7 @@ msgstr "Diário de Abertura de Lançamentos"
#. module: account
#: view:account.config.wizard:0
msgid "Create a Fiscal Year"
-msgstr "Criar ano fiscal"
+msgstr "Criar um ano fiscal"
#. module: account
#: field:product.template,taxes_id:0
@@ -2369,7 +2369,7 @@ msgstr "Tipo de taxa"
#. module: account
#: model:process.transition,name:account.process_transition_statemententries0
msgid "Statement Entries"
-msgstr "Procedimentos para lançamentos"
+msgstr "Lançamentos do Demonstrativo"
#. module: account
#: field:account.analytic.line,user_id:0
@@ -2381,7 +2381,7 @@ msgstr "Usuário"
#: model:ir.actions.act_window,name:account.action_account_template_form
#: model:ir.ui.menu,name:account.menu_action_account_template_form
msgid "Account Templates"
-msgstr "Modelos de contas"
+msgstr "Modelos de conta"
#. module: account
#: view:account.chart.template:0
@@ -2523,7 +2523,7 @@ msgstr "Informação adicional"
#: model:process.transition,name:account.process_transition_entriesreconcile0
#: model:process.transition,name:account.process_transition_supplierentriesreconcile0
msgid "Entries Reconcile"
-msgstr "Conciliar lançamentos"
+msgstr "Reconciliar lançamentos"
#. module: account
#: help:account.bank.statement.reconcile,total_second_amount:0
@@ -2879,7 +2879,7 @@ msgstr "ID do parceiro"
#: wizard_view:account.invoice.pay,addendum:0
#: wizard_view:account.move.line.reconcile,addendum:0
msgid "Write-Off Move"
-msgstr "Mover amortização"
+msgstr "Movimentação de Baixa ou Exclusão"
#. module: account
#: view:account.move.line:0
@@ -2927,7 +2927,7 @@ msgstr "Abrir estado"
#. module: account
#: field:account.journal,entry_posted:0
msgid "Skip 'Draft' State for Created Entries"
-msgstr "Saltar o estado 'Esboço' para criar novas entradas"
+msgstr "Pular a forma 'Provisório' para lançamentos criados"
#. module: account
#: field:account.invoice.tax,account_id:0
@@ -2963,12 +2963,12 @@ msgstr "1cm 27.7cm 20cm 27.7cm"
#: model:ir.actions.act_window,name:account.action_invoice_tree12
#: model:ir.ui.menu,name:account.menu_action_invoice_tree12
msgid "Draft Supplier Refunds"
-msgstr "Esboço de reembolso a fornecedor"
+msgstr "Reembolso a Fornecedores Provisório"
#. module: account
#: model:process.node,name:account.process_node_accountingstatemententries0
msgid "Accounting Statement"
-msgstr "Procedimento para contas"
+msgstr "Demonstrativo de Contas"
#. module: account
#: rml:account.overdue:0
@@ -2997,7 +2997,7 @@ msgstr "Transações não conciliadas"
#: model:process.transition,note:account.process_transition_paymentorderbank0
#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
msgid "Reconcilation of entries from payment order."
-msgstr "Conciliação de lançamentos para ordem de pagamento"
+msgstr "Reconciliação de lançamentos da ordem de pagamento"
#. module: account
#: field:account.bank.statement,move_line_ids:0
@@ -3050,7 +3050,7 @@ msgstr "Taxa de moedas correntes de partida"
#: model:ir.actions.act_window,name:account.action_invoice_tree10
#: model:ir.ui.menu,name:account.menu_action_invoice_tree10
msgid "Draft Customer Refunds"
-msgstr "Esboço de reembolso a cliente"
+msgstr "Reembolso a Clientes Provisório"
#. module: account
#: field:account.journal.column,readonly:0
@@ -3127,12 +3127,12 @@ msgstr "Diário analítico"
#. module: account
#: rml:account.general.ledger:0
msgid "Entry Label"
-msgstr "Etiqueta de lançamento"
+msgstr "Aba de lançamento"
#. module: account
#: model:process.transition,note:account.process_transition_paymentreconcile0
msgid "Reconcilate the entries from payment"
-msgstr "Conciliação de lançamentos de pagamento"
+msgstr "Reconciliar os lançamentos do pagamento"
#. module: account
#: rml:account.tax.code.entries:0
@@ -3144,7 +3144,7 @@ msgstr "("
#: view:account.period:0
#: view:account.subscription:0
msgid "Set to Draft"
-msgstr "Definir como esboço"
+msgstr "Definir como Provisório"
#. module: account
#: help:account.invoice,origin:0
@@ -3279,7 +3279,7 @@ msgstr "Taxa média"
#: model:process.node,note:account.process_node_bankstatement0
#: model:process.node,note:account.process_node_supplierbankstatement0
msgid "Statement encoding produces payment entries"
-msgstr "Codificação de procedimentos de lançamentos de pagamento"
+msgstr "Codificação de demonstrativos para lançamentos de pagamento"
#. module: account
#: field:account.account,code:0
@@ -3321,7 +3321,7 @@ msgstr "Gerar Lançamentos Iniciais de Abertura do Ano Fiscal"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_reconcile
msgid "Reconcile Entries"
-msgstr "Conciliar lançamentos"
+msgstr "Reconciliar lançamentos"
#. module: account
#: wizard_view:account.wizard_paid_open,init:0
@@ -3460,7 +3460,7 @@ msgstr ""
#. module: account
#: view:account.bank.statement:0
msgid "Real Entries"
-msgstr "Lançamento real"
+msgstr "Lançamentos Reais"
#. module: account
#: model:process.node,name:account.process_node_importinvoice0
@@ -3518,7 +3518,7 @@ msgstr ""
#: field:account.tax,parent_id:0
#: field:account.tax.template,parent_id:0
msgid "Parent Tax Account"
-msgstr "Conta pai da taxa"
+msgstr "Conta-pai de Impostos"
#. module: account
#: field:account.account,user_type:0
@@ -3649,7 +3649,7 @@ msgstr "Linha do projeto"
#. module: account
#: wizard_field:account.automatic.reconcile,init,max_amount:0
msgid "Maximum write-off amount"
-msgstr "Monante máximo de amortização"
+msgstr "Valor máximo da Baixa ou Exclusão"
#. module: account
#: field:account.invoice.tax,manual:0
@@ -3732,7 +3732,7 @@ msgstr "Definir ano fiscal e selecionar plano de contas"
#. module: account
#: wizard_field:account.move.line.reconcile,addendum,period_id:0
msgid "Write-Off Period"
-msgstr "Amortização do período"
+msgstr "Período de Baixa ou Exclusão"
#. module: account
#: selection:account.config.wizard,period:0
@@ -3756,7 +3756,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_payment_term_line
msgid "Payment Term Line"
-msgstr "Linha do termo de pagamento"
+msgstr "Linha da forma de pagamento"
#. module: account
#: selection:account.config.wizard,period:0
@@ -3789,7 +3789,7 @@ msgstr "Por data"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_config_wizard_form
msgid "Account Configure Wizard "
-msgstr "Assistente de configurção de conga "
+msgstr "Assistente de configuração de conta "
#. module: account
#: field:account.config.wizard,date1:0
@@ -3813,7 +3813,7 @@ msgstr "Todos lançamentos"
#: model:process.node,name:account.process_node_draftinvoices0
#: model:process.node,name:account.process_node_supplierdraftinvoices0
msgid "Draft Invoices"
-msgstr "Esboço de faturas"
+msgstr "Faturas Provisórias"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax_template
@@ -3909,7 +3909,7 @@ msgstr "Outro"
#: model:ir.actions.wizard,name:account.wizard_general_ledger_report
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
-msgstr "Ficha geral"
+msgstr "Livro Razão"
#. module: account
#: field:account.journal.view,columns_id:0
@@ -3938,7 +3938,7 @@ msgstr ""
#. module: account
#: model:process.node,note:account.process_node_manually0
msgid "Encode manually the statement"
-msgstr "Codifique manualmente o procedimento"
+msgstr "Codifique manualmente o demonstrativo"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_journal_form
@@ -4152,7 +4152,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_invoice_tree1
#: model:ir.ui.menu,name:account.menu_action_invoice_tree1
msgid "Customer Invoices"
-msgstr "Faturas de clients"
+msgstr "Faturas de Clientes"
#. module: account
#: field:res.partner,debit_limit:0
@@ -4502,7 +4502,7 @@ msgstr "Linha Modelo de lançamento"
#. module: account
#: view:account.tax.template:0
msgid "Account Tax Template"
-msgstr "Modelo de conta de taxa"
+msgstr "Modelo de conta de impostos"
#. module: account
#: help:account.model,name:0
@@ -4517,7 +4517,7 @@ msgstr "Abrir fatura"
#. module: account
#: model:process.node,note:account.process_node_draftstatement0
msgid "Set starting and ending balance for control"
-msgstr "Definir início e fim para o controle do balanço"
+msgstr "Defina o saldo inicial e final para controle"
#. module: account
#: wizard_view:account.wizard_paid_open,init:0
@@ -4556,7 +4556,7 @@ msgstr "Estado"
#: model:process.node,name:account.process_node_accountingentries0
#: model:process.node,name:account.process_node_supplieraccountingentries0
msgid "Accounting Entries"
-msgstr "Lançando contas"
+msgstr "Lançamentos Contábeis"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move_unreconciled
@@ -4566,7 +4566,7 @@ msgstr "Receber & Pagar"
#. module: account
#: rml:account.general.ledger:0
msgid "General Ledger -"
-msgstr "Ficha geral -"
+msgstr "Livro Razão -"
#. module: account
#: field:report.hr.timesheet.invoice.journal,quantity:0
@@ -4592,20 +4592,20 @@ msgstr "Total"
#: model:process.transition,note:account.process_transition_customerinvoice0
#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0
msgid "Number of entries are generated"
-msgstr "Numero de lançamentos a ser gerado"
+msgstr "Numero de lançamentos são gerados"
#. module: account
#: model:process.transition,name:account.process_transition_suppliervalidentries0
#: model:process.transition,name:account.process_transition_validentries0
msgid "Valid Entries"
-msgstr "Validar lançamentos"
+msgstr "Lançamentos Válidos"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_account_use_model
#: model:ir.actions.wizard,name:account.wizard_line_account_use_model
#: model:ir.ui.menu,name:account.menu_account_use_model
msgid "Create Entries From Models"
-msgstr "Criar lançamentos de modelos"
+msgstr "Criar lançamentos dos modelos"
#. module: account
#: field:account.account.template,reconcile:0
@@ -4624,7 +4624,7 @@ msgstr "Por data"
#: model:ir.actions.act_window,name:account.action_invoice_tree4
#: model:ir.ui.menu,name:account.menu_action_invoice_tree4
msgid "Supplier Refunds"
-msgstr "reembolsos do fornecedor"
+msgstr "Reembolsos de Fornecedor"
#. module: account
#: help:account.model.line,date:0
@@ -4737,7 +4737,7 @@ msgstr ""
#. module: account
#: model:process.node,name:account.process_node_draftstatement0
msgid "Draft statement"
-msgstr "Procedimento de esboço"
+msgstr "Demonstrativo provisório"
#. module: account
#: field:account.analytic.journal,name:0
@@ -4843,7 +4843,7 @@ msgstr "Cancelado"
#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_draft_tree
msgid "Draft statements"
-msgstr "Esboço de procedimentos"
+msgstr "Demonstrativos provisórios"
#. module: account
#: wizard_field:populate_statement_from_inv,init,date:0
@@ -4959,7 +4959,7 @@ msgstr "Selecione a conta-pai"
#. module: account
#: field:account.account.template,parent_id:0
msgid "Parent Account Template"
-msgstr "Modelo de conta pai"
+msgstr "Modelo de conta-pai"
#. module: account
#: help:account.tax,domain:0
@@ -5224,7 +5224,7 @@ msgstr "Modelo de codificação da conta de impostos"
#. module: account
#: view:account.subscription:0
msgid "Subscription Periods"
-msgstr "Inscrever períodos"
+msgstr "Períodos de Inscrição"
#. module: account
#: model:process.node,name:account.process_node_manually0
@@ -5286,7 +5286,7 @@ msgstr "Taxa de troca"
#: model:process.transition,note:account.process_transition_invoicemanually0
msgid "Encode manually statement comes into the draft statement"
msgstr ""
-"Codifique manualmente o procedimento dentro do procedimento de esboço"
+"O demonstrativo codificado manualmente entra no demonstrativo provisório"
#. module: account
#: model:ir.ui.menu,name:account.next_id_43
@@ -5359,7 +5359,7 @@ msgstr "Escolha diário e data de pagamento"
#: selection:account.period,state:0
#: selection:account.subscription,state:0
msgid "Draft"
-msgstr "Esboço"
+msgstr "Provisório"
#. module: account
#: rml:account.overdue:0
@@ -5774,7 +5774,7 @@ msgstr "Contas financeiras"
#. module: account
#: model:ir.model,name:account.model_account_chart_template
msgid "Templates for Account Chart"
-msgstr "Modelo de plano de contas"
+msgstr "Modelos para plano de contas"
#. module: account
#: view:account.config.wizard:0
@@ -5912,7 +5912,7 @@ msgstr "Futuro"
#: help:account.partner.balance.report,init,fiscalyear:0
#: help:account.third_party_ledger.report,init,fiscalyear:0
msgid "Keep empty for all open fiscal year"
-msgstr "Mantenha vazia para abrir todos os anos fiscais"
+msgstr "Mantenha vazia para todos os anos fiscais abertos"
#. module: account
#: rml:account.invoice:0
@@ -6072,4 +6072,4 @@ msgstr ""
#. module: account
#: wizard_button:account.subscription.generate,init,generate:0
msgid "Compute Entry Dates"
-msgstr "Calcular datas de entrada"
+msgstr "Processar Datas de Lançamento"
diff --git a/addons/account/i18n/sv.po b/addons/account/i18n/sv.po
index 071d06f1483..74c60176c3a 100644
--- a/addons/account/i18n/sv.po
+++ b/addons/account/i18n/sv.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-15 14:11+0000\n"
-"Last-Translator: Anders Wallenquist \n"
+"PO-Revision-Date: 2010-03-24 14:33+0000\n"
+"Last-Translator: Anders Eriksson (Mobila System) \n"
"Language-Team: <> <>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-16 04:46+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -24,7 +24,7 @@ msgstr "Internt namn"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
-msgstr "Skattekontokod"
+msgstr "Konto, skattekod"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@@ -45,7 +45,7 @@ msgstr "Ange meddelande till rapporten försenade betalningar."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
-msgstr "Bekräfta verifikat från utkast"
+msgstr "Bekräfta preliminära verifikat"
#. module: account
#: model:account.account.type,name:account.account_type_asset
@@ -55,7 +55,7 @@ msgstr "Tillgång"
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "Ogiltigt modellnamn i åtgärdsdefinitionen."
+msgstr "Felaktigt namn för modell i händelsedefinitionen."
#. module: account
#: help:account.journal,currency:0
@@ -112,7 +112,7 @@ msgstr "Skriv ut momsrapport"
#. module: account
#: field:account.account,parent_id:0
msgid "Parent"
-msgstr "Ovanliggande"
+msgstr "Överliggande"
#. module: account
#: selection:account.move,type:0
@@ -141,7 +141,7 @@ msgstr "Ej avstämda transaktioner"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
-msgstr "Fel ! Varaktigheten i perioden/erna är felaktig "
+msgstr "Fel! Fel periodintervall. "
#. module: account
#: view:account.bank.statement.reconcile:0
@@ -262,7 +262,7 @@ msgstr "Summa Debet"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
-msgstr "Bokföringstransaktioner"
+msgstr "Bokföringstransaktioner-"
#. module: account
#: help:account.journal,view_id:0
@@ -272,6 +272,10 @@ msgid ""
"in which order. You can create your own view for a faster encoding in each "
"journal."
msgstr ""
+"Ger vyn som används när du skriver eller bläddrar poster i journalen. Vyn "
+"berättar för OpenERP vilka fält som ska synas, krävs eller skrivskyddas och "
+"i vilken ordning. Du kan skapa din egen vy för en snabbare kodning i varje "
+"journal."
#. module: account
#: help:account.invoice,date_due:0
@@ -282,6 +286,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
+"Om du använder betalningsvillkor, förfallodagen kommer att beräknas "
+"automatiskt vid generering av bokföringsposter. Om du lämnar "
+"betalningsvillkor och förfallodagen tomma betyder det direkt betalning. "
+"Betalningsvillkor kan beräkna flera förfallodatum, till exempel 50% nu, 50% "
+"efter en månad."
#. module: account
#: selection:account.tax,type:0
@@ -310,7 +319,7 @@ msgstr "Välj period"
#: field:account.invoice,origin:0
#: field:account.invoice.line,origin:0
msgid "Origin"
-msgstr "Ursprung"
+msgstr "Orginal"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -355,7 +364,7 @@ msgstr "Debettransaktion"
#: field:account.move.line,analytic_account_id:0
#: field:report.hr.timesheet.invoice.journal,account_id:0
msgid "Analytic Account"
-msgstr "Objektkonto"
+msgstr "Objekt"
#. module: account
#: field:account.tax,child_depend:0
@@ -373,7 +382,7 @@ msgstr "Journalnamn"
#. module: account
#: view:account.payment.term:0
msgid "Description on invoices"
-msgstr "Beskrivning på faktura"
+msgstr "Beskrivning på fakturor"
#. module: account
#: constraint:account.analytic.account:0
@@ -425,7 +434,7 @@ msgstr "Negativ"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
-msgstr "(Konto/Företag) namn"
+msgstr "(Konto/Partner) namn"
#. module: account
#: selection:account.move,type:0
@@ -446,7 +455,7 @@ msgstr "Status"
#: model:ir.actions.act_window,name:account.action_invoice_tree13
#: model:ir.ui.menu,name:account.menu_action_invoice_tree13
msgid "Unpaid Supplier Refunds"
-msgstr ""
+msgstr "Obetald Leverantörskredit"
#. module: account
#: view:account.tax:0
@@ -500,7 +509,7 @@ msgstr ""
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Analytic Entries Stats"
-msgstr "Objektposter"
+msgstr "Objektposter statistikKredit ber"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
@@ -517,7 +526,7 @@ msgstr "Leverantörsfaktura"
#: model:process.transition,name:account.process_transition_reconcilepaid0
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "Reconcile Paid"
-msgstr ""
+msgstr "Kreditering betald"
#. module: account
#: wizard_field:account.chart,init,target_move:0
@@ -533,7 +542,7 @@ msgstr "Momsmallar"
#. module: account
#: field:account.invoice,reconciled:0
msgid "Paid/Reconciled"
-msgstr ""
+msgstr "Betald/Återbetald"
#. module: account
#: field:account.account.type,close_method:0
@@ -543,7 +552,7 @@ msgstr ""
#. module: account
#: field:account.tax.template,include_base_amount:0
msgid "Include in Base Amount"
-msgstr ""
+msgstr "Inkluder i basbeloppet"
#. module: account
#: field:account.tax,ref_base_code_id:0
@@ -573,6 +582,8 @@ msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
msgstr ""
+"Antal dagar för att lägga före beräkning av dagen i månaden. Om Datum = "
+"15/01, antal dagar = 22, Dag i månaden =- 1, blir sedan förfallodagen 28/02."
#. module: account
#: model:ir.model,name:account.model_account_tax
@@ -1337,7 +1348,7 @@ msgstr "Meddelande"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
msgid "Select invoices you want to pay and manages advances"
-msgstr ""
+msgstr "Välj fakturor du vill betala och hantera förväg"
#. module: account
#: selection:account.account,type:0
@@ -1674,7 +1685,7 @@ msgstr "Max antal:"
#. module: account
#: wizard_button:account.invoice.refund,init,refund:0
msgid "Refund Invoice"
-msgstr ""
+msgstr "Kreditera Faktura"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_period_tree
@@ -2060,7 +2071,7 @@ msgstr "Preliminär faktura"
#. module: account
#: model:account.account.type,name:account.account_type_expense
msgid "Expense"
-msgstr "Kostnad"
+msgstr "Utgift"
#. module: account
#: field:account.journal,invoice_sequence_id:0
@@ -2190,7 +2201,7 @@ msgstr "(lämna blank för aktuell period)"
#: model:ir.actions.act_window,name:account.action_invoice_tree8
#: model:ir.ui.menu,name:account.menu_action_invoice_tree8
msgid "Draft Supplier Invoices"
-msgstr ""
+msgstr "Preliminära kundfakturor"
#. module: account
#: wizard_field:account.invoice.refund,init,period:0
@@ -3057,6 +3068,8 @@ msgid ""
"If this box is checked, the system will try to group the accounting lines "
"when generating them from invoices."
msgstr ""
+"Om denna ruta är markerad, kommer systemet att försöka gruppera redovisning "
+"raderna när du skapar dem från fakturor."
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,trans_nbr:0
@@ -3255,7 +3268,7 @@ msgstr "Kod"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance
msgid "Financial Management"
-msgstr "Bokföring"
+msgstr "Redovisning"
#. module: account
#: selection:account.account.type,close_method:0
@@ -3316,7 +3329,7 @@ msgstr ""
#: field:account.tax.code,notprintable:0
#: field:account.tax.code.template,notprintable:0
msgid "Not Printable in Invoice"
-msgstr ""
+msgstr "Inte utskrivbar i faktura"
#. module: account
#: field:account.move.line,move_id:0
@@ -3637,6 +3650,8 @@ msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
msgstr ""
+"Markera rutan om du inte vill att någon moms i samband med detta skattelagen "
+"att visas på fakturor"
#. module: account
#: field:account.account.type,sequence:0
@@ -3649,7 +3664,7 @@ msgstr ""
#: field:account.tax.template,sequence:0
#: field:fiscalyear.seq,sequence_id:0
msgid "Sequence"
-msgstr "Nummerserie"
+msgstr "Sekvens"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_template
@@ -4053,7 +4068,7 @@ msgstr "Nettobelopp"
#. module: account
#: field:account.invoice.line,invoice_id:0
msgid "Invoice Ref"
-msgstr ""
+msgstr "Fakturaref"
#. module: account
#: field:account.analytic.line,general_account_id:0
@@ -4125,7 +4140,7 @@ msgstr "Valuta för boken"
#: view:account.journal.column:0
#: model:ir.model,name:account.model_account_journal_column
msgid "Journal Column"
-msgstr ""
+msgstr "Journalkolumn"
#. module: account
#: selection:account.fiscalyear,state:0
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index 8b5131c0683..8d2ee5edb76 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-20 07:43+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2010-03-29 00:34+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-21 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -896,7 +896,7 @@ msgstr "货币金额"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
msgid "Expense Category Account"
-msgstr ""
+msgstr "费用类科目"
#. module: account
#: wizard_field:account.fiscalyear.close,init,fy2_id:0
@@ -1110,7 +1110,7 @@ msgstr "列表模板"
#. module: account
#: field:account.chart.template,property_account_income_categ:0
msgid "Income Category Account"
-msgstr ""
+msgstr "收入类科目"
#. module: account
#: model:ir.actions.act_window,name:account.analytic_account_form
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index f551d77ccaa..cd9727d5903 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -46,7 +46,7 @@
child_ofuser.company_id.id
- ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -60,7 +60,7 @@
child_ofuser.company_id.id
- ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -72,7 +72,7 @@
child_ofuser.company_id.id
- ['|','|',('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -85,7 +85,7 @@
child_ofuser.company_id.id
- ['|','|',('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
diff --git a/addons/account_analytic_analysis/__terp__.py b/addons/account_analytic_analysis/__terp__.py
index 2f44e0cd62a..276f8e1dd65 100644
--- a/addons/account_analytic_analysis/__terp__.py
+++ b/addons/account_analytic_analysis/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,9 +24,14 @@
'name': 'report_account_analytic',
'version': '1.0',
'category': 'Generic Modules/Accounting',
- 'description': """Modify account analytic view to show
-important data for project manager of services companies.
-Add menu to show relevant information for each manager.""",
+ 'description': """
+ This module is for modifying account analytic view to show
+ important data to project manager of services companies.
+ Adds menu to show relevant information to each manager..
+
+ You can also view the report of account analytic summary
+ user-wise as well as month wise.
+""",
"version" : "1.1",
"author" : "Camptocamp",
"category" : "Generic Modules/Accounting",
diff --git a/addons/account_analytic_default/i18n/zh_CN.po b/addons/account_analytic_default/i18n/zh_CN.po
index a20701c0aae..a37b184a372 100644
--- a/addons/account_analytic_default/i18n/zh_CN.po
+++ b/addons/account_analytic_default/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-20 03:48+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2010-03-29 00:37+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-21 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_default
@@ -42,7 +42,7 @@ msgstr "这对象名必须以x_开头并且不能包含特殊的字符!"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Seq"
-msgstr ""
+msgstr "序号"
#. module: account_analytic_default
#: field:account.analytic.default,date_stop:0
diff --git a/addons/account_analytic_plans/__terp__.py b/addons/account_analytic_plans/__terp__.py
index 63b09bf1dc0..b3067358a62 100644
--- a/addons/account_analytic_plans/__terp__.py
+++ b/addons/account_analytic_plans/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -51,6 +51,8 @@ Plan2:
So when this line of invoice will be confirmed, it will generate 3 analytic lines,
for one account entry.
+The analytic plan validates the minimum and maximum percentage at the time of creation
+of distribution models.
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
index 52fc1aa1f9b..af197076c23 100644
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ b/addons/account_analytic_plans/account_analytic_plans.py
@@ -95,6 +95,18 @@ class account_analytic_plan_instance(osv.osv):
'account6_ids':one2many_mod2('account.analytic.plan.instance.line','plan_id','Account6 Id'),
'plan_id':fields.many2one('account.analytic.plan', "Model's Plan"),
}
+
+ def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
+ if context.get('journal_id', False):
+ journal = self.pool.get('account.journal').browse(cr, user, [context['journal_id']], context=context)[0]
+ analytic_journal = journal.analytic_journal_id and journal.analytic_journal_id.id or False
+ args.append('|')
+ args.append(('journal_id', '=', analytic_journal))
+ args.append(('journal_id', '=', False))
+ res = super(account_analytic_plan_instance, self).search(cr, user, args, offset=offset, limit=limit, order=order,
+ context=context, count=count)
+ return res
+
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml
index acd8debb18b..da10d698dfa 100644
--- a/addons/account_analytic_plans/account_analytic_plans_view.xml
+++ b/addons/account_analytic_plans/account_analytic_plans_view.xml
@@ -24,7 +24,7 @@
-
+
@@ -45,7 +45,7 @@
-
+
diff --git a/addons/account_analytic_plans/i18n/oc.po b/addons/account_analytic_plans/i18n/oc.po
new file mode 100644
index 00000000000..c697c75a25c
--- /dev/null
+++ b/addons/account_analytic_plans/i18n/oc.po
@@ -0,0 +1,376 @@
+# Occitan (post 1500) translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-03-25 12:58+0000\n"
+"Last-Translator: Cédric VALMARY (Per Tot en òc) \n"
+"Language-Team: Occitan (post 1500) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account4_ids:0
+msgid "Account4 Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
+"especials !"
+
+#. module: account_analytic_plans
+#: model:ir.actions.report.xml,name:account_analytic_plans.account_analytic_account_crossovered_analytic
+#: model:ir.actions.wizard,name:account_analytic_plans.account_analytic_account_inverted_balance_report
+msgid "Crossovered Analytic"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account5_ids:0
+msgid "Account5 Id"
+msgstr "Identificant del Compte5"
+
+#. module: account_analytic_plans
+#: wizard_field:wizard.crossovered.analytic,init,date2:0
+msgid "End Date"
+msgstr "Data de fin"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance.line,rate:0
+msgid "Rate (%)"
+msgstr "Taus (%)"
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan:0
+#: field:account.analytic.plan,name:0
+#: field:account.analytic.plan.line,plan_id:0
+#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
+#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_action
+msgid "Analytic Plan"
+msgstr "Plan Analitic"
+
+#. module: account_analytic_plans
+#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
+msgid "Analytic Instance Line"
+msgstr ""
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan.instance.line:0
+msgid "Analytic Distribution Lines"
+msgstr ""
+
+#. module: account_analytic_plans
+#: wizard_button:wizard.crossovered.analytic,init,print:0
+msgid "Print"
+msgstr "Estampar"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "To Date"
+msgstr "Data de Fin"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance.line,plan_id:0
+msgid "Plan Id"
+msgstr "Identificant del Plan"
+
+#. module: account_analytic_plans
+#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
+msgid "Analytic Distribution's Models"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Account Name"
+msgstr "Nom del compte"
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan.instance.line:0
+msgid "Analytic Distribution Line"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,code:0
+msgid "Distribution Code"
+msgstr ""
+
+#. module: account_analytic_plans
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nom del Modèl invalid per la definicion de l'accion."
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.line,name:0
+msgid "Plan Name"
+msgstr "Nom del Plan"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Printing date"
+msgstr "Data d'estampatge"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Percentage"
+msgstr "Percentatge"
+
+#. module: account_analytic_plans
+#: wizard_field:wizard.crossovered.analytic,init,empty_line:0
+msgid "Dont show empty lines"
+msgstr ""
+
+#. module: account_analytic_plans
+#: wizard_view:wizard.crossovered.analytic,init:0
+msgid "Select Information"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account3_ids:0
+msgid "Account3 Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,journal_id:0
+#: wizard_field:wizard.crossovered.analytic,init,journal_ids:0
+msgid "Analytic Journal"
+msgstr "Jornal analitic"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "100.00%"
+msgstr "100.00%"
+
+#. module: account_analytic_plans
+#: wizard_field:wizard.crossovered.analytic,init,ref:0
+msgid "Analytic Account Ref."
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Analytic Account :"
+msgstr "Compte Analitic :"
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan.line:0
+msgid "Analytic Plan Line"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Analytic Account Reference:"
+msgstr ""
+
+#. module: account_analytic_plans
+#: model:ir.actions.wizard,name:account_analytic_plans.create_model
+msgid "Create Model"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan,default_instance_id:0
+msgid "Default Entries"
+msgstr ""
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan:0
+#: field:account.analytic.plan,plan_ids:0
+#: field:account.journal,plan_id:0
+#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
+msgid "Analytic Plans"
+msgstr "Plans Analitics"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.line,min_required:0
+msgid "Minimum Allowed (%)"
+msgstr "Minimum Permés (%)"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account1_ids:0
+msgid "Account1 Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.line,max_required:0
+msgid "Maximum Allowed (%)"
+msgstr "Maximum Permés (%)"
+
+#. module: account_analytic_plans
+#: wizard_view:create.model,info:0
+msgid "Distribution Model Saved"
+msgstr ""
+
+#. module: account_analytic_plans
+#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
+msgid "Analytic Plan Instance"
+msgstr ""
+
+#. module: account_analytic_plans
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML invalid per l'arquitectura de la vista"
+
+#. module: account_analytic_plans
+#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
+msgid "Distribution Models"
+msgstr ""
+
+#. module: account_analytic_plans
+#: model:ir.module.module,description:account_analytic_plans.module_meta_information
+msgid ""
+"This module allows to use several analytic plans, according to the general "
+"journal,\n"
+"so that multiple analytic lines are created when the invoice or the entries\n"
+"are confirmed.\n"
+"\n"
+"For example, you can define the following analytic structure:\n"
+" Projects\n"
+" Project 1\n"
+" SubProj 1.1\n"
+" SubProj 1.2\n"
+" Project 2\n"
+" Salesman\n"
+" Eric\n"
+" Fabien\n"
+"\n"
+"Here, we have two plans: Projects and Salesman. An invoice line must\n"
+"be able to write analytic entries in the 2 plans: SubProj 1.1 and\n"
+"Fabien. The amount can also be split. The following example is for\n"
+"an invoice that touches the two subproject and assigned to one salesman:\n"
+"\n"
+"Plan1:\n"
+" SubProject 1.1 : 50%\n"
+" SubProject 1.2 : 50%\n"
+"Plan2:\n"
+" Eric: 100%\n"
+"\n"
+"So when this line of invoice will be confirmed, it will generate 3 analytic "
+"lines,\n"
+"for one account entry.\n"
+" "
+msgstr ""
+
+#. module: account_analytic_plans
+#: model:ir.module.module,shortdesc:account_analytic_plans.module_meta_information
+msgid "Multiple-plans management in Analytic Accounting"
+msgstr ""
+
+#. module: account_analytic_plans
+#: view:account.analytic.plan.line:0
+#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
+msgid "Analytic Plan Lines"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Crossovered Analytic -"
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,plan_id:0
+msgid "Model's Plan"
+msgstr "Plan del Modèl"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account2_ids:0
+msgid "Account2 Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Amount"
+msgstr "Montant"
+
+#. module: account_analytic_plans
+#: help:account.analytic.plan.line,root_analytic_id:0
+msgid "Root account of this plan."
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account6_ids:0
+msgid "Account6 Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Quantity"
+msgstr "Quantitat"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance,account_ids:0
+msgid "Account Id"
+msgstr ""
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "Code"
+msgstr "Còde"
+
+#. module: account_analytic_plans
+#: wizard_button:create.model,info,end:0
+msgid "OK"
+msgstr "D'acòrdi"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.line,root_analytic_id:0
+msgid "Root Account"
+msgstr ""
+
+#. module: account_analytic_plans
+#: wizard_view:create.model,info:0
+msgid ""
+"This distribution model has been saved. You will be able to reuse it later."
+msgstr ""
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.line,sequence:0
+msgid "Sequence"
+msgstr "Sequéncia"
+
+#. module: account_analytic_plans
+#: field:account.analytic.plan.instance.line,analytic_account_id:0
+msgid "Analytic Account"
+msgstr "Compte Analitic"
+
+#. module: account_analytic_plans
+#: field:account.analytic.default,analytics_id:0
+#: view:account.analytic.plan.instance:0
+#: field:account.analytic.plan.instance,name:0
+#: field:account.invoice.line,analytics_id:0
+#: field:account.move.line,analytics_id:0
+msgid "Analytic Distribution"
+msgstr ""
+
+#. module: account_analytic_plans
+#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_instance_action
+msgid "Analytic Distribution's models"
+msgstr ""
+
+#. module: account_analytic_plans
+#: wizard_button:wizard.crossovered.analytic,init,end:0
+msgid "Cancel"
+msgstr "Anullar"
+
+#. module: account_analytic_plans
+#: wizard_field:wizard.crossovered.analytic,init,date1:0
+msgid "Start Date"
+msgstr "Data de començament"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "at"
+msgstr "a"
+
+#. module: account_analytic_plans
+#: rml:account.analytic.account.crossovered.analytic:0
+msgid "From Date"
+msgstr ""
diff --git a/addons/account_anglo_saxon/i18n/es.po b/addons/account_anglo_saxon/i18n/es.po
new file mode 100644
index 00000000000..68e7618ac56
--- /dev/null
+++ b/addons/account_anglo_saxon/i18n/es.po
@@ -0,0 +1,66 @@
+# Spanish translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-24 12:50+0000\n"
+"PO-Revision-Date: 2010-03-24 17:25+0000\n"
+"Last-Translator: relojero \n"
+"Language-Team: Spanish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: account_anglo_saxon
+#: view:product.category:0
+msgid " Accounting Property"
+msgstr " Contabilidad de la propiedad"
+
+#. module: account_anglo_saxon
+#: model:ir.module.module,description:account_anglo_saxon.module_meta_information
+msgid ""
+"This module will support the Anglo-Saxons accounting methodology by \n"
+" changing the accounting logic with stock transactions. The difference "
+"between the Anglo-Saxon accounting countries \n"
+" and the Rhine or also called Continental accounting countries is the "
+"moment of taking the Cost of Goods Sold versus Cost of Sales. \n"
+" Anglo-Saxons accounting does take the cost when sales invoice is "
+"created, Continental accounting will take the cost at he moment the goods "
+"are shipped.\n"
+" This module will add this functionality by using a interim account, to "
+"store the value of shipped goods and will contra book this interim account \n"
+" when the invoice is created to transfer this amount to the debtor or "
+"creditor account."
+msgstr ""
+
+#. module: account_anglo_saxon
+#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
+msgid "Stock Account"
+msgstr ""
+
+#. module: account_anglo_saxon
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: account_anglo_saxon
+#: field:product.category,property_account_creditor_price_difference_categ:0
+#: field:product.template,property_account_creditor_price_difference:0
+msgid "Price Difference Account"
+msgstr "Precio de la cuenta diferencia"
+
+#. module: account_anglo_saxon
+#: help:product.category,property_account_creditor_price_difference_categ:0
+#: help:product.template,property_account_creditor_price_difference:0
+msgid ""
+"This account will be used to value price difference between purchase price "
+"and cost price."
+msgstr ""
+"Esta cuenta se utilizará para valorar la diferencia de precios entre el "
+"precio de compra y precio de coste"
diff --git a/addons/account_budget/wizard/wizard_analytic_account_budget.py b/addons/account_budget/wizard/wizard_analytic_account_budget.py
index a8d6fb27c06..16702f7633d 100644
--- a/addons/account_budget/wizard/wizard_analytic_account_budget.py
+++ b/addons/account_budget/wizard/wizard_analytic_account_budget.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -38,7 +38,7 @@ class wizard_report(wizard.interface):
states = {
'init': {
'actions': [],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
+ 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel', 'gtk-cancel'),('report','Print', 'gtk-print', True)]}
},
'report': {
'actions': [],
diff --git a/addons/account_budget/wizard/wizard_budget_report.py b/addons/account_budget/wizard/wizard_budget_report.py
index 544a401546b..72f251445ba 100644
--- a/addons/account_budget/wizard/wizard_budget_report.py
+++ b/addons/account_budget/wizard/wizard_budget_report.py
@@ -47,7 +47,7 @@ class wizard_report(wizard.interface):
states = {
'init': {
'actions': [_default],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
+ 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel', 'gtk-cancel'),('report','Print', 'gtk-print', True)]}
},
'report': {
'actions': [],
diff --git a/addons/account_budget/wizard/wizard_budget_spread.py b/addons/account_budget/wizard/wizard_budget_spread.py
index 31c4e8fb76f..a4885df2324 100644
--- a/addons/account_budget/wizard/wizard_budget_spread.py
+++ b/addons/account_budget/wizard/wizard_budget_spread.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -43,7 +43,7 @@ class wizard_budget_spread(wizard.interface):
states = {
'init': {
'actions': [],
- 'result': {'type':'form', 'arch':_spread_form, 'fields':_spread_fields, 'state':[('end','Cancel'),('spread','Spread')]}
+ 'result': {'type':'form', 'arch':_spread_form, 'fields':_spread_fields, 'state':[('end','Cancel'),('spread','Spread','',True)]}
},
'spread': {
'actions': [_spread],
diff --git a/addons/account_budget/wizard/wizard_crossovered_budget_report.py b/addons/account_budget/wizard/wizard_crossovered_budget_report.py
index 2737798e7fe..a1357974126 100644
--- a/addons/account_budget/wizard/wizard_crossovered_budget_report.py
+++ b/addons/account_budget/wizard/wizard_crossovered_budget_report.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -43,7 +43,7 @@ class wizard_report(wizard.interface):
states = {
'init': {
'actions': [_default],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
+ 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel', 'gtk-cancel'),('report','Print', 'gtk-print', True)]}
},
'report': {
'actions': [],
diff --git a/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py b/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py
index cbca68165b6..5580fea385f 100644
--- a/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py
+++ b/addons/account_budget/wizard/wizard_crossovered_budget_summary_report.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -42,7 +42,7 @@ class wizard_report_summary(wizard.interface):
states = {
'init': {
'actions': [_default],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
+ 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel', 'gtk-cancel'),('report','Print', 'gtk-print', True)]}
},
'report': {
'actions': [],
diff --git a/addons/account_chart/i18n/pt_BR.po b/addons/account_chart/i18n/pt_BR.po
index 671c652c689..48873002c79 100644
--- a/addons/account_chart/i18n/pt_BR.po
+++ b/addons/account_chart/i18n/pt_BR.po
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 13:47+0000\n"
+"PO-Revision-Date: 2010-03-24 01:00+0000\n"
"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
#: model:ir.module.module,description:account_chart.module_meta_information
msgid "Remove minimal account chart"
-msgstr ""
+msgstr "Remover plano de contas mínimo"
diff --git a/addons/account_date_check/i18n/pt_BR.po b/addons/account_date_check/i18n/pt_BR.po
index ed4cb3f003a..46b422bf9ed 100644
--- a/addons/account_date_check/i18n/pt_BR.po
+++ b/addons/account_date_check/i18n/pt_BR.po
@@ -7,26 +7,26 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-09 16:21+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-24 01:05+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:57+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_date_check
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "Invalido XML para Arquitetura da View"
+msgstr "XML inválido para Arquitetura da View"
#. module: account_date_check
#: field:account.journal,allow_date:0
msgid "Allows date not in the period"
-msgstr ""
+msgstr "Permite datas fora do período"
#. module: account_date_check
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
msgid "Account Date check"
-msgstr ""
+msgstr "Verificação de Data de Conta"
diff --git a/addons/account_invoice_layout/account_invoice_layout.py b/addons/account_invoice_layout/account_invoice_layout.py
index 58f7721d253..2317e0c65a9 100644
--- a/addons/account_invoice_layout/account_invoice_layout.py
+++ b/addons/account_invoice_layout/account_invoice_layout.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -70,7 +70,7 @@ class account_invoice_line(osv.osv):
res[field]['states'][key] = value
return res
- def _onchange_invoice_line_view(self, cr, uid, id, type, context={}, *args):
+ def onchange_invoice_line_view(self, cr, uid, id, type, context={}, *args):
if (not type):
return {}
diff --git a/addons/account_invoice_layout/account_invoice_layout_view.xml b/addons/account_invoice_layout/account_invoice_layout_view.xml
index 18e7996a7cd..fe11e407bf3 100644
--- a/addons/account_invoice_layout/account_invoice_layout_view.xml
+++ b/addons/account_invoice_layout/account_invoice_layout_view.xml
@@ -9,7 +9,7 @@
form
-
+
diff --git a/addons/account_payment/i18n/pt_BR.po b/addons/account_payment/i18n/pt_BR.po
index b2fd6799488..0ea750cd530 100644
--- a/addons/account_payment/i18n/pt_BR.po
+++ b/addons/account_payment/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-04 16:01+0000\n"
-"Last-Translator: JCF \n"
+"PO-Revision-Date: 2010-03-24 01:02+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:56+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_payment
@@ -335,7 +335,7 @@ msgstr "Parceiro"
#. module: account_payment
#: help:payment.line,communication2:0
msgid "The successor message of Communication."
-msgstr ""
+msgstr "A mensagem que segue a Comunicação."
#. module: account_payment
#: help:payment.line,info_partner:0
diff --git a/addons/account_voucher/__terp__.py b/addons/account_voucher/__terp__.py
index b6843372f4c..a006cb10bab 100755
--- a/addons/account_voucher/__terp__.py
+++ b/addons/account_voucher/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,20 +24,25 @@
"version" : "1.0",
"author" : 'Tiny & Axelor',
"description": """
- India Accounting module includes all the basic requirenment of
- Basic Accounting, like
- * Bank Payment, Receipt
- * Cash Payent, Receipt
+ India Accounting module includes all the basic requirenment of
+ Basic Accounting, plus new things which available are
+ * Indian Account Chart
+ * New Invoice - (Local, Retail)
+ * Invoice Report
+ * Tax structure
+ * Journals
+ * VAT Declaration report
+ * Accounting Periods
""",
- "category" : "Generic Modules/Indian Accounting",
+ "category" : "Generic Modules/Accounting",
"website" : "http://tinyerp.com",
"depends" : ["base", "account"],
"init_xml" : [
],
-
+
"demo_xml" : [
],
-
+
"update_xml" : [
"security/ir.model.access.csv",
"voucher_sequence.xml",
diff --git a/addons/analytic_user_function/i18n/hr.po b/addons/analytic_user_function/i18n/hr.po
index d458ac939a6..05b08aca798 100644
--- a/addons/analytic_user_function/i18n/hr.po
+++ b/addons/analytic_user_function/i18n/hr.po
@@ -1,64 +1,66 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * analytic_user_function
-#
+# * analytic_user_function
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 15:12+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 00:56+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:03+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: analytic_user_function
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
msgid "Relation table between users and products on a analytic account"
-msgstr ""
+msgstr "Vza između korisnika i proizvoda kod Analitičkog konta."
#. module: analytic_user_function
#: field:analytic_user_funct_grid,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: analytic_user_function
#: field:analytic_user_funct_grid,account_id:0
msgid "Analytic Account"
-msgstr ""
+msgstr "Analitički Konto"
#. module: analytic_user_function
#: view:account.analytic.account:0
#: field:account.analytic.account,user_product_ids:0
msgid "Users/Products Rel."
-msgstr ""
+msgstr "veza Korisnici/Proizvodi"
#. module: analytic_user_function
#: field:analytic_user_funct_grid,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: analytic_user_function
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: analytic_user_function
#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
msgid "Analytic User Function"
-msgstr ""
+msgstr "Funkcija Analitičkog Korisnika"
#. module: analytic_user_function
#: view:analytic_user_funct_grid:0
msgid "User's Product for this Analytic Account"
-msgstr ""
+msgstr "Korisnikov Proizvod za ovaj Analitički konto."
diff --git a/addons/association/__terp__.py b/addons/association/__terp__.py
index 29eeb474d9c..43f61ed2392 100644
--- a/addons/association/__terp__.py
+++ b/addons/association/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,7 @@
'name': 'Association profile',
'version': '0.1',
'category': 'Profile',
- 'description': """Profile for Associates""",
+ 'description': """This module is to create Profile for Associates""",
'author': 'Tiny',
'depends': ['membership', 'board_association'],
'update_xml': ['security/ir.model.access.csv', 'profile_association.xml'],
diff --git a/addons/auction/__terp__.py b/addons/auction/__terp__.py
index 83064640266..61e91802f44 100644
--- a/addons/auction/__terp__.py
+++ b/addons/auction/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,16 +24,33 @@
'name': 'Auction Management',
'version': '1.0',
'category': 'Generic Modules/Auction',
- 'description': """This module provides functionality to
- manage artists, articles, sellers, buyers and auction.
- Manage bids, track of sold, paid and unpaid objects.
- Delivery Management.
+ 'description': """
+ This module manages the records of the artists,
+ the articles to be put up for auction,the buyers and
+ sellers.
+
+ It completely manages an auction such as managing bids,
+ keeping track of the sold articles along with the paid
+ and unpaid objects including delivery of the articles.
""",
'author': 'Tiny',
'depends': ['base', 'account', 'hr_attendance'],
'init_xml': ['auction_sequence.xml'],
'update_xml': [
'security/ir.model.access.csv',
+ 'wizard/auction_lots_able_view.xml',
+ 'wizard/auction_lots_enable_view.xml',
+ 'wizard/auction_lots_make_invoice_buyer_view.xml',
+ 'wizard/auction_lots_make_invoice_view.xml',
+ 'wizard/auction_taken_view.xml',
+ 'wizard/auction_lots_auction_move_view.xml',
+ 'wizard/auction_pay_buy_view.xml',
+ 'wizard/auction_payer_sel_view.xml',
+ 'wizard/auction_lots_sms_send_view.xml',
+ 'wizard/auction_catalog_flagey_view.xml',
+# 'wizard/auction_aie_send_result_view.xml',
+ 'wizard/auction_lots_buyer_map_view.xml',
+
'auction_view.xml',
'auction_report.xml',
'auction_wizard.xml'
diff --git a/addons/auction/auction.py b/addons/auction/auction.py
index 0ece4690d9f..1687980c029 100644
--- a/addons/auction/auction.py
+++ b/addons/auction/auction.py
@@ -478,13 +478,13 @@ class auction_lots(osv.osv):
result = [ (r['id'], str(r['obj_num'])+' - '+r['name']) for r in self.read(cr, user, ids, ['name','obj_num'])]
return result
- def name_search(self, cr, user, name, args=[], operator='ilike', context={}):
- try:
- ids = self.search(cr, user, [('obj_num','=',int(name))]+ args)
- except:
- ids = []
+ def name_search(self, cr, user, name, args=None, operator='ilike', context={}):
+ if not args:
+ args = []
+
+ ids = self.search(cr, user, [('obj_num','=',int(name))] + args)
if not ids:
- ids = self.search(cr, user, [('name',operator,name)]+ args)
+ ids = self.search(cr, user, [('name',operator,name)] + args)
return self.name_get(cr, user, ids)
def _sum_taxes_by_type_and_id(self, taxes):
diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml
index 2189253f3ce..ee1004ab0f3 100644
--- a/addons/auction/auction_view.xml
+++ b/addons/auction/auction_view.xml
@@ -3,7 +3,8 @@
-
+
+
=======================================================
Auction Management/Configuration/artist
=======================================================
@@ -203,6 +204,7 @@
+
@@ -277,7 +279,7 @@
-
+
@@ -330,7 +332,6 @@
-
@@ -340,9 +341,7 @@
-
-
diff --git a/addons/auction/auction_wizard.xml b/addons/auction/auction_wizard.xml
index 0a93799cc20..ab1b051add5 100644
--- a/addons/auction/auction_wizard.xml
+++ b/addons/auction/auction_wizard.xml
@@ -1,8 +1,8 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ -->
diff --git a/addons/auction/security/ir.model.access.csv b/addons/auction/security/ir.model.access.csv
index 642209edd05..1c1df0828ca 100644
--- a/addons/auction/security/ir.model.access.csv
+++ b/addons/auction/security/ir.model.access.csv
@@ -22,3 +22,13 @@
"access_report_object_encoded","report.object.encoded","model_report_object_encoded","base.group_user",1,0,0,0
"access_report_object_encoded_manager","report.object.encoded.manager","model_report_object_encoded_manager","base.group_user",1,0,0,0
"access_report_unclassified_objects","report.unclassified.objects","model_report_unclassified_objects","base.group_user",1,0,0,0
+"access_auction_lots_able","auction.lots.able","model_auction_lots_able","base.group_user",1,0,0,0
+"access_auction_lots_auction_move","auction.lots.auction.move","model_auction_lots_auction_move","base.group_user",1,0,0,0
+"access_auction_lots_enable","auction.lots.enable","model_auction_lots_enable","base.group_user",1,0,0,0
+"access_auction_lots_make_invoice_buyer","auction.lots.make.invoice.buyer","model_auction_lots_make_invoice_buyer","base.group_user",1,0,0,0
+"access_auction_lots_make_invoice","auction.lots.make.invoice","model_auction_lots_make_invoice","base.group_user",1,0,0,0
+"access_auction_lots_sms_send","auction.lots.sms.send","model_auction_lots_sms_send","base.group_user",1,0,0,0
+"access_auction_pay_buy","auction.pay.buy","model_auction_pay_buy","base.group_user",1,0,0,0
+"acess_auction_payer","auction.payer","model_auction_payer","base.group_user",1,0,0,0
+"access_auction_pay_sel","auction.pay.sel","model_auction_payer_sel","base.group_user",1,0,0,0
+"acess_auction_taken","auction.taken","model_auction_taken","base.group_user",1,0,0,0
diff --git a/addons/auction/wizard/__init__.py b/addons/auction/wizard/__init__.py
index ec07ef6e04f..bcd2de8b301 100644
--- a/addons/auction/wizard/__init__.py
+++ b/addons/auction/wizard/__init__.py
@@ -19,24 +19,19 @@
#
##############################################################################
-import wizard_aie_send
-import wizard_aie_send_result
-import wizard_lots_buyer_map
-import wizard_lots_cancel
-import wizard_lots_invoice
-import wizard_lots_numerotate
-import wizard_lots_pay
-import wizard_pay
-import wizard_lots_sms
-import wizard_lot_date_move
-import wizard_auction_journal
-import wizard_auction_invoice_buyer
-import wizard_transfer_unsold_object
-import auction_wizard_enable_taken
-import auction_wizard_able_taken
-import auction_catalog_flagey
-#import wizard_lots_barcode
-import wizard_emporte
-import wizard_payer
+import auction_lots_able
+import auction_lots_enable
+import auction_lots_make_invoice_buyer
+import auction_lots_make_invoice
+import auction_taken
+import auction_lots_auction_move
+import auction_pay_buy
+import auction_payer_sel
+import auction_lots_sms_send
+import auction_catalog_flagey_report
+
+#import auction_aie_send_result
+import auction_lots_buyer_map
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_catalog_flagey_report.py b/addons/auction/wizard/auction_catalog_flagey_report.py
new file mode 100644
index 00000000000..119c3273ee0
--- /dev/null
+++ b/addons/auction/wizard/auction_catalog_flagey_report.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+import netsvc
+
+class auction_catalog_flagey(osv.osv_memory):
+ _name = 'auction.catalog.flagey'
+ _description = 'Auction Catalog Flagey'
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(auction_catalog_flagey, self).default_get(cr, uid, fields, context=context)
+ return res
+
+ def view_init(self, cr, uid, fields, context):
+ current_auction = self.pool.get('auction.dates').browse(cr,uid,context.get('active_ids', []))
+ v_lots = self.pool.get('auction.lots').search(cr,uid,[('auction_id','=',current_auction.id)])
+ v_ids = self.pool.get('auction.lots').browse(cr,uid,v_lots)
+ for ab in v_ids:
+ if not ab.auction_id :
+ raise osv.except_osv('Error!','No Lots belong to this Auction Date')
+ pass
+
+ def print_report(self, cr, uid, ids, context):
+ """
+ Prints auction catalog flagey report.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+ @return: Report
+ """
+ datas = {'ids': context.get('active_ids',[])}
+ return {
+ 'type': 'ir.actions.report.xml',
+ 'report_name': 'auction.cat_flagy',
+ 'datas': datas,
+ }
+
+auction_catalog_flagey()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/auction/wizard/auction_catalog_flagey_view.xml b/addons/auction/wizard/auction_catalog_flagey_view.xml
new file mode 100644
index 00000000000..ca87771cc37
--- /dev/null
+++ b/addons/auction/wizard/auction_catalog_flagey_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ Auction Catalog Flagey
+ auction.catalog.flagey
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/wizard/wizard_price.py b/addons/auction/wizard/auction_lots_able.py
similarity index 57%
rename from addons/mrp/wizard/wizard_price.py
rename to addons/auction/wizard/auction_lots_able.py
index dd84ad23be2..8ddeeca8055 100644
--- a/addons/mrp/wizard/wizard_price.py
+++ b/addons/auction/wizard/auction_lots_able.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,35 +15,30 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
import wizard
-price_form = '''
-'''
-
-price_fields = {
- 'number': {'string':'Number of products to produce', 'type':'integer', 'required':True},
-}
-
-class wizard_price(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'form', 'arch':price_form, 'fields':price_fields, 'state':[('end','Cancel'),('price','Print product price') ]}
- },
- 'price': {
- 'actions': [],
- 'result': {'type':'print', 'report':'product.price', 'state':'end'}
- }
- }
-wizard_price('product_price')
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+class auction_lots_able(osv.osv_memory):
+
+ _name = "auction.lots.able"
+ _description = "Lots able"
+
+ def confirm_able(self, cr, uid, ids, context={}):
+ """
+ This function Update auction lots object and set taken away field true.
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of auction lots able’s IDs.
+ """
+ self.pool.get('auction.lots').write(cr, uid, context['active_ids'], {'ach_emp':True})
+ return {}
+
+auction_lots_able()
diff --git a/addons/auction/wizard/auction_lots_able_view.xml b/addons/auction/wizard/auction_lots_able_view.xml
new file mode 100644
index 00000000000..96135460c72
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_able_view.xml
@@ -0,0 +1,30 @@
+
+
+
+
+ auction.lots.able.form
+ auction.lots.able
+ form
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_auction_move.py b/addons/auction/wizard/auction_lots_auction_move.py
new file mode 100644
index 00000000000..24b2604d1d7
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_auction_move.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_lots_auction_move(osv.osv_memory):
+
+ _name = "auction.lots.auction.move"
+ _description = "Auction move "
+ _columns= {
+ 'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True),
+ }
+
+ def _top(self, cr, uid, ids, context={}):
+ refs = self.pool.get('auction.lots')
+ rec_ids = refs.browse(cr, uid, context['active_ids'])
+ for rec in rec_ids:
+ if not rec.auction_id:
+ raise osv.except_osv('Error !', 'You can not move a lot that has no auction date')
+ return {}
+
+ def auction_move_set(self, cr, uid, ids, context={}):
+ """
+ This Function update auction date on auction lots to given auction date.
+ erase the auction lots's object adjudication price and its buyer and change state to draft.
+ create new entry in auction lot history.
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of auction lots auction move’s IDs.
+ """
+ refs = self.pool.get('auction.lots')
+ auction_bid_line_obj = self.pool.get('auction.bid_line')
+ auction_lot_history_obj = self.pool.get('auction.lot.history')
+ auction_lots_obj = self.pool.get('auction.lots')
+ for datas in self.read(cr, uid, ids):
+ if not (datas['auction_id'] and len(context['active_ids'])) :
+ return {}
+
+ rec_ids = refs.browse(cr, uid, context['active_ids'])
+ line_ids = auction_bid_line_obj.search(cr, uid, [('lot_id', 'in', context['active_ids'])])
+ # pooler.get_pool(cr.dbname).get('auction.bid_line').unlink(cr, uid, line_ids)
+ for rec in rec_ids:
+ new_id = auction_lot_history_obj.create(cr, uid, {
+ 'auction_id': rec.auction_id.id,
+ 'lot_id': rec.id,
+ 'price': rec.obj_ret
+ })
+ up_auction = auction_lots_obj.write(cr, uid, [rec.id], {
+ 'auction_id':datas['auction_id'],
+ 'obj_ret': None,
+ 'obj_price': None,
+ 'ach_login': None,
+ 'ach_uid': None,
+ 'ach_inv_id': None,
+ 'sel_inv_id': None,
+ 'obj_num': None,
+ 'state': 'draft'})
+ return {}
+
+auction_lots_auction_move()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/auction/wizard/auction_lots_auction_move_view.xml b/addons/auction/wizard/auction_lots_auction_move_view.xml
new file mode 100644
index 00000000000..dd116a8bc6c
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_auction_move_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ auction.lots.auction.move.form
+ auction.lots.auction.move
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_buyer_map.py b/addons/auction/wizard/auction_lots_buyer_map.py
new file mode 100644
index 00000000000..db80a2ab3f3
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_buyer_map.py
@@ -0,0 +1,127 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+import sql_db
+from osv import osv,fields
+
+class wiz_auc_lots_buyer_map(osv.osv_memory):
+ _name = 'auction.lots.buyer_map'
+ _description = 'Map Buyer'
+
+ _columns = {
+ 'ach_login': fields.char('Buyer Username', size=64, required=True),
+ 'ach_uid': fields.many2one('res.partner','Buyer', required=True),
+ }
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ ids = context and context.get('active_ids',False) or False
+ assert ids, _('Active IDs not Found')
+ res = super(wiz_auc_lots_buyer_map,self).default_get(cr, uid, fields, context)
+ cr.execute('select id from auction_lots where (ach_uid is null and ach_login is not null) ')
+ v_ids = [x[0] for x in cr.fetchall()]
+ for rec in self.pool.get('auction.lots').browse(cr, uid, v_ids, context):
+ if (not rec.ach_uid or not rec.ach_login):
+ res.update(self._start(cr, uid, ids, context))
+ return res
+ res.update(self._start(cr, uid, ids, context))
+ return res
+
+ def _start(self, cr, uid, ids, context):
+ """
+ Returns login if already there in the selected record.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of ids
+ @param context: A standard dictionary
+ @return: login field from current record.
+ """
+ lots_obj = self.pool.get('auction.lots')
+ for rec in lots_obj.browse(cr, uid, ids, context):
+ if (len(ids)==1) and (not rec.ach_uid and not rec.ach_login):
+ raise osv.except_osv('Error', 'No buyer is set for this lot.')
+ if not rec.ach_uid and rec.ach_login:
+ return {'ach_login': rec.ach_login}
+ return {}
+
+ def buyer_map_set(self, cr, uid, ids, context):
+ """
+ To map the buyer and login name.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of ids
+ @param context: A standard dictionary
+ @return:
+ """
+ rec_ids = context and context.get('active_ids',False) or False
+ assert rec_ids, _('Active IDs not Found')
+ datas = self.read(cr, uid, ids[0],['ach_login','ach_uid'])
+ lots_obj = self.pool.get('auction.lots')
+ recs = lots_obj.browse(cr, uid, rec_ids, context)
+ for rec in recs:
+ if rec.ach_login==datas['ach_login']:
+ lots_obj.write(cr, uid, [rec.id], {'ach_uid': datas['ach_uid']}, context=context)
+ cr.commit()
+ return {}
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form',
+ context=None, toolbar=False, submenu=False):
+ """
+ Changes the view dynamically
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return: New arch of view.
+ """
+ record_ids = context and context.get('active_ids', False) or False
+ res = super(wiz_auc_lots_buyer_map, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
+ lots_obj = self.pool.get('auction.lots')
+ if record_ids:
+ for lots in lots_obj.browse(cr, uid, record_ids):
+ if lots.ach_uid:
+ res['arch'] = """
+
+ """
+ return res
+
+wiz_auc_lots_buyer_map()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/auction/wizard/auction_lots_buyer_map_view.xml b/addons/auction/wizard/auction_lots_buyer_map_view.xml
new file mode 100644
index 00000000000..c76c74983d2
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_buyer_map_view.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ Map buyer username to Partners
+ auction.lots.buyer_map
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_catalog_flagey.py b/addons/auction/wizard/auction_lots_enable.py
similarity index 52%
rename from addons/auction/wizard/auction_catalog_flagey.py
rename to addons/auction/wizard/auction_lots_enable.py
index fd73e7dadc4..e8aa5edadf5 100644
--- a/addons/auction/wizard/auction_catalog_flagey.py
+++ b/addons/auction/wizard/auction_lots_enable.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,35 +15,33 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-
-import wizard
+from osv import fields, osv
+from tools.translate import _
import netsvc
import pooler
+import time
+import tools
+import wizard
-def _wo_check(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- current_auction=pool.get('auction.dates').browse(cr,uid,data['id'])
- v_lots=pool.get('auction.lots').search(cr,uid,[('auction_id','=',current_auction.id)])
- v_ids=pool.get('auction.lots').browse(cr,uid,v_lots)
- for ab in v_ids:
- if not ab.auction_id :
- raise wizard.except_wizard('Error!','No Lots belong to this Auction Date')
- return 'report'
-
-class wizard_report(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result' : {'type': 'choice', 'next_state': _wo_check }
- },
- 'report': {
- 'actions': [],
- 'result': {'type':'print', 'report':'auction.cat_flagy', 'state':'end'}
- }
- }
-wizard_report('auction.catalog.flagey')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+class auction_lots_enable(osv.osv_memory):
+
+ _name = "auction.lots.enable"
+ _description = "Lots Enable"
+ _columns= {
+ 'confirm_en':fields.integer('Catalog Number')
+ }
+
+ def confirm_enable(self, cr, uid, ids, context={}):
+ """
+ This function Update auction lots object and set taken away field False.
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of auction lots enable’s IDs.
+ """
+ self.pool.get('auction.lots').write(cr, uid, context['active_id'], {'ach_emp':False})
+ return {}
+
+auction_lots_enable()
diff --git a/addons/auction/wizard/auction_lots_enable_view.xml b/addons/auction/wizard/auction_lots_enable_view.xml
new file mode 100644
index 00000000000..8384524dad2
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_enable_view.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ auction.lots.enable.form
+ auction.lots.enable
+ form
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_invoice.py b/addons/auction/wizard/auction_lots_invoice.py
new file mode 100644
index 00000000000..9581941266f
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_invoice.py
@@ -0,0 +1,124 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+import netsvc
+from tools.translate import _
+
+class auction_lots_invoice(osv.osv_memory):
+ _name = 'auction.lots.invoice'
+ _description = "Auction Lots Invoice"
+
+ _columns = {
+ 'amount': fields.float('Invoiced Amount', required=True, readonly=True),
+ 'amount_topay': fields.float('Amount to pay', required=True, readonly=True),
+ 'amount_paid': fields.float('Amount paid', readonly=True),
+ 'objects': fields.integer('# of objects', required=True, readonly=True),
+ 'ach_uid': fields.many2one('res.partner','Buyer Name', required=True ),
+ 'number': fields.integer('Invoice Number'),
+# 'tax_applied':{'string':'Tax Applied', 'type':'float', 'readonly':True},
+ }
+
+ def default_get(self, cr, uid, fields, context={}):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(auction_lots_invoice, self).default_get(cr, uid, fields, context=context)
+ service = netsvc.LocalService("object_proxy")
+ lots = service.execute(cr.dbname, uid, 'auction.lots', 'read', context.get('active_ids', []))
+ auction = service.execute(cr.dbname,uid, 'auction.dates', 'read', [lots[0]['auction_id'][0]])[0]
+
+ price = 0.0
+ price_topay = 0.0
+ price_paid = 0.0
+ #tax=data['form']['tax_applied']
+# uid = False
+ for lot in lots:
+ price_lot = lot['obj_price'] or 0.0
+
+ costs = service.execute(cr.dbname, uid, 'auction.lots', 'compute_buyer_costs', [lot['id']])
+ price_lot += costs['amount']
+# for cost in costs:
+# price_lot += cost['amount']
+
+ price += price_lot
+
+ if lot['ach_uid']:
+ if uid and (lot['ach_uid'][0]<>uid):
+ raise osv.except_osv(_('UserError'), _('Two different buyers for the same invoice !\nPlease correct this problem before invoicing'))
+ uid = lot['ach_uid'][0]
+ elif lot['ach_login']:
+ refs = service.execute(uid, 'res.partner', 'search', [('ref','=',lot['ach_login'])])
+ if len(refs):
+ uid = refs[-1]
+ if 'ach_pay_id' in lot and lot['ach_pay_id']:
+ price_paid += price_lot
+ #*tax
+ else:
+ price_topay += price_lot
+ #*tax
+
+ #TODO: recuperer id next invoice (de la sequence)???
+ invoice_number = False
+ for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
+ if 'objects' in fields:
+ res.update({'objects':len(context.get('active_ids', []))})
+ if 'amount' in fields:
+ res.update({'amount': price})
+ if 'ach_uid' in fields:
+ res.update({'ach_uid': uid})
+ if 'amount_topay' in fields:
+ res.update({'amount_topay':price_topay})
+ if 'amount_paid' in fields:
+ res.update({'amount_paid':price_paid})
+ if 'number' in fields:
+ res.update({'number':invoice_number})
+ return res
+
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ Create an invoice report.
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: List of Auction lots make invoice buyer’s IDs
+ @return: dictionary of account invoice form.
+ """
+ service = netsvc.LocalService("object_proxy")
+ datas = {'ids' : context.get('active_ids',[])}
+ res = self.read(cr, uid, ids, ['number','ach_uid'])
+ res = res and res[0] or {}
+ datas['form'] = res
+# service.execute(cr.dbname, uid, 'auction.lots', 'lots_invoice_and_cancel_old_invoice', datas['ids'], datas['form']['number'], datas['form']['ach_uid'], 'invoice_open')
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'auction.invoice',
+ 'datas' : datas,
+ }
+
+auction_lots_invoice()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_lots_invoice_view.xml b/addons/auction/wizard/auction_lots_invoice_view.xml
new file mode 100644
index 00000000000..4adc7098789
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_invoice_view.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ auction.lots.invoice.wizard
+ auction.lots.invoice
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_make_invoice.py b/addons/auction/wizard/auction_lots_make_invoice.py
new file mode 100644
index 00000000000..6be49f7336a
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_make_invoice.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_lots_make_invoice(osv.osv_memory):
+
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ res = super(auction_lots_make_invoice, self).default_get(cr, uid, fields, context=context)
+ for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
+ if 'amount' in fields:
+ res.update({'amount': lot.buyer_price})
+ if 'objects' in fields:
+ res.update({'objects': len(context['active_ids'])})
+ return res
+
+
+ def makeInvoices(self, cr, uid, ids, context):
+ """
+ seller invoice :Create an invoice.
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: List of Auction lots make invoice’s IDs
+ @return: dictionary of account invoice form.
+ """
+ order_obj = self.pool.get('auction.lots')
+ mod_obj = self.pool.get('ir.model.data')
+
+ for data in self.read(cr, uid, ids):
+ result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+ newinv = []
+ ids = order_obj.seller_trans_create(cr, uid, context['active_ids'], context)
+ cr.commit()
+ return {
+ 'domain': "[('id','in', ["+','.join(map(str, ids))+"])]",
+ 'name': 'Seller invoices',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'view_id': False,
+ 'context': "{'type':'out_refund'}",
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
+ }
+
+ _name = "auction.lots.make.invoice"
+ _description = "Make invoice"
+ _columns= {
+ 'amount': fields.float('Invoiced Amount', required =True, readonly=True),
+ 'objects':fields.integer('# of objects', required =True, readonly=True),
+ 'number':fields.char('Invoice Number', size=64),
+
+ }
+ _defaults={
+ 'number':lambda *a: False,
+
+ }
+
+auction_lots_make_invoice()
diff --git a/addons/auction/wizard/auction_lots_make_invoice_buyer.py b/addons/auction/wizard/auction_lots_make_invoice_buyer.py
new file mode 100644
index 00000000000..53c3519d225
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_make_invoice_buyer.py
@@ -0,0 +1,100 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_lots_make_invoice_buyer(osv.osv_memory):
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ res = super(auction_lots_make_invoice_buyer, self).default_get(cr, uid, fields, context=context)
+ for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
+ if 'amount' in fields:
+ res.update({'amount': lot.buyer_price})
+ if 'buyer_id' in fields:
+ res.update({'buyer_id': lot.ach_uid and lot.ach_uid.id or False})
+ if 'objects' in fields:
+ res.update({'objects': len(context['active_ids'])})
+ return res
+
+ def makeInvoices(self, cr, uid, ids, context):
+ """
+ Create an invoice for selected lots (IDS) to BUYER_ID .
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: List of Auction lots make invoice buyer’s IDs
+ @return: dictionary of account invoice form.
+ """
+ newinv = []
+
+ order_obj = self.pool.get('auction.lots')
+ mod_obj = self.pool.get('ir.model.data')
+
+ for data in self.read(cr, uid, ids):
+ result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+ lots = order_obj.browse(cr, uid, context['active_ids'])
+ invoice_number = data['number']
+ for lot in lots:
+ up_auction = order_obj.write(cr, uid, [lot.id], {'ach_uid':data['buyer_id']})
+ ids = order_obj.lots_invoice(cr, uid, context['active_ids'], context, data['number'])
+ cr.commit()
+ return {
+ 'domain': "[('id','in', ["+','.join(map(str, ids))+"])]",
+ 'name': 'Buyer invoices',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'view_id': False,
+ 'context': "{'type':'in_refund'}",
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
+ }
+
+ _name = "auction.lots.make.invoice.buyer"
+ _description = "Make invoice buyer "
+ _columns= {
+ 'amount': fields.float('Invoiced Amount', required =True, readonly=True),
+ 'objects':fields.integer('# of objects', required =True, readonly=True),
+ 'number':fields.char('Invoice Number', size=64),
+ 'buyer_id':fields.many2one('res.partner', 'Buyer', required=True),
+ }
+ _defaults={
+ 'number':lambda *a: False,
+ }
+
+auction_lots_make_invoice_buyer()
diff --git a/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml b/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml
new file mode 100644
index 00000000000..ba4aac79ca6
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ auction.lots.make.invoice.buyer.form
+ auction.lots.make.invoice.buyer
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_make_invoice_view.xml b/addons/auction/wizard/auction_lots_make_invoice_view.xml
new file mode 100644
index 00000000000..29ef3e09348
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_make_invoice_view.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ auction.lots.make.invoice.form
+ auction.lots.make.invoice
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_sms_send.py b/addons/auction/wizard/auction_lots_sms_send.py
new file mode 100644
index 00000000000..a5736ce4990
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_sms_send.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_lots_sms_send(osv.osv_memory):
+
+ _name = "auction.lots.sms.send"
+ _description = "Sms send "
+ _columns= {
+ 'app_id':fields.char('API ID', size=64, required=True),
+ 'user':fields.char('Login', size=64, required=True),
+ 'password':fields.char('Password', size=64, required=True),
+ 'text':fields.text('SMS Message', required=True)
+ }
+
+ def sms_send(self, cr, uid, ids, context):
+ """
+ to send sms
+
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: the ID or list of IDs
+ @param context: A standard dictionary
+ @return: number indicating the acknowledgement
+ """
+
+ lot_obj = self.pool.get('auction.lots')
+ partner_obj = self.pool.get('res.partner')
+ partner_address_obj = self.pool.get('res.partner.address')
+ for datas in self.read(cr, uid, ids):
+ lots = lot_obj.read(cr, uid, context['active_ids'], ['obj_num','obj_price','ach_uid'])
+ res = partner_obj.read(cr, uid, [l['ach_uid'][0] for l in lots if l['ach_uid']], ['gsm'], context)
+
+ nbr = 0
+ for r in res:
+ add = partner_obj.address_get(cr, uid, [r['id']])['default']
+ addr = partner_address_obj.browse(cr, uid, add)
+ to = addr.mobile
+ if to:
+ tools.smssend(data['user'], data['password'], data['app_id'], unicode(data['text'], 'utf-8').encode('latin1'), to)
+ nbr += 1
+ return {'sms_sent': nbr}
+
+ if to:
+ tools.smssend(data['user'], data['password'], data['app_id'], unicode(data['text'], 'utf-8').encode('latin1'), to)
+ nbr += 1
+ return {'sms_sent': nbr}
+#
+auction_lots_sms_send()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/auction/wizard/auction_lots_sms_send_view.xml b/addons/auction/wizard/auction_lots_sms_send_view.xml
new file mode 100644
index 00000000000..22aa9d681ac
--- /dev/null
+++ b/addons/auction/wizard/auction_lots_sms_send_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ auction.lots.sms.send.form
+ auction.lots.sms.send
+ form
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_pay_buy.py b/addons/auction/wizard/auction_pay_buy.py
new file mode 100644
index 00000000000..8f16ea9e7de
--- /dev/null
+++ b/addons/auction/wizard/auction_pay_buy.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_pay_buy(osv.osv_memory):
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ res = super(auction_pay_buy, self).default_get(cr, uid, fields, context=context)
+ for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
+ if 'amount' in fields:
+ res.update({'amount': lot.buyer_price})
+ if 'buyer_id' in fields:
+ res.update({'buyer_id': lot.ach_uid and lot.ach_uid.id or False})
+ if 'total' in fields:
+ res.update({'total': lot.buyer_price})
+ return res
+
+ def pay_and_reconcile(self, cr, uid, ids, context):
+ """
+ Pay and Reconcile
+
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: the ID or list of IDs
+ @param context: A standard dictionary
+ @return:
+ """
+ lot_obj = self.pool.get('auction.lots')
+ bank_statement_line_obj = self.pool.get('account.bank.statement.line')
+
+ for datas in self.read(cr, uid, ids):
+ if not abs(datas['total'] - (datas['amount'] + datas['amount2'] + datas['amount3'])) <0.01:
+ rest = datas['total']-(datas['amount'] + datas['amount2'] + datas['amount3'])
+ raise osv.except_osv('Payment aborted !', 'You should pay all the total: "%.2f" are missing to accomplish the payment.' %(round(rest, 2)))
+
+ lots = lot_obj.browse(cr, uid, context['active_ids'], context)
+ ref_bk_s = bank_statement_line_obj
+
+ for lot in lots:
+ if datas['buyer_id']:
+ lot_obj.write(cr, uid, [lot.id], {'ach_uid':datas['buyer_id']})
+ if not lot.auction_id:
+ raise osv.except_osv('Error !', 'No auction date for "%s": Please set one.'%(lot.name))
+ lot_obj.write(cr, uid, [lot.id], {'is_ok':True})
+
+ for st, stamount in [('statement_id1', 'amount'), ('statement_id2', 'amount2'), ('statement_id3', 'amount3')]:
+ if datas[st]:
+ new_id = ref_bk_s.create(cr, uid, {
+ 'name':'Buyer:'+ str(lot.ach_login or '')+', auction:'+ lots[0].auction_id.name,
+ 'date': time.strftime('%Y-%m-%d'),
+ 'partner_id': datas['buyer_id'] or False,
+ 'type':'customer',
+ 'statement_id': datas[st],
+ 'account_id': lot.auction_id.acc_income.id,
+ 'amount': datas[stamount]
+ })
+ for lot in lots:
+ lot_obj.write(cr, uid, [lot.id], {'statement_id':[(4, new_id)]})
+ return {}
+
+ _name = "auction.pay.buy"
+ _description = "Pay buy"
+ _columns= {
+ 'amount': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy']))),
+ 'buyer_id':fields.many2one('res.partner', 'Buyer'),
+ 'statement_id1':fields.many2one('account.bank.statement', 'Statement', required=True),
+ 'amount2': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy']))),
+ 'statement_id2':fields.many2one('account.bank.statement', 'Statement'),
+ 'amount3': fields.float('Amount paid', digits = (16, int(tools.config['price_accuracy']))),
+ 'statement_id3':fields.many2one('account.bank.statement', 'Statement'),
+ 'total': fields.float('Amount paid', digits = (16, int(tools.config['price_accuracy'])), readonly =True),
+ }
+auction_pay_buy()
+
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/auction/wizard/auction_pay_buy_view.xml b/addons/auction/wizard/auction_pay_buy_view.xml
new file mode 100644
index 00000000000..0a9a3a6dcee
--- /dev/null
+++ b/addons/auction/wizard/auction_pay_buy_view.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ auction.pay.buy.form
+ auction.pay.buy
+ form
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_pay_sel.py b/addons/auction/wizard/auction_pay_sel.py
new file mode 100644
index 00000000000..df7b4a794f3
--- /dev/null
+++ b/addons/auction/wizard/auction_pay_sel.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_pay_sel(osv.osv_memory):
+
+ _name = "auction.pay.sel"
+ _description = "Pay Invoice"
+ _columns= {
+ 'amount': fields.float('Amount paid', digits= (16, int(tools.config['price_accuracy'])), required=True),
+ 'dest_account_id':fields.many2one('account.account', 'Payment to Account', required=True, domain= [('type', '=', 'cash')]),
+ 'journal_id':fields.many2one('account.journal', 'Journal', required=True),
+ 'period_id':fields.many2one('account.period', 'Period', required=True),
+ }
+
+ def pay_and_reconcile(self, cr, uid, ids, context):
+
+ """
+ Pay and Reconcile
+
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: the ID or list of IDs
+ @param context: A standard dictionary
+ @return:
+ """
+ lot = self.pool.get('auction.lots').browse(cr, uid, context['active_id'], context)
+ invoice_obj = self.pool.get('account.invoice')
+ for datas in self.read(cr, uid, ids):
+ account_id = datas.get('writeoff_acc_id', False)
+ period_id = datas.get('period_id', False)
+ journal_id = datas.get('journal_id', False)
+ if lot.sel_inv_id:
+ p = invoice_obj.pay_and_reconcile(['lot.sel_inv_id.id'], datas['amount'], datas['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
+ # lots.sel_inv_id.pay_and_reconcile(cr,uid,data[id], form['amount'], form['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
+ return {}
+
+auction_pay_sel()
diff --git a/addons/auction/wizard/auction_pay_sel_view.xml b/addons/auction/wizard/auction_pay_sel_view.xml
new file mode 100644
index 00000000000..2570b7a7a0a
--- /dev/null
+++ b/addons/auction/wizard/auction_pay_sel_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ auction.pay.sel.form
+ auction.pay.sel
+ form
+
+
+
+
+
+
+ Pay objects of the seller
+ auction.pay.sel
+ form
+ tree,form
+
+ new
+
+
+
+
diff --git a/addons/auction/wizard/auction_wizard_able_taken.py b/addons/auction/wizard/auction_payer_sel.py
similarity index 51%
rename from addons/auction/wizard/auction_wizard_able_taken.py
rename to addons/auction/wizard/auction_payer_sel.py
index 261cc47c48b..349f10d4dec 100644
--- a/addons/auction/wizard/auction_wizard_able_taken.py
+++ b/addons/auction/wizard/auction_payer_sel.py
@@ -19,43 +19,42 @@
#
##############################################################################
-import wizard
+from osv import fields, osv
+from tools.translate import _
import netsvc
import pooler
-take_form = """
-
-"""
+import time
+import tools
+import wizard
-take_fields = {
-# 'confirm_en': {'string':'Catalog Number', 'type':'integer'},
-}
-
-def _confirm_able(self,cr,uid,data,context={}):
- res={}
- pool = pooler.get_pool(cr.dbname)
- pool.get('auction.lots').write(cr,uid,data['ids'],{'ach_emp':True})
- return {}
-
-class able_take_away(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {
- 'type' : 'form',
- 'arch' : take_form,
- 'fields' : take_fields,
- 'state' : [('end', 'Cancel'),('go', 'Able Taken away')]}
- },
- 'go' : {
- 'actions' : [_confirm_able],
- 'result' : {'type' : 'state', 'state' : 'end'}
- },
-}
-able_take_away('auction.lots.able')
+class auction_payer(osv.osv_memory):
+ _name = "auction.payer"
+ _description = "Auction payer"
+
+ def payer(self, cr, uid, ids, context):
+ self.pool.get('auction.lots').write(cr, uid, context['active_ids'], {'is_ok':True, 'state':'paid'})
+ return {}
+
+auction_payer()
+class auction_payer_sel(osv.osv_memory):
+ """
+ For Mark as payment for seller
+ """
+ _name = "auction.payer.sel"
+ _description = "Auction payment for seller"
+
+ def payer_sel(self, cr, uid, ids, context):
+ """
+ This function Update auction lots object and seller paid true.
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of auction payer sel’s IDs.
+ """
+ self.pool.get('auction.lots').write(cr, uid, context['active_ids'], {'paid_vnd':True})
+ return {}
+
+auction_payer_sel()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_payer_sel_view.xml b/addons/auction/wizard/auction_payer_sel_view.xml
new file mode 100644
index 00000000000..57c43df8fe4
--- /dev/null
+++ b/addons/auction/wizard/auction_payer_sel_view.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ auction.payer.form
+ auction.payer
+ form
+
+
+
+
+
+
+ auction.payer.sel.form
+ auction.payer.sel
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_taken.py b/addons/auction/wizard/auction_taken.py
new file mode 100644
index 00000000000..63c3db7583c
--- /dev/null
+++ b/addons/auction/wizard/auction_taken.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import tools
+import wizard
+
+class auction_taken(osv.osv_memory):
+ """
+ Auction lots taken.
+ """
+ _name = "auction.taken"
+ _description = "Auction taken"
+ _columns = {
+ 'lot_ids':fields.many2many('auction.lots', 'auction_taken_rel', 'taken_id', 'lot_id', 'Lots Emportes'),
+
+ }
+
+ def _to_xml(s):
+ return s.replace('&','&').replace('<','<').replace('>','>')
+
+ def process(self, cr, uid, ids, context):
+ """
+ Update Auction lots state to taken_away.
+ @param cr: the current row, from the database cursor.
+ @param uid: the current user’s ID for security checks.
+ @param ids: List of Auction taken’s IDs
+ @return: dictionary of lot_ids fields with empty list
+ """
+ lot_obj = self.pool.get('auction.lots')
+ for data in self.read(cr, uid, ids):
+ if data['lot_ids']:
+ lot_obj.write(cr, uid, data['lot_ids'], {'state':'taken_away'})
+ return {'lot_ids': []}
+
+auction_taken()
diff --git a/addons/auction/wizard/auction_taken_view.xml b/addons/auction/wizard/auction_taken_view.xml
new file mode 100644
index 00000000000..626caa473ad
--- /dev/null
+++ b/addons/auction/wizard/auction_taken_view.xml
@@ -0,0 +1,42 @@
+
+
+
+
+ auction.taken.form
+ auction.taken
+ form
+
+
+
+
+
+
+ Gestion emporte
+ auction.taken
+ form
+ tree,form
+
+ new
+
+
+
+
+
+
diff --git a/addons/auction/wizard/wizard_auction_invoice_buyer.py b/addons/auction/wizard/wizard_auction_invoice_buyer.py
deleted file mode 100644
index 6cf12b5da22..00000000000
--- a/addons/auction/wizard/wizard_auction_invoice_buyer.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-
-invoice_form = '''
-'''
-
-invoice_fields = {
- 'amount': {'string':'Invoiced Amount', 'type':'float', 'required':True, 'readonly':True},
- 'objects': {'string':'# of objects', 'type':'integer', 'required':True, 'readonly':True},
- 'number': {'string':'Invoice Number', 'type':'char'},
- 'buyer_id':{'string': 'Buyer', 'type': 'many2one', 'relation':'res.partner'}
-
-}
-
-
-def _values(self,cr,uid, datas,context={}):
- pool = pooler.get_pool(cr.dbname)
- lots= pool.get('auction.lots').browse(cr,uid,datas['ids'])
-# price = 0.0
- amount_total=0.0
-# pt_tax=pooler.get_pool(cr.dbname).get('account.tax')
- for lot in lots:
- buyer=lot and lot.ach_uid.id or False
- amount_total+=lot.buyer_price
-# taxes = lot.product_id.taxes_id
-# if lot.author_right:
-# taxes.append(lot.author_right)
-# if lot.auction_id:
-# taxes += lot.auction_id.buyer_costs
-# tax=pt_tax.compute(cr,uid,taxes,lot.obj_price,1)
-# for t in tax:
-# amount_total+=t['amount']
-# amount_total+=lot.obj_price
- # up_auction=pooler.get_pool(cr.dbname).get('auction.lots').write(cr,uid,[lot.id],{'ach_uid':datas['form']['buyer_id']})
- invoice_number = False
- return {'objects':len(datas['ids']), 'amount':amount_total, 'number':invoice_number,'buyer_id':buyer}
-
-
-def _makeInvoices(self, cr, uid, data, context):
- newinv = []
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('auction.lots')
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- lots= order_obj.browse(cr,uid,data['ids'])
- invoice_number=data['form']['number']
- for lot in lots:
- up_auction=pooler.get_pool(cr.dbname).get('auction.lots').write(cr,uid,[lot.id],{'ach_uid':data['form']['buyer_id']})
- ids = order_obj.lots_invoice(cr, uid, data['ids'],context,data['form']['number'])
-# ids = order_obj.lots_invoice(cr, uid, data['ids'],context,invoice_number)
- cr.commit()
- return {
- 'domain': "[('id','in', ["+','.join(map(str, ids))+"])]",
- 'name': 'Buyer invoices',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'view_id': False,
- 'context': "{'type':'in_refund'}",
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
- return {}
-
-class make_invoice(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [_values],
- 'result' : {'type' : 'form',
- 'arch' : invoice_form,
- 'fields' : invoice_fields,
- 'state' : [('end', 'Cancel'),('invoice', 'Create invoices')]}
- },
- 'invoice' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action' : _makeInvoices}
- },
- }
-make_invoice("auction.lots.make_invoice_buyer")
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_auction_journal.py b/addons/auction/wizard/wizard_auction_journal.py
deleted file mode 100644
index 79329592165..00000000000
--- a/addons/auction/wizard/wizard_auction_journal.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-
-
-
-invoice_form = '''
-'''
-
-invoice_fields = {
- 'amount': {'string':'Invoiced Amount', 'type':'float', 'required':True, 'readonly':True},
- 'objects': {'string':'# of objects', 'type':'integer', 'required':True, 'readonly':True},
- 'number': {'string':'Invoice Number', 'type':'integer'},
-}
-
-def _values(self,cr,uid, datas,context={}):
- lots= pooler.get_pool(cr.dbname).get('auction.lots').browse(cr,uid,datas['ids'])
-# service = netsvc.LocalService("object_proxy")
-# lots = service.execute(cr,uid, 'auction.lots', 'read', datas['ids'])
-# auction = service.execute(cr,uid, 'auction.dates', 'read', [lots[0]['auction_id'][0]])[0]
- price = 0.0
- amount_total=0.0
- pt_tax=pooler.get_pool(cr.dbname).get('account.tax')
- for lot in lots:
- # taxes = lot.product_id.taxes_id
- # if lot.bord_vnd_id.tax_id:
- # taxes.append(lot.bord_vnd_id.tax_id)
- # if lot.auction_id:
- # taxes += lot.auction_id.seller_costs
- # tax=pt_tax.compute(cr,uid,taxes,lot.obj_price,1)
- # for t in tax:
- # amount_total+=t['amount']
- # amount_total+=lot.obj_price
- amount_total+=lot.seller_price
-#TODO: recuperer id next invoice (de la sequence)???
- invoice_number = False
- return {'objects':len(datas['ids']), 'amount':amount_total, 'number':invoice_number}
-
-def _makeInvoices(self, cr, uid, data, context):
-
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('auction.lots')
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- newinv = []
- ids = order_obj.seller_trans_create(cr, uid, data['ids'],context)
- cr.commit()
- return {
- 'domain': "[('id','in', ["+','.join(map(str, ids))+"])]",
- 'name': 'Seller invoices',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'view_id': False,
- 'context': "{'type':'out_refund'}",
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
- return {}
-
-class make_invoice(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [_values],
- 'result' : {'type' : 'form',
- 'arch' : invoice_form,
- 'fields' : invoice_fields,
- 'state' : [('end', 'Cancel'),('invoice', 'Create invoices')]}
- },
- 'invoice' : {
- 'actions' : [_makeInvoices],
- 'result' : {'type' : 'action',
- 'action' : _makeInvoices,
- 'state' : 'end'}
- },
- }
-make_invoice("auction.lots.make_invoice")
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_emporte.py b/addons/auction/wizard/wizard_emporte.py
deleted file mode 100644
index 1172404e218..00000000000
--- a/addons/auction/wizard/wizard_emporte.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-
-import pooler
-from tools.misc import UpdateableStr
-
-
-# Dossier
-
-_lot_arch = """
-
-"""
-_lot_fields = {
- 'lot_ids': {'string':'Lots Emportes','relation':'auction.lots','type':'many2many'}
-}
-
-def _to_xml(s):
- return s.replace('&','&').replace('<','<').replace('>','>')
-
-def _process(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- lot_obj = pool.get('auction.lots')
- if data['form']['lot_ids']:
- lot_obj.write(cr, uid, data['form']['lot_ids'][0][2], {'state':'taken_away'})
- return {'lot_ids': []}
-
-class wizard_reprint(wizard.interface):
- states = {
- 'valid': {
- 'actions': [_process],
- 'result': {'type':'state', 'state':'init'}
- },
- 'init': {
- 'actions': [],
- 'result': {
- 'type':'form',
- 'arch': _lot_arch,
- 'fields': _lot_fields,
- 'state': [
- ('valid',' OK ')
- ],
- }
- }
- }
-wizard_reprint('auction.taken')
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_lot_date_move.py b/addons/auction/wizard/wizard_lot_date_move.py
deleted file mode 100644
index e6e13ea0ab2..00000000000
--- a/addons/auction/wizard/wizard_lot_date_move.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-import sql_db
-
-auction_move = '''
-'''
-
-auction_move_fields = {
- 'auction_id': {'string':'Auction Date', 'type':'many2one', 'required':True, 'relation':'auction.dates'},
-}
-
-#def _auction_move_set(self, uid, datas):
-# if datas['form']['auction_id']:
-# cr = sql_db.db.cursor()
-# cr.execute('update auction_lots set auction_id=%s, obj_price=NULL, ach_login=NULL, ach_uid=NULL, ach_pay_id=NULL, ach_inv_id=NULL, state=%s where id in ('+','.join(map(str, datas['ids']))+')', (str(datas['form']['auction_id']), 'draft'))
-# cr.execute('delete from auction_bid_line where lot_id in ('+','.join(map(str, datas['ids']))+')')
-# cr.commit()
-# cr.close()
-# return {}
-def _top(self,cr,uid,datas,context={}):
- refs = pooler.get_pool(cr.dbname).get('auction.lots')
- rec_ids = refs.browse(cr,uid,datas['ids'])
- for rec in rec_ids:
- if not rec.auction_id:
- raise wizard.except_wizard('Error !','You can not move a lot that has no auction date')
- return {}
-def _auction_move_set(self,cr,uid,datas,context={}):
- if not (datas['form']['auction_id'] and len(datas['ids'])) :
- return {}
- refs = pooler.get_pool(cr.dbname).get('auction.lots')
- rec_ids = refs.browse(cr,uid,datas['ids'])
-
- line_ids= pooler.get_pool(cr.dbname).get('auction.bid_line').search(cr,uid,[('lot_id','in',datas['ids'])])
-# pooler.get_pool(cr.dbname).get('auction.bid_line').unlink(cr, uid, line_ids)
- for rec in rec_ids:
- new_id=pooler.get_pool(cr.dbname).get('auction.lot.history').create(cr,uid,{
- 'auction_id':rec.auction_id.id,
- 'lot_id':rec.id,
- 'price': rec.obj_ret
- })
- up_auction=pooler.get_pool(cr.dbname).get('auction.lots').write(cr,uid,[rec.id],{
- 'auction_id':datas['form']['auction_id'],
- 'obj_ret':None,
- 'obj_price':None,
- 'ach_login':None,
- 'ach_uid':None,
- 'ach_inv_id':None,
- 'sel_inv_id':None,
- 'obj_num':None,
- 'state':'draft'})
- return {}
-
-class wiz_auc_lots_auction_move(wizard.interface):
- states = {
- 'init': {
- 'actions': [_top],
- 'result': {'type': 'form', 'arch':auction_move, 'fields': auction_move_fields, 'state':[('set_date', 'Move to Auction date'),('end','Cancel')]}
- },
- 'set_date': {
- 'actions': [_auction_move_set],
- 'result': {'type': 'state', 'state':'end'}
- }
- }
-
-wiz_auc_lots_auction_move('auction.lots.auction_move')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_lots_buyer_map.py b/addons/auction/wizard/wizard_lots_buyer_map.py
deleted file mode 100644
index 42c5f80a530..00000000000
--- a/addons/auction/wizard/wizard_lots_buyer_map.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-import sql_db
-
-buyer_map = '''
-'''
-
-buyer_map_fields = {
- 'ach_login': {'string':'Buyer Username', 'type':'char', 'size':64, 'required':True},
- 'ach_uid': {'string':'Buyer', 'type':'many2one', 'required':True, 'relation':'res.partner'},
-}
-
-
-#
-# Try to find an object not mapped
-#
-def _state_check(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- cr.execute('select id from auction_lots where (ach_uid is null and ach_login is not null) ')
- v_ids=[x[0] for x in cr.fetchall()]
- #ids_not_mapped=pool.get('auction.lots').search(cr,uid,[('rec.ach_uid','=',False)])
- for rec in pool.get('auction.lots').browse(cr,uid,v_ids,context):
- # if not rec.ach_uid and not rec.ach_login:
- # raise wizard.except_wizard ('Error','No username is associated to this lot!')
- if (not rec.ach_uid or not rec.ach_login):
- return 'check'
- return 'done'
-
-def _start(self,cr,uid,datas,context):
- pool = pooler.get_pool(cr.dbname)
- for rec in pool.get('auction.lots').browse(cr,uid,datas['ids'],context):
- if (len(datas['ids'])==1) and (not rec.ach_uid and not rec.ach_login):
- raise wizard.except_wizard('Error', 'No buyer setted for this lot')
- if not rec.ach_uid and rec.ach_login:
- return {'ach_login': rec.ach_login}
-
- for rec in pool.get('auction.lots').browse(cr,uid,datas['ids'],context):
- if (not rec.ach_uid and rec.ach_login):
- return {'ach_login': rec.ach_login}
- return {}
-
-def _buyer_map_set(self,cr, uid, datas,context):
- pool = pooler.get_pool(cr.dbname)
- recs=pool.get('auction.lots').browse(cr,uid,datas['ids'],context)
- for rec in recs:
- if rec.ach_login==datas['form']['ach_login']:
- pool.get('auction.lots').write(cr, uid, [rec.id], {'ach_uid': datas['form']['ach_uid']}, context=context)
- cr.commit()
- return {'ach_login':False, 'ach_uid':False}
-
-class wiz_auc_lots_buyer_map(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'choice', 'next_state':_state_check}
- },
- 'check': {
- 'actions': [_start],
- 'result': {'type': 'form', 'arch':buyer_map, 'fields': buyer_map_fields, 'state':[('end','Exit'),('set_buyer', 'Update')]}
- },
- 'set_buyer': {
- 'actions': [_buyer_map_set],
- 'result': {'type': 'state', 'state':'init'}
- },
- 'done': {
- 'actions': [_start],
- 'result': {
- 'type': 'form',
- 'arch':'''
- ''',
- 'fields': {},
- 'state':[('end','Close')]}
- }
- }
-
-wiz_auc_lots_buyer_map('auction.lots.buyer_map')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_lots_invoice.py b/addons/auction/wizard/wizard_lots_invoice.py
deleted file mode 100644
index 636b12cc2ff..00000000000
--- a/addons/auction/wizard/wizard_lots_invoice.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-
-invoice_form = '''
-'''
-
-invoice_fields = {
- 'amount': {'string':'Invoiced Amount', 'type':'float', 'required':True, 'readonly':True},
- 'amount_topay': {'string':'Amount to pay', 'type':'float', 'required':True, 'readonly':True},
- 'amount_paid': {'string':'Amount paid', 'type':'float', 'readonly':True},
- 'objects': {'string':'# of objects', 'type':'integer', 'required':True, 'readonly':True},
- 'ach_uid': {'string':'Buyer Name', 'type':'many2one', 'required':True, 'relation':'res.partner'},
- 'number': {'string':'Invoice Number', 'type':'integer'},
- #'tax_applied':{'string':'Tax Applied', 'type':'float', 'readonly':True},
-}
-
-def _get_value(self,cr,uid, datas,context={}):
- service = netsvc.LocalService("object_proxy")
- lots = service.execute(cr,uid, 'auction.lots', 'read', datas['ids'])
- auction = service.execute(cr,uid, 'auction.dates', 'read', [lots[0]['auction_id'][0]])[0]
-
- price = 0.0
- price_topay = 0.0
- price_paid = 0.0
- #tax=data['form']['tax_applied']
- uid = False
- for lot in lots:
- price_lot = lot['obj_price'] or 0.0
-
- costs = service.execute(uid, 'auction.lots', 'compute_buyer_costs', [lot['id']])
- for cost in costs:
- price_lot += cost['amount']
-
- price += price_lot
-
- if lot['ach_uid']:
- if uid and (lot['ach_uid'][0]<>uid):
- raise wizard.except_wizard('UserError', ('Two different buyers for the same invoice !\nPlease correct this problem before invoicing', 'init'))
- uid = lot['ach_uid'][0]
- elif lot['ach_login']:
- refs = service.execute(uid, 'res.partner', 'search', [('ref','=',lot['ach_login'])])
- if len(refs):
- uid = refs[-1]
- if lot['ach_pay_id']:
- price_paid += price_lot
- #*tax
- else:
- price_topay += price_lot
- #*tax
-
-#TODO: recuperer id next invoice (de la sequence)???
- invoice_number = False
- return {'objects':len(datas['ids']), 'amount':price, 'ach_uid':uid, 'amount_topay':price_topay, 'amount_paid':price_paid, 'number':invoice_number}
-
-def _invoice(self, uid, datas):
- service = netsvc.LocalService("object_proxy")
- service.execute(uid, 'auction.lots', 'lots_invoice_and_cancel_old_invoice', datas['ids'], datas['form']['number'], datas['form']['ach_uid'], 'invoice_open')
- return {}
-
-class wiz_auc_lots_invoice(wizard.interface):
- states = {
- 'init': {
- 'actions': [_get_value],
- 'result': {'type': 'form', 'arch':invoice_form, 'fields': invoice_fields, 'state':[('invoice','Create Invoice'), ('end','Cancel')]}
- },
- 'invoice': {
- 'actions': [_invoice],
- 'result': {'type': 'print', 'report':'auction.invoice', 'state':'end'}
- }
- }
-wiz_auc_lots_invoice('auction.lots.invoice');
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_lots_pay.py b/addons/auction/wizard/wizard_lots_pay.py
deleted file mode 100644
index a6b8f635ba4..00000000000
--- a/addons/auction/wizard/wizard_lots_pay.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import netsvc
-import osv
-import time
-import pooler
-
-invoice_form = '''
-'''
-
-invoice_fields = {
- 'amount': {'string': 'Amount paid', 'type':'float', 'required':True},
- 'dest_account_id': {'string':'Payment to Account', 'type':'many2one', 'required':True, 'relation':'account.account', 'domain':[('type','=','cash')]},
- 'journal_id': {'string': 'Journal', 'type': 'many2one', 'relation':'account.journal', 'required':True},
- 'period_id': {'string': 'Period', 'type': 'many2one', 'relation':'account.period', 'required':True},
-}
-#def pay_n_check(self, cr, uid, data, context):
-#
-# auction = pool.get('auction.lots').browse(cr,uid,data['id'],context)
-# try:
-#
-# for lot in auction:
-#
-# if not lot.auction_id :
-# raise osv.except_osv("Error","No payment defined for this auction.")
-# i=1
-# tot= 0
-# for payment in auction:
-# if not payment.journal_id :
-# raise osv.except_osv("Error","No journal defined for the payment line %d" % (i,))
-# if not payment.ach_inv_id.amount :
-# raise osv.except_osv("Error","No amount defined for the payment line %d." % (i,))
-# i+=1
-# tot+= payment.ach_inv_id.amount
-# if abs(float(tot)) - abs(float(lot.obj_ret)) > 10**-6:
-# raise osv.except_osv("Error","The amount paid does not match the total amount")
-# else:
-# for lot in auction:
-# if not lot.journal_id :
-# raise osv.except_osv("Error","Please choose a journal for the auction ("+lot.name+").")
-# pool.get('auction.lots').create(cr,uid,{
-# 'auction_id': lot.auction.id,
-# 'journal_id': lot.journal_id,
-#
-# })
-# except osv.except_osv, e:
-# raise wizard.except_wizard(e.name, e.name)
-# return True
-def _pay_and_reconcile(self, cr, uid, data, context):
-
- pool = pooler.get_pool(cr.dbname)
- lot = pool.get('auction.lots').browse(cr,uid,data['id'],context)
- form = data['form']
- account_id = form.get('writeoff_acc_id', False)
- period_id = form.get('period_id', False)
- journal_id = form.get('journal_id', False)
- if lot.sel_inv_id:
- p=pool.get('account.invoice').pay_and_reconcile(['lot.sel_inv_id.id'], form['amount'], form['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
-# lots.sel_inv_id.pay_and_reconcile(cr,uid,data[id], form['amount'], form['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
- return {}
-
-
-class wiz_auc_lots_pay(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':invoice_form, 'fields': invoice_fields, 'state':[ ('pay','Pay'), ('end','Cancel')]}
- },
- 'pay': {
- 'actions': [_pay_and_reconcile],
- 'result': {'type': 'state', 'state':'end'}
- }}
-wiz_auc_lots_pay('auction.pay.sel');
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_lots_sms.py b/addons/auction/wizard/wizard_lots_sms.py
deleted file mode 100644
index dc60a9bd24d..00000000000
--- a/addons/auction/wizard/wizard_lots_sms.py
+++ /dev/null
@@ -1,150 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-
-import urllib
-
-sms_send_form = '''
-''' % ('SMS - Gateway: clickatell', 'Bulk SMS send')
-
-sms_send_fields = {
- 'app_id': {'string':'API ID', 'type':'char', 'required':True},
- 'user': {'string':'Login', 'type':'char', 'required':True},
- 'password': {'string':'Password', 'type':'char', 'required':True},
- 'text': {'string':'SMS Message', 'type':'text', 'required':True, 'value':'Les lots [lots] vous ont etes adjuges. -- Rops'}
-}
-##############################################################################
-#
-# Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
-# Fabien Pinckaers
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-
-sms_send_form = '''
-''' % ('SMS - Gateway: clickatell','Bulk SMS send')
-
-sms_send_fields = {
- 'app_id': {'string':'API ID', 'type':'char', 'required':True},
- 'user': {'string':'Login', 'type':'char', 'required':True},
- 'password': {'string':'Password', 'type':'char', 'required':True},
- 'text': {'string':'SMS Message', 'type':'text', 'required':True}
-}
-
-def _sms_send(self, cr, uid, data, context):
- service = netsvc.LocalService("object_proxy")
- lots = service.execute(cr.dbname,uid, 'auction.lots', 'read', data['ids'], ['obj_num','obj_price','ach_uid'])
- res = service.execute(cr.dbname,uid, 'res.partner', 'read', [l['ach_uid'] for l in lots if l['ach_uid']], ['gsm'])
- #res = service.execute(cr.dbname, uid, 'res.partner', 'read', data['ids'], ['gsm'])
-# service = netsvc.LocalService("object_proxy")
-# pool=pooler.get_pool(cr.dbname)
-# lots=pool.get('auction.lots').browse(cr,uid,data['id'],context)
-# r=lots.ach_uid.id
- nbr = 0
- for r in res:
- to = r['mobile']
- if to:
- tools.smssend(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('latin1'), to)
- nbr += 1
- return {'sms_sent': nbr}
-
- if to:
- tools.smssend(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('latin1'), to)
- nbr += 1
- return {'sms_sent': nbr}
-#
-#def _sms_send(self, uid, datas):
-# service = netsvc.LocalService("object_proxy")
-# pool=pooler.ger_pool(cr.dbname)
-# lots=pool.get('auction.lots').browse(cr,uid,datas['ids'],context)
-# #lots = service.execute(uid, 'auction.lots', 'read', datas['ids'], ['obj_num','obj_price','ach_uid'])
-# #part = service.execute(uid, 'res.partner', 'read', [l['ach_uid'] for l in lots if l['ach_uid']], ['gsm'])
-#
-# part =ach_uid.id
-# part = map(lambda x: (x.id,x.mobile), part)
-# for l in lots:
-# part.append(str(l.obj_num)+'-%dEUR' % int(l.obj_price))
-#
-# for p in part.values():
-# to = p.mobile
-# if to:
-# params = urllib.urlencode({'user': datas['form']['user'], 'password': datas['form']['password'], 'api_id': datas['form']['app_id'], 'text':unicode(datas['form']['text'].replace('[lots]',', '.join(p['lots'])), 'utf-8').encode('latin1'), 'to':to})
-# f = urllib.urlopen("http://196.7.150.220/http/sendmsg", params)
-# nbr+=1
-# return {'sms_sent':nbr}
-
-class lots_sms(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':sms_send_form, 'fields': sms_send_fields, 'state':[('send','Send SMS'), ('end','Cancel')]}
- },
- 'send': {
- 'actions': [_sms_send],
- 'result': {'type': 'state', 'state':'end'}
- }
- }
-lots_sms('auction.lots.sms_send');
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_pay.py b/addons/auction/wizard/wizard_pay.py
deleted file mode 100644
index ff68c2b5b8d..00000000000
--- a/addons/auction/wizard/wizard_pay.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import netsvc
-import osv
-import time
-import pooler
-pay_form = '''
-'''
-
-def _start(self,cr,uid,data,context):
- pool = pooler.get_pool(cr.dbname)
- rec=pool.get('auction.lots').browse(cr,uid,data['ids'],context)
- amount1=0.0
- for r in rec:
- amount1+=r.buyer_price
- buyer= r and r.ach_uid.id or False
- if r.is_ok:
- raise wizard.except_wizard('Error !', 'Some lots of the selection are already paid.')
- return {'amount':amount1, 'total':amount1,'buyer_id':buyer}
-
-pay_fields = {
- 'amount': {'string': 'Amount paid', 'type':'float'},
- 'buyer_id': {'string': 'Buyer', 'type': 'many2one', 'relation':'res.partner'},
- 'statement_id1': {'string':'Statement', 'type':'many2one', 'required':True, 'relation':'account.bank.statement'},
- 'amount2': {'string': 'Amount paid', 'type':'float'},
- 'statement_id2': {'string':'Statement', 'type':'many2one', 'relation':'account.bank.statement'},
- 'amount3': {'string': 'Amount paid', 'type':'float'},
- 'statement_id3': {'string':'Statement', 'type':'many2one', 'relation':'account.bank.statement'},
- 'total': {'string': 'Amount to paid', 'type':'float','readonly':True}
-}
-
-def _pay_and_reconcile(self, cr, uid, data, context):
- if not abs(data['form']['total'] - (data['form']['amount']+data['form']['amount2']+data['form']['amount3']))<0.01:
- rest=data['form']['total']-(data['form']['amount']+data['form']['amount2']+data['form']['amount3'])
- raise wizard.except_wizard('Payment aborted !', 'You should pay all the total: "%.2f" are missing to accomplish the payment.' %(round(rest,2)))
-
- pool = pooler.get_pool(cr.dbname)
- lots = pool.get('auction.lots').browse(cr,uid,data['ids'],context)
- ref_bk_s=pooler.get_pool(cr.dbname).get('account.bank.statement.line')
-
- for lot in lots:
- if data['form']['buyer_id']:
- pool.get('auction.lots').write(cr,uid,[lot.id],{'ach_uid':data['form']['buyer_id']})
- if not lot.auction_id:
- raise wizard.except_wizard('Error !', 'No auction date for "%s": Please set one.'%(lot.name))
- pool.get('auction.lots').write(cr,uid,[lot.id],{'is_ok':True})
-
- for st,stamount in [('statement_id1','amount'),('statement_id2','amount2'),('statement_id3','amount3')]:
- if data['form'][st]:
- new_id=ref_bk_s.create(cr,uid,{
- 'name':'Buyer:'+str(lot.ach_login or '')+', auction:'+ lots[0].auction_id.name,
- 'date': time.strftime('%Y-%m-%d'),
- 'partner_id':data['form']['buyer_id'] or False,
- 'type':'customer',
- 'statement_id':data['form'][st],
- 'account_id':lot.auction_id.acc_income.id,
- 'amount':data['form'][stamount]
- })
- for lot in lots:
- pool.get('auction.lots').write(cr,uid,[lot.id],{'statement_id':[(4,new_id)]})
- return {}
-
-
-class wiz_auc_lots_pay(wizard.interface):
- states = {
- 'init': {
- 'actions': [_start],
- 'result': {'type': 'form', 'arch':pay_form, 'fields': pay_fields, 'state':[('end','Cancel'),('pay','Pay')]}
- },
- 'pay': {
- 'actions': [_pay_and_reconcile],
- 'result': {'type': 'state', 'state':'end'}
- }}
-wiz_auc_lots_pay('auction.pay.buy')
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/auction/wizard/wizard_payer.py b/addons/auction/wizard/wizard_payer.py
deleted file mode 100644
index 6e224fbadad..00000000000
--- a/addons/auction/wizard/wizard_payer.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import netsvc
-import osv
-import time
-import pooler
-
-pay_form = '''
-'''
-pay_fields = {
-}
-
-
-pay_form1 = '''
-'''
-pay_fields1 = {
-}
-def _payer(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- pool.get('auction.lots').write(cr,uid,data['ids'],{'is_ok':True, 'state':'paid'})
- return {}
-
-
-def _payer_sel(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- pool.get('auction.lots').write(cr,uid,data['ids'],{'paid_vnd':True})
- return {}
-
-
-class wiz_auc_pay(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':pay_form, 'fields': pay_fields, 'state':[('end','Cancel'),('pay','Pay')]}
- },
- 'pay': {
- 'actions': [_payer],
- 'result': {'type': 'state', 'state':'end'}
- }}
-wiz_auc_pay('auction.payer')
-
-
-class wiz_auc_pay_sel(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':pay_form1, 'fields': pay_fields1, 'state':[('end','Cancel'),('pay2','Pay')]}
- },
- 'pay2': {
- 'actions': [_payer_sel],
- 'result': {'type': 'state', 'state':'end'}
- }}
-wiz_auc_pay_sel('auction.payer.sel')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/audittrail/__terp__.py b/addons/audittrail/__terp__.py
index e7ecd839efb..d8b573a704a 100644
--- a/addons/audittrail/__terp__.py
+++ b/addons/audittrail/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,8 +24,14 @@
'name': 'Audit Trail',
'version': '1.0',
'category': 'Generic Modules/Others',
- 'description': """Allows the administrator to track every user operations on all objects of the system.
- Subscribe Rules for read, write, create and delete on objects and check logs""",
+ 'description': """
+ This module gives the administrator the right
+ to track every user operation on all the objects
+ of the system.
+
+ Administrator can subscribe rules for read,write and
+ delete on objects and can check logs.
+ """,
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['base'],
diff --git a/addons/base_calendar/__terp__.py b/addons/base_calendar/__terp__.py
index e433fbb7668..c0169db368b 100644
--- a/addons/base_calendar/__terp__.py
+++ b/addons/base_calendar/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,36 +15,36 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
{
- "name" : "Basic Calendar Functionality",
- "version" : "1.0",
+ "name" : "Basic Calendar Functionality",
+ "version" : "1.0",
"depends" : [
- "base",
- ],
+ "base",
+ ],
'description': """
Full featured calendar system that support:
- Alerts (create requests)
- Recurring events (*)
- - Invitations to others people
-""",
- "author" : "Tiny",
- 'category': 'Generic Modules/Others',
- 'website': 'http://www.openerp.com',
+ - Invitations to other people
+""",
+ "author" : "Tiny",
+ 'category': 'Generic Modules/Others',
+ 'website': 'http://www.openerp.com',
"init_xml" : [
'base_calendar_data.xml'
- ],
- "demo_xml" : [],
+ ],
+ "demo_xml" : [],
"update_xml" : [
- 'security/ir.model.access.csv',
+ 'security/ir.model.access.csv',
'base_calendar_view.xml'
- ],
- "installable" : True,
- "active" : False,
+ ],
+ "installable" : True,
+ "active" : False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_contact/i18n/hr.po b/addons/base_contact/i18n/hr.po
index 3d11dd37b3e..0d890821c0d 100644
--- a/addons/base_contact/i18n/hr.po
+++ b/addons/base_contact/i18n/hr.po
@@ -1,41 +1,43 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_contact
-#
+# * base_contact
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-09 16:40+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:47+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
-msgstr ""
+msgstr "Seq. Osobe"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
msgid "res.partner.contact"
-msgstr ""
+msgstr "res.partner.contact"
#. module: base_contact
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
-msgstr ""
+msgstr "Funkcija Partnera"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
@@ -45,62 +47,62 @@ msgstr ""
#: view:res.partner.address:0
#: field:res.partner.address,job_ids:0
msgid "Contacts"
-msgstr ""
+msgstr "Kontakti"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
-msgstr ""
+msgstr "Partner Seq."
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
-msgstr ""
+msgstr "Tekući"
#. module: base_contact
#: field:res.partner.contact,first_name:0
msgid "First Name"
-msgstr ""
+msgstr "Ime osobe"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
msgid "Contact Partner Function"
-msgstr ""
+msgstr "Funkcija Osobe Partnera - Contact Partner Function"
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
-msgstr ""
+msgstr "Drugi"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
-msgstr ""
+msgstr "Osoba na Funkciju - Contact to Function"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
-msgstr ""
+msgstr "Partner na Adresu"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
-msgstr ""
+msgstr "# Osoba"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
-msgstr ""
+msgstr "Dodatno polje za tel. broj"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
msgid "Function"
-msgstr ""
+msgstr "Funkcija"
#. module: base_contact
#: field:res.partner.job,fax:0
@@ -110,7 +112,7 @@ msgstr "Fax"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
msgid "Language"
-msgstr ""
+msgstr "Jezik"
#. module: base_contact
#: field:res.partner.job,phone:0
@@ -120,22 +122,22 @@ msgstr ""
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
-msgstr ""
+msgstr "Određuje Osobe i Funkcije"
#. module: base_contact
#: field:res.partner.contact,title:0
msgid "Title"
-msgstr ""
+msgstr "Naslov"
#. module: base_contact
#: view:res.partner.job:0
msgid "Contact Functions"
-msgstr ""
+msgstr "Funkcije Osoba"
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
msgid "Base Contact"
-msgstr ""
+msgstr "Osnovna Osoba"
#. module: base_contact
#: help:res.partner.job,sequence_partner:0
@@ -143,212 +145,214 @@ msgid ""
"Order of importance of this job title in the list of job title of the linked "
"partner"
msgstr ""
+"redoslijed važnosti ovog naziva Posla-Radnog mjesta u listi naziva Poslova-"
+"Radnih mjesta povezanog Partnera"
#. module: base_contact
#: field:res.partner.contact,email:0
#: field:res.partner.job,email:0
msgid "E-Mail"
-msgstr ""
+msgstr "E-Mail"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
-msgstr ""
+msgstr "Datum Završetka"
#. module: base_contact
#: view:res.partner:0
#: field:res.partner.job,address_id:0
msgid "Address"
-msgstr ""
+msgstr "Adresa"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
#: model:ir.ui.menu,name:base_contact.menu_action_res_partner_job
msgid "Contact's Jobs"
-msgstr ""
+msgstr "Poslovi Osobe"
#. module: base_contact
#: field:res.partner.contact,country_id:0
msgid "Nationality"
-msgstr ""
+msgstr "Državljanstvo"
#. module: base_contact
#: help:res.partner.job,sequence_contact:0
msgid ""
"Order of importance of this address in the list of addresses of the linked "
"contact"
-msgstr ""
+msgstr "redoslijed važnosti ove Adrese u listi Adresa povezanog Partnera"
#. module: base_contact
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
-msgstr ""
+msgstr "Glavni Posao"
#. module: base_contact
#: view:res.partner:0
msgid "Categories"
-msgstr ""
+msgstr "Kategorije"
#. module: base_contact
#: field:res.partner.contact,function_id:0
msgid "Main Function"
-msgstr ""
+msgstr "Glavna funkcija"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
-msgstr ""
+msgstr "Definiraj Partnere i njihove Adrese"
#. module: base_contact
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za Arhitekturu Prikaza!"
#. module: base_contact
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact Process"
-msgstr ""
+msgstr "Proces Osnovne Osobe za kontakt"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
-msgstr ""
+msgstr "Seq."
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
-msgstr ""
+msgstr "Ekstenzija"
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Mobitel"
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
-msgstr ""
+msgstr "Unutarnja/Vanjska Ekstenzija Tel. broja"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
-msgstr ""
+msgstr "Ljudi s kojima radite."
#. module: base_contact
#: view:res.partner.contact:0
msgid "Extra Information"
-msgstr ""
+msgstr "Dodatni Podaci"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
-msgstr ""
+msgstr "Funkcije i Adrese"
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivan"
#. module: base_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
-msgstr ""
+msgstr "Osoba"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
-msgstr ""
+msgstr "Tvrtke s kojima radite."
#. module: base_contact
#: field:res.partner.contact,partner_id:0
msgid "Main Employer"
-msgstr ""
+msgstr "Glavni Poslodavac."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
-msgstr ""
+msgstr "Funkcija na Adresu - Function to address"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Partner Contacts"
-msgstr ""
+msgstr "Osobe kod Partnera"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
-msgstr ""
+msgstr "Osoba kod Partnera"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
-msgstr ""
+msgstr "Partneri"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
#: view:res.partner:0
msgid "Addresses"
-msgstr ""
+msgstr "Adrese"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
-msgstr ""
+msgstr "Poslovne i Privatne Adrese"
#. module: base_contact
#: field:res.partner.contact,name:0
msgid "Last Name"
-msgstr ""
+msgstr "Prezime osobe"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: base_contact
#: view:res.partner.contact:0
#: view:res.partner.job:0
msgid "General"
-msgstr ""
+msgstr "Općenit"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
-msgstr ""
+msgstr "Prošli"
#. module: base_contact
#: view:res.partner.contact:0
msgid "General Information"
-msgstr ""
+msgstr "Opća Informacija"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_function0
msgid "Jobs at a same partner address."
-msgstr ""
+msgstr "Poslovi na istoj Adresi Partnera"
#. module: base_contact
#: field:res.partner.job,name:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: base_contact
#: field:res.partner.job,date_start:0
msgid "Date Start"
-msgstr ""
+msgstr "Datum Početka"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
-msgstr ""
+msgstr "Definiraj Funkcije i Adrese"
#. module: base_contact
#: field:res.partner.contact,website:0
msgid "Website"
-msgstr ""
+msgstr "Web stranica"
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
-msgstr ""
+msgstr "Datum rođenja"
diff --git a/addons/base_contact/i18n/it.po b/addons/base_contact/i18n/it.po
index 487a73f2c3f..8fd01ee5ac3 100644
--- a/addons/base_contact/i18n/it.po
+++ b/addons/base_contact/i18n/it.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 06:48+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-26 16:08+0000\n"
+"Last-Translator: Carlo Vettore \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:47+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
-msgstr ""
+msgstr "Seq. Contatto"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
@@ -52,7 +52,7 @@ msgstr "Contatti"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
-msgstr ""
+msgstr "Seq. Partner"
#. module: base_contact
#: selection:res.partner.job,state:0
@@ -82,7 +82,7 @@ msgstr "Contatto di funzione"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
@@ -92,12 +92,12 @@ msgstr "Partner da contattare"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
-msgstr ""
+msgstr "Numero Contatti"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
-msgstr ""
+msgstr "Numero di telefono aggiuntivo"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
@@ -189,7 +189,7 @@ msgstr ""
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
-msgstr ""
+msgstr "Lavoro principale"
#. module: base_contact
#: view:res.partner:0
@@ -224,7 +224,7 @@ msgstr "Seq."
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
-msgstr ""
+msgstr "Interno"
#. module: base_contact
#: field:res.partner.contact,mobile:0
diff --git a/addons/base_contact/i18n/zh_CN.po b/addons/base_contact/i18n/zh_CN.po
index af2071d08b9..2b1ea9bf09d 100644
--- a/addons/base_contact/i18n/zh_CN.po
+++ b/addons/base_contact/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-01 14:36+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2010-03-29 00:51+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:47+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
diff --git a/addons/base_iban/__terp__.py b/addons/base_iban/__terp__.py
index e8527ee6459..f534c42bb33 100644
--- a/addons/base_iban/__terp__.py
+++ b/addons/base_iban/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
-This module install the base for IBAN bank accounts.
+This module install the base for IBAN (International Bank Account Number) bank accounts and checks for its validity
""",
'author': 'Tiny',
diff --git a/addons/base_iban/i18n/hr.po b/addons/base_iban/i18n/hr.po
index 0e2702c5b7a..b58483799a1 100644
--- a/addons/base_iban/i18n/hr.po
+++ b/addons/base_iban/i18n/hr.po
@@ -1,63 +1,64 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_iban
-#
+# * base_iban
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 13:34+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:41+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_iban
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za Arhitekturu Prikaza!"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
msgid "zip"
-msgstr ""
+msgstr "Pošt. Broj"
#. module: base_iban
#: help:res.partner.bank,iban:0
msgid "International Bank Account Number"
-msgstr ""
+msgstr "Međunarodni broj Bankovnog računa"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
msgid "country_id"
-msgstr ""
+msgstr "country_id"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_swift_field
msgid "bic"
-msgstr ""
+msgstr "bic"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_iban_field
msgid "iban"
-msgstr ""
+msgstr "iban"
#. module: base_iban
#: model:ir.module.module,shortdesc:base_iban.module_meta_information
#: field:res.partner.bank,iban:0
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#. module: base_iban
#: model:res.partner.bank.type,name:base_iban.bank_iban
msgid "IBAN Account"
-msgstr ""
+msgstr "IBAN konto"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_acc_number_field
msgid "acc_number"
-msgstr ""
+msgstr "Broj konta"
diff --git a/addons/base_module_merge/i18n/hr.po b/addons/base_module_merge/i18n/hr.po
index 86da56d3753..21f6ec6abd1 100644
--- a/addons/base_module_merge/i18n/hr.po
+++ b/addons/base_module_merge/i18n/hr.po
@@ -1,123 +1,124 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_module_merge
-#
+# * base_module_merge
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 13:34+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:51+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:04+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,category:0
msgid "Category"
-msgstr ""
+msgstr "Kategorija"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Information"
-msgstr ""
+msgstr "Informacija"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,init:0
msgid "Module Merging"
-msgstr ""
+msgstr "Spajanje Modula"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,author:0
msgid "Author"
-msgstr ""
+msgstr "Autor"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,directory_name:0
msgid "Directory Name"
-msgstr ""
+msgstr "Ime Direktorija"
#. module: base_module_merge
#: selection:base_module_merge.module_merge,info,data_kind:0
msgid "Demo Data"
-msgstr ""
+msgstr "Demo Podaciž"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,save,module_filename:0
msgid "Filename"
-msgstr ""
+msgstr "Ime datoteke"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,version:0
msgid "Version"
-msgstr ""
+msgstr "Verzija"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,info:0
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Module Recording"
-msgstr ""
+msgstr "Snimanje Modula"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Thanks in advance for your contribution."
-msgstr ""
+msgstr "naprijed Hvala na doprinosu!"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,description:0
msgid "Full Description"
-msgstr ""
+msgstr "Puni opis"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,name:0
msgid "Module Name"
-msgstr ""
+msgstr "Ime Modula"
#. module: base_module_merge
#: model:ir.actions.wizard,name:base_module_merge.wizard_base_module_merger
#: model:ir.ui.menu,name:base_module_merge.menu_wizard_base_module_merger
msgid "Merge module"
-msgstr ""
+msgstr "Spoji Modul"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,save,module_file:0
msgid "Module .zip File"
-msgstr ""
+msgstr ".zip datoteka Modula"
#. module: base_module_merge
#: model:ir.module.module,shortdesc:base_module_merge.module_meta_information
msgid "Module Merger"
-msgstr ""
+msgstr "Spoj Modula"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Module successfully created !"
-msgstr ""
+msgstr "Modul uspješno kreiran !"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,website:0
msgid "Documentation URL"
-msgstr ""
+msgstr "URL Dokumentacije"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,init,modules_list:0
msgid "Modules"
-msgstr ""
+msgstr "Moduli"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,info,save:0
#: wizard_button:base_module_merge.module_merge,init,info:0
msgid "Continue"
-msgstr ""
+msgstr "Nastavi"
#. module: base_module_merge
#: selection:base_module_merge.module_merge,info,data_kind:0
msgid "Normal Data"
-msgstr ""
+msgstr "Obični podaci"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
@@ -126,29 +127,32 @@ msgid ""
"publish it on OpenERP.com, in the 'Modules' section. You can do it through "
"the website or using features of the 'base_module_publish' module."
msgstr ""
+"Ako mislite da bi Vaš Modul mogao nekog zanimati, voljeli bismo da ga "
+"publicirate na OpenERP.com u sekciji \"Modules\". To možete putem weba ili "
+"korištenjem mogućnosti Modula: 'base_module_publish'"
#. module: base_module_merge
#: help:base_module_merge.module_merge,init,modules_list:0
msgid "Select Modules which you want to merge in single module"
-msgstr ""
+msgstr "Odaberite Module koje želite spojiti u jedan Modul"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,data_kind:0
msgid "Type of Data"
-msgstr ""
+msgstr "Tip Podataka"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,info:0
msgid "Module Information"
-msgstr ""
+msgstr "Informacije o Modulu"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,info,end:0
#: wizard_button:base_module_merge.module_merge,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,save,end:0
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
diff --git a/addons/base_module_quality/i18n/hr.po b/addons/base_module_quality/i18n/hr.po
index 6daae728fe3..d9adbe54358 100644
--- a/addons/base_module_quality/i18n/hr.po
+++ b/addons/base_module_quality/i18n/hr.po
@@ -2,66 +2,68 @@
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR , 2009.
-#
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-18 12:31+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: Croatian \n"
+"PO-Revision-Date: 2010-03-25 21:09+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:04+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_module_quality
#: field:module.quality.check,final_score:0
msgid "Final Score (%)"
-msgstr ""
+msgstr "Konačni Rezultat (%)"
#. module: base_module_quality
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: base_module_quality
#: model:ir.module.module,shortdesc:base_module_quality.module_meta_information
msgid "Base module quality"
-msgstr ""
+msgstr "Kvalitet osnovnog Modula"
#. module: base_module_quality
#: field:module.quality.check,name:0
msgid "Rated Module"
-msgstr ""
+msgstr "Ocijenjen Modul"
#. module: base_module_quality
#: view:module.quality.detail:0
msgid "Detail"
-msgstr ""
+msgstr "Detalj"
#. module: base_module_quality
#: field:module.quality.detail,note:0
msgid "Note"
-msgstr ""
+msgstr "Bilješka"
#. module: base_module_quality
#: field:module.quality.detail,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: base_module_quality
#: field:module.quality.detail,detail:0
msgid "Details"
-msgstr ""
+msgstr "Detalji"
#. module: base_module_quality
#: field:module.quality.detail,ponderation:0
msgid "Ponderation"
-msgstr ""
+msgstr "Ponderacija"
#. module: base_module_quality
#: help:module.quality.detail,ponderation:0
@@ -69,17 +71,19 @@ msgid ""
"Some tests are more critical than others, so they have a bigger weight in "
"the computation of final rating"
msgstr ""
+"Neki su testovi od većeg kritičnog značaja od drugih, tako da imaju veću "
+"\"težinu\" u izračunu konačne procjene."
#. module: base_module_quality
#: view:module.quality.check:0
#: field:module.quality.check,check_detail_ids:0
msgid "Tests"
-msgstr ""
+msgstr "Testovi"
#. module: base_module_quality
#: selection:module.quality.detail,state:0
msgid "Skipped"
-msgstr ""
+msgstr "Preskočen"
#. module: base_module_quality
#: help:module.quality.detail,state:0
@@ -87,95 +91,97 @@ msgid ""
"The test will be completed only if the module is installed or if the test "
"may be processed on uninstalled module."
msgstr ""
+"test će biti dovršen jedino ako je modul instaliran ili ako test može biti "
+"procesiran an neinstaliranom modulu."
#. module: base_module_quality
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: base_module_quality
#: model:ir.model,name:base_module_quality.model_module_quality_check
msgid "module.quality.check"
-msgstr ""
+msgstr "module.quality.check"
#. module: base_module_quality
#: field:module.quality.detail,name:0
msgid "Name"
-msgstr ""
+msgstr "Ime"
#. module: base_module_quality
#: wizard_field:quality_detail_save,init,module_file:0
msgid "Save report"
-msgstr ""
+msgstr "Spremi Izvještaj"
#. module: base_module_quality
#: wizard_field:quality_detail_save,init,name:0
msgid "File name"
-msgstr ""
+msgstr "Ime datoteke"
#. module: base_module_quality
#: field:module.quality.detail,score:0
msgid "Score (%)"
-msgstr ""
+msgstr "Rezultat (%)"
#. module: base_module_quality
#: help:quality_detail_save,init,name:0
msgid "Save report as .html format"
-msgstr ""
+msgstr "Spremi izvještaj u .html formatu"
#. module: base_module_quality
#: view:module.quality.detail:0
#: field:module.quality.detail,summary:0
msgid "Summary"
-msgstr ""
+msgstr "Sižetak"
#. module: base_module_quality
#: model:ir.actions.wizard,name:base_module_quality.quality_detail_save
msgid "Report Save"
-msgstr ""
+msgstr "Spremi Izvještaj"
#. module: base_module_quality
#: wizard_view:quality_detail_save,init:0
msgid "Standard entries"
-msgstr ""
+msgstr "Standardni unosi"
#. module: base_module_quality
#: view:module.quality.detail:0
msgid "Save Report"
-msgstr ""
+msgstr "Spremi Izvještaj"
#. module: base_module_quality
#: model:ir.actions.wizard,name:base_module_quality.create_quality_check_id
msgid "Quality Check"
-msgstr ""
+msgstr "Provjera Kvalitete"
#. module: base_module_quality
#: model:ir.model,name:base_module_quality.model_module_quality_detail
msgid "module.quality.detail"
-msgstr ""
+msgstr "module.quality.detail"
#. module: base_module_quality
#: selection:module.quality.detail,state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: base_module_quality
#: view:module.quality.check:0
#: view:module.quality.detail:0
msgid "Result"
-msgstr ""
+msgstr "Rezultat"
#. module: base_module_quality
#: wizard_button:quality_detail_save,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: base_module_quality
#: field:module.quality.detail,message:0
msgid "Message"
-msgstr ""
+msgstr "Poruka"
#. module: base_module_quality
#: field:module.quality.detail,quality_check_id:0
msgid "Quality"
-msgstr ""
+msgstr "Kvaliteta"
diff --git a/addons/base_module_record/base_module_record.py b/addons/base_module_record/base_module_record.py
index 8f69d082f26..cda1f4ebb82 100644
--- a/addons/base_module_record/base_module_record.py
+++ b/addons/base_module_record/base_module_record.py
@@ -72,6 +72,40 @@ def doc_createXElement(xdoc, tagName):
e.ownerDocument = xdoc
return e
+import yaml
+
+class record(yaml.YAMLObject):
+ yaml_tag = u'!record'
+ def __init__(self, model, id=None, attrs={}):
+ self.model = model
+ self.id = id
+ self.attrs=attrs
+ def __repr__(self):
+ return '!record {model: %s, id: %s}:' % (str(self.model,), str(self.id,))
+
+class workflow(yaml.YAMLObject):
+ yaml_tag = u'!workflow'
+ def __init__(self, model, action, ref=None):
+ self.model = model
+ self.ref = ref
+ self.action=action
+ def __repr__(self):
+ return '!workflow {model: %s, action: %s, ref: %s}' % (str(self.model,), str(self.action,), str(self.ref,))
+
+class ref(yaml.YAMLObject):
+ yaml_tag = u'!ref'
+ def __init__(self, expr="False"):
+ self.expr = expr
+ def __repr__(self):
+ return 'ref(%s)' % (str(self.expr,))
+
+class eval(yaml.YAMLObject):
+ yaml_tag = u'!eval'
+ def __init__(self, expr="False"):
+ self.expr = expr
+ def __repr__(self):
+ return 'eval(%s)' % (str(self.expr,))
+
class base_module_record(osv.osv):
_name = "ir.module.record"
_columns = {
@@ -105,7 +139,7 @@ class base_module_record(osv.osv):
dt = self.pool.get('ir.model.data')
dtids = dt.search(cr, uid, [('model','=',model), ('res_id','=',id)])
if not dtids:
- return None, None
+ return False, None
obj = dt.browse(cr, uid, dtids[0])
self.depends[obj.module] = True
return obj.module+'.'+obj.name, obj.noupdate
@@ -379,6 +413,10 @@ class base_module_record(osv.osv):
data['action'] = rec[3]
data['ref'] = id
return data
+ if self.mode=="write":
+ id,update = self._get_id(cr, uid, rec[2],rec[4][0])
+ record = self._create_yaml_record(cr, uid, rec[2], rec[5], id)
+ return record
data=self.get_copy_data(cr,uid,rec[2],rec[4],rec[5])
copy_rec=(rec[0],rec[1],rec[2],rec[3],rec[4],data,rec[5])
rec=copy_rec
@@ -429,44 +467,13 @@ class base_module_record(osv.osv):
def generate_yaml(self, cr, uid):
self.ids = {}
if len(self.recording_data):
- strg='''import yaml
-
-class record(yaml.YAMLObject):
- yaml_tag = u'!record'
- def __init__(self, model, id=None, attrs={}):
- self.model = model
- self.id = id
- self.attrs=attrs
- def __repr__(self):
- return '!record {model: %s, id: %s}:' % (str(self.model,), str(self.id,))
-
-class workflow(yaml.YAMLObject):
- yaml_tag = u'!workflow'
- def __init__(self, model, action, ref=None):
- self.model = model
- self.ref = ref
- self.action=action
- def __repr__(self):
- return '!workflow {model: %s, action: %s, ref: %s}' % (str(self.model,), str(self.action,), str(self.ref,))
-
-class ref(yaml.YAMLObject):
- yaml_tag = u'!ref'
- def __init__(self, expr="False"):
- self.expr = expr
- def __repr__(self):
- return 'ref(%s)' % (str(self.expr,))
-
-class eval(yaml.YAMLObject):
- yaml_tag = u'!eval'
- def __init__(self, expr="False"):
- self.expr = expr
- def __repr__(self):
- return 'eval(%s)' % (str(self.expr,))
-\n'''
+ yaml_file='''\n'''
for rec in self.recording_data:
if rec[1][3] == 'create':
self.mode="create"
+ elif rec[1][3] == 'write':
+ self.mode="write"
elif rec[1][3] == 'copy':
self.mode="copy"
elif rec[0] == 'workflow':
@@ -475,47 +482,30 @@ class eval(yaml.YAMLObject):
continue
if self.mode == "workflow":
record= self._generate_object_yaml(cr, uid, rec[1],rec[0])
- strg+="object=yaml.load(unicode('''\n !workflow %s \n''','iso-8859-1'))"%record
- strg+='''
-print object
-'''
+ object=yaml.load(unicode('''\n !workflow %s \n'''%record,'iso-8859-1'))
+ yaml_file += str(object) + '''\n'''
else:
record= self._generate_object_yaml(cr, uid, rec[1],rec[3])
- strg+="object=yaml.load(unicode('''\n !record %s \n''','iso-8859-1'))"%record
- strg+='''
-print object
-attrs=yaml.dump(object.attrs, default_flow_style=False)
-print attrs \n\n'''
-
- import os
- py_path = os.path.join(os.getcwd(), 'records.py')
- txt_path = os.path.join(os.getcwd(), 'records.txt')
- f = open(py_path, 'w')
- f.write(strg)
- f.close()
- os.system('python %s > %s'%(py_path,txt_path))
- f = open(txt_path, 'r+')
- lines=f.readlines()
- f.seek(0)
- for line in lines:
- line=line.replace("''","'")
- if line.find('!record') == 0:
- line = "- \n" + " " + line
- elif line.find('!workflow') == 0:
- line = "- \n" + " " + line
- elif line.find('- -') != -1:
- line=line.replace('- -',' -')
- line = " " + line
- else:
- line = " " + line
- f.write(line)
- f.close()
- f = open(txt_path, 'r')
- strg = ''.join(f.readlines())
- f.close()
- os.system('rm %s'%py_path)
- os.system('rm %s'%txt_path)
- return strg
+ object= yaml.load(unicode('''\n !record %s \n'''%record,'iso-8859-1'))
+ yaml_file += str(object) + '''\n'''
+ attrs=yaml.dump(object.attrs, default_flow_style=False)
+ yaml_file += attrs + '''\n\n'''
+
+ yaml_result=''''''
+ for line in yaml_file.split('\n'):
+ line=line.replace("''","'")
+ if line.find('!record') == 0:
+ line = "- \n" + " " + line
+ elif line.find('!workflow') == 0:
+ line = "- \n" + " " + line
+ elif line.find('- -') != -1:
+ line=line.replace('- -',' -')
+ line = " " + line
+ else:
+ line = " " + line
+ yaml_result += line + '''\n'''
+
+ return yaml_result
base_module_record()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_module_record/i18n/hr.po b/addons/base_module_record/i18n/hr.po
index 1aacc87b906..ab8a8a4a73e 100644
--- a/addons/base_module_record/i18n/hr.po
+++ b/addons/base_module_record/i18n/hr.po
@@ -1,105 +1,107 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_module_record
-#
+# * base_module_record
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 15:16+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 21:09+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:48+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,category:0
#: wizard_field:base_module_record.module_save,info,category:0
msgid "Category"
-msgstr ""
+msgstr "Kategorija"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
#: wizard_field:base_module_record.module_save,init,info_text:0
#: wizard_view:base_module_record.module_save,save:0
msgid "Information"
-msgstr ""
+msgstr "Informacija"
#. module: base_module_record
#: model:ir.model,name:base_module_record.model_ir_module_record
msgid "ir.module.record"
-msgstr ""
+msgstr "ir.module.record"
#. module: base_module_record
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Ime Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,init:0
msgid "Choose objects to record"
-msgstr ""
+msgstr "Izaberite Objekte za Snimanje"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,author:0
#: wizard_field:base_module_record.module_save,info,author:0
msgid "Author"
-msgstr ""
+msgstr "Autor"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,directory_name:0
#: wizard_field:base_module_record.module_save,info,directory_name:0
msgid "Directory Name"
-msgstr ""
+msgstr "Ime Direktorija"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,init,filter_cond:0
msgid "Records only"
-msgstr ""
+msgstr "Samo Zapisi"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,intro,data_kind:0
#: selection:base_module_record.module_save,info,data_kind:0
msgid "Demo Data"
-msgstr ""
+msgstr "Demo Podaci"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,save,module_filename:0
#: wizard_field:base_module_record.module_save,save,module_filename:0
msgid "Filename"
-msgstr ""
+msgstr "Ime datoteke"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,version:0
#: wizard_field:base_module_record.module_save,info,version:0
msgid "Version"
-msgstr ""
+msgstr "Verzija"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,init:0
msgid "Objects Recording"
-msgstr ""
+msgstr "Objekti se Snimaju"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,init,check_date:0
msgid "Record from Date"
-msgstr ""
+msgstr "Zapis od Datuma"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,stop:0
#: wizard_view:base_module_record.module_save,init:0
msgid "Recording Information"
-msgstr ""
+msgstr "Informacija o Snimanju"
#. module: base_module_record
#: wizard_field:base_module_record.module_save,init,info_status:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,stop:0
@@ -111,111 +113,111 @@ msgstr ""
#: wizard_view:base_module_record.module_save,init:0
#: wizard_view:base_module_record.module_save,save:0
msgid "Module Recording"
-msgstr ""
+msgstr "Modul se Zapisuje"
#. module: base_module_record
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record_objects
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_objects
msgid "Export Customizations As a Module"
-msgstr ""
+msgstr "Izvezi Prilagodbe kao Modul"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
#: wizard_view:base_module_record.module_save,save:0
msgid "Thanks in advance for your contribution."
-msgstr ""
+msgstr "Hvala unaprijed na Vašem Doprinosu"
#. module: base_module_record
#: help:base_module_record.module_record_objects,init,objects:0
msgid "List of objects to be recorded"
-msgstr ""
+msgstr "Lista Objekata za zapis"
#. module: base_module_record
#: wizard_button:base_module_record.module_record,start,start_confirm:0
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record
msgid "Start Recording"
-msgstr ""
+msgstr "Počni Snimanje"
#. module: base_module_record
#: selection:base_module_record.module_save,init,info_status:0
msgid "Not Recording"
-msgstr ""
+msgstr "Ne Zapisuje se"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,description:0
#: wizard_field:base_module_record.module_save,info,description:0
msgid "Full Description"
-msgstr ""
+msgstr "Puni Opis"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,name:0
#: wizard_field:base_module_record.module_save,info,name:0
msgid "Module Name"
-msgstr ""
+msgstr "Ime Modula"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,init,objects:0
msgid "Objects"
-msgstr ""
+msgstr "Objekti"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,save,module_file:0
#: wizard_field:base_module_record.module_save,save,module_file:0
msgid "Module .zip File"
-msgstr ""
+msgstr ".zip datoteka Modula"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,start:0
msgid "Recording information"
-msgstr ""
+msgstr "Informacija o Snimanju"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
#: wizard_view:base_module_record.module_save,save:0
msgid "Module successfully created !"
-msgstr ""
+msgstr "Modul uspješno kreiran !"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,start:0
msgid "Recording Stopped"
-msgstr ""
+msgstr "Snimanje zaustavljeno"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,init,filter_cond:0
msgid "Created"
-msgstr ""
+msgstr "Kreiran"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,end:0
#: wizard_view:base_module_record.module_save,end:0
msgid "Thanks For using Module Recorder"
-msgstr ""
+msgstr "Hvala što ste koristili Snimač Modula"
#. module: base_module_record
#: wizard_field:base_module_record.module_record,start,continue:0
msgid "Continue Previous Session"
-msgstr ""
+msgstr "Nastavi Prethodnu Sesiju"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,website:0
#: wizard_field:base_module_record.module_save,info,website:0
msgid "Documentation URL"
-msgstr ""
+msgstr "URL Dokumentacije"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,init,filter_cond:0
msgid "Modified"
-msgstr ""
+msgstr "Izmijenjen"
#. module: base_module_record
#: selection:base_module_record.module_save,init,info_status:0
msgid "Recording"
-msgstr ""
+msgstr "Snimanje"
#. module: base_module_record
#: wizard_button:base_module_record.module_record_objects,init,record:0
msgid "Record"
-msgstr ""
+msgstr "Zapis"
#. module: base_module_record
#: wizard_button:base_module_record.module_record,stop,end:0
@@ -223,25 +225,25 @@ msgstr ""
#: wizard_button:base_module_record.module_save,info,save:0
#: wizard_button:base_module_record.module_save,init,check:0
msgid "Continue"
-msgstr ""
+msgstr "Nastavi"
#. module: base_module_record
#: model:ir.module.module,shortdesc:base_module_record.module_meta_information
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_mod_rec_rec
msgid "Module Recorder"
-msgstr ""
+msgstr "Snimač Modula"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,intro,data_kind:0
#: selection:base_module_record.module_save,info,data_kind:0
msgid "Normal Data"
-msgstr ""
+msgstr "uobičajeni Podaci"
#. module: base_module_record
#: wizard_button:base_module_record.module_record_objects,end,end:0
#: wizard_button:base_module_record.module_save,end,end:0
msgid "OK"
-msgstr ""
+msgstr "OK"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
@@ -251,6 +253,9 @@ msgid ""
"publish it on OpenERP.com, in the 'Modules' section. You can do it through "
"the website or using features of the 'base_module_publish' module."
msgstr ""
+"Ako mislite da bi Vaš Modul mogao nekog zanimati, voljeli bismo da ga "
+"publicirate na OpenERP.com u sekciji \"Modules\". To možete putem weba ili "
+"korištenjem mogućnosti Modula: 'base_module_publish'."
#. module: base_module_record
#: wizard_view:base_module_record.module_record,start:0
@@ -259,16 +264,19 @@ msgid ""
"ERP client and save them as a module. You will be able to install this "
"module on any database to reuse and/or publish it."
msgstr ""
+"Snimač Modula omogućuje Vam da snimite svaku operaciju izvršenu u Open ERP "
+"klijentu i izmjene spremite kao Modul. Moći ćete instalirati taj Modul na "
+"bilo kojoj Bazi Podataka za ponovnu uporabu ili publiciranje."
#. module: base_module_record
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record
msgid "Record module"
-msgstr ""
+msgstr "Snimi Modul"
#. module: base_module_record
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_mod_rec
msgid "Module Creation"
-msgstr ""
+msgstr "Kreacija Modula"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,stop:0
@@ -276,30 +284,33 @@ msgid ""
"You can continue the recording session by relauching the 'start recording' "
"wizard."
msgstr ""
+"Možete nastaviti snimanje tako da ponovo pokrenete Čarobnjak \"Počni "
+"Snimanje\""
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,intro,data_kind:0
#: wizard_field:base_module_record.module_save,info,data_kind:0
msgid "Type of Data"
-msgstr ""
+msgstr "Tip podataka"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,intro:0
#: wizard_view:base_module_record.module_save,info:0
msgid "Module Information"
-msgstr ""
+msgstr "Informacija o Modulu"
#. module: base_module_record
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_save
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_save
msgid "Save Recorded Module"
-msgstr ""
+msgstr "Spremi Snimljen Modul"
#. module: base_module_record
#: wizard_view:base_module_record.module_record,stop:0
msgid ""
"Open ERP recording is stopped. Don't forget to save the recorded module."
msgstr ""
+"OpenERP Snimač je zaustavljen. Ne zaboravite spremiti snimljen Modul."
#. module: base_module_record
#: wizard_button:base_module_record.module_record,start,end:0
@@ -308,20 +319,20 @@ msgstr ""
#: wizard_button:base_module_record.module_save,info,end:0
#: wizard_button:base_module_record.module_save,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: base_module_record
#: wizard_button:base_module_record.module_record_objects,save,end:0
#: wizard_button:base_module_record.module_save,save,end:0
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,init,filter_cond:0
msgid "Created & Modified"
-msgstr ""
+msgstr "Kreiran i Izmijenjen"
#. module: base_module_record
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_stop
msgid "Stop Recording"
-msgstr ""
+msgstr "Zaustavi Snimanje"
diff --git a/addons/base_report_designer/__terp__.py b/addons/base_report_designer/__terp__.py
index 0d2ca29e657..f19d179a1ed 100644
--- a/addons/base_report_designer/__terp__.py
+++ b/addons/base_report_designer/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -25,8 +25,13 @@
'version': '0.1',
'category': 'Generic Modules/Base',
'description': """
-This module adds wizards to import/export documents to be edited in
-OpenOffice.
+This module is used along with openerp OpenOffice plugin.
+You have to first install the plugin which is available at
+http://www.openerp.com
+
+This module adds wizards to import/export .SXW report that
+you can modify in OpenOffice.Once you have modified it you can
+upload the report using the same wizard.
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
diff --git a/addons/base_report_designer/i18n/hr.po b/addons/base_report_designer/i18n/hr.po
index 4bf555fb9e5..446c310fe71 100644
--- a/addons/base_report_designer/i18n/hr.po
+++ b/addons/base_report_designer/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_report_designer
-#
+# * base_report_designer
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-30 08:28+0000\n"
-"Last-Translator: Miro Glavić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 09:27+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:57+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_report_designer
#: wizard_field:base_report_designer.modify,init,text:0
@@ -29,67 +30,67 @@ msgstr ""
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,get_form_result,send_form:0
msgid "Upload the modified report"
-msgstr ""
+msgstr "Pošalji promijenjen Izvještaj na Server"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,get_form_result:0
msgid "The .SXW report"
-msgstr ""
+msgstr ".SXW Izvještaj"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,send_form_result:0
msgid "Report modified"
-msgstr ""
+msgstr "Izvještaj je promijenjen"
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,init,get_form:0
msgid "Modify a report"
-msgstr ""
+msgstr "Izmijeni Izvještaj"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,send_form_result:0
msgid "Your report has been modified."
-msgstr ""
+msgstr "Vaš je Izvještaj izmijenjen"
#. module: base_report_designer
#: model:ir.module.module,shortdesc:base_report_designer.module_meta_information
msgid "Report designer interface module"
-msgstr ""
+msgstr "Modul sučelja Dizajnera Izvještaja"
#. module: base_report_designer
#: wizard_field:base_report_designer.modify,get_form,report_id:0
#: wizard_field:base_report_designer.modify,get_form_result,report_id:0
#: wizard_field:base_report_designer.modify,send_form,report_id:0
msgid "Report"
-msgstr ""
+msgstr "Izvještaj"
#. module: base_report_designer
#: model:ir.ui.menu,name:base_report_designer.menu_wizard_report_designer_modify
msgid "Report Designer"
-msgstr ""
+msgstr "Dizajner Izvještaja"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,get_form:0
#: wizard_view:base_report_designer.modify,get_form_result:0
#: wizard_view:base_report_designer.modify,send_form:0
msgid "Get a report"
-msgstr ""
+msgstr "Napravi Izvještaj"
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,get_form,get_form_result:0
msgid "Continue"
-msgstr ""
+msgstr "Nastavi"
#. module: base_report_designer
#: wizard_field:base_report_designer.modify,get_form_result,file_sxw:0
#: wizard_field:base_report_designer.modify,send_form,file_sxw:0
msgid "Your .SXW file"
-msgstr ""
+msgstr "Vaša .SXW datoteka"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,init:0
msgid "Report designer"
-msgstr ""
+msgstr "Dizajner Izvještaja"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,get_form_result:0
@@ -99,47 +100,51 @@ msgid ""
"to modify it. Once it is modified, re-upload it in Open ERP using this "
"wizard."
msgstr ""
+"Ovo je Predložak vašeg traženog Izvještaja. Spremite ga kao .SXW datoteku i "
+"otvorite s programon OpenOffice. Ne zaboravite instalirati Tiny OpenOffice "
+"paket kako biste mogli vršiti izmjene. kad izvršite izmjene, vratite "
+"datoteku u Open ERP koristeći ovaj Čarobnjak."
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,send_form,send_form_result:0
msgid "Update the report"
-msgstr ""
+msgstr "Ažurirajte Izvještaj"
#. module: base_report_designer
#: selection:base_report_designer.modify,init,operation:0
msgid "Create a new report"
-msgstr ""
+msgstr "Napravi novi Izvještaj"
#. module: base_report_designer
#: selection:base_report_designer.modify,init,operation:0
#: model:ir.actions.wizard,name:base_report_designer.wizard_report_designer_modify
msgid "Modify an existing report"
-msgstr ""
+msgstr "Izmijeni postojeći izvještaj"
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,get_form,end:0
#: wizard_button:base_report_designer.modify,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: base_report_designer
#: wizard_button:base_report_designer.modify,get_form_result,end:0
#: wizard_button:base_report_designer.modify,send_form,end:0
#: wizard_button:base_report_designer.modify,send_form_result,end:0
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
#. module: base_report_designer
#: wizard_field:base_report_designer.modify,init,operation:0
msgid "Operation"
-msgstr ""
+msgstr "Operacija"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,init:0
msgid "Report designer introduction"
-msgstr ""
+msgstr "Uvod u Dizajner Izvještaja"
#. module: base_report_designer
#: wizard_view:base_report_designer.modify,get_form:0
msgid "Select your report"
-msgstr ""
+msgstr "Odaberite izvještaj"
diff --git a/addons/base_setup/i18n/hr.po b/addons/base_setup/i18n/hr.po
index 038c0c73538..3423f72d4a5 100644
--- a/addons/base_setup/i18n/hr.po
+++ b/addons/base_setup/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * base_setup
-#
+# * base_setup
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 16:32+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-26 01:09+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:49+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,city:0
@@ -29,34 +30,37 @@ msgid ""
"You can start configuring the system or connect directly to the database "
"using the default setup."
msgstr ""
+"Možete početi s konfiguracijom sustava ili se izravno spojiti na bazu "
+"podataka koristeći predefinirane postavke."
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,zip:0
#: wizard_field:base_setup.base_setup,init,zip:0
#: wizard_field:base_setup.base_setup,update,zip:0
msgid "Zip code"
-msgstr ""
+msgstr "Pošt. broj"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid "Select a Profile"
-msgstr ""
+msgstr "Odaberite Profil"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report header"
-msgstr ""
+msgstr "Zaglavlje Izvještaja"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,config:0
msgid "Start Configuration"
-msgstr ""
+msgstr "Započnite Konfiguriranje"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid ""
"You'll be able to install more modules later through the Administration menu."
msgstr ""
+"Moći ćete instalirati više Modula kasnije kroz izbornik Admininstracija"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
@@ -65,88 +69,91 @@ msgid ""
"have been setup to help you discover the different aspects of OpenERP. This "
"is just an overview, we have 300+ available modules."
msgstr ""
+"Profil određuje pred-izbor modula za specifične potrebe. Ti su profili "
+"podešeni kako biste lakše otkrivali različite aspekte Open ERP-a. Ovo je tek "
+"osvrt, postoji 300+ raspoloživih modula."
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,update:0
#: wizard_button:base_setup.base_setup,init,company:0
msgid "Next"
-msgstr ""
+msgstr "Dalje"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,email:0
#: wizard_field:base_setup.base_setup,init,email:0
#: wizard_field:base_setup.base_setup,update,email:0
msgid "E-mail"
-msgstr ""
+msgstr "E-Mail"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,state_id:0
#: wizard_field:base_setup.base_setup,init,state_id:0
#: wizard_field:base_setup.base_setup,update,state_id:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Your new database is now fully installed."
-msgstr ""
+msgstr "Vaša nova baza podataka sada je instalirana u potpunosti."
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,profile:0
#: wizard_field:base_setup.base_setup,init,profile:0
#: wizard_field:base_setup.base_setup,update,profile:0
msgid "Profile"
-msgstr ""
+msgstr "Profil"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_footer1:0
#: wizard_field:base_setup.base_setup,init,rml_footer1:0
#: wizard_field:base_setup.base_setup,update,rml_footer1:0
msgid "Report Footer 1"
-msgstr ""
+msgstr "Podnožje Izvještaja 1"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_footer2:0
#: wizard_field:base_setup.base_setup,init,rml_footer2:0
#: wizard_field:base_setup.base_setup,update,rml_footer2:0
msgid "Report Footer 2"
-msgstr ""
+msgstr "Podnožje Izvještaja 2"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "General Information"
-msgstr ""
+msgstr "Opće Informacije"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,street2:0
#: wizard_field:base_setup.base_setup,init,street2:0
#: wizard_field:base_setup.base_setup,update,street2:0
msgid "Street2"
-msgstr ""
+msgstr "Ulica2"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report Information"
-msgstr ""
+msgstr "Informacija o Izvještaju"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,phone:0
#: wizard_field:base_setup.base_setup,init,phone:0
#: wizard_field:base_setup.base_setup,update,phone:0
msgid "Phone"
-msgstr ""
+msgstr "Telefon"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Define Main Company"
-msgstr ""
+msgstr "Odredite glavnu Tvrtku"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,name:0
#: wizard_field:base_setup.base_setup,init,name:0
#: wizard_field:base_setup.base_setup,update,name:0
msgid "Company Name"
-msgstr ""
+msgstr "Ime Tvrtke"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer2:0
@@ -157,13 +164,16 @@ msgid ""
"We suggest you to put bank information here:\n"
"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701"
msgstr ""
+"Ova će se rečenica pojavljivati u podnožju vaših izvještaja.\n"
+"Savjetujemo vam da ovdje upišete bankovne podatke:\n"
+"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - PDV: BE0477.472.701"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,country_id:0
#: wizard_field:base_setup.base_setup,init,country_id:0
#: wizard_field:base_setup.base_setup,update,country_id:0
msgid "Country"
-msgstr ""
+msgstr "Država"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
@@ -173,7 +183,7 @@ msgstr ""
#: model:ir.actions.wizard,name:base_setup.action_wizard_setup
#: model:ir.actions.wizard,name:base_setup.wizard_base_setup
msgid "Setup"
-msgstr ""
+msgstr "Postava"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer1:0
@@ -184,21 +194,24 @@ msgid ""
"We suggest you to write legal sentences here:\n"
"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
msgstr ""
+"Ova će se rečenica pojavljivati u podnožju vaših izvještaja.\n"
+"Savjetujemo vam da ovdje upišete osnovne podatke:\n"
+"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
#. module: base_setup
#: wizard_view:base_setup.base_setup,update:0
msgid "Summary"
-msgstr ""
+msgstr "Sižetak"
#. module: base_setup
#: wizard_button:base_setup.base_setup,update,finish:0
msgid "Install"
-msgstr ""
+msgstr "Instaliraj"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Installation Done"
-msgstr ""
+msgstr "Instalacija Završena"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_header1:0
@@ -209,57 +222,60 @@ msgid ""
"We suggest you to put a slogan here:\n"
"\"Open Source Business Solutions\"."
msgstr ""
+"Ova će se rečenica pojavljivati u gornjem desno kutu vaših izvještaja.\n"
+"Savjetujemo vam da ovdje upišete slogan tvrtke:\n"
+"\"Open Source Business Solutions\""
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_header1:0
#: wizard_field:base_setup.base_setup,init,rml_header1:0
#: wizard_field:base_setup.base_setup,update,rml_header1:0
msgid "Report Header"
-msgstr ""
+msgstr "Zaglavlje Izvještaja"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Your Logo - Use a size of about 450x150 pixels."
-msgstr ""
+msgstr "Vaš Logo: Koristite veličinu slike od cca. 450x150 pixela."
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,currency:0
#: wizard_field:base_setup.base_setup,init,currency:0
#: wizard_field:base_setup.base_setup,update,currency:0
msgid "Currency"
-msgstr ""
+msgstr "Valuta"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,street:0
#: wizard_field:base_setup.base_setup,init,street:0
#: wizard_field:base_setup.base_setup,update,street:0
msgid "Street"
-msgstr ""
+msgstr "Ulica"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,menu:0
msgid "Use Directly"
-msgstr ""
+msgstr "Koristi Izravno"
#. module: base_setup
#: wizard_button:base_setup.base_setup,init,menu:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,logo:0
#: wizard_field:base_setup.base_setup,init,logo:0
#: wizard_field:base_setup.base_setup,update,logo:0
msgid "Logo"
-msgstr ""
+msgstr "Logo"
#. module: base_setup
#: model:ir.module.module,shortdesc:base_setup.module_meta_information
msgid "Base Setup"
-msgstr ""
+msgstr "Osnovni Postav"
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,init:0
#: wizard_button:base_setup.base_setup,update,company:0
msgid "Previous"
-msgstr ""
+msgstr "Prethodno"
diff --git a/addons/base_vat/__terp__.py b/addons/base_vat/__terp__.py
index 6e1f03e4644..bdef947f77f 100644
--- a/addons/base_vat/__terp__.py
+++ b/addons/base_vat/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,12 @@
'name': 'Base VAT - To check VAT number validity',
'version': '1.0',
'category': 'Generic Modules/Base',
- 'description': """Enable the VAT Number for the partner. Check the validity of that VAT Number.""",
+ 'description': """
+ Enable the VAT Number for the partner. Check the validity of that VAT Number.
+
+ This module follows the methods stated at http://sima-pc.com/nif.php for
+ checking the validity of VAT Number assinged to partners in European countries.
+ """,
'author': 'Tiny',
'depends': ['base', 'account'],
'update_xml': ['base_vat_data.xml'],
diff --git a/addons/board_association/__terp__.py b/addons/board_association/__terp__.py
index ed2264fd6eb..56402fc64ef 100644
--- a/addons/board_association/__terp__.py
+++ b/addons/board_association/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -25,7 +25,12 @@
'version': '1.0',
'category': 'Board/Associations',
'description': """
-This module implements a dashboard for associations.
+This module implements a dashboard for associations that includes:
+ * New Members (graph)
+ * Registration by Events (graph)
+ * Next Events (list)
+ * My Tasks (list)
+ * Unpaid Invoices (list)
""",
'author': 'Tiny',
'depends': ['event', 'membership', 'board', 'project'],
diff --git a/addons/board_auction/__terp__.py b/addons/board_auction/__terp__.py
index bf43d74edf2..9a633e47af9 100644
--- a/addons/board_auction/__terp__.py
+++ b/addons/board_auction/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -26,7 +26,10 @@
'category': 'Board/Auction',
'description': """
This module creates a dashboards for auction that includes:
-
+ * My Latest Objects (list)
+ * My Latest Deposits (list)
+ * Objects Statistics (list)
+ * My Objects By Day (list)
""",
'author': 'Tiny',
'depends': ['board', 'auction'],
diff --git a/addons/board_document/__terp__.py b/addons/board_document/__terp__.py
index 0ba8552fb51..77fd09fdf45 100644
--- a/addons/board_document/__terp__.py
+++ b/addons/board_document/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,13 @@
'name': 'Dashboard for Document Management',
'version': '1.0',
'category': 'Board/Document',
- 'description': """ This module implements a dashboard for Document """,
+ 'description': """
+ This module implements a dashboard for Document that includes:
+ * New Files (list)
+ * Files by Resource Type (graph)
+ * Files by Partner (graph)
+ * Files by Month (graph)
+ """,
'author': 'Tiny',
'depends': ['board', 'document', 'report_document'],
'update_xml': ['board_document_view.xml'],
diff --git a/addons/board_hr/__terp__.py b/addons/board_hr/__terp__.py
index 937f4e72c32..b64d09c1b33 100644
--- a/addons/board_hr/__terp__.py
+++ b/addons/board_hr/__terp__.py
@@ -23,7 +23,7 @@
{
'name': 'Board for Human Reasources Management',
'version': '1.0',
- 'category': '',
+ 'category': 'Board/Human Resources',
'description': """
This module implements a dashboard for human resource management that includes:
* My Current Timesheet
diff --git a/addons/board_project/board_project_view.xml b/addons/board_project/board_project_view.xml
index 19cdb3a6a1b..fc79b0f9304 100644
--- a/addons/board_project/board_project_view.xml
+++ b/addons/board_project/board_project_view.xml
@@ -93,10 +93,10 @@
-
+
-
+
diff --git a/addons/board_project/i18n/sv.po b/addons/board_project/i18n/sv.po
index 16fdd4bd9ff..9d4dfb842a3 100644
--- a/addons/board_project/i18n/sv.po
+++ b/addons/board_project/i18n/sv.po
@@ -7,100 +7,100 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 11:05+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-24 08:22+0000\n"
+"Last-Translator: Anders Eriksson (Mobila System) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:48+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
#: view:board.board:0
msgid "My project's planning"
-msgstr ""
+msgstr "Mina projekts planering"
#. module: board_project
#: view:hr_timesheet_sheet.sheet:0
#: model:ir.actions.act_window,name:board_project.act_hr_timesheet_sheet
msgid "Timesheets"
-msgstr ""
+msgstr "Tidrapporter"
#. module: board_project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Felaktigt namn för modell i händelsedefinitionen."
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.act_my_project
msgid "My projects"
-msgstr ""
+msgstr "Mina projekt"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_view_task_tree_deadline
msgid "My Task's Deadlines"
-msgstr ""
+msgstr "Mina aktiviteters deadlines"
#. module: board_project
#: view:project.task:0
msgid "My Tasks"
-msgstr ""
+msgstr "Mina aktiviteter"
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.action_view_board_note_tree
msgid "Public Notes"
-msgstr ""
+msgstr "Publika Inlägg"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.open_board_project
#: model:ir.ui.menu,name:board_project.menu_board_project
msgid "Project Dashboard"
-msgstr ""
+msgstr "Projekt dashboard"
#. module: board_project
#: model:ir.module.module,shortdesc:board_project.module_meta_information
msgid "Board for project users"
-msgstr ""
+msgstr "Dashboard för projektanvändare"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_project_pipeline_user
msgid "Pipeline of tasks"
-msgstr ""
+msgstr "Aktiviteter i pipeline"
#. module: board_project
#: view:board.board:0
msgid "My Planning"
-msgstr ""
+msgstr "Min planering"
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.act_my_account
msgid "My accounts to invoice"
-msgstr ""
+msgstr "Mina konton som skall fakturerar"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.open_board_project_manager
#: model:ir.ui.menu,name:board_project.menu_board_project_manager
msgid "Project Manager Dashboard"
-msgstr ""
+msgstr "Projektledare dashboard"
#. module: board_project
#: view:board.board:0
msgid "My Deadlines"
-msgstr ""
+msgstr "Mina deadlines"
#. module: board_project
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Felaktig XML för Vyarkitektur!"
#. module: board_project
#: view:board.board:0
msgid "User's timesheets"
-msgstr ""
+msgstr "Användares tidrapporter"
#. module: board_project
#: model:ir.ui.menu,name:board_project.next_id_86
@@ -110,30 +110,30 @@ msgstr "Projekt"
#. module: board_project
#: view:board.board:0
msgid "Project manager board"
-msgstr ""
+msgstr "Projektledarens dashboard"
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.action_view_task_tree
msgid "My Open Tasks"
-msgstr ""
+msgstr "Mina öppna aktiviteter"
#. module: board_project
#: view:board.board:0
msgid "My Board"
-msgstr ""
+msgstr "Min dashboard"
#. module: board_project
#: view:board.board:0
msgid "My tasks board"
-msgstr ""
+msgstr "Dashboard för mina aktiviteter"
#. module: board_project
#: view:board.board:0
msgid "My user's pipeline"
-msgstr ""
+msgstr "Mina användares pipeline"
#. module: board_project
#: view:board.board:0
msgid "My Timesheet"
-msgstr ""
+msgstr "Min tidrapport"
diff --git a/addons/board_project/i18n/zh_CN.po b/addons/board_project/i18n/zh_CN.po
index f29a6851dcd..c21a62def53 100644
--- a/addons/board_project/i18n/zh_CN.po
+++ b/addons/board_project/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-20 07:39+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2010-03-29 00:44+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-21 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
@@ -116,7 +116,7 @@ msgstr "项目管理控制台"
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.action_view_task_tree
msgid "My Open Tasks"
-msgstr "我打开的任务"
+msgstr "我的未结任务"
#. module: board_project
#: view:board.board:0
diff --git a/addons/board_sale/i18n/sv.po b/addons/board_sale/i18n/sv.po
index 146ea3c73d8..bd03fc11c76 100644
--- a/addons/board_sale/i18n/sv.po
+++ b/addons/board_sale/i18n/sv.po
@@ -7,67 +7,67 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-03-24 13:56+0000\n"
+"Last-Translator: Anders Eriksson (Mobila System) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:43+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_sale
#: model:ir.module.module,shortdesc:board_sale.module_meta_information
msgid "Dashboard for sales"
-msgstr ""
+msgstr "Dashboard för kundorder"
#. module: board_sale
#: model:ir.actions.act_window,name:board_sale.open_board_sales_manager
#: model:ir.ui.menu,name:board_sale.menu_board_sales_manager
msgid "Sale Dashboard"
-msgstr ""
+msgstr "Kundorder dashboard"
#. module: board_sale
#: view:board.board:0
msgid "Sales of the month"
-msgstr ""
+msgstr "Försäljning denna månad"
#. module: board_sale
#: view:board.board:0
msgid "Sales manager board"
-msgstr ""
+msgstr "Dashboard för försäljningschef"
#. module: board_sale
#: view:board.board:0
msgid "Cases of the month"
-msgstr ""
+msgstr "Ärenden denna månad"
#. module: board_sale
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "Felaktig XML för Vyarkitektur!"
+msgstr "Ogiltig XML för Vy-arkitektur!"
#. module: board_sale
#: view:board.board:0
msgid "My open quotations"
-msgstr ""
+msgstr "Mina öppna offerter"
#. module: board_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "Felaktigt namn för modell i händelsedefinitionen."
+msgstr "Ogiltigt modellnamn i åtgärdsdefinitionen."
#. module: board_sale
#: model:ir.ui.menu,name:board_sale.next_id_88
msgid "Sales"
-msgstr ""
+msgstr "Kundorder"
#. module: board_sale
#: view:board.board:0
msgid "Cases statistics"
-msgstr ""
+msgstr "Ärendestatistik"
#. module: board_sale
#: view:board.board:0
msgid "Top ten sales of the month"
-msgstr ""
+msgstr "Top tio kundorder denna månad"
diff --git a/addons/caldav/caldav_node.py b/addons/caldav/caldav_node.py
index 1f5a2352b5f..64ee27b751a 100644
--- a/addons/caldav/caldav_node.py
+++ b/addons/caldav/caldav_node.py
@@ -64,6 +64,9 @@ class node_calendar(object):
def _get_ttag(self,cr):
return 'calendar-%d' % self.calendar_id
+
+ def get_dav_eprop(self,cr,ns,prop):
+ return None
class Calendar(osv.osv):
_inherit = 'basic.calendar'
diff --git a/addons/crm/i18n/de.po b/addons/crm/i18n/de.po
index cebfd12ac21..d068a0b9767 100644
--- a/addons/crm/i18n/de.po
+++ b/addons/crm/i18n/de.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2009-11-22 19:06+0000\n"
+"PO-Revision-Date: 2010-03-22 09:17+0000\n"
"Last-Translator: Ferdinand @ ChriCar \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:46+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
#: field:crm.email.add.cc,name:0
msgid "Send to"
-msgstr ""
+msgstr "gesendet an"
#. module: crm
#: help:crm.meeting,exdate:0
@@ -37,17 +37,17 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Title"
-msgstr ""
+msgstr "Titel"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
msgid "Cases by section and category2"
-msgstr ""
+msgstr "Fälle nach Sektionen und Kategorie 2"
#. module: crm
#: wizard_field:crm.lead.partner_create,init,close:0
msgid "Close Lead"
-msgstr ""
+msgstr "Beende Interessent"
#. module: crm
#: view:crm.job:0
@@ -55,17 +55,17 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " 7 Days "
-msgstr ""
+msgstr " 7 Tage "
#. module: crm
#: help:crm.menu.config_wizard,helpdesk:0
msgid "Manages an Helpdesk service."
-msgstr ""
+msgstr "Managt einen Anwendersupport."
#. module: crm
#: view:crm.job:0
msgid "Pending Jobs"
-msgstr ""
+msgstr "offene Jobangebote"
#. module: crm
#: field:crm.case.rule,trg_state_to:0
@@ -80,7 +80,7 @@ msgstr "Plankosten"
#. module: crm
#: wizard_field:crm.job.partner_create,init,close:0
msgid "Close job request"
-msgstr ""
+msgstr "Schliesse Job Anfrage"
#. module: crm
#: field:crm.case.stage,name:0
diff --git a/addons/crm/i18n/fi.po b/addons/crm/i18n/fi.po
index afbf0f90936..e14d2a64f2e 100644
--- a/addons/crm/i18n/fi.po
+++ b/addons/crm/i18n/fi.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-03-12 20:47+0000\n"
-"Last-Translator: Mauri Latvala \n"
+"PO-Revision-Date: 2010-03-22 18:16+0000\n"
+"Last-Translator: smii \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-13 04:51+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -130,7 +130,7 @@ msgstr ""
#. module: crm
#: view:crm.fundraising:0
msgid "Amount"
-msgstr ""
+msgstr "Määrä"
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
@@ -141,7 +141,7 @@ msgstr ""
#: model:crm.case.stage,name:crm.stage_claim2
#: model:crm.case.stage,name:crm.stage_meet1
msgid "Fixed"
-msgstr ""
+msgstr "Ennalta määrätty"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -310,7 +310,7 @@ msgstr "Viimeisin Tapahtumapäivämäärä"
#. module: crm
#: view:crm.job:0
msgid "Appreciation"
-msgstr ""
+msgstr "Arvonnousu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job3
@@ -342,7 +342,7 @@ msgstr "Varoitus!"
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Dates"
-msgstr ""
+msgstr "Päiväykset"
#. module: crm
#: view:crm.segmentation:0
@@ -404,7 +404,7 @@ msgstr ""
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
msgid "Opportunity Meeting"
-msgstr ""
+msgstr "Mahdollisuuskokous"
#. module: crm
#: help:crm.case,canal_id:0
@@ -456,7 +456,7 @@ msgstr ""
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead6
msgid "Dead"
-msgstr ""
+msgstr "Kuollut"
#. module: crm
#: view:crm.meeting:0
@@ -499,11 +499,12 @@ msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Valitse tämä jos haluat säännön liittävän sähköpostille muita vastaanottajia."
#. module: crm
#: field:crm.meeting,class:0
msgid "Privacy"
-msgstr ""
+msgstr "Yksityisyys"
#. module: crm
#: view:crm.case.rule:0
@@ -574,7 +575,7 @@ msgstr "Elokuu"
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Tree"
-msgstr ""
+msgstr "Kokouspuu"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -643,7 +644,7 @@ msgstr "Lokakuu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor3
msgid "Value Proposition"
-msgstr ""
+msgstr "Arvoesitys"
#. module: crm
#: view:crm.case.rule:0
@@ -712,7 +713,7 @@ msgstr ""
#. module: crm
#: view:crm.phonecall:0
msgid "Assigned to"
-msgstr ""
+msgstr "Annettu toimeksi"
#. module: crm
#: view:res.partner.events:0
@@ -763,7 +764,7 @@ msgstr ""
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Form"
-msgstr ""
+msgstr "Kokouslomake"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor5
@@ -784,7 +785,7 @@ msgstr "Tapahtumat mahdollisuuksien ja vaiheen mukaan"
#. module: crm
#: view:crm.claim:0
msgid "Date of Claim"
-msgstr ""
+msgstr "Vaateen päivämäärä"
#. module: crm
#: view:crm.segmentation.line:0
@@ -831,7 +832,7 @@ msgstr "Todennäköisyys (%)"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead
msgid "Leads Cases"
-msgstr ""
+msgstr "Vihjetapaukset"
#. module: crm
#: help:crm.case.section,reply_to:0
@@ -929,7 +930,7 @@ msgstr ""
#. module: crm
#: field:crm.segmentation,exclusif:0
msgid "Exclusive"
-msgstr ""
+msgstr "Poissulkeva"
#. module: crm
#: help:crm.case,categ_id:0
@@ -952,7 +953,7 @@ msgstr "Sähköposti!"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead6
msgid "Radio"
-msgstr ""
+msgstr "Radio"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity_assign_wizard
@@ -1082,7 +1083,7 @@ msgstr "%(tapahtuma_kuvaus) = Tapahtuma kuvaus"
#. module: crm
#: view:crm.fundraising:0
msgid "My Funds"
-msgstr ""
+msgstr "Omat rahastot"
#. module: crm
#: field:crm.case,partner_mobile:0
@@ -1201,7 +1202,7 @@ msgstr "Kumppanisegmentoinnit"
#. module: crm
#: view:crm.meeting:0
msgid "Recurrency Rule"
-msgstr ""
+msgstr "Toistumissääntö"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_categ
@@ -1351,7 +1352,7 @@ msgstr "Luontipäivämäärä"
#: view:crm.phonecall:0
#: model:process.node,name:crm.process_node_meeting0
msgid "Meeting"
-msgstr ""
+msgstr "Kokous"
#. module: crm
#: view:crm.case.rule:0
@@ -1440,7 +1441,7 @@ msgstr "Odotettu tuotto"
#. module: crm
#: view:crm.meeting:0
msgid "Meeting Date"
-msgstr ""
+msgstr "Kokouksen päivämäärä"
#. module: crm
#: view:crm.job:0
@@ -1452,7 +1453,7 @@ msgstr "Muunna kumppaniksi"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_meetall3
msgid "Next Meetings"
-msgstr ""
+msgstr "Seuraavat kokoukset"
#. module: crm
#: field:crm.segmentation,partner_id:0
@@ -1468,7 +1469,7 @@ msgstr "Et voi poistaa tätä kohtaa. Sinun olisi parempi peruuttaa se."
#. module: crm
#: wizard_button:caldav.crm.subscribe,init,open:0
msgid "_Subscribe"
-msgstr ""
+msgstr "_Tilaa"
#. module: crm
#: field:crm.case.rule,trg_priority_from:0
@@ -1483,7 +1484,7 @@ msgstr ""
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim2
msgid "Value Claims"
-msgstr ""
+msgstr "Arvovaateet"
#. module: crm
#: wizard_view:caldav.crm.subscribe,display:0
@@ -1560,7 +1561,7 @@ msgstr ""
#. module: crm
#: view:crm.fundraising:0
msgid "Funds"
-msgstr ""
+msgstr "Rahastot"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1586,23 +1587,23 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Candidate Name"
-msgstr ""
+msgstr "Ehdokkaan nimi"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead2
#: model:crm.case.categ,name:crm.categ_oppor2
msgid "Self Generated"
-msgstr ""
+msgstr "Itsestään luotu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim3
msgid "Won't fix"
-msgstr ""
+msgstr "Ei korjaa"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead4
msgid "Converted"
-msgstr ""
+msgstr "Muunnettu"
#. module: crm
#: view:crm.case:0
@@ -1632,7 +1633,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "History"
-msgstr ""
+msgstr "Historia"
#. module: crm
#: model:ir.model,name:crm.model_crm_job
@@ -1642,7 +1643,7 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Jobs - Recruitment Tree"
-msgstr ""
+msgstr "Työpaikat - Rekrytointipuu"
#. module: crm
#: field:crm.case.rule,regex_name:0
@@ -1656,7 +1657,7 @@ msgstr ""
#: field:report.crm.case.section.categ2,state:0
#: field:report.crm.case.section.stage,state:0
msgid "State"
-msgstr ""
+msgstr "Tila"
#. module: crm
#: view:crm.case:0
@@ -1670,7 +1671,7 @@ msgstr "Lähetä muistutus"
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "References"
-msgstr ""
+msgstr "Viittaukset"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1701,7 +1702,7 @@ msgstr ""
#: wizard_button:crm.send.mail,init,end:0
#, python-format
msgid "Cancel"
-msgstr ""
+msgstr "Peruuta"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1717,7 +1718,7 @@ msgstr ""
#. module: crm
#: view:crm.claim:0
msgid "Type of claim"
-msgstr ""
+msgstr "Vaateen tyyppi"
#. module: crm
#: view:crm.case:0
@@ -1727,17 +1728,17 @@ msgstr ""
#. module: crm
#: view:res.partner.events:0
msgid "General Description"
-msgstr ""
+msgstr "Yleinen kuvaus"
#. module: crm
#: view:crm.meeting:0
msgid "Other Info"
-msgstr ""
+msgstr "Muut tiedot"
#. module: crm
#: view:crm.claim:0
msgid "Claim Cost"
-msgstr ""
+msgstr "Vaadi kustannus"
#. module: crm
#: view:crm.job:0
@@ -1748,7 +1749,7 @@ msgstr ""
#. module: crm
#: field:crm.case,ref:0
msgid "Reference"
-msgstr ""
+msgstr "Viittaus"
#. module: crm
#: field:crm.meeting,exrule:0
@@ -1763,7 +1764,7 @@ msgstr ""
#. module: crm
#: model:crm.case.category2,name:crm.category_lead2
msgid "Mail"
-msgstr ""
+msgstr "Posti"
#. module: crm
#: field:crm.case.rule,act_priority:0
@@ -1773,7 +1774,7 @@ msgstr "Aseta prioriteetti"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor2
msgid "Needs Analysis"
-msgstr ""
+msgstr "Tarvitsee analysoinnin"
#. module: crm
#: view:crm.claim:0
@@ -1788,7 +1789,7 @@ msgstr "Viestirunko"
#. module: crm
#: help:crm.menu.config_wizard,meeting:0
msgid "Manages the calendar of meetings of the users."
-msgstr ""
+msgstr "Hallinnoi käyttäjien tapaamiskalenteria"
#. module: crm
#: selection:crm.segmentation.line,expr_name:0
@@ -1808,7 +1809,7 @@ msgstr ""
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid "="
-msgstr ""
+msgstr "="
#. module: crm
#: view:crm.fundraising:0
@@ -1816,17 +1817,17 @@ msgstr ""
#: field:crm.menu.config_wizard,name:0
#: field:crm.segmentation,name:0
msgid "Name"
-msgstr ""
+msgstr "Nimi"
#. module: crm
#: view:crm.opportunity:0
msgid "Sales Stage"
-msgstr ""
+msgstr "Myyntivaihe"
#. module: crm
#: field:crm.meeting,alarm_id:0
msgid "Alarm"
-msgstr ""
+msgstr "Hälytys"
#. module: crm
#: field:crm.case.rule,act_mail_to_watchers:0
@@ -1837,7 +1838,7 @@ msgstr ""
#: view:crm.fundraising:0
#: view:crm.meeting:0
msgid "Next Meeting"
-msgstr ""
+msgstr "Seuraava kokous"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1855,12 +1856,12 @@ msgstr "Sallii luonnoksettomien tapahtumien poiston"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor7
msgid "Closed Lost"
-msgstr ""
+msgstr "Suljettu menetys"
#. module: crm
#: field:crm.menu.config_wizard,bugs:0
msgid "Bug Tracking"
-msgstr ""
+msgstr "Ohjelmointivirheiden jäljitys"
#. module: crm
#: view:crm.case:0
@@ -1871,7 +1872,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Actions"
-msgstr ""
+msgstr "Toimenpiteet"
#. module: crm
#: selection:crm.case,priority:0
@@ -1879,12 +1880,12 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "High"
-msgstr ""
+msgstr "Suuri"
#. module: crm
#: model:process.node,note:crm.process_node_partner0
msgid "Convert to prospect to business partner"
-msgstr ""
+msgstr "Muunna ehdokas liiketoimintakumppaniksi"
#. module: crm
#: view:crm.claim:0
@@ -1909,12 +1910,12 @@ msgstr "Viive asetetun päivämäärän jälkeen"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead5
msgid "Web"
-msgstr ""
+msgstr "Web"
#. module: crm
#: view:crm.lead:0
msgid "Campaign Type"
-msgstr ""
+msgstr "Kampanjatyyppi"
#. module: crm
#: view:crm.segmentation:0
@@ -1926,7 +1927,7 @@ msgstr "Mielentilanlaskenta"
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "Error"
-msgstr ""
+msgstr "Virhe"
#. module: crm
#: model:ir.model,name:crm.model_crm_meeting_generic_wizard
diff --git a/addons/crm/i18n/fr.po b/addons/crm/i18n/fr.po
index d3a77572ea2..fbbda785372 100644
--- a/addons/crm/i18n/fr.po
+++ b/addons/crm/i18n/fr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.7\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-02-09 23:36+0000\n"
+"PO-Revision-Date: 2010-03-26 21:06+0000\n"
"Last-Translator: Sebastien LANGE - http://www.Syleam.fr \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:46+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -1753,7 +1753,7 @@ msgstr "Planifier un appel téléphonique"
#. module: crm
#: field:crm.case,ref:0
msgid "Reference"
-msgstr ""
+msgstr "Référence"
#. module: crm
#: field:crm.meeting,exrule:0
diff --git a/addons/crm/i18n/hr.po b/addons/crm/i18n/hr.po
index a995d20051e..4db724108af 100644
--- a/addons/crm/i18n/hr.po
+++ b/addons/crm/i18n/hr.po
@@ -1,25 +1,26 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * crm
-#
+# * crm
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2009-09-08 16:00+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:54+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:46+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: crm
#: field:crm.email.add.cc,name:0
msgid "Send to"
-msgstr ""
+msgstr "Pošalji prema"
#. module: crm
#: help:crm.meeting,exdate:0
@@ -27,27 +28,29 @@ msgid ""
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
+"Ovo svojstvo određuje listu datum/vrijeme Iznimaka za ponavljajuću "
+"komponentu kalendara."
#. module: crm
#: help:crm.case.rule,act_mail_to_user:0
msgid ""
"Check this if you want the rule to send an email to the responsible person."
-msgstr ""
+msgstr "Označite želite li da pravilo uključi slanje maila odgovornoj osobi."
#. module: crm
#: view:crm.meeting:0
msgid "Title"
-msgstr ""
+msgstr "Naslov"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
msgid "Cases by section and category2"
-msgstr ""
+msgstr "Slučajevi po Grupi i Kategoriji2"
#. module: crm
#: wizard_field:crm.lead.partner_create,init,close:0
msgid "Close Lead"
-msgstr ""
+msgstr "Zaključi Kontakt"
#. module: crm
#: view:crm.job:0
@@ -55,37 +58,37 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " 7 Days "
-msgstr ""
+msgstr " 7 dana "
#. module: crm
#: help:crm.menu.config_wizard,helpdesk:0
msgid "Manages an Helpdesk service."
-msgstr ""
+msgstr "Upravlja uslugom Helpdesk-a."
#. module: crm
#: view:crm.job:0
msgid "Pending Jobs"
-msgstr ""
+msgstr "Poslovi u tijeku"
#. module: crm
#: field:crm.case.rule,trg_state_to:0
msgid "Button Pressed"
-msgstr ""
+msgstr "Pritisnuta tipka"
#. module: crm
#: view:crm.case:0
msgid "Planned costs"
-msgstr ""
+msgstr "Planirani troškovi"
#. module: crm
#: wizard_field:crm.job.partner_create,init,close:0
msgid "Close job request"
-msgstr ""
+msgstr "Zaključi zahtjev za posao"
#. module: crm
#: field:crm.case.stage,name:0
msgid "Stage Name"
-msgstr ""
+msgstr "Naziv stupnja"
#. module: crm
#: view:crm.case:0
@@ -95,7 +98,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0-act
#: model:ir.ui.menu,name:crm.next_id_51
msgid "Cases"
-msgstr ""
+msgstr "Slučajevi"
#. module: crm
#: help:crm.segmentation,categ_id:0
@@ -103,16 +106,18 @@ msgid ""
"The partner category that will be added to partners that match the "
"segmentation criterions after computation."
msgstr ""
+"Kategorija partnera koja će biti dodana partnerima koji se - po izračunu - "
+"podudaraju s kriterijima segmentacije."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_hr
msgid "Human Resources"
-msgstr ""
+msgstr "Ljudski resursi"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
msgid "Cases by Opportunities, Category and Type"
-msgstr ""
+msgstr "Slučajevi po Prodajnim prilikama, Kategorijama i Tipu"
#. module: crm
#: help:crm.menu.config_wizard,claims:0
@@ -120,22 +125,24 @@ msgid ""
"Manages the supplier and customers claims, including your corrective or "
"preventive actions."
msgstr ""
+"Upravlja zahtjevima kupaca i dobavljača, uključujući vaše korektivne i "
+"preventivne radnje."
#. module: crm
#: view:crm.fundraising:0
msgid "Amount"
-msgstr ""
+msgstr "Iznos"
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
msgid "Normal or phone meeting for opportunity"
-msgstr ""
+msgstr "sObični sastanak ili telefonski razgovor, vezan uz Prodajnu priliku"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim2
#: model:crm.case.stage,name:crm.stage_meet1
msgid "Fixed"
-msgstr ""
+msgstr "Fiksno"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -144,40 +151,40 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "Warning !"
-msgstr ""
+msgstr "Upozorenje!"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#, python-format
msgid "Please specify user's email address !"
-msgstr ""
+msgstr "Molim, navedite e-mail adresu korisnika !"
#. module: crm
#: model:crm.case.categ,name:crm.categ_oppor5
msgid "Campaign"
-msgstr ""
+msgstr "Kampanja"
#. module: crm
#: view:crm.opportunity:0
msgid "Search Opportunities"
-msgstr ""
+msgstr "Pretraga Prodajnih prilika"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_section_stage_tree
#: view:report.crm.case.section.stage:0
msgid "Cases by Section and Stage"
-msgstr ""
+msgstr "Slučajevi po Grupi i Stupnju"
#. module: crm
#: wizard_field:crm.job.meeting_set,init,duration:0
#: wizard_field:crm.phonecall.meeting_set,init,duration:0
msgid "Duration (Hours)"
-msgstr ""
+msgstr "Trajanje (Sati)"
#. module: crm
#: selection:crm.meeting,transparent:0
msgid "TRANSPARENT"
-msgstr ""
+msgstr "TRANSPARENTAN"
#. module: crm
#: help:crm.case.rule,server_action_id:0
@@ -185,6 +192,8 @@ msgid ""
"Describes the action name.eg:on which object which ation to be taken on "
"basis of which condition"
msgstr ""
+"Opisuje naziv radnje. Npr. na kojem objektu će se izvršiti koja radnja na "
+"osnovi kojeg uvjeta"
#. module: crm
#: help:crm.case,section_id:0
@@ -192,6 +201,8 @@ msgid ""
"Section to which Case belongs to. Define Responsible user and Email account "
"for mail gateway."
msgstr ""
+"Grupa kojoj Slučaj pripada. Odredite odgovornog korisnika i e-mail adresu za "
+"mail gateway."
#. module: crm
#: view:crm.case:0
@@ -210,7 +221,7 @@ msgstr ""
#: wizard_field:crm.phonecall.opportunity_set,opportunity,partner_id:0
#: model:process.node,name:crm.process_node_partner0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: crm
#: field:crm.case.categ,section_id:0
@@ -220,17 +231,17 @@ msgstr ""
#: field:crm.case.stage,section_id:0
#: model:ir.model,name:crm.model_crm_case_section
msgid "Case Section"
-msgstr ""
+msgstr "Grupa Slučaja"
#. module: crm
#: view:crm.job:0
msgid "Proposed Salary"
-msgstr ""
+msgstr "Predložena Plaća"
#. module: crm
#: help:crm.case.section,sequence:0
msgid "Gives the sequence order when displaying a list of case sections."
-msgstr ""
+msgstr "Daje redoslijed kod prikazivanja liste Grupa Slučajeva"
#. module: crm
#: code:addons/crm/wizard/crm_job_wizard.py:0
@@ -238,27 +249,27 @@ msgstr ""
#: model:crm.case.categ,name:crm.categ_meet3
#, python-format
msgid "Phone Call"
-msgstr ""
+msgstr "Telefonski poziv"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_stage
msgid "Cases by section and stage"
-msgstr ""
+msgstr "Slučajevi po Grupi i Stupnju"
#. module: crm
#: field:crm.case.rule,act_mail_to_email:0
msgid "Mail to these emails"
-msgstr ""
+msgstr "Pošalji mail na te e-mail adrese"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
msgid "None"
-msgstr ""
+msgstr "Ništa"
#. module: crm
#: view:crm.case.rule:0
msgid "Special Keywords to Be Used in The Body"
-msgstr ""
+msgstr "Posebne ključne riječo koje se koriste u Tijelu teksta"
#. module: crm
#: view:crm.case:0
@@ -268,59 +279,59 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Send New Email"
-msgstr ""
+msgstr "Pošalji novi e-mail"
#. module: crm
#: view:crm.case.history:0
msgid "My Histories"
-msgstr ""
+msgstr "Moje Povijesti"
#. module: crm
#: field:crm.segmentation,segmentation_line:0
msgid "Criteria"
-msgstr ""
+msgstr "Kriteriji"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_section_act
#: model:ir.ui.menu,name:crm.menu_crm_case_section_act
msgid "Sections"
-msgstr ""
+msgstr "grupe"
#. module: crm
#: help:crm.menu.config_wizard,opportunity:0
msgid "Tracks identified business opportunities for your sales pipeline."
-msgstr ""
+msgstr "Prati prepoznate poslovne prilike u okviru vaše tijeka prodaje."
#. module: crm
#: view:crm.meeting:0
msgid "Exception Dates"
-msgstr ""
+msgstr "Datumi Iznimaka"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
msgid "Last Action Date"
-msgstr ""
+msgstr "Datum zadnje radnje"
#. module: crm
#: view:crm.job:0
msgid "Appreciation"
-msgstr ""
+msgstr "Povećanje vrijednosti; vrednovanje; uvažavanje"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job3
msgid "Second Interview"
-msgstr ""
+msgstr "Drugi razgovor"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
msgid "Subscribe to a Remote calendar"
-msgstr ""
+msgstr "Pretplatiti se na Izdvojeni kalendar"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ-act
#: model:ir.ui.menu,name:crm.menu_crm_case_categ-act
msgid "Categories"
-msgstr ""
+msgstr "Kategorije"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
@@ -336,39 +347,39 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Dates"
-msgstr ""
+msgstr "Datumi"
#. module: crm
#: view:crm.segmentation:0
msgid "Segmentation Test"
-msgstr ""
+msgstr "Segmentacijski test"
#. module: crm
#: model:process.transition,name:crm.process_transition_leadpartner0
msgid "Prospect Partner"
-msgstr ""
+msgstr "Izgledni Partner"
#. module: crm
#: view:crm.fundraising:0
#: view:crm.opportunity:0
msgid "Description Information"
-msgstr ""
+msgstr "Opisni podaci"
#. module: crm
#: view:crm.lead:0
msgid "Contact Name"
-msgstr ""
+msgstr "Ime osobe"
#. module: crm
#: selection:crm.lead.opportunity_set,create_partner,action:0
#: selection:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Link to an existing partner"
-msgstr ""
+msgstr "Poveznica s postojećim partnerom"
#. module: crm
#: field:crm.case.rule,trg_date_range_type:0
msgid "Delay type"
-msgstr ""
+msgstr "Tip odgode"
#. module: crm
#: view:crm.claim:0
@@ -378,27 +389,27 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid "Contact"
-msgstr ""
+msgstr "Osoba"
#. module: crm
#: view:crm.job:0
msgid "Next Interview"
-msgstr ""
+msgstr "Slijedeći razgovor"
#. module: crm
#: field:crm.case.rule,regex_history:0
msgid "Regular Expression on Case History"
-msgstr ""
+msgstr "Regularni Izraz na osnovi Povijesti Slučaja"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
msgid "Email Add CC"
-msgstr ""
+msgstr "Dodaj CC kod e-maila"
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
msgid "Opportunity Meeting"
-msgstr ""
+msgstr "Sastanak s prodajnom prilikom"
#. module: crm
#: help:crm.case,canal_id:0
@@ -407,22 +418,25 @@ msgid ""
"customer. With each commercial opportunity, you can indicate the canall "
"which is this opportunity source."
msgstr ""
+"Kanali predstavljaju različite modalitete komunikacije primjenjive sa "
+"strankom. Kod svake prodajne prilike, moguće je navesti kanal koji je izvor "
+"informacija vezan uz prodajnu priliku."
#. module: crm
#: view:crm.meeting:0
msgid "Exception Rules"
-msgstr ""
+msgstr "Pravila za Iznimke"
#. module: crm
#: field:crm.menu.config_wizard,opportunity:0
#: model:ir.actions.report.xml,name:crm.crm_business_opportunities_report
msgid "Business Opportunities"
-msgstr ""
+msgstr "poslovne prilike"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim1
msgid "Accepted as Claim"
-msgstr ""
+msgstr "Prihvaćeno kao potraživanje"
#. module: crm
#: view:crm.case.rule:0
@@ -430,37 +444,40 @@ msgid ""
"The rule use a AND operator. The case must match all non empty fields so "
"that the rule execute the action described in the 'Actions' tab."
msgstr ""
+"Pravilo koristi AND/I operator. Slučaj se mora podudarati sa svim ne-praznim "
+"poljima kako bi pravilo pokrenulo izvršenje radnje opisano u okviru Tab-a "
+"\"Radnje\"."
#. module: crm
#: field:crm.case,history_line:0
msgid "Communication"
-msgstr ""
+msgstr "Komunikacija"
#. module: crm
#: view:crm.case.rule:0
msgid "%(email_from)s = Partner email"
-msgstr ""
+msgstr "%(email_from)s = Partner email"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead6
msgid "Dead"
-msgstr ""
+msgstr "Mrtav"
#. module: crm
#: view:crm.meeting:0
msgid "Confirm Meeting"
-msgstr ""
+msgstr "Potvrdi sastanak"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead1
#: model:crm.case.categ,name:crm.categ_oppor1
msgid "Existing Customer"
-msgstr ""
+msgstr "Postojeća stranka"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet2
msgid "Home"
-msgstr ""
+msgstr "Početna stranica"
#. module: crm
#: field:crm.case,categ_id:0
@@ -472,14 +489,14 @@ msgstr ""
#: field:report.crm.case.section.categ.stage,categ_id:0
#: field:report.crm.case.section.stage,categ_id:0
msgid "Category"
-msgstr ""
+msgstr "Kategorija"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_categ_stage
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree
#: view:report.crm.case.section.categ.stage:0
msgid "Cases by Section, Category and Stage"
-msgstr ""
+msgstr "Slučajevi po Grupi, Kategoriji i Stupnju"
#. module: crm
#: help:crm.case.rule,act_mail_to_watchers:0
@@ -487,16 +504,18 @@ msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Odaberite ovu opcije ako želite da pravilo označi CC(Mail bilo kojoj drugoj "
+"osobi navedenoj u radnjama)"
#. module: crm
#: field:crm.meeting,class:0
msgid "Privacy"
-msgstr ""
+msgstr "Privatnost"
#. module: crm
#: view:crm.case.rule:0
msgid "%(partner)s = Partner name"
-msgstr ""
+msgstr "%(partner)s = Ime partnera"
#. module: crm
#: view:crm.case:0
@@ -506,40 +525,41 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Action Information"
-msgstr ""
+msgstr "Podaci o radnji"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_user_phone)s = Responsible phone"
-msgstr ""
+msgstr "%(case_user_phone)s = Tel. broj odgovorne osobe"
#. module: crm
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: crm
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions"
-msgstr ""
+msgstr "Uvjeti"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ0-act_open
msgid "Open Cases"
-msgstr ""
+msgstr "Otvoreni Slučajevi"
#. module: crm
#: field:crm.case.log,name:0
#: view:crm.claim:0
#: view:crm.job:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: crm
#: wizard_view:crm.case.opportunity.partner_opportunity,init:0
@@ -549,7 +569,7 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1
msgid "Create Opportunity"
-msgstr ""
+msgstr "Stvori Prodajnu priliku"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -557,12 +577,12 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "August"
-msgstr ""
+msgstr "Kolovoz"
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Tree"
-msgstr ""
+msgstr "Stablo sastanaka"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -574,23 +594,23 @@ msgstr ""
#: view:crm.opportunity:0
#, python-format
msgid "Escalate"
-msgstr ""
+msgstr "Eskalirati"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_categ_meet
msgid "All Meetings"
-msgstr ""
+msgstr "Svi sastanci"
#. module: crm
#: model:ir.module.module,shortdesc:crm.module_meta_information
msgid "Customer & Supplier Relationship Management"
-msgstr ""
+msgstr "upravljanje odnosima s Kupcima i Dobavljačima"
#. module: crm
#: view:crm.email.add.cc:0
#: model:ir.actions.act_window,name:crm.action_view_crm_email_add_cc_wizard
msgid "Add CC"
-msgstr ""
+msgstr "Dodaj CC"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -598,27 +618,27 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "June"
-msgstr ""
+msgstr "Lipanj"
#. module: crm
#: field:crm.segmentation,som_interval_default:0
msgid "Default (0=None)"
-msgstr ""
+msgstr "Default (0=None)"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job7
msgid "Refused by Company"
-msgstr ""
+msgstr "Odbijeno od strane Tvrtke"
#. module: crm
#: field:crm.case,planned_revenue:0
msgid "Planned Revenue"
-msgstr ""
+msgstr "Planirani prihod"
#. module: crm
#: field:crm.case.section,allow_unlink:0
msgid "Allow Delete"
-msgstr ""
+msgstr "Dopusti Brisanje"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -626,32 +646,32 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "October"
-msgstr ""
+msgstr "Listopad"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor3
msgid "Value Proposition"
-msgstr ""
+msgstr "Vrednuj Prijedlog"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_id)s = Case ID"
-msgstr ""
+msgstr "%(case_id)s = Case ID"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor2
msgid "New Business"
-msgstr ""
+msgstr "Novi Poslovni odnos"
#. module: crm
#: help:crm.case,email_from:0
msgid "These people will receive email."
-msgstr ""
+msgstr "Ove će osobe primiti mail."
#. module: crm
#: help:crm.case.section,calendar:0
msgid "Allows to show calendar"
-msgstr ""
+msgstr "Dopušta prikaz kalendara"
#. module: crm
#: view:crm.job:0
@@ -659,18 +679,18 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " Today "
-msgstr ""
+msgstr " Danas "
#. module: crm
#: wizard_view:crm.job.reschedule_phone_call,init:0
#: wizard_view:crm.opportunity.reschedule_phone_call,init:0
msgid "Phone Call Description"
-msgstr ""
+msgstr "Opis telefonskog razgovora"
#. module: crm
#: view:crm.case.categ:0
msgid "Case Category"
-msgstr ""
+msgstr "Kategorija Slučaja"
#. module: crm
#: help:crm.segmentation,som_interval_default:0
@@ -682,7 +702,7 @@ msgstr ""
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim3
msgid "Policy Claims"
-msgstr ""
+msgstr "Načela Potraživanja"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -692,26 +712,28 @@ msgstr ""
msgid ""
"You must define a responsible user for this case in order to use this action!"
msgstr ""
+"Morate odrediti odgovornog korisnika za taj Slučaj kako biste primijenili "
+"ovu radnju!"
#. module: crm
#: view:crm.phonecall:0
msgid "Assigned to"
-msgstr ""
+msgstr "Dodijeljeno"
#. module: crm
#: view:res.partner.events:0
msgid "Partner Events"
-msgstr ""
+msgstr "Događaji vezani uz Partnere"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job4
msgid "Contract Proposed"
-msgstr ""
+msgstr "Predložen Ugovor"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_job_req_main
msgid "Jobs - Hiring Process"
-msgstr ""
+msgstr "Poslovi - Proces zapošljavanja"
#. module: crm
#: view:crm.case:0
@@ -719,7 +741,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Related Cases"
-msgstr ""
+msgstr "Povezani slučajevi"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -727,7 +749,7 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "September"
-msgstr ""
+msgstr "Rujan"
#. module: crm
#: view:crm.case:0
@@ -737,85 +759,85 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Communication history"
-msgstr ""
+msgstr "Povijest komunikacije"
#. module: crm
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Nova potraživanja"
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Form"
-msgstr ""
+msgstr "Obrazac Sastanaka"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor5
msgid "Negotiation/Review"
-msgstr ""
+msgstr "Pregovaranje/Preispitivanje"
#. module: crm
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already defined on this phonecall."
-msgstr ""
+msgstr "Partner je već određen ovim telefonskim pozivom."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage
msgid "Cases by Opportunities and Stage"
-msgstr ""
+msgstr "Slučajevi prema Prilikama i Stupnju"
#. module: crm
#: view:crm.claim:0
msgid "Date of Claim"
-msgstr ""
+msgstr "Datum Potraživanja"
#. module: crm
#: view:crm.segmentation.line:0
msgid "Partner Segmentation Lines"
-msgstr ""
+msgstr "Slijedovi Segmentacije Partnera"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all
msgid "All Leads"
-msgstr ""
+msgstr "Svi Kontakti"
#. module: crm
#: view:crm.lead:0
msgid "Leads Form"
-msgstr ""
+msgstr "Obrazac Kontakta"
#. module: crm
#: view:crm.segmentation:0
#: model:ir.model,name:crm.model_crm_segmentation
msgid "Partner Segmentation"
-msgstr ""
+msgstr "Segmentacija Partnera"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job5
msgid "Contract Signed"
-msgstr ""
+msgstr "Ugovor potpisan"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Subscribe to Remote ICS"
-msgstr ""
+msgstr "Pretplatiti se na Izdvojen ICS"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor1
msgid "Existing Business"
-msgstr ""
+msgstr "Postojeći posao"
#. module: crm
#: field:crm.case,probability:0
#: field:crm.case.categ,probability:0
msgid "Probability (%)"
-msgstr ""
+msgstr "Vjerojatnost (%)"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead
msgid "Leads Cases"
-msgstr ""
+msgstr "Slučajevi Kontakta"
#. module: crm
#: help:crm.case.section,reply_to:0
@@ -823,12 +845,14 @@ msgid ""
"The email address put in the 'Reply-To' of all emails sent by Open ERP about "
"cases in this section"
msgstr ""
+"E-mail adresa koja se dodaje u polje \"Odgovoriti-na\" kod svih e-mailova "
+"koji su odaslani iz aplikacije Open ERP vezano uz Slučajeve u ovoj Grupi"
#. module: crm
#: view:crm.case.rule:0
#: model:ir.model,name:crm.model_crm_case_rule
msgid "Case Rule"
-msgstr ""
+msgstr "Pravilo Slučaja"
#. module: crm
#: code:addons/crm/crm_opportunity.py:0
@@ -840,7 +864,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor
#, python-format
msgid "Opportunity"
-msgstr ""
+msgstr "Prilika"
#. module: crm
#: view:crm.case:0
@@ -850,12 +874,12 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Emails"
-msgstr ""
+msgstr "Mailovi"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead7
msgid "Television"
-msgstr ""
+msgstr "Televizija"
#. module: crm
#: view:crm.segmentation:0
@@ -865,23 +889,23 @@ msgstr ""
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim1
msgid "Factual Claims"
-msgstr ""
+msgstr "Faktična potraživanja"
#. module: crm
#: view:crm.phonecall:0
msgid "Search Phonecalls"
-msgstr ""
+msgstr "Pretraži Telefonske pozive"
#. module: crm
#: wizard_button:crm.lead.opportunity_set,create_partner,create:0
#: wizard_button:crm.phonecall.opportunity_set,create_partner,create:0
msgid "Continue"
-msgstr ""
+msgstr "Nastavi"
#. module: crm
#: field:crm.segmentation,som_interval:0
msgid "Days per Periode"
-msgstr ""
+msgstr "Dani po Periodu"
#. module: crm
#: field:crm.segmentation.line,expr_value:0
@@ -891,13 +915,13 @@ msgstr ""
#. module: crm
#: help:caldav.crm.export,init,name:0
msgid "Save in .ics format"
-msgstr ""
+msgstr "Spremi u .ics formatu"
#. module: crm
#: wizard_field:crm.new.send.mail,init,text:0
#: wizard_field:crm.send.mail,init,text:0
msgid "Message"
-msgstr ""
+msgstr "Poruka"
#. module: crm
#: help:crm.segmentation,exclusif:0
@@ -906,11 +930,14 @@ msgid ""
"criterions. If checked, remove the category from partners that doesn't match "
"segmentation criterions"
msgstr ""
+"Provjerite je li kategorija je ograničena na partnere koji odgovaraju "
+"kriterijima segmentacije. Ako je tako, uklonite kategoriju iz grupe partnera "
+"koji ne odgovara kriterijima segmentacije"
#. module: crm
#: field:crm.segmentation,exclusif:0
msgid "Exclusive"
-msgstr ""
+msgstr "Isključujući"
#. module: crm
#: help:crm.case,categ_id:0
@@ -918,47 +945,49 @@ msgid ""
"Category related to the section.Subdivide the CRM cases independently or "
"section-wise."
msgstr ""
+"Kategorija koja se odnosi na Grupu. Podijelite CRM Slučajeve pojedinačno ili "
+"u Grupe."
#. module: crm
#: field:crm.case.rule,act_state:0
msgid "Set state to"
-msgstr ""
+msgstr "Postavi stanje na"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "Email!"
-msgstr ""
+msgstr "Email!"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead6
msgid "Radio"
-msgstr ""
+msgstr "Radio"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity_assign_wizard
msgid "crm.opportunity.assign_wizard"
-msgstr ""
+msgstr "crm.opportunity.assign_wizard"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on States"
-msgstr ""
+msgstr "Uvjeti Stanja"
#. module: crm
#: field:crm.case.rule,trg_date_type:0
msgid "Trigger Date"
-msgstr ""
+msgstr "Datum pokretač"
#. module: crm
#: view:crm.case.history:0
msgid "Search Histories"
-msgstr ""
+msgstr "Pretraži Povijesti"
#. module: crm
#: help:crm.case.stage,sequence:0
msgid "Gives the sequence order when displaying a list of case stages."
-msgstr ""
+msgstr "Daje redoslijed kod prikazivanja liste Stupnjeva Slučajeva"
#. module: crm
#: model:crm.case.section,name:crm.section_support3
@@ -966,33 +995,33 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_opp
#: model:process.node,name:crm.process_node_opportunities0
msgid "Opportunities"
-msgstr ""
+msgstr "Prilike"
#. module: crm
#: help:crm.segmentation,name:0
msgid "The name of the segmentation."
-msgstr ""
+msgstr "Naziv segmentacije"
#. module: crm
#: field:crm.case.rule,trg_partner_categ_id:0
#: field:crm.segmentation,categ_id:0
msgid "Partner Category"
-msgstr ""
+msgstr "Kategorija Partnera"
#. module: crm
#: field:crm.segmentation,sales_purchase_active:0
msgid "Use The Sales Purchase Rules"
-msgstr ""
+msgstr "Koristi Pravila vezana uz Kupoprodaju"
#. module: crm
#: selection:crm.segmentation.line,expr_name:0
msgid "Purchase Amount"
-msgstr ""
+msgstr "Iznos kupnje"
#. module: crm
#: view:crm.phonecall:0
msgid "Direction"
-msgstr ""
+msgstr "Smjer"
#. module: crm
#: help:crm.case,email_cc:0
@@ -1001,6 +1030,8 @@ msgid ""
"These people will receive a copy of the future communication between partner "
"and users by email"
msgstr ""
+"Ovi ljudi će dobiti primjerak budućih komunikacije između partnera i "
+"korisnika putem e-pošte"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -1008,35 +1039,35 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "March"
-msgstr ""
+msgstr "Ožujak"
#. module: crm
#: view:crm.case.rule:0
msgid "Server Action to be Triggered"
-msgstr ""
+msgstr "AKtivnost Servera koja se pokreće"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_rule-act
#: model:ir.ui.menu,name:crm.menu_crm_case_rule-act
msgid "Rules"
-msgstr ""
+msgstr "Pravila"
#. module: crm
#: wizard_view:crm.job.meeting_set,init:0
#: wizard_view:crm.phonecall.meeting_set,init:0
msgid "Plan Meeting"
-msgstr ""
+msgstr "Planiraj Sastanak"
#. module: crm
#: wizard_field:crm.new.send.mail,init,state:0
msgid "Set State to"
-msgstr ""
+msgstr "Postavi stanje"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "There is no mail to reply!"
-msgstr ""
+msgstr "Ne postoji mail za odgovor!"
#. module: crm
#: wizard_button:crm.job.partner_create,init,confirm:0
@@ -1046,73 +1077,73 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_partner_create
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_partner_create
msgid "Create Partner"
-msgstr ""
+msgstr "Krairaj Partnera"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid "<"
-msgstr ""
+msgstr "<"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_description)s = Case description"
-msgstr ""
+msgstr "%(case_description)s = Opis Slučaja"
#. module: crm
#: view:crm.fundraising:0
msgid "My Funds"
-msgstr ""
+msgstr "Moja sredstva"
#. module: crm
#: field:crm.case,partner_mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Mobitel"
#. module: crm
#: field:crm.case.rule,name:0
#: field:crm.segmentation.line,name:0
msgid "Rule Name"
-msgstr ""
+msgstr "Ime pravila"
#. module: crm
#: field:crm.case,planned_cost:0
msgid "Planned Costs"
-msgstr ""
+msgstr "Planirani troškovi"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_history
msgid "Case history"
-msgstr ""
+msgstr "Povijest slučaja"
#. module: crm
#: model:crm.case.categ,name:crm.categ_job2
msgid "Junior Developer"
-msgstr ""
+msgstr "Mlađi programer"
#. module: crm
#: view:crm.meeting:0
msgid "My Meetings"
-msgstr ""
+msgstr "Moji sastanci"
#. module: crm
#: field:crm.case.categ,name:0
msgid "Case Category Name"
-msgstr ""
+msgstr "Naziv Kategorije Slučaja"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim2
msgid "Preventive"
-msgstr ""
+msgstr "Preventivno"
#. module: crm
#: field:crm.case.rule,act_email_cc:0
msgid "Add watchers (Cc)"
-msgstr ""
+msgstr "Dodaj mail nadglednika u (Cc)"
#. module: crm
#: wizard_view:caldav.crm.export,init:0
msgid "Export ICS"
-msgstr ""
+msgstr "Izvezi ICS"
#. module: crm
#: code:addons/crm/crm_claim.py:0
@@ -1122,13 +1153,14 @@ msgstr ""
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "You can not assign Closed Case."
-msgstr ""
+msgstr "Ne možete dodijeliti zaključen slučaj"
#. module: crm
#: help:crm.case.rule,act_remind_partner:0
msgid ""
"Check this if you want the rule to send a reminder by email to the partner."
msgstr ""
+"Označite želite li postaviti pravilo slanja e-mail podsjetnika partneru."
#. module: crm
#: code:addons/crm/crm_meeting.py:0
@@ -1138,17 +1170,17 @@ msgstr ""
#: view:crm.meeting:0
#, python-format
msgid "Meetings"
-msgstr ""
+msgstr "Sastanci"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Case Fields"
-msgstr ""
+msgstr "Uvjeti vezani uz polja Slučaja"
#. module: crm
#: field:crm.case,date_action_next:0
msgid "Next Action"
-msgstr ""
+msgstr "Siljedeća Radnja"
#. module: crm
#: view:crm.case:0
@@ -1156,34 +1188,34 @@ msgstr ""
#: selection:crm.case.rule,trg_date_type:0
#: view:crm.opportunity:0
msgid "Deadline"
-msgstr ""
+msgstr "Rok"
#. module: crm
#: wizard_button:caldav.crm.export,init,end:0
#: wizard_button:caldav.crm.import,init,end:0
#: wizard_button:caldav.crm.subscribe,init,end:0
msgid "_Cancel"
-msgstr ""
+msgstr "_Odustani"
#. module: crm
#: field:crm.case,category2_id:0
msgid "Category Name"
-msgstr ""
+msgstr "Naziv Kategorije"
#. module: crm
#: view:crm.segmentation:0
msgid "Partner Segmentations"
-msgstr ""
+msgstr "Segmentacije Partnera"
#. module: crm
#: view:crm.meeting:0
msgid "Recurrency Rule"
-msgstr ""
+msgstr "Pravilo ponavljanja"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_categ
msgid "Category of case"
-msgstr ""
+msgstr "Kategorija slučaja"
#. module: crm
#: field:crm.email.add.cc,subject:0
@@ -1192,12 +1224,12 @@ msgstr ""
#: view:crm.phonecall:0
#: wizard_field:crm.send.mail,init,subject:0
msgid "Subject"
-msgstr ""
+msgstr "Predmet"
#. module: crm
#: field:crm.meeting,attendees:0
msgid "Attendees"
-msgstr ""
+msgstr "Sudionici"
#. module: crm
#: model:ir.module.module,description:crm.module_meta_information
@@ -1227,38 +1259,61 @@ msgid ""
"The CRM module has a email gateway for the synchronisation interface\n"
"between mails and Open ERP."
msgstr ""
+"Open ERP - Generički Sustav za Upravljanje Odnosima s Korisnicima omogućava "
+"inteligentno i učinkovito upravljanje\n"
+"Kontaktima, prilikama, zadaćama, upitima, zahtjevi, bugovima, kampanjama, "
+"potraživanjima, itd.\n"
+"Omogućva rukovođenje ključnih zadataka, kao što su komunikacije, "
+"identifikacije prioriteta, zadaćama, rješenjima i obavijestima.\n"
+"\n"
+"Open ERP osigurava da se svi slučajevi uspješno prate od strane korisnika, "
+"kupaca i dobavljača. Može automatski poslati podsjetnike, eskalirati "
+"zahtjev, pokrenuti specifične metode te puno drugih akcija na temelju "
+"pravila Vaše tvrtke.\n"
+"\n"
+"Najvažnija odlika ovog sustava je da korisnici ne moraju činiti ništa\n"
+"posebno. Pošalju li e-mail na Request Tracker, Open ERP će automatizmom "
+"voditi brigu o preusmjeravanju sljedbenih radnji; poslati zahvalnicu "
+"korisniku, proslijediti poruku odgovornim djelatnicima, automatski je "
+"usmjeravanje na\n"
+"odgovarajuće osoblje te omogućiti da se sva buduća korespondencija ispravno "
+"usmjerava i definira.\n"
+"\n"
+"CRM modul ima e-mail gateway - sučelje za sinkronizaciju e-mailova s Open "
+"ERP-om.\n"
+"između pošte i Open ERP-a."
#. module: crm
#: model:process.transition,note:crm.process_transition_leadpartner0
msgid "Prospect is converting to business partner"
-msgstr ""
+msgstr "Izgledna stranka pretvara se u poslovnog Partnera"
#. module: crm
#: view:crm.case.rule:0
msgid "Regex on Case Name"
-msgstr ""
+msgstr "Regex na Ime Slučaja"
#. module: crm
#: view:crm.claim:0
msgid "Pending Claims"
-msgstr ""
+msgstr "Potraživanja i tijeku"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_stage
msgid "Cases by Opportunities, Category and Stage"
-msgstr ""
+msgstr "Slučajevi po Prodajnim prilikama, Kategoriji i Stupnju"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead4
msgid "Print"
-msgstr ""
+msgstr "Ispis"
#. module: crm
#: field:crm.case,som:0
#: field:crm.case.log,som:0
#: selection:crm.segmentation.line,expr_name:0
msgid "State of Mind"
-msgstr ""
+msgstr "Stanje uma"
#. module: crm
#: view:crm.claim:0
@@ -1266,22 +1321,22 @@ msgstr ""
#: field:report.crm.case.section.categ.categ2,category2_id:0
#: field:report.crm.case.section.categ2,category2_id:0
msgid "Type"
-msgstr ""
+msgstr "Tip"
#. module: crm
#: view:crm.job:0
msgid "Candidate Refused"
-msgstr ""
+msgstr "Kandidat odbijen"
#. module: crm
#: view:crm.segmentation:0
msgid "Compute Segmentation"
-msgstr ""
+msgstr "Izračunaj Segmentaciju"
#. module: crm
#: view:crm.lead:0
msgid "Lead Email"
-msgstr ""
+msgstr "E-mail Kontakta"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_segmentation-act
@@ -1289,24 +1344,24 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_segmentation-act
#: model:ir.ui.menu,name:crm.next_id_53
msgid "Segmentations"
-msgstr ""
+msgstr "Segmentacije"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
msgid "Creation Date"
-msgstr ""
+msgstr "Datum stvaranja"
#. module: crm
#: view:crm.meeting:0
#: view:crm.phonecall:0
#: model:process.node,name:crm.process_node_meeting0
msgid "Meeting"
-msgstr ""
+msgstr "Sastanak"
#. module: crm
#: view:crm.case.rule:0
msgid "%(partner_email)s = Partner email"
-msgstr ""
+msgstr "%(partner_email)s = Partner email"
#. module: crm
#: view:crm.case:0
@@ -1317,17 +1372,17 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid "Reset to Draft"
-msgstr ""
+msgstr "Vrati na Nacrt"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ_categ2
msgid "Cases by section, Category and Category2"
-msgstr ""
+msgstr "Slučajevi po grupi, kategoriji i kategoriji2"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor6
msgid "Closed Won"
-msgstr ""
+msgstr "Zaključen dobijen"
#. module: crm
#: model:ir.actions.act_window,name:crm.act_crm_case_categ_crm_case_opened
@@ -1336,7 +1391,7 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.act_res_partner_canal_2_crm_case_opened
#: model:ir.actions.act_window,name:crm.act_res_users_2_crm_case_opened
msgid "Open cases"
-msgstr ""
+msgstr "Otvoreni Slučajevi"
#. module: crm
#: field:crm.case,stage_id:0
@@ -1346,12 +1401,12 @@ msgstr ""
#: field:report.crm.case.section.categ2,stage_id:0
#: field:report.crm.case.section.stage,stage_id:0
msgid "Stage"
-msgstr ""
+msgstr "Stupanj"
#. module: crm
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Invalid XML for View Architecture!"
#. module: crm
#: help:crm.case.section,active:0
@@ -1359,106 +1414,110 @@ msgid ""
"If the active field is set to true, it will allow you to hide the case "
"section without removing it."
msgstr ""
+"Ako je aktivno polje postavljeno na TRUE, moći ćete sakriti Grupu Slučajeva "
+"bez da je izbrišete."
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund2
msgid "Learning And Education"
-msgstr ""
+msgstr "Učenje i obrazovanje"
#. module: crm
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "Are you sure you want to create a partner based on this phonecall ?"
msgstr ""
+"Jeste li sigurni da želite kreirati Partnera na osnovi ovog telefonskog "
+"poziva?"
#. module: crm
#: view:crm.case.stage:0
#: model:ir.actions.act_window,name:crm.crm_case_stage_act
#: model:ir.ui.menu,name:crm.menu_crm_case_stage_act
msgid "Stages"
-msgstr ""
+msgstr "Stupnjevi"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0
#: wizard_field:crm.lead.opportunity_set,opportunity,planned_revenue:0
#: wizard_field:crm.phonecall.opportunity_set,opportunity,planned_revenue:0
msgid "Expected Revenue"
-msgstr ""
+msgstr "Očekivani prihod"
#. module: crm
#: view:crm.meeting:0
msgid "Meeting Date"
-msgstr ""
+msgstr "Datum sastanka"
#. module: crm
#: view:crm.job:0
#: view:crm.lead:0
#: view:crm.phonecall:0
msgid "Convert to Partner"
-msgstr ""
+msgstr "Pretvori u Partnera"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_meetall3
msgid "Next Meetings"
-msgstr ""
+msgstr "Slijedeći sastanci"
#. module: crm
#: field:crm.segmentation,partner_id:0
msgid "Max Partner ID processed"
-msgstr ""
+msgstr "Max Partner ID processed"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "You can not delete this case. You should better cancel it."
-msgstr ""
+msgstr "Ne možete izbrisati ovaj Slučaj. Morate ga Otkazati."
#. module: crm
#: wizard_button:caldav.crm.subscribe,init,open:0
msgid "_Subscribe"
-msgstr ""
+msgstr "-Prijava"
#. module: crm
#: field:crm.case.rule,trg_priority_from:0
msgid "Minimum Priority"
-msgstr ""
+msgstr "Minimalni prioritet"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_meeting_generic_wizard_act
msgid "Meeting Generic Wizard"
-msgstr ""
+msgstr "Osnovni Čarobnjak za Sastanak"
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim2
msgid "Value Claims"
-msgstr ""
+msgstr "Vrijednosna potraživanja"
#. module: crm
#: wizard_view:caldav.crm.subscribe,display:0
msgid "Message..."
-msgstr ""
+msgstr "Poruka..."
#. module: crm
#: model:ir.model,name:crm.model_crm_phonecall_assign_wizard
msgid "crm.phonecall.assign_wizard"
-msgstr ""
+msgstr "crm.phonecall.assign_wizard"
#. module: crm
#: view:report.crm.case.section.categ2:0
msgid "Cases by Section and Category2"
-msgstr ""
+msgstr "Slučajevi po Grupi i Kategoriji2"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "done"
-msgstr ""
+msgstr "gotovo"
#. module: crm
#: view:crm.meeting:0
#: view:crm.phonecall:0
msgid "Reminder"
-msgstr ""
+msgstr "Podsjetnik"
#. module: crm
#: help:crm.segmentation,sales_purchase_active:0
@@ -1466,33 +1525,35 @@ msgid ""
"Check if you want to use this tab as part of the segmentation rule. If not "
"checked, the criteria beneath will be ignored"
msgstr ""
+"Označite ako želite koristiti ovu karticu (Tab) kao dio pravila "
+"segmentacije. Ako ne označite, kriteriji koji slijedi će biti zanemaren"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "open"
-msgstr ""
+msgstr "otvori"
#. module: crm
#: field:crm.case.rule,act_remind_attach:0
msgid "Remind with attachment"
-msgstr ""
+msgstr "Podsjeti s privitkom"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead6
#: model:crm.case.categ,name:crm.categ_oppor6
msgid "Website"
-msgstr ""
+msgstr "Web stranica"
#. module: crm
#: field:crm.case.rule,act_remind_user:0
msgid "Remind responsible"
-msgstr ""
+msgstr "Podsjeti odgovorne"
#. module: crm
#: field:crm.segmentation,state:0
msgid "Execution Status"
-msgstr ""
+msgstr "Status izvršenja"
#. module: crm
#: help:crm.menu.config_wizard,jobs:0
@@ -1500,23 +1561,25 @@ msgid ""
"Helps you to organise the jobs hiring process: evaluation, meetings, email "
"integration..."
msgstr ""
+"Pomaže vam organizirati poslove procesa zapošljavanja: evaluaciju, sastanke, "
+"integraciju e-mailova ..."
#. module: crm
#: view:crm.fundraising:0
msgid "Funds"
-msgstr ""
+msgstr "Sredstva"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "draft"
-msgstr ""
+msgstr "Nacrt"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim5
#: model:crm.case.stage,name:crm.stage_meet4
msgid "Awaiting Response"
-msgstr ""
+msgstr "Očekujući odgovor"
#. module: crm
#: field:crm.case,date:0
@@ -1525,28 +1588,28 @@ msgstr ""
#: view:crm.claim:0
#: view:crm.phonecall:0
msgid "Date"
-msgstr ""
+msgstr "Datum"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name"
-msgstr ""
+msgstr "Ime kandidata"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead2
#: model:crm.case.categ,name:crm.categ_oppor2
msgid "Self Generated"
-msgstr ""
+msgstr "Samo-generirano"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim3
msgid "Won't fix"
-msgstr ""
+msgstr "Neće se fiksirati"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead4
msgid "Converted"
-msgstr ""
+msgstr "Pretvoren"
#. module: crm
#: view:crm.case:0
@@ -1556,17 +1619,17 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Reply to Last Email"
-msgstr ""
+msgstr "Odgovori na zadnji mail"
#. module: crm
#: view:crm.segmentation:0
msgid "Segmentation Description"
-msgstr ""
+msgstr "Opis Segmentacije"
#. module: crm
#: help:crm.meeting,location:0
msgid "Gives Location of Meeting"
-msgstr ""
+msgstr "Daje lokaciju sastanka"
#. module: crm
#: view:crm.case:0
@@ -1576,22 +1639,22 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "History"
-msgstr ""
+msgstr "Povijest"
#. module: crm
#: model:ir.model,name:crm.model_crm_job
msgid "Job Cases"
-msgstr ""
+msgstr "Slučajevi posla"
#. module: crm
#: view:crm.job:0
msgid "Jobs - Recruitment Tree"
-msgstr ""
+msgstr "Poslovi - Stablo procesa novačenja"
#. module: crm
#: field:crm.case.rule,regex_name:0
msgid "Regular Expression on Case Name"
-msgstr ""
+msgstr "Regularni Izraz na osnovi Naziva Slučaja"
#. module: crm
#: field:crm.case,state:0
@@ -1600,12 +1663,12 @@ msgstr ""
#: field:report.crm.case.section.categ2,state:0
#: field:report.crm.case.section.stage,state:0
msgid "State"
-msgstr ""
+msgstr "Država"
#. module: crm
#: view:crm.case:0
msgid "Send Reminder"
-msgstr ""
+msgstr "Pošalji podsjetnik"
#. module: crm
#: view:crm.case:0
@@ -1614,7 +1677,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "References"
-msgstr ""
+msgstr "Reference"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1645,99 +1708,99 @@ msgstr ""
#: wizard_button:crm.send.mail,init,end:0
#, python-format
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "No E-Mail ID Found for your Company address!"
-msgstr ""
+msgstr "Nema e-mail ID-a za adresu Vaše Tvrtke"
#. module: crm
#: view:crm.fundraising:0
msgid "Search Funds"
-msgstr ""
+msgstr "Pretraži Sredstva"
#. module: crm
#: view:crm.claim:0
msgid "Type of claim"
-msgstr ""
+msgstr "Tip potraživanja"
#. module: crm
#: view:crm.case:0
msgid "Helpdesk Support Tree"
-msgstr ""
+msgstr "Stablo Helpdesk Potpore"
#. module: crm
#: view:res.partner.events:0
msgid "General Description"
-msgstr ""
+msgstr "Opći opis"
#. module: crm
#: view:crm.meeting:0
msgid "Other Info"
-msgstr ""
+msgstr "Druge informacije"
#. module: crm
#: view:crm.claim:0
msgid "Claim Cost"
-msgstr ""
+msgstr "Potraživanje troška"
#. module: crm
#: view:crm.job:0
#: view:crm.opportunity:0
msgid "Schedule a Phone Call"
-msgstr ""
+msgstr "Rasporedi Telefonski poziv"
#. module: crm
#: field:crm.case,ref:0
msgid "Reference"
-msgstr ""
+msgstr "Referenca"
#. module: crm
#: field:crm.meeting,exrule:0
msgid "Exception Rule"
-msgstr ""
+msgstr "Pravilo Iznimke"
#. module: crm
#: help:crm.case.rule,act_mail_to_partner:0
msgid "Check this if you want the rule to send an email to the partner."
-msgstr ""
+msgstr "Označite želite li postaviti pravilo slanja e-maila partneru."
#. module: crm
#: model:crm.case.category2,name:crm.category_lead2
msgid "Mail"
-msgstr ""
+msgstr "Mail"
#. module: crm
#: field:crm.case.rule,act_priority:0
msgid "Set priority to"
-msgstr ""
+msgstr "Postavite priorite"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor2
msgid "Needs Analysis"
-msgstr ""
+msgstr "Treba analizu"
#. module: crm
#: view:crm.claim:0
msgid "Search Claims"
-msgstr ""
+msgstr "Pretraži ptraživanja"
#. module: crm
#: field:crm.case.rule,act_mail_body:0
msgid "Mail body"
-msgstr ""
+msgstr "Tijelo Maila"
#. module: crm
#: help:crm.menu.config_wizard,meeting:0
msgid "Manages the calendar of meetings of the users."
-msgstr ""
+msgstr "Upravlja kalendarom sastanaka korisnika"
#. module: crm
#: selection:crm.segmentation.line,expr_name:0
msgid "Sale Amount"
-msgstr ""
+msgstr "Iznos prodaje"
#. module: crm
#: view:crm.case:0
@@ -1747,12 +1810,12 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Add a CC"
-msgstr ""
+msgstr "Dodaj CC"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid "="
-msgstr ""
+msgstr "="
#. module: crm
#: view:crm.fundraising:0
@@ -1760,28 +1823,28 @@ msgstr ""
#: field:crm.menu.config_wizard,name:0
#: field:crm.segmentation,name:0
msgid "Name"
-msgstr ""
+msgstr "Ime"
#. module: crm
#: view:crm.opportunity:0
msgid "Sales Stage"
-msgstr ""
+msgstr "Stupanj prodaje"
#. module: crm
#: field:crm.meeting,alarm_id:0
msgid "Alarm"
-msgstr ""
+msgstr "Alarm"
#. module: crm
#: field:crm.case.rule,act_mail_to_watchers:0
msgid "Mail to watchers (CC)"
-msgstr ""
+msgstr "Pošalji mail nadglednicima kao (CC)"
#. module: crm
#: view:crm.fundraising:0
#: view:crm.meeting:0
msgid "Next Meeting"
-msgstr ""
+msgstr "Slijedeći sastanak"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1790,21 +1853,23 @@ msgid ""
"No E-Mail ID Found for your Company address or missing reply address in "
"section!"
msgstr ""
+"Nije nađen e-amil ID za adresu Vaše tvrtke ili nedostaje mail adresa za "
+"odgovor u grupi!"
#. module: crm
#: help:crm.case.section,allow_unlink:0
msgid "Allows to delete non draft cases"
-msgstr ""
+msgstr "Omogućuje brisanje slučajeva koji nisu u nacrtu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor7
msgid "Closed Lost"
-msgstr ""
+msgstr "Zaključen izgubljen"
#. module: crm
#: field:crm.menu.config_wizard,bugs:0
msgid "Bug Tracking"
-msgstr ""
+msgstr "Traženje Bugova"
#. module: crm
#: view:crm.case:0
@@ -1815,7 +1880,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Actions"
-msgstr ""
+msgstr "Radnje"
#. module: crm
#: selection:crm.case,priority:0
@@ -1823,69 +1888,69 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "High"
-msgstr ""
+msgstr "Visok"
#. module: crm
#: model:process.node,note:crm.process_node_partner0
msgid "Convert to prospect to business partner"
-msgstr ""
+msgstr "Pretv u Izglenog Partnera pa u Poslovnog Partnera"
#. module: crm
#: view:crm.claim:0
msgid "In Progress Claims"
-msgstr ""
+msgstr "Potraživanja u tijeku"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_set_rrule
msgid "Set RRULE"
-msgstr ""
+msgstr "Postavi RRULE"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor4
msgid "Proposal/Price Quote"
-msgstr ""
+msgstr "Ponuda/Navod cijene"
#. module: crm
#: view:crm.case.rule:0
msgid "Delay After Trigger Date:"
-msgstr ""
+msgstr "Odgoda nakon Datuma pokretanja"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead5
msgid "Web"
-msgstr ""
+msgstr "Internet"
#. module: crm
#: view:crm.lead:0
msgid "Campaign Type"
-msgstr ""
+msgstr "Tip kampanje"
#. module: crm
#: view:crm.segmentation:0
msgid "State of Mind Computation"
-msgstr ""
+msgstr "State of Mind Computation"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "Error"
-msgstr ""
+msgstr "Greška"
#. module: crm
#: model:ir.model,name:crm.model_crm_meeting_generic_wizard
msgid "crm.meeting.generic_wizard"
-msgstr ""
+msgstr "crm.meeting.generic_wizard"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_history-act
msgid "Histories"
-msgstr ""
+msgstr "Povijesti"
#. module: crm
#: model:crm.case.category2,name:crm.category_job1
msgid "Graduate"
-msgstr ""
+msgstr "Apsolvirati"
#. module: crm
#: wizard_view:crm.job.meeting_set,init:0
@@ -1894,27 +1959,29 @@ msgid ""
"Note that you can also use the calendar view to graphically schedule your "
"next meeting."
msgstr ""
+"Imajte na umu da možete koristiti pregled kroz kalendar za grafički prikaz "
+"rasporeda Vašeg sljedećeg sastanka."
#. module: crm
#: view:crm.lead:0
msgid "Leads Tree"
-msgstr ""
+msgstr "Stablo Kontakta"
#. module: crm
#: field:crm.meeting,caldav_url:0
msgid "Caldav URL"
-msgstr ""
+msgstr "Caldav URL"
#. module: crm
#: view:crm.meeting:0
msgid "Attendee"
-msgstr ""
+msgstr "Sudionik"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "Email Fail!"
-msgstr ""
+msgstr "Neuspio mail!"
#. module: crm
#: model:crm.case.categ,name:crm.categ_phone1
@@ -1922,17 +1989,17 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound
msgid "Inbound"
-msgstr ""
+msgstr "Ulazni"
#. module: crm
#: constraint:crm.case.section:0
msgid "Error ! You cannot create recursive sections."
-msgstr ""
+msgstr "Greška ! Ne možete kreirati rekurzivne grupe."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm
msgid "CRM & SRM"
-msgstr ""
+msgstr "CRM i SRM"
#. module: crm
#: help:crm.menu.config_wizard,document_ics:0
@@ -1940,6 +2007,8 @@ msgid ""
" Will allow you to synchronise your Open ERP calendars with your phone, "
"outlook, Sunbird, ical, ..."
msgstr ""
+" Omogućit će Vam da sinhronizirate Oen ERP kalendare s mobitelom, kao i "
+"alikacijama: Outlook, Sunbirs, ical, ..."
#. module: crm
#: view:report.crm.case.section.categ.categ2:0
@@ -1947,12 +2016,12 @@ msgstr ""
#: view:report.crm.case.section.categ2:0
#: view:report.crm.case.section.stage:0
msgid "This Year"
-msgstr ""
+msgstr "Ove godine"
#. module: crm
#: field:crm.case.rule,act_remind_partner:0
msgid "Remind Partner"
-msgstr ""
+msgstr "Podsjeti partnera"
#. module: crm
#: selection:crm.case,priority:0
@@ -1960,73 +2029,74 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Highest"
-msgstr ""
+msgstr "Najviši"
#. module: crm
#: view:crm.job:0
msgid "Contract Data"
-msgstr ""
+msgstr "Ugovorni podaci"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Days"
-msgstr ""
+msgstr "Dani"
#. module: crm
#: help:crm.menu.config_wizard,bugs:0
msgid "Used by companies to track bugs and support requests on software"
msgstr ""
+"Koriste ga tvrtke za praćenje bugova i obraku zahtjeva korisnika softwarea"
#. module: crm
#: field:crm.menu.config_wizard,document_ics:0
msgid "Shared Calendar"
-msgstr ""
+msgstr "Dijeljeni kalendar"
#. module: crm
#: field:crm.case.section,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Odgovor-na"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_categ
msgid "Cases by Leads and Type"
-msgstr ""
+msgstr "Slučajevi po Kontaktu i Tipu"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Minutes"
-msgstr ""
+msgstr "Minute"
#. module: crm
#: field:report.crm.case.section.categ2,amount_revenue:0
#: field:report.crm.case.section.stage,amount_revenue:0
msgid "Est.Revenue"
-msgstr ""
+msgstr "Procijenjeni prihod"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job1
msgid "Initial Jobs Demand"
-msgstr ""
+msgstr "Početni zahtjev posla"
#. module: crm
#: field:crm.case.rule,trg_priority_to:0
msgid "Maximim Priority"
-msgstr ""
+msgstr "Maksimalni prioritet"
#. module: crm
#: selection:crm.meeting,transparent:0
msgid "OPAQUE"
-msgstr ""
+msgstr "PROZIRAN"
#. module: crm
#: view:crm.claim:0
msgid "Claims Info"
-msgstr ""
+msgstr "Podaci potraživanja"
#. module: crm
#: field:crm.case.category2,name:0
msgid "Case Category2 Name"
-msgstr ""
+msgstr "Naziv Kategorije2 Slučaja"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,opportunity:0
@@ -2034,29 +2104,29 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_opportunity_set
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_opportunity_set
msgid "Convert To Opportunity"
-msgstr ""
+msgstr "Pretvori u priliku"
#. module: crm
#: model:crm.case.stage,name:crm.stage_phone2
#: view:crm.phonecall:0
msgid "Held"
-msgstr ""
+msgstr "Održan"
#. module: crm
#: view:crm.case:0
msgid "Helpdesk Supports"
-msgstr ""
+msgstr "Helpdesk potpora"
#. module: crm
#: model:crm.case.section,name:crm.section_support4
#: model:ir.ui.menu,name:crm.menu_crm_case_fund_raise
msgid "Fund Raising"
-msgstr ""
+msgstr "Skupljanje sredstava"
#. module: crm
#: selection:crm.new.send.mail,init,state:0
msgid "Unchanged"
-msgstr ""
+msgstr "Nepromijenjen"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
@@ -2070,7 +2140,7 @@ msgstr ""
#. module: crm
#: field:crm.case.rule,trg_state_from:0
msgid "Case State"
-msgstr ""
+msgstr "Stanje Slučaja"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2078,7 +2148,7 @@ msgstr ""
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "Send"
-msgstr ""
+msgstr "Poslano"
#. module: crm
#: field:crm.case,priority:0
@@ -2086,22 +2156,22 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Priority"
-msgstr ""
+msgstr "Prioritet"
#. module: crm
#: view:crm.opportunity:0
msgid "Source"
-msgstr ""
+msgstr "Izvor"
#. module: crm
#: field:crm.meeting,location:0
msgid "Location"
-msgstr ""
+msgstr "Lokacija"
#. module: crm
#: view:crm.fundraising:0
msgid "Payment Mode"
-msgstr ""
+msgstr "Način plaćanja"
#. module: crm
#: help:crm.case.rule,trg_date_range:0
@@ -2110,23 +2180,26 @@ msgid ""
"need a delay before the trigger date, like sending a reminder 15 minutes "
"before a meeting."
msgstr ""
+"Odgoda nakon datuma pokretanja, određuje da se može koristiti negativni broj "
+"za postavu odgode prije datuma pokretanja, poput slanja podsjetnika 15 "
+"minuta prije sastanka."
#. module: crm
#: view:crm.claim:0
#: view:crm.job:0
#: view:crm.lead:0
msgid "Stage: "
-msgstr ""
+msgstr "Supanj "
#. module: crm
#: view:crm.case.section:0
msgid "Case section"
-msgstr ""
+msgstr "Grupa Slučaja"
#. module: crm
#: model:process.node,note:crm.process_node_meeting0
msgid "Schedule a normal or phone meeting"
-msgstr ""
+msgstr "Dogovorite uobičajen ili telefonski sastanak"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2137,49 +2210,49 @@ msgstr ""
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "Error !"
-msgstr ""
+msgstr "Greška !"
#. module: crm
#: view:crm.case.rule:0
msgid "Fields to Change"
-msgstr ""
+msgstr "Polja za promijeniti"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead1
msgid "Telesales"
-msgstr ""
+msgstr "Teleprodaja"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_history-act_main
msgid "Cases Histories"
-msgstr ""
+msgstr "Povijesti slučajeva"
#. module: crm
#: field:crm.case,create_date:0
msgid "Created"
-msgstr ""
+msgstr "Kreiran"
#. module: crm
#: view:crm.lead:0
msgid "Lead Information"
-msgstr ""
+msgstr "Podaci Kontakta"
#. module: crm
#: model:ir.model,name:crm.model_crm_segmentation_line
msgid "Segmentation line"
-msgstr ""
+msgstr "Segmentacijski niz"
#. module: crm
#: wizard_field:crm.job.reschedule_phone_call,init,deadline:0
#: wizard_field:crm.opportunity.reschedule_phone_call,init,deadline:0
#: view:crm.phonecall:0
msgid "Planned Date"
-msgstr ""
+msgstr "Planiran datum"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Hours"
-msgstr ""
+msgstr "Sati"
#. module: crm
#: help:crm.menu.config_wizard,phonecall:0
@@ -2187,21 +2260,23 @@ msgid ""
"Helps you to encode the result of a phone call or to plan a list of phone "
"calls to process."
msgstr ""
+"Pomaže vam da kodirate rezultat telefonskog poziva ili da planirate popis "
+"telefonskih poziva za obradu."
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_import
msgid "Import ICS File"
-msgstr ""
+msgstr "Uvoz ICS datoteke"
#. module: crm
#: view:crm.meeting:0
msgid "Attendee Detail"
-msgstr ""
+msgstr "Detalji o polazniku"
#. module: crm
#: model:crm.case.category2,name:crm.category_job3
msgid " > Bac +5"
-msgstr ""
+msgstr " > Bac +5"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -2209,78 +2284,78 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "July"
-msgstr ""
+msgstr "Srpanj"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor1
msgid "Prospecting"
-msgstr ""
+msgstr "Obrada izglednih stranaka"
#. module: crm
#: field:crm.case,partner_name2:0
msgid "Employee Email"
-msgstr ""
+msgstr "Email djelatnika"
#. module: crm
#: model:ir.model,name:crm.model_crm_meeting
msgid "Meeting Cases"
-msgstr ""
+msgstr "Sastanci sa Slučajevima"
#. module: crm
#: view:crm.job:0
msgid "Job Info"
-msgstr ""
+msgstr "Podaci o poslu"
#. module: crm
#: view:crm.meeting:0
msgid "Cancel Meeting"
-msgstr ""
+msgstr "Otkaži sastanak"
#. module: crm
#: model:crm.case.section,name:crm.section_support0
msgid "Jobs"
-msgstr ""
+msgstr "Polsovi"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_date)s = Creation date"
-msgstr ""
+msgstr "%(case_date)s = Datum kreiranja"
#. module: crm
#: model:crm.case.stage,name:crm.stage_phone3
#: view:crm.phonecall:0
msgid "Not Held"
-msgstr ""
+msgstr "Nije održano"
#. module: crm
#: field:crm.case.rule,act_mail_to_user:0
msgid "Mail to responsible"
-msgstr ""
+msgstr "Mail odgovornoj osobi"
#. module: crm
#: view:crm.job:0
msgid "Jobs - Recruitment Form"
-msgstr ""
+msgstr "Poslovi - Obrazac procesa novačenja"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim1
msgid "Corrective"
-msgstr ""
+msgstr "Korektivan"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity
msgid "Opportunity Cases"
-msgstr ""
+msgstr "Slučajevi prilike"
#. module: crm
#: view:crm.case:0
msgid "Support Query"
-msgstr ""
+msgstr "Upit potpore"
#. module: crm
#: view:crm.case.rule:0
msgid "Template of Email to Send"
-msgstr ""
+msgstr "Predložak Emaila za slanje"
#. module: crm
#: field:report.crm.case.section.categ.categ2,month:0
@@ -2288,7 +2363,7 @@ msgstr ""
#: field:report.crm.case.section.categ2,month:0
#: field:report.crm.case.section.stage,month:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: crm
#: model:crm.case.section,name:crm.section_support2
@@ -2298,23 +2373,23 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0_act_leads
#: model:process.node,name:crm.process_node_leads0
msgid "Leads"
-msgstr ""
+msgstr "Kontakti"
#. module: crm
#: wizard_button:crm.new.send.mail,init,send:0
#: wizard_button:crm.send.mail,init,send:0
msgid "Send Email"
-msgstr ""
+msgstr "Pošalji mail"
#. module: crm
#: wizard_view:crm.new.send.mail,init:0
msgid "Set case state to"
-msgstr ""
+msgstr "Postavi stanje Slučaja na"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund3
msgid "Credit Card"
-msgstr ""
+msgstr "Kreditna kartica"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2323,27 +2398,29 @@ msgid ""
"No E-Mail ID Found for the Responsible Partner or missing reply address in "
"section!"
msgstr ""
+"Nije nađen e-amil ID za odgovornog Partnera ili nedostaje mail adresa za "
+"odgovor u grupi!"
#. module: crm
#: view:crm.job:0
msgid "Search Jobs"
-msgstr ""
+msgstr "Pretraži poslove"
#. module: crm
#: field:crm.case.history,log_id:0
msgid "Log"
-msgstr ""
+msgstr "Zapis"
#. module: crm
#: help:crm.menu.config_wizard,fund:0
msgid ""
"This may help associations in their fund raising process and tracking."
-msgstr ""
+msgstr "Ovo može pomoći suradnicima u prikupljanu sredstava o praćenju."
#. module: crm
#: view:crm.meeting:0
msgid "Reset to Unconfirmed"
-msgstr ""
+msgstr "Vrati na Nepotvrđen"
#. module: crm
#: view:crm.case:0
@@ -2353,12 +2430,12 @@ msgstr ""
#. module: crm
#: field:crm.case,email_cc:0
msgid "Watchers Emails"
-msgstr ""
+msgstr "Email nadglednika"
#. module: crm
#: view:crm.case.rule:0
msgid "Note"
-msgstr ""
+msgstr "Bilješka"
#. module: crm
#: field:report.crm.case.section.categ.categ2,delay_close:0
@@ -2366,7 +2443,7 @@ msgstr ""
#: field:report.crm.case.section.categ2,delay_close:0
#: field:report.crm.case.section.stage,delay_close:0
msgid "Delay Close"
-msgstr ""
+msgstr "Odgodi zaključivanje"
#. module: crm
#: selection:crm.case,priority:0
@@ -2374,7 +2451,7 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Low"
-msgstr ""
+msgstr "Nizak"
#. module: crm
#: field:crm.case,date_closed:0
@@ -2387,23 +2464,23 @@ msgstr ""
#: selection:report.crm.case.section.categ2,state:0
#: selection:report.crm.case.section.stage,state:0
msgid "Closed"
-msgstr ""
+msgstr "Zatvoren"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name2"
-msgstr ""
+msgstr "Ime2 kandidata"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "cancel"
-msgstr ""
+msgstr "Odustani"
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet2
msgid "Internal Meeting"
-msgstr ""
+msgstr "Interni sastanak"
#. module: crm
#: view:crm.case:0
@@ -2412,7 +2489,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Events"
-msgstr ""
+msgstr "Događaji"
#. module: crm
#: help:crm.menu.config_wizard,lead:0
@@ -2420,6 +2497,8 @@ msgid ""
"Allows you to track and manage leads which are pre-sales requests or "
"contacts, the very first contact with a customer request."
msgstr ""
+"Omogućava praćenje i upravljanje Kontakta koji su pred-prodajni zahtjevi ili "
+"kontakti, to je inicijalni kontakt sa upitom stranke."
#. module: crm
#: help:crm.case,som:0
@@ -2428,36 +2507,39 @@ msgid ""
"mentality in relation to our services.The scale hasto be created with a "
"factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."
msgstr ""
+"Stanja uma omogućuju definiranje vrijednosne skale koja predstavlja "
+"Parnerovu percepciju naših usluga. Skala mora biti kreirana tako da podržava "
+"raspon kategorija od 0 (Vrlo nezadovoljan) do 10 (Izuzetno zadovoljan)."
#. module: crm
#: field:crm.meeting,freebusy:0
msgid "FreeBusy"
-msgstr ""
+msgstr "SlobodanZauzet"
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet1
msgid "Customer Meeting"
-msgstr ""
+msgstr "sastanak sa Strankom"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc2:0
msgid "Attachment2"
-msgstr ""
+msgstr "Privitak2"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc3:0
msgid "Attachment3"
-msgstr ""
+msgstr "Privitak3"
#. module: crm
#: view:crm.job:0
msgid "Degree"
-msgstr ""
+msgstr "Stupanj"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc1:0
msgid "Attachment1"
-msgstr ""
+msgstr "Privitak1"
#. module: crm
#: code:addons/crm/crm_phonecall.py:0
@@ -2468,7 +2550,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_phone
#, python-format
msgid "Phone Calls"
-msgstr ""
+msgstr "Telefonski pozivi"
#. module: crm
#: help:crm.case,active:0
@@ -2476,33 +2558,35 @@ msgid ""
"If the active field is set to true, it will allow you to hide the case "
"without removing it."
msgstr ""
+"Ako je aktivno polje postavljeno na TRUE, moći ćete sakriti Slučaj bez da ga "
+"izbrišete."
#. module: crm
#: model:ir.model,name:crm.model_crm_menu_config_wizard
msgid "crm.menu.config_wizard"
-msgstr ""
+msgstr "crm.menu.config_wizard"
#. module: crm
#: view:crm.case.history:0
msgid "Case History"
-msgstr ""
+msgstr "Povijest slučaja"
#. module: crm
#: field:crm.case,partner_phone:0
msgid "Phone"
-msgstr ""
+msgstr "Telefon"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund2
msgid "Cheque"
-msgstr ""
+msgstr "Ček"
#. module: crm
#: field:crm.case,active:0
#: field:crm.case.rule,active:0
#: field:crm.case.section,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivan"
#. module: crm
#: help:crm.case.rule,act_remind_attach:0
@@ -2510,31 +2594,33 @@ msgid ""
"Check this if you want that all documents attached to the case be attached "
"to the reminder email sent."
msgstr ""
+"Potvrdite ako želite da se svi dokumenti vezani uz slučaj dodaju u privitak "
+"maila podsjetnika."
#. module: crm
#: selection:crm.segmentation.line,operator:0
msgid "Mandatory Expression"
-msgstr ""
+msgstr "Obavezan izraz"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid ">"
-msgstr ""
+msgstr ">"
#. module: crm
#: view:crm.job:0
msgid "Candidate Phone"
-msgstr ""
+msgstr "Telefon kandidata"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_send_mail
msgid "Send Mail"
-msgstr ""
+msgstr "Pošalji mail"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Months"
-msgstr ""
+msgstr "Mjeseci"
#. module: crm
#: view:crm.claim.assign_wizard:0
@@ -2546,29 +2632,30 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.action_crm_opportunity_assign_wizard
#: model:ir.actions.act_window,name:crm.action_crm_phonecall_assign_wizard
msgid "To Assign"
-msgstr ""
+msgstr "Dodijeliti"
#. module: crm
#: code:addons/crm/wizard/wizard_cal_subscribe.py:0
#, python-format
msgid "Please provide Proper URL !"
-msgstr ""
+msgstr "Molim upisati ispravam URL !"
#. module: crm
#: model:process.node,note:crm.process_node_opportunities0
msgid "When a real project/opportunity is detected"
-msgstr ""
+msgstr "Kada se prepozna pravi projekt / prilika"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
msgid "Are you sure you want to create a partner based on this job request ?"
msgstr ""
+"Jeste li sigurni da želite kreirati Partnera na osnovi ovog upita za posao ?"
#. module: crm
#: wizard_field:crm.lead.opportunity_set,create_partner,action:0
#: wizard_field:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Action"
-msgstr ""
+msgstr "Radnja"
#. module: crm
#: code:addons/crm/crm_claim.py:0
@@ -2579,60 +2666,60 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_claims
#, python-format
msgid "Claims"
-msgstr ""
+msgstr "Potraživanja"
#. module: crm
#: field:crm.segmentation,som_interval_decrease:0
msgid "Decrease (0>1)"
-msgstr ""
+msgstr "Umanjiti (0>1)"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_case_history_event
msgid "History of Events"
-msgstr ""
+msgstr "Povijest događaja"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_category2
msgid "Category2 of case"
-msgstr ""
+msgstr "Kategorija2 slučaja"
#. module: crm
#: wizard_field:crm.new.send.mail,init,to:0
#: wizard_field:crm.send.mail,init,to:0
msgid "To"
-msgstr ""
+msgstr "Za"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_user_email)s = Responsible email"
-msgstr ""
+msgstr "%(case_user_email)s = Email odgovorne osobe"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_presale
msgid "Sales"
-msgstr ""
+msgstr "Prodaje"
#. module: crm
#: view:crm.case:0
#: view:crm.phonecall:0
msgid "General"
-msgstr ""
+msgstr "Općenit"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead2
msgid "Assigned"
-msgstr ""
+msgstr "Dodijeljen"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead5
msgid "Recycled"
-msgstr ""
+msgstr "Recikliran"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead8
#: model:crm.case.categ,name:crm.categ_oppor8
msgid "Other"
-msgstr ""
+msgstr "Drugi"
#. module: crm
#: view:crm.case:0
@@ -2642,17 +2729,17 @@ msgstr ""
#: selection:crm.new.send.mail,init,state:0
#: view:crm.opportunity:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: crm
#: field:crm.segmentation,som_interval_max:0
msgid "Max Interval"
-msgstr ""
+msgstr "Maksimalni interval"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_oppor11
msgid "All Opportunities"
-msgstr ""
+msgstr "Sve prilike"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2673,12 +2760,12 @@ msgstr ""
#: selection:report.crm.case.section.stage,state:0
#, python-format
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: crm
#: selection:crm.meeting,class:0
msgid "PUBLIC"
-msgstr ""
+msgstr "JAVAN"
#. module: crm
#: code:addons/crm/wizard/crm_job_wizard.py:0
@@ -2686,22 +2773,22 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already existing with the same name."
-msgstr ""
+msgstr "Već postoji Partner s tim imenom."
#. module: crm
#: model:ir.model,name:crm.model_crm_phonecall
msgid "Phonecall Cases"
-msgstr ""
+msgstr "Telefonski pozivi slučajevima"
#. module: crm
#: help:crm.case.rule,sequence:0
msgid "Gives the sequence order when displaying a list of case rules."
-msgstr ""
+msgstr "Daje redoslijed kod prikazivanja liste pravila Slučajeva"
#. module: crm
#: field:crm.menu.config_wizard,helpdesk:0
msgid "Helpdesk"
-msgstr ""
+msgstr "Helpdesk"
#. module: crm
#: field:crm.case,user_id:0
@@ -2717,29 +2804,29 @@ msgstr ""
#: field:crm.opportunity.assign_wizard,user_id:0
#: field:crm.phonecall.assign_wizard,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Odgovoran"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim4
#: model:crm.case.stage,name:crm.stage_meet3
msgid "Invalid"
-msgstr ""
+msgstr "Nepravilan"
#. module: crm
#: wizard_button:crm.job.meeting_set,init,order:0
#: wizard_button:crm.phonecall.meeting_set,init,order:0
msgid "Set Meeting"
-msgstr ""
+msgstr "Dogovori Sastanak"
#. module: crm
#: field:crm.menu.config_wizard,meeting:0
msgid "Calendar of Meetings"
-msgstr ""
+msgstr "Kalendar sastanaka"
#. module: crm
#: view:crm.case:0
msgid "Cases By Stage and Estimates"
-msgstr ""
+msgstr "Slučajevi prema stupnju i procjeni"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -2747,48 +2834,49 @@ msgstr ""
msgid ""
"You can not escalate this case.\n"
"You are already at the top level."
-msgstr ""
+msgstr "Ne možete eskalirati ovaj slučaj. Već ste na najvišoj razini."
#. module: crm
#: view:crm.lead:0
msgid "Lead Name"
-msgstr ""
+msgstr "Ime Kontakta"
#. module: crm
#: view:crm.claim:0
msgid "Claim/Action Description"
-msgstr ""
+msgstr "Opis Radnje/Potraživanja"
#. module: crm
#: field:crm.case.rule,trg_max_history:0
msgid "Maximum Communication History"
-msgstr ""
+msgstr "Maksimalna povijest komunikacije"
#. module: crm
#: view:crm.lead:0
msgid "Meeting For Leads Generation"
-msgstr ""
+msgstr "Sastanak u cilju kreiranja Kontakta"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,create_partner:0
#: wizard_view:crm.lead.partner_create,init:0
msgid "Are you sure you want to create a partner based on this lead ?"
msgstr ""
+"Jeste li sigurni da želite kreirati Partnera na osnovi ovog Kontakta ?"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job6
msgid "Refused by Employee"
-msgstr ""
+msgstr "Odbijeno od strane djelatnika"
#. module: crm
#: field:crm.case,partner_name:0
msgid "Employee's Name"
-msgstr ""
+msgstr "Ime djelatnika"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job2
msgid "First Interview"
-msgstr ""
+msgstr "Prvi razgovor"
#. module: crm
#: view:report.crm.case.section.categ.categ2:0
@@ -2796,17 +2884,17 @@ msgstr ""
#: view:report.crm.case.section.categ2:0
#: view:report.crm.case.section.stage:0
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: crm
#: view:crm.job:0
msgid "Availability (weeks)"
-msgstr ""
+msgstr "Raspoloživost (tjedni)"
#. module: crm
#: view:crm.opportunity:0
msgid "Opportunities Tree"
-msgstr ""
+msgstr "Stablo prilika"
#. module: crm
#: help:crm.case,state:0
@@ -2819,16 +2907,20 @@ msgid ""
" \n"
"If the case needs to be reviewed then the state is set to 'Pending'."
msgstr ""
+"Stanje je postavljeno na 'Nacrt', kada se stvara Slučaj.\n"
+"Ako je Slučaj je u tijeku Stanje je postavljeno na 'Otvoren'.\n"
+"Kada se Slučaj završi, Stanje je postavljen na \"Gotovo\".\n"
+"Ako slučaj treba biti pregledan, Stanje je postavljeno na 'U tijeku'."
#. module: crm
#: view:crm.job:0
msgid "Open Jobs"
-msgstr ""
+msgstr "Otvoreni poslovi"
#. module: crm
#: selection:crm.email.add.cc,name:0
msgid "Email Address"
-msgstr ""
+msgstr "Email adresa"
#. module: crm
#: help:crm.segmentation,som_interval_max:0
@@ -2836,130 +2928,132 @@ msgid ""
"The computation is made on all events that occured during this interval, the "
"past X periods."
msgstr ""
+"Obračun je izvršen na svim događajima koji su se pojavili tijekom ovog "
+"intervala, zadnjih X razdoblja."
#. module: crm
#: field:crm.case,case_id:0
msgid "Related Case"
-msgstr ""
+msgstr "Povezan slučaj"
#. module: crm
#: field:crm.case.rule,server_action_id:0
msgid "Server Action"
-msgstr ""
+msgstr "Radnja poslužitelja"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ_claim0
msgid "All Claims"
-msgstr ""
+msgstr "Sva potraživanja"
#. module: crm
#: field:crm.case.log,user_id:0
msgid "User Responsible"
-msgstr ""
+msgstr "Odgovorni korisnik"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#, python-format
msgid "Email not sent !"
-msgstr ""
+msgstr "Email nije poslan!"
#. module: crm
#: wizard_field:crm.phonecall.partner_create,init,close:0
msgid "Close Phonecall"
-msgstr ""
+msgstr "Zaključi poziv"
#. module: crm
#: field:crm.case,email_last:0
msgid "Latest E-Mail"
-msgstr ""
+msgstr "Zadnji Email"
#. module: crm
#: view:crm.case.rule:0
msgid "Regex on Communication History"
-msgstr ""
+msgstr "Regex vezan uz Povijest Komunikacije"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund4
msgid "Demand Draft"
-msgstr ""
+msgstr "Zahtijevaj Nacrt"
#. module: crm
#: field:crm.case,id:0
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: crm
#: field:crm.case,log_ids:0
msgid "Logs History"
-msgstr ""
+msgstr "Povijest zapisa"
#. module: crm
#: wizard_field:crm.lead.opportunity_set,opportunity,name:0
#: wizard_field:crm.phonecall.opportunity_set,opportunity,name:0
msgid "Opportunity Summary"
-msgstr ""
+msgstr "Sažetak prilike"
#. module: crm
#: view:crm.case:0
msgid "Search Case"
-msgstr ""
+msgstr "Pretraži slučaj"
#. module: crm
#: view:crm.segmentation:0
msgid "Continue Process"
-msgstr ""
+msgstr "Nastavi Process"
#. module: crm
#: view:crm.case.history:0
msgid "Case Description"
-msgstr ""
+msgstr "Opis Slučaja"
#. module: crm
#: wizard_field:crm.job.reschedule_phone_call,init,user_id:0
#: wizard_field:crm.opportunity.reschedule_phone_call,init,user_id:0
msgid "Assign To"
-msgstr ""
+msgstr "Dodijeli"
#. module: crm
#: field:crm.case,date_action_last:0
msgid "Last Action"
-msgstr ""
+msgstr "Posljednja radnja"
#. module: crm
#: field:crm.case,duration:0
msgid "Duration"
-msgstr ""
+msgstr "Trajanje"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ_stage
msgid "Cases by section, Category and stage"
-msgstr ""
+msgstr "Slučajevi po Grupi, Kategoriji i Stupnju"
#. module: crm
#: view:crm.job:0
msgid "Candidate Hired"
-msgstr ""
+msgstr "Kandidat zaposlen"
#. module: crm
#: field:crm.menu.config_wizard,jobs:0
msgid "Jobs Hiring Process"
-msgstr ""
+msgstr "Postupak zapošljavanja"
#. module: crm
#: model:ir.ui.menu,name:crm.next_id_52
msgid "All Cases"
-msgstr ""
+msgstr "Svi slučajevi"
#. module: crm
#: code:addons/crm/wizard/crm_lead_wizard.py:0
#, python-format
msgid "A partner is already defined on this lead."
-msgstr ""
+msgstr "Partner je već određen ovim Kontaktom"
#. module: crm
#: view:crm.lead:0
msgid "Lead Source"
-msgstr ""
+msgstr "Izvor Kontakta"
#. module: crm
#: field:report.crm.case.section.categ.categ2,nbr:0
@@ -2967,76 +3061,76 @@ msgstr ""
#: field:report.crm.case.section.categ2,nbr:0
#: field:report.crm.case.section.stage,nbr:0
msgid "# of Cases"
-msgstr ""
+msgstr "# SLučaja"
#. module: crm
#: selection:crm.meeting,class:0
msgid "PRIVATE"
-msgstr ""
+msgstr "PRIVATE"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Provide path for Remote Calendar"
-msgstr ""
+msgstr "Navedi poveznik na Izdvojeni Kalendar"
#. module: crm
#: view:crm.segmentation:0
#: field:crm.segmentation.line,segmentation_id:0
msgid "Segmentation"
-msgstr ""
+msgstr "Segmentacija"
#. module: crm
#: view:crm.fundraising:0
msgid "Funds Form"
-msgstr ""
+msgstr "Obrazac Sredstava"
#. module: crm
#: view:crm.meeting:0
msgid "Search Meetings"
-msgstr ""
+msgstr "Pretraži Sastanke"
#. module: crm
#: selection:crm.lead.opportunity_set,create_partner,action:0
#: selection:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Create a new partner"
-msgstr ""
+msgstr "Stvori novog partnera"
#. module: crm
#: field:crm.case,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Tvrtka"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead3
msgid "In Process"
-msgstr ""
+msgstr "U postupku"
#. module: crm
#: selection:crm.segmentation,state:0
msgid "Running"
-msgstr ""
+msgstr "U tijeku"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_user)s = Responsible name"
-msgstr ""
+msgstr "%(case_user)s = Ime odgovorne osobe"
#. module: crm
#: wizard_field:crm.job.reschedule_phone_call,init,note:0
#: wizard_field:crm.opportunity.reschedule_phone_call,init,note:0
msgid "Goals"
-msgstr ""
+msgstr "Ciljevi"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_tree
#: view:report.crm.case.section.categ2:0
msgid "Cases by Section and Type"
-msgstr ""
+msgstr "Slučajevi po Grupi i Tipu"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_aftersale
msgid "After-Sale Services"
-msgstr ""
+msgstr "Post-prodajne usluge"
#. module: crm
#: wizard_button:caldav.crm.export,init,end:0
@@ -3044,17 +3138,17 @@ msgstr ""
#: wizard_button:caldav.crm.subscribe,display,end:0
#: view:crm.email.add.cc:0
msgid "Ok"
-msgstr ""
+msgstr "Ok"
#. module: crm
#: wizard_field:caldav.crm.export,init,name:0
msgid "File name"
-msgstr ""
+msgstr "Ime datoteke"
#. module: crm
#: view:crm.lead:0
msgid "Search Leads"
-msgstr ""
+msgstr "Pretraži Kontaktove"
#. module: crm
#: help:crm.case.rule,active:0
@@ -3062,24 +3156,26 @@ msgid ""
"If the active field is set to true, it will allow you to hide the case rule "
"without removing it."
msgstr ""
+"Ako je aktivno polje postavljeno na TRUE, moći ćete sakriti Pravilo Slučaja "
+"bez da ga izbrišete."
#. module: crm
#: code:addons/crm/crm.py:0
#: code:addons/crm/wizard/wizard_cal_subscribe.py:0
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Greška !"
#. module: crm
#: model:ir.model,name:crm.model_crm_claim_assign_wizard
msgid "crm.claim.assign_wizard"
-msgstr ""
+msgstr "crm.claim.assign_wizard"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ0_act_job
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0_act_job
msgid "All Jobs Requests"
-msgstr ""
+msgstr "Svi Zahtjevi za Posao"
#. module: crm
#: selection:crm.case,state:0
@@ -3091,12 +3187,12 @@ msgstr ""
#: selection:report.crm.case.section.categ2,state:0
#: selection:report.crm.case.section.stage,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazan"
#. module: crm
#: view:crm.job:0
msgid "Applied Job"
-msgstr ""
+msgstr "Primijenjen Posao"
#. module: crm
#: help:crm.meeting,exrule:0
@@ -3104,51 +3200,52 @@ msgid ""
"defines a rule or repeating pattern for "
"anexception to a recurrence set"
msgstr ""
+"Određuje pravilo ili ponavljajući obrazac za Iznimku u skupu ponavljanja."
#. module: crm
#: view:crm.phonecall:0
msgid "Relevant"
-msgstr ""
+msgstr "Relevantan"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,name:0
msgid "Opportunity Name"
-msgstr ""
+msgstr "Ime Prilike"
#. module: crm
#: field:crm.meeting,rrule:0
msgid "Recurrent Rule"
-msgstr ""
+msgstr "Uloga prilike"
#. module: crm
#: wizard_view:caldav.crm.import,init:0
msgid "Import ICS"
-msgstr ""
+msgstr "Uvezi ICS"
#. module: crm
#: view:crm.phonecall:0
msgid "Call Summary"
-msgstr ""
+msgstr "Sažetak poziva"
#. module: crm
#: field:crm.segmentation.line,expr_operator:0
msgid "Operator"
-msgstr ""
+msgstr "Operator"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_log
msgid "Case Communication History"
-msgstr ""
+msgstr "Povijest komunikacije Slučaja"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ
msgid "Cases by Opportunities and Type"
-msgstr ""
+msgstr "Slučajevi prema Prilikama i Tipu"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_subject)s = Case subject"
-msgstr ""
+msgstr "%(case_subject)s = subject Slučaj"
#. module: crm
#: field:crm.case,section_id:0
@@ -3166,33 +3263,33 @@ msgstr ""
#: field:report.crm.case.section.categ2,section_id:0
#: field:report.crm.case.section.stage,section_id:0
msgid "Section"
-msgstr ""
+msgstr "Grupa"
#. module: crm
#: selection:crm.segmentation.line,operator:0
msgid "Optional Expression"
-msgstr ""
+msgstr "Opcijski Izraz"
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund1
msgid "Social Rehabilitation And Rural Upliftment"
-msgstr ""
+msgstr "Društveni oporavak i ruralni razvoj"
#. module: crm
#: code:addons/crm/wizard/crm_job_wizard.py:0
#, python-format
msgid "A partner is already defined on this job request."
-msgstr ""
+msgstr "Partner je već određen ovim zahtjevom za posao."
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead1
msgid "New"
-msgstr ""
+msgstr "Novi"
#. module: crm
#: field:crm.case,description:0
msgid "Your action"
-msgstr ""
+msgstr "Vaša radnja"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead3
@@ -3200,53 +3297,53 @@ msgstr ""
#: field:crm.email.add.cc,email:0
#: view:crm.job:0
msgid "Email"
-msgstr ""
+msgstr "Email"
#. module: crm
#: field:crm.case,canal_id:0
#: field:crm.case.log,canal_id:0
msgid "Channel"
-msgstr ""
+msgstr "Kanal"
#. module: crm
#: help:crm.case.rule,act_mail_to_email:0
msgid "Email-id of the persons whom mail is to be sent"
-msgstr ""
+msgstr "Email-id osoba kojima treba poslati mail"
#. module: crm
#: model:ir.model,name:crm.model_crm_claim
msgid "Claim Cases"
-msgstr ""
+msgstr "Slučajevi potraživanja - potraživanje Slučaja?"
#. module: crm
#: view:crm.case.rule:0
msgid "E-Mail Reminders (includes the content of the case)"
-msgstr ""
+msgstr "E-mail Podsjetnici (Iključuju sadržaj Slučaja)"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_stage
msgid "Cases by Leads and Stage"
-msgstr ""
+msgstr "Slučajevi po Kontaktu i Stupnju"
#. module: crm
#: field:crm.meeting,exdate:0
msgid "Exception Date/Times"
-msgstr ""
+msgstr "Datum/Vrijeme Iznimke"
#. module: crm
#: view:crm.meeting.generic_wizard:0
msgid "Generic Wizard"
-msgstr ""
+msgstr "Osnovni Čarobnjak"
#. module: crm
#: model:process.transition,note:crm.process_transition_leadopportunity0
msgid "Creating business opportunities from Leads"
-msgstr ""
+msgstr "Kreiranje poslovnih prilika iz Kontakata"
#. module: crm
#: model:ir.ui.menu,name:crm.next_id_64
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanjeć"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -3267,94 +3364,94 @@ msgstr ""
#: selection:report.crm.case.section.stage,state:0
#, python-format
msgid "Pending"
-msgstr ""
+msgstr "U tijeku"
#. module: crm
#: model:process.transition,name:crm.process_transition_leadopportunity0
msgid "Prospect Opportunity"
-msgstr ""
+msgstr "Istraži Priliku"
#. module: crm
#: view:crm.job:0
msgid "Expected Salary"
-msgstr ""
+msgstr "Očekivana Plaća"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_configuration
msgid "Configuration"
-msgstr ""
+msgstr "Konfiguracija"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_new_send_mail
msgid "Send New Mail"
-msgstr ""
+msgstr "Pošalji novi E-mail"
#. module: crm
#: constraint:ir.cron:0
msgid "Invalid arguments"
-msgstr ""
+msgstr "Neispravni argumenti"
#. module: crm
#: field:crm.meeting,transparent:0
msgid "Trensparent"
-msgstr ""
+msgstr "Transparentan"
#. module: crm
#: view:crm.case:0
msgid "My Cases"
-msgstr ""
+msgstr "Moji Slučajevi"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead7
#: model:crm.case.categ,name:crm.categ_oppor7
msgid "Word of mouth"
-msgstr ""
+msgstr "Usmena preporuka"
#. module: crm
#: view:crm.lead:0
msgid "Lead Subject"
-msgstr ""
+msgstr "Kontakt Subjekt"
#. module: crm
#: view:crm.lead:0
#: view:crm.phonecall:0
msgid "Convert to Opportunity"
-msgstr ""
+msgstr "Pretvori u Priliku"
#. module: crm
#: model:crm.case.stage,name:crm.stage_phone1
msgid "Planned"
-msgstr ""
+msgstr "Planiran"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet3
msgid "Customer Office"
-msgstr ""
+msgstr "Ured Stranke"
#. module: crm
#: view:crm.job:0
msgid "Candidate Email"
-msgstr ""
+msgstr "E-mail kandidata"
#. module: crm
#: view:crm.opportunity:0
msgid "Sales Stage: "
-msgstr ""
+msgstr "Stupanj prodaje "
#. module: crm
#: view:crm.claim:0
msgid "Type of Action"
-msgstr ""
+msgstr "Tip radnje"
#. module: crm
#: field:crm.case.rule,act_user_id:0
msgid "Set responsible to"
-msgstr ""
+msgstr "Postavi odgovornost na"
#. module: crm
#: view:crm.job:0
msgid "Meeting With Candidates"
-msgstr ""
+msgstr "Sastanak s kandidatima"
#. module: crm
#: help:crm.segmentation,som_interval:0
@@ -3365,6 +3462,11 @@ msgid ""
"has decreased because he probably bought goods to another supplier. Use this "
"functionality for recurring businesses."
msgstr ""
+"Period je prosječan broj dana između dva ciklusa prodaje ili kupnje za ovu "
+"segmentaciju. Uglavnom se koristi za prepoznavanje je li od prethodne kupnje "
+"partnera prošlo previše vremena, tako da pretpostavimo da je njegova "
+"naklonost smanjena jer je vjerojatno u međuvremenu kupovao od drugog "
+"dobavljača. Koristite ovu funkciju kod Partnera koji višestruko kupuju."
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3372,76 +3474,76 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "December"
-msgstr ""
+msgstr "Prosinac"
#. module: crm
#: view:report.crm.case.section.categ.categ2:0
msgid "Search Cases by User"
-msgstr ""
+msgstr "Pretraži SLučajeve po Korisniku"
#. module: crm
#: view:crm.case.rule:0
msgid "Condition on Communication History"
-msgstr ""
+msgstr "Uvjet vezan uz Povijest Komunikacije"
#. module: crm
#: field:crm.case.rule,act_mail_to_partner:0
msgid "Mail to partner"
-msgstr ""
+msgstr "Mail Partneru"
#. module: crm
#: view:crm.fundraising:0
msgid "Funds Tree"
-msgstr ""
+msgstr "Stablo Sredstava"
#. module: crm
#: field:crm.case.rule,act_method:0
msgid "Call Object Method"
-msgstr ""
+msgstr "Call Object Method"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_fund_all1
msgid "All Funds"
-msgstr ""
+msgstr "Sva Sredstva"
#. module: crm
#: field:crm.case.section,calendar:0
#: view:crm.meeting:0
#: model:ir.ui.menu,name:crm.menu_crm_case_category_act_meetings
msgid "Calendar"
-msgstr ""
+msgstr "Kalendar"
#. module: crm
#: model:crm.case.categ,name:crm.categ_job1
msgid "Salesman"
-msgstr ""
+msgstr "Prodavač"
#. module: crm
#: model:crm.case.section,name:crm.section_support_help
msgid "HelpDesk"
-msgstr ""
+msgstr "Helpdesk"
#. module: crm
#: field:crm.case,ref2:0
msgid "Reference 2"
-msgstr ""
+msgstr "Referenca 2"
#. module: crm
#: view:crm.segmentation:0
msgid "Sales Purchase"
-msgstr ""
+msgstr "Kupnja po Prodaji"
#. module: crm
#: view:crm.job:0
#: model:ir.actions.wizard,name:crm.wizard_crm_job_meeting_set
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_meeting_set
msgid "Schedule Meeting"
-msgstr ""
+msgstr "Dogovori Sastanak"
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund4
msgid "Arts And Culture"
-msgstr ""
+msgstr "Umjetnost i kultura"
#. module: crm
#: model:crm.case.categ,name:crm.categ_phone2
@@ -3449,30 +3551,30 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_outgoing0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone_outbound
msgid "Outbound"
-msgstr ""
+msgstr "Izlazni"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "Historize"
-msgstr ""
+msgstr "Pretvori u povijesni oblik"
#. module: crm
#: view:crm.meeting:0
msgid "Confirmed"
-msgstr ""
+msgstr "Potvrđen"
#. module: crm
#: selection:crm.segmentation,state:0
msgid "Not Running"
-msgstr ""
+msgstr "Zaustavljen"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,probability:0
#: wizard_field:crm.lead.opportunity_set,opportunity,probability:0
#: wizard_field:crm.phonecall.opportunity_set,opportunity,probability:0
msgid "Success Probability"
-msgstr ""
+msgstr "Vjerojatnost uspjeha"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -3487,22 +3589,22 @@ msgstr ""
#: selection:report.crm.case.section.stage,state:0
#, python-format
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: crm
#: field:crm.case.rule,trg_date_range:0
msgid "Delay after trigger date"
-msgstr ""
+msgstr "Odgoda nakon Datuma pokretanja"
#. module: crm
#: view:crm.lead:0
msgid "Lead Details"
-msgstr ""
+msgstr "Detalji Kontakta"
#. module: crm
#: field:crm.case.rule,act_section_id:0
msgid "Set section to"
-msgstr ""
+msgstr "Postavi grupu na"
#. module: crm
#: selection:crm.case,priority:0
@@ -3510,7 +3612,7 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Normal"
-msgstr ""
+msgstr "Običan"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -3518,7 +3620,7 @@ msgstr ""
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "You must put a Partner eMail to use this action!"
-msgstr ""
+msgstr "Da biste koristili ovu radnju, morate upisati Email Partnera!"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
@@ -3527,17 +3629,17 @@ msgstr ""
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "You may have to verify that this partner does not exist already."
-msgstr ""
+msgstr "Trebate provjeriti postoji li već ovaj Partner!"
#. module: crm
#: view:crm.job:0
msgid "Qualication"
-msgstr ""
+msgstr "Kvalificiranje"
#. module: crm
#: view:crm.meeting:0
msgid "Change RRule"
-msgstr ""
+msgstr "Promijeni Pravilo"
#. module: crm
#: selection:crm.email.add.cc,name:0
@@ -3547,14 +3649,14 @@ msgstr ""
#: field:report.crm.case.section.categ2,user_id:0
#: field:report.crm.case.section.stage,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_categ_categ2
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_categ2_tree
#: view:report.crm.case.section.categ.categ2:0
msgid "Cases by Section, Category and Type"
-msgstr ""
+msgstr "Slučajevi po Grupi, Kategoriji i Tipu"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3562,17 +3664,17 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "November"
-msgstr ""
+msgstr "Studeni"
#. module: crm
#: model:crm.case.category2,name:crm.category_job2
msgid "Licenced"
-msgstr ""
+msgstr "Licenciran"
#. module: crm
#: field:crm.case.section,parent_id:0
msgid "Parent Section"
-msgstr ""
+msgstr "ishodna Grupa"
#. module: crm
#: wizard_view:crm.job.reschedule_phone_call,init:0
@@ -3583,7 +3685,7 @@ msgstr ""
#: model:ir.actions.wizard,name:crm.wizard_crm_job_reschedule_phone_call
#: model:ir.actions.wizard,name:crm.wizard_crm_opportunity_reschedule_phone_call
msgid "Schedule Phone Call"
-msgstr ""
+msgstr "Rasporedi Telefonski poziv"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -3591,6 +3693,7 @@ msgstr ""
msgid ""
"Can not send mail with empty body,you should have description in the body"
msgstr ""
+"Ne možete poslati mail s praznim tijelom, u okviru tijela mora biti opis"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3598,27 +3701,27 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "January"
-msgstr ""
+msgstr "Siječanj"
#. module: crm
#: model:process.process,name:crm.process_process_contractprocess0
msgid "Contract"
-msgstr ""
+msgstr "Ugovor"
#. module: crm
#: field:crm.case.section,child_ids:0
msgid "Child Sections"
-msgstr ""
+msgstr "Ishodne Grupe"
#. module: crm
#: view:crm.case:0
msgid "Planned revenue"
-msgstr ""
+msgstr "Planirani prihod"
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund3
msgid "Healthcare"
-msgstr ""
+msgstr "Zdravstvena skrb"
#. module: crm
#: view:crm.case:0
@@ -3632,98 +3735,98 @@ msgstr ""
#: view:crm.phonecall:0
#: view:crm.phonecall.assign_wizard:0
msgid "Assign"
-msgstr ""
+msgstr "Dodijeli"
#. module: crm
#: field:crm.case,partner_address_id:0
msgid "Partner Contact"
-msgstr ""
+msgstr "Osoba Partner"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet1
msgid "Office"
-msgstr ""
+msgstr "Ured"
#. module: crm
#: model:ir.model,name:crm.model_crm_fundraising
msgid "Fund Raising Cases"
-msgstr ""
+msgstr "Slučajevi prikupljanja sredstava"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_stage
msgid "Stage of case"
-msgstr ""
+msgstr "Stupanj Slučaja"
#. module: crm
#: view:crm.case:0
#: view:crm.fundraising:0
#: view:crm.opportunity:0
msgid "Estimates"
-msgstr ""
+msgstr "Procjene"
#. module: crm
#: field:crm.case.section,user_id:0
msgid "Responsible User"
-msgstr ""
+msgstr "Odgovorni korisnik"
#. module: crm
#: code:addons/crm/crm.py:0
#: view:crm.case:0
#, python-format
msgid "Close"
-msgstr ""
+msgstr "Zatvori"
#. module: crm
#: model:ir.model,name:crm.model_crm_helpdesk_assign_wizard
msgid "crm.helpdesk.assign_wizard"
-msgstr ""
+msgstr "crm.helpdesk.assign_wizard"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Case Partner"
-msgstr ""
+msgstr "Uvjeti vezani uz Partnera u okviru Slučaja"
#. module: crm
#: field:crm.case.section,code:0
msgid "Section Code"
-msgstr ""
+msgstr "Oznaka Grupe"
#. module: crm
#: wizard_field:crm.job.meeting_set,init,date:0
#: wizard_field:crm.phonecall.meeting_set,init,date:0
msgid "Meeting date"
-msgstr ""
+msgstr "Datum sastanka"
#. module: crm
#: selection:crm.meeting,class:0
msgid "CONFIDENTIAL"
-msgstr ""
+msgstr "CONFIDENTIAL"
#. module: crm
#: help:crm.case.rule,act_mail_body:0
msgid "Content of mail"
-msgstr ""
+msgstr "Sadržaj maila"
#. module: crm
#: model:crm.case.stage,name:crm.stage_meet2
msgid "Not fixed"
-msgstr ""
+msgstr "Nije fiksno"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead3
#: model:crm.case.categ,name:crm.categ_oppor3
msgid "Employee"
-msgstr ""
+msgstr "Zaposlenik"
#. module: crm
#: field:crm.case,email_from:0
msgid "Partner Email"
-msgstr ""
+msgstr "Email Partnera"
#. module: crm
#: view:crm.case.rule:0
msgid "% = The '%' Character"
-msgstr ""
+msgstr "% = The '%' Character"
#. module: crm
#: view:crm.case:0
@@ -3736,7 +3839,7 @@ msgstr ""
#: view:crm.phonecall:0
#: field:crm.segmentation,description:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3744,18 +3847,19 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "May"
-msgstr ""
+msgstr "Svibanj"
#. module: crm
#: view:crm.job:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Interne bilješke"
#. module: crm
#: help:crm.case.rule,act_remind_user:0
msgid ""
"Check this if you want the rule to send a reminder by email to the user."
msgstr ""
+"Označite želite li postaviti pravilo slanja e-mail podsjetnika korisniku."
#. module: crm
#: view:crm.case:0
@@ -3767,17 +3871,17 @@ msgstr ""
#: view:crm.opportunity:0
#: wizard_field:crm.send.mail,init,cc:0
msgid "CC"
-msgstr ""
+msgstr "CC"
#. module: crm
#: field:crm.segmentation.line,operator:0
msgid "Mandatory / Optional"
-msgstr ""
+msgstr "Obavezan / Opcijski"
#. module: crm
#: wizard_button:caldav.crm.import,init,open:0
msgid "_Import"
-msgstr ""
+msgstr "-Import"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -3794,7 +3898,7 @@ msgstr ""
#: model:res.request.link,name:crm.req_link_case
#, python-format
msgid "Case"
-msgstr ""
+msgstr "Slučaj"
#. module: crm
#: selection:crm.case,priority:0
@@ -3802,7 +3906,7 @@ msgstr ""
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Lowest"
-msgstr ""
+msgstr "Najniži"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3810,19 +3914,19 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "February"
-msgstr ""
+msgstr "Veljača"
#. module: crm
#: view:crm.phonecall:0
#: model:ir.actions.act_window,name:crm.crm_case_categ_meet_case
#: model:ir.actions.act_window,name:crm.crm_case_categ_meet_create_partner
msgid "Schedule a Meeting"
-msgstr ""
+msgstr "Dogovori Sastanak"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Priority Range"
-msgstr ""
+msgstr "Uvjeti koji određuju Raspon Prioriteta"
#. module: crm
#: help:crm.segmentation,som_interval_decrease:0
@@ -3830,17 +3934,19 @@ msgid ""
"If the partner has not purchased (or buied) during a period, decrease the "
"state of mind by this factor. It's a multiplication"
msgstr ""
+"Ako partner nije ostvario kupnju u razdoblju, umanjite procjenu sklonosti za "
+"taj činbenik. Riječ je u multiplikaciji."
#. module: crm
#: wizard_view:crm.new.send.mail,init:0
#: wizard_view:crm.send.mail,init:0
msgid "Mass Mailing"
-msgstr ""
+msgstr "Masovno slanje mailova"
#. module: crm
#: view:crm.case.rule:0
msgid "E-Mail Actions"
-msgstr ""
+msgstr "E-mail Radnje"
#. module: crm
#: field:report.crm.case.section.categ.categ2,name:0
@@ -3848,22 +3954,22 @@ msgstr ""
#: field:report.crm.case.section.categ2,name:0
#: field:report.crm.case.section.stage,name:0
msgid "Year"
-msgstr ""
+msgstr "Godina"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund1
msgid "Cash"
-msgstr ""
+msgstr "Gotovina"
#. module: crm
#: view:crm.fundraising:0
msgid "Funds by Categories"
-msgstr ""
+msgstr "Sredstva po Kategorijama"
#. module: crm
#: model:process.node,note:crm.process_node_leads0
msgid "Very first contact with new prospect"
-msgstr ""
+msgstr "Inicijalni kontakt s novom strankom"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -3871,83 +3977,83 @@ msgstr ""
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "April"
-msgstr ""
+msgstr "Travanj"
#. module: crm
#: model:crm.case.stage,name:crm.stage_meet5
msgid "Future"
-msgstr ""
+msgstr "Budućnost"
#. module: crm
#: wizard_field:caldav.crm.export,init,file_path:0
msgid "Save ICS file"
-msgstr ""
+msgstr "Spremi ICS datoteku"
#. module: crm
#: wizard_field:caldav.crm.subscribe,init,url_path:0
msgid "Provide path for remote calendar"
-msgstr ""
+msgstr "Navedi poveznik na Izdvojeni Kalendar"
#. module: crm
#: view:crm.case.log:0
msgid "Case logs"
-msgstr ""
+msgstr "Zapisi vezani uz Slučaj"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Timing"
-msgstr ""
+msgstr "Uvjeti vremenskog usklađivanja - Timinga"
#. module: crm
#: model:ir.model,name:crm.model_crm_helpdesk
msgid "Helpdesk Cases"
-msgstr ""
+msgstr "Helpdesk Slučajevi"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_export
msgid "Export ICS File"
-msgstr ""
+msgstr "Uvoz ICS datoteke"
#. module: crm
#: field:crm.case.rule,sequence:0
#: field:crm.case.section,sequence:0
#: field:crm.case.stage,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Slijed"
#. module: crm
#: wizard_view:caldav.crm.import,init:0
#: wizard_field:caldav.crm.import,init,file_path:0
msgid "Select ICS file"
-msgstr ""
+msgstr "Odaberi ICS datoteku"
#. module: crm
#: wizard_view:caldav.crm.import,display:0
msgid "Import Message"
-msgstr ""
+msgstr "Uvezi poruku"
#. module: crm
#: field:crm.segmentation.line,expr_name:0
msgid "Control Variable"
-msgstr ""
+msgstr "Kontrolna varijabla"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_section_act_tree
#: model:ir.ui.menu,name:crm.menu_crm_case_section_act_tree
msgid "Cases by section"
-msgstr ""
+msgstr "Sučajevi po grupi"
#. module: crm
#: view:crm.job:0
msgid "New Jobs"
-msgstr ""
+msgstr "Novi Poslovi"
#. module: crm
#: field:crm.menu.config_wizard,fund:0
msgid "Fund Raising Operations"
-msgstr ""
+msgstr "Operacije prikupljanja Sredstava"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead8
msgid "Newsletter"
-msgstr ""
+msgstr "Newsletter"
diff --git a/addons/crm_profiling/i18n/hr.po b/addons/crm_profiling/i18n/hr.po
index 74eda383b73..b46e15b916b 100644
--- a/addons/crm_profiling/i18n/hr.po
+++ b/addons/crm_profiling/i18n/hr.po
@@ -1,131 +1,132 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * crm_profiling
-#
+# * crm_profiling
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:55+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: crm_profiling
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
-msgstr ""
+msgstr "Ime Objekta mora početi s x_ i ne smije sadržavati posebne znakove"
#. module: crm_profiling
#: field:crm_profiling.answer,question_id:0
#: field:crm_profiling.question,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_question
msgid "Question"
-msgstr ""
+msgstr "Pitanje"
#. module: crm_profiling
#: wizard_button:open_questionnaire,init,open:0
msgid "Open Questionnaire"
-msgstr ""
+msgstr "Otvori Upitnik"
#. module: crm_profiling
#: field:crm.segmentation,child_ids:0
msgid "Child Profiles"
-msgstr ""
+msgstr "Ishodni profili"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
msgid "crm_profiling management"
-msgstr ""
+msgstr "crm_profiling upravljanje"
#. module: crm_profiling
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: crm_profiling
#: field:crm_profiling.answer,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_answer
msgid "Answer"
-msgstr ""
+msgstr "Odgovor"
#. module: crm_profiling
#: view:res.partner:0
msgid "Profiling"
-msgstr ""
+msgstr "Profiliranje"
#. module: crm_profiling
#: field:crm_profiling.questionnaire,description:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: crm_profiling
#: field:crm.segmentation,answer_no:0
msgid "Excluded Answers"
-msgstr ""
+msgstr "Isključeni Odgovori"
#. module: crm_profiling
#: view:crm_profiling.answer:0
#: view:crm_profiling.question:0
#: field:res.partner,answers_ids:0
msgid "Answers"
-msgstr ""
+msgstr "Odgovori"
#. module: crm_profiling
#: wizard_field:open_questionnaire,init,questionnaire_name:0
msgid "Questionnaire name"
-msgstr ""
+msgstr "Ime Upitnka"
#. module: crm_profiling
#: view:res.partner:0
msgid "Use a questionnaire"
-msgstr ""
+msgstr "Koristi Upitnik"
#. module: crm_profiling
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: crm_profiling
#: view:crm_profiling.questionnaire:0
#: model:ir.actions.act_window,name:crm_profiling.open_questionnaires
#: model:ir.ui.menu,name:crm_profiling.menu_segm_questionnaire
msgid "Questionnaires"
-msgstr ""
+msgstr "Upitnici"
#. module: crm_profiling
#: field:crm_profiling.questionnaire,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_questionnaire
#: wizard_view:open_questionnaire,init:0
msgid "Questionnaire"
-msgstr ""
+msgstr "Upitnik"
#. module: crm_profiling
#: constraint:crm.segmentation:0
msgid "Error ! You can not create recursive profiles."
-msgstr ""
+msgstr "Greška ! Ne možete kreirati rekurzivne profile."
#. module: crm_profiling
#: field:crm.segmentation,profiling_active:0
msgid "Use The Profiling Rules"
-msgstr ""
+msgstr "Koristi Pravila Profiliranja"
#. module: crm_profiling
#: view:crm_profiling.question:0
#: field:crm_profiling.question,answers_ids:0
msgid "Avalaible answers"
-msgstr ""
+msgstr "Raspoloživi odgovori"
#. module: crm_profiling
#: field:crm.segmentation,answer_yes:0
msgid "Included Answers"
-msgstr ""
+msgstr "Uključeni Odgovori"
#. module: crm_profiling
#: help:crm.segmentation,profiling_active:0
@@ -133,6 +134,8 @@ msgid ""
"Check this box if you want to use this tab as part of the segmentation rule. "
"If not checked, the criteria beneath will be ignored"
msgstr ""
+"Označite ako želite koristiti ovu karticu (Tab) kao dio pravila "
+"segmentacije. Ako ne označite, kriterij koji slijedi biti će zanemaren"
#. module: crm_profiling
#: view:crm_profiling.question:0
@@ -140,30 +143,30 @@ msgstr ""
#: model:ir.actions.act_window,name:crm_profiling.open_questions
#: model:ir.ui.menu,name:crm_profiling.menu_segm_answer
msgid "Questions"
-msgstr ""
+msgstr "Pitanja"
#. module: crm_profiling
#: field:crm.segmentation,parent_id:0
msgid "Parent Profile"
-msgstr ""
+msgstr "Prethodni Profil"
#. module: crm_profiling
#: wizard_button:open_questionnaire,init,end:0
#: wizard_button:open_questionnaire,open,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: crm_profiling
#: view:crm.segmentation:0
msgid "Partner Segmentations"
-msgstr ""
+msgstr "Segmentacije Partnera"
#. module: crm_profiling
#: model:ir.actions.wizard,name:crm_profiling.wizard_open_questionnaire
msgid "Using a questionnaire"
-msgstr ""
+msgstr "Korištenje Upitnika"
#. module: crm_profiling
#: wizard_button:open_questionnaire,open,compute:0
msgid "Save Data"
-msgstr ""
+msgstr "Spremi podatke"
diff --git a/addons/crm_profiling/i18n/pt_BR.po b/addons/crm_profiling/i18n/pt_BR.po
index 80fbeab9d43..ccc9abddce2 100644
--- a/addons/crm_profiling/i18n/pt_BR.po
+++ b/addons/crm_profiling/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-12 00:07+0000\n"
-"Last-Translator: Fabio Henrique de Souza \n"
+"PO-Revision-Date: 2010-03-24 01:15+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
@@ -44,12 +44,12 @@ msgstr "Perfis Filhos"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
msgid "crm_profiling management"
-msgstr ""
+msgstr "gerenciamento perfil_crm (profiling)"
#. module: crm_profiling
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome de modelo inválido na definição da ação"
#. module: crm_profiling
#: field:crm_profiling.answer,name:0
diff --git a/addons/crm_vertical/i18n/hr.po b/addons/crm_vertical/i18n/hr.po
index d69c15dfd3f..c8c0b427d67 100644
--- a/addons/crm_vertical/i18n/hr.po
+++ b/addons/crm_vertical/i18n/hr.po
@@ -1,22 +1,23 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * crm_vertical
-#
+# * crm_vertical
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-22 12:14+0000\n"
-"Last-Translator: Jožek Prikratki \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:55+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:04+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: crm_vertical
#: model:ir.module.module,description:crm_vertical.module_meta_information
msgid "Simplification of the interface for CRM."
-msgstr "Pojednostavljenje sučelja za CRM"
+msgstr "Pojednostavljenje sučelja za CRM."
diff --git a/addons/decimal_precision/__terp__.py b/addons/decimal_precision/__terp__.py
index 73426f0c8ea..113f2be8883 100644
--- a/addons/decimal_precision/__terp__.py
+++ b/addons/decimal_precision/__terp__.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -23,8 +23,9 @@
"name": "Decimal Precision Configuration",
"description": """
This module allows to configure the price accuracy you need for different kind
-of usage: accounting, sales, purchases, ... The decimal precision is configured
-per company.
+of usage: accounting, sales, purchases, ...
+
+The decimal precision is configured per company.
""",
"author": "Tiny",
"version": "0.1",
@@ -32,8 +33,8 @@ per company.
"category" : "Generic Modules/Others",
"init_xml": [],
"update_xml": [
- 'decimal_precision_view.xml',
- 'security/ir.model.access.csv',
+ 'decimal_precision_view.xml',
+ 'security/ir.model.access.csv',
],
"demo_xml": [],
"installable": True,
diff --git a/addons/delivery/__terp__.py b/addons/delivery/__terp__.py
index 5897cdb2f99..9b0949e07e1 100644
--- a/addons/delivery/__terp__.py
+++ b/addons/delivery/__terp__.py
@@ -24,14 +24,18 @@
'name': 'Carriers and deliveries',
'version': '1.0',
'category': 'Generic Modules/Sales & Purchases',
- 'description': """Allows you to add delivery methods in sales orders and picking. You can define your own carrier and delivery grids for prices. When creating invoices from picking, Open ERP is able to add and compute the shipping line.""",
+ 'description': """Allows you to add delivery methods in sales orders and picking.
+ You can define your own carrier and delivery grids for prices.
+ When creating invoices from picking, Open ERP is able to add and compute the shipping line.
+
+ """,
'author': 'Tiny',
'depends': ['sale', 'purchase', 'stock'],
'init_xml': ['delivery_data.xml'],
'update_xml': [
'security/ir.model.access.csv',
- 'delivery_view.xml',
- 'delivery_wizard.xml',
+ 'wizard/delivery_sale_order_view.xml',
+ 'delivery_view.xml',
'partner_view.xml'
],
'demo_xml': ['delivery_demo.xml'],
diff --git a/addons/delivery/delivery_wizard.xml b/addons/delivery/delivery_wizard.xml
deleted file mode 100644
index b497e6144d9..00000000000
--- a/addons/delivery/delivery_wizard.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/addons/delivery/i18n/hr.po b/addons/delivery/i18n/hr.po
index 0a9b6342c63..586c69fe1af 100644
--- a/addons/delivery/i18n/hr.po
+++ b/addons/delivery/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * delivery
-#
+# * delivery
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-26 07:23+0000\n"
-"Last-Translator: Miro Glavić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 21:11+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: delivery
#: constraint:ir.model:0
@@ -47,7 +48,7 @@ msgstr "Dostava Poštom"
#. module: delivery
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "Nevažeći XML za Arhitekturu Prikaza!"
+msgstr "Nevažeći XML format za Arhitekturu Prikaza!"
#. module: delivery
#: constraint:res.partner:0
@@ -57,17 +58,18 @@ msgstr "Greška ! Ne možete kreirati rekurzivno pridružene članove."
#. module: delivery
#: field:delivery.grid,state_ids:0
msgid "States"
-msgstr "Države"
+msgstr "Stanja"
#. module: delivery
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "Nevažeće ime modela u definiciji akcije."
+msgstr "Nevažeće ime modela u definiciji Radnje."
#. module: delivery
#: help:res.partner,property_delivery_carrier:0
msgid "This delivery method will be used when invoicing from packing."
msgstr ""
+"Ovaj će način isporuke biti korišten kada se Račun radi kod Pakiranja."
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
@@ -77,7 +79,7 @@ msgstr "Dostavna Mreža"
#. module: delivery
#: field:delivery.grid,zip_from:0
msgid "Start Zip"
-msgstr ""
+msgstr "?Start Zip"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
@@ -87,24 +89,24 @@ msgstr "Fiksno"
#. module: delivery
#: field:delivery.grid,line_ids:0
msgid "Grid Line"
-msgstr ""
+msgstr "?Grid line"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_grid_form
msgid "Delivery Pricelist"
-msgstr "Cijenik Dostave"
+msgstr "Cjenik Dostave"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree5
#: model:ir.ui.menu,name:delivery.menu_action_picking_tree5
msgid "Generate Draft Invoices On Receptions"
-msgstr ""
+msgstr "Generiraj Nacrte Računa kod Zaprimanja"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery line of grid"
-msgstr ""
+msgstr "? Delivery line of grid"
#. module: delivery
#: model:ir.ui.menu,name:delivery.menu_delivery
@@ -114,7 +116,7 @@ msgstr "Dostava"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
-msgstr ""
+msgstr "?Grid line"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
@@ -141,7 +143,7 @@ msgstr "Definicija mreže"
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Weight * Volume"
-msgstr ""
+msgstr "Težina * Volumen"
#. module: delivery
#: selection:delivery.grid.line,operator:0
@@ -151,7 +153,7 @@ msgstr "="
#. module: delivery
#: field:delivery.carrier,product_id:0
msgid "Delivery Product"
-msgstr ""
+msgstr "Proizvod za Isporuku"
#. module: delivery
#: view:delivery.grid.line:0
@@ -161,7 +163,7 @@ msgstr "Uvjet"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_carrier
msgid "Carrier and delivery grids"
-msgstr ""
+msgstr "Mreža Prijevoza i Isporuka"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
@@ -176,7 +178,7 @@ msgstr "Naziv"
#. module: delivery
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
-msgstr ""
+msgstr "Greška: UOS mora biti u kategoriji drogačijoj od one u kojoj je UOM"
#. module: delivery
#: field:delivery.grid,country_ids:0
@@ -188,6 +190,7 @@ msgstr "Zemlje"
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
+"Greška: Predefinirani UOM i UOM kupnje moraju biti u istoj kategoriji."
#. module: delivery
#: view:sale.order:0
@@ -216,14 +219,14 @@ msgstr "Naziv Mreže"
#: field:delivery.grid,carrier_id:0
#: field:stock.picking,carrier_id:0
msgid "Carrier"
-msgstr "Nosač"
+msgstr "Prijevoznik"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
-msgstr "Zapremina"
+msgstr "Volumen"
#. module: delivery
#: field:delivery.grid.line,max_value:0
@@ -256,7 +259,7 @@ msgstr "Operator"
#. module: delivery
#: model:ir.module.module,shortdesc:delivery.module_meta_information
msgid "Carriers and deliveries"
-msgstr ""
+msgstr "Prijevoznici i Isporuke"
#. module: delivery
#: field:delivery.carrier,grids_id:0
@@ -278,7 +281,7 @@ msgstr "Sekvenca"
#. module: delivery
#: field:delivery.carrier,partner_id:0
msgid "Carrier Partner"
-msgstr ""
+msgstr "Partner Prijevoznik"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
@@ -287,23 +290,28 @@ msgid ""
"define your own carrier and delivery grids for prices. When creating "
"invoices from picking, Open ERP is able to add and compute the shipping line."
msgstr ""
+"Omogućuje Vam da dodate načine isporuke Prodajnim narudžbama i pakiranjima. "
+"Možete odrediti vlastitog prijevoznika i cjenike mreže isporuke. Kada se "
+"Računi kreiraju kod preuzimanja, Open ERP može dodati i izračunati način i "
+"troškove otpreme."
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
-msgstr ""
+msgstr "Na Pošt. Broj"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
#: model:ir.ui.menu,name:delivery.menu_action_picking_tree3
msgid "Packing to be invoiced"
-msgstr ""
+msgstr "Pakiranje za koje treba izdati račun"
#. module: delivery
#: help:sale.order,carrier_id:0
msgid ""
"Complete this field if you plan to invoice the shipping based on packing."
msgstr ""
+"Popunite ovo polje ako planirate Otpremu fakturirati na bazi Pakiranja."
#. module: delivery
#: model:ir.actions.wizard,name:delivery.wizard_deliver_line_add
@@ -318,7 +326,7 @@ msgstr "Prodajna Cijena"
#. module: delivery
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "Greška: Nepravilan ean kod"
#. module: delivery
#: view:delivery.grid:0
@@ -328,7 +336,7 @@ msgstr "Dostavne mreže"
#. module: delivery
#: wizard_button:delivery.sale.order,init,end:0
msgid "Cancel"
-msgstr "Poništi"
+msgstr "Otkaži"
#. module: delivery
#: field:sale.order,carrier_id:0
@@ -345,7 +353,7 @@ msgstr "Cijena"
#. module: delivery
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
-msgstr ""
+msgstr "PDV nije točno naveden."
#. module: delivery
#: field:delivery.grid.line,price_type:0
diff --git a/addons/delivery/i18n/pt_BR.po b/addons/delivery/i18n/pt_BR.po
index 28788be1c5f..9534a2fb9e9 100644
--- a/addons/delivery/i18n/pt_BR.po
+++ b/addons/delivery/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-07 18:08+0000\n"
+"PO-Revision-Date: 2010-03-24 01:21+0000\n"
"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:43+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
@@ -21,8 +21,7 @@ msgstr ""
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
-"O nome do objeto precisa iniciar com x_ e não conter nenhum caracter "
-"especial!"
+"O nome do objeto deve começar com x_ e não conter caracteres especiais!"
#. module: delivery
#: selection:delivery.grid.line,operator:0
diff --git a/addons/delivery/wizard/delivery_sale_order.py b/addons/delivery/wizard/delivery_sale_order.py
index c7870e43d85..efc82ae4141 100644
--- a/addons/delivery/wizard/delivery_sale_order.py
+++ b/addons/delivery/wizard/delivery_sale_order.py
@@ -20,77 +20,94 @@
##############################################################################
import time
-import wizard
import ir
-import pooler
from tools.translate import _
-from tools.misc import UpdateableStr
+from osv import osv, fields
-delivery_form = UpdateableStr()
+class make_delivery(osv.osv_memory):
+ _name = "delivery.sale.order"
+ _description = 'Make Delievery'
-delivery_fields = {
- 'carrier_id' : {'string':'Delivery Method', 'type':'many2one', 'relation': 'delivery.carrier','required':True}
-}
-
-def _delivery_default(self, cr, uid, data, context):
- order_obj = pooler.get_pool(cr.dbname).get('sale.order')
- order = order_obj.browse(cr, uid, data['ids'])[0]
- delivery_form.string="""
-
- """ % (data['id'],)
-
-
- if not order.state in ('draft'):
- raise wizard.except_wizard(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
-
-
- carrier_id = order.partner_id.property_delivery_carrier.id
- return {'carrier_id': carrier_id}
-
-def _delivery_set(self, cr, uid, data, context):
- order_obj = pooler.get_pool(cr.dbname).get('sale.order')
- line_obj = pooler.get_pool(cr.dbname).get('sale.order.line')
- order_objs = order_obj.browse(cr, uid, data['ids'], context)
-
- for order in order_objs:
- grid_id = pooler.get_pool(cr.dbname).get('delivery.carrier').grid_get(cr, uid, [data['form']['carrier_id']],order.partner_shipping_id.id)
- if not grid_id:
- raise wizard.except_wizard(_('No grid avaible !'), _('No grid matching for this carrier !'))
- grid_obj=pooler.get_pool(cr.dbname).get('delivery.grid')
- grid = grid_obj.browse(cr, uid, [grid_id])[0]
-
- taxes = grid.carrier_id.product_id.taxes_id
- fpos = order.fiscal_position or False
- taxes_ids = pooler.get_pool(cr.dbname).get('account.fiscal.position').map_tax(cr, uid, fpos, taxes)
- line_obj.create(cr, uid, {
- 'order_id': order.id,
- 'name': grid.carrier_id.name,
- 'product_uom_qty': 1,
- 'product_uom': grid.carrier_id.product_id.uom_id.id,
- 'product_id': grid.carrier_id.product_id.id,
- 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context),
- 'tax_id': [(6,0,taxes_ids)],
- 'type': 'make_to_stock'
- })
-
- return {}
-
-class make_delivery(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [_delivery_default],
- 'result' : {'type' : 'form', 'arch' : delivery_form, 'fields' : delivery_fields, 'state' : [('end', 'Cancel', 'gtk-cancel'),('delivery', 'Add Delivery Costs', 'gtk-ok') ]}
- },
- 'delivery' : {
- 'actions' : [_delivery_set],
- 'result' : {'type' : 'state', 'state' : 'end'}
- },
+ _columns = {
+ 'carrier_id': fields.many2one('delivery.carrier','Delivery Method', required=True),
}
-make_delivery("delivery.sale.order")
+
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ res = super(make_delivery, self).default_get(cr, uid, fields, context=context)
+ order_obj = self.pool.get('sale.order')
+ for order in order_obj.browse(cr, uid, context.get('active_ids', [])):
+ res.update({'carrier_id': order.partner_id.property_delivery_carrier.id})
+ return res
+
+ def view_init(self, cr , uid , fields, context=None):
+ order_obj = self.pool.get('sale.order')
+ for order in order_obj.browse(cr, uid, context.get('active_ids', [])):
+ if not order.state in ('draft'):
+ raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
+ pass
+
+ def delivery_set(self, cr, uid, ids, context):
+ """
+ Adds delivery costs to Sale Order Line.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ rec_ids = context and context.get('active_ids',[])
+ order_obj = self.pool.get('sale.order')
+ line_obj = self.pool.get('sale.order.line')
+ grid_obj = self.pool.get('delivery.grid')
+ carrier_obj = self.pool.get('delivery.carrier')
+ acc_fp_obj = self.pool.get('account.fiscal.position')
+ order_objs = order_obj.browse(cr, uid, rec_ids, context)
+ for datas in self.browse(cr, uid, ids):
+ for order in order_objs:
+ grid_id = carrier_obj.grid_get(cr, uid, [datas.carrier_id.id],order.partner_shipping_id.id)
+ if not grid_id:
+ raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !'))
+
+ if not order.state in ('draft'):
+ raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
+
+ grid = grid_obj.browse(cr, uid, grid_id)
+
+ taxes = grid.carrier_id.product_id.taxes_id
+ fpos = order.fiscal_position or False
+ taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
+ line_obj.create(cr, uid, {
+ 'order_id': order.id,
+ 'name': grid.carrier_id.name,
+ 'product_uom_qty': 1,
+ 'product_uom': grid.carrier_id.product_id.uom_id.id,
+ 'product_id': grid.carrier_id.product_id.id,
+ 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context),
+ 'tax_id': [(6,0,taxes_ids)],
+ 'type': 'make_to_stock'
+ })
+
+ return {}
+
+make_delivery()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/delivery/wizard/delivery_sale_order_view.xml b/addons/delivery/wizard/delivery_sale_order_view.xml
new file mode 100644
index 00000000000..c2609bc3923
--- /dev/null
+++ b/addons/delivery/wizard/delivery_sale_order_view.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ Delivery Costs
+ delivery.sale.order
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/document/document.py b/addons/document/document.py
index f3ffd2f6f6c..af2517c7cbb 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -165,7 +165,7 @@ class document_file(osv.osv):
vals['res_model'] = context.get('default_res_model', False)
if vals.get('res_id', False) and vals.get('res_model', False):
obj_model = self.pool.get(vals['res_model'])
- result = obj_model.read(cr, uid, [vals['res_id']], context=context)
+ result = obj_model.read(cr, uid, [vals['res_id']], ['name', 'partner_id', 'address_id'], context=context)
if len(result):
obj = result[0]
if obj.get('name', False):
diff --git a/addons/document/i18n/hr.po b/addons/document/i18n/hr.po
index 7f599d3c91a..c397d2e6aab 100644
--- a/addons/document/i18n/hr.po
+++ b/addons/document/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * document
-#
+# * document
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-21 01:41+0000\n"
-"Last-Translator: Jožek Prikratki \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 10:09+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:03+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: document
#: field:document.directory,create_date:0
@@ -29,7 +30,7 @@ msgstr "ID resursa"
#. module: document
#: field:document.directory.content,include_name:0
msgid "Include Record Name"
-msgstr "Uključi naziv stavke"
+msgstr "Uključi naziv zapisa"
#. module: document
#: constraint:ir.model:0
@@ -56,7 +57,7 @@ msgstr "Postavke dokumenta"
#. module: document
#: view:ir.attachment:0
msgid "Preview"
-msgstr "Pretpregled"
+msgstr "Pregled"
#. module: document
#: field:ir.attachment,store_method:0
@@ -66,7 +67,7 @@ msgstr "Metoda pohrane"
#. module: document
#: model:ir.actions.act_window,name:document.action_config_auto_directory
msgid "Auto Configure Directory"
-msgstr "Automatski konfiguriraj mapu"
+msgstr "Automatski podesi mapu"
#. module: document
#: field:ir.attachment,file_size:0
@@ -79,7 +80,7 @@ msgid ""
"Check this field if you want that the name of the file start by the record "
"name."
msgstr ""
-"Uključite ovu opciju ako želite da naziv datoteke počinje s nazivom stavke"
+"Uključite ovu opciju ako želite da naziv datoteke počinje s nazivom zapisa"
#. module: document
#: selection:document.directory,type:0
@@ -89,7 +90,7 @@ msgstr "Drugi resursi"
#. module: document
#: field:document.directory,ressource_parent_type_id:0
msgid "Parent Model"
-msgstr "Model roditelj"
+msgstr "Ishodni Model"
#. module: document
#: view:document.configuration.wizard:0
@@ -147,7 +148,7 @@ msgstr "Struktura mape"
#. module: document
#: field:document.directory,parent_id:0
msgid "Parent Item"
-msgstr "Roditelj"
+msgstr "Ishodna stavka"
#. module: document
#: view:ir.attachment:0
@@ -174,7 +175,7 @@ msgstr "Korisnik posljednje promjene"
#. module: document
#: view:document.configuration.wizard:0
msgid "Configure"
-msgstr "Postavi"
+msgstr "Podesi"
#. module: document
#: field:document.directory,ressource_tree:0
@@ -267,7 +268,7 @@ msgstr "Bilješke"
#: view:ir.attachment:0
#: field:ir.attachment,index_content:0
msgid "Indexed Content"
-msgstr "Indeksirani dokument"
+msgstr "Indeksirani sadržaj"
#. module: document
#: view:document.directory:0
@@ -482,7 +483,7 @@ msgstr "Vrsta dokumenta"
#. module: document
#: field:document.directory,child_ids:0
msgid "Children"
-msgstr "Djeca"
+msgstr "Slijedne stavke"
#. module: document
#: view:document.directory:0
diff --git a/addons/document_ftp/__terp__.py b/addons/document_ftp/__terp__.py
index 42561975463..b4c6b2c0b71 100644
--- a/addons/document_ftp/__terp__.py
+++ b/addons/document_ftp/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,9 @@
'name': 'Integrated FTP Server with Document Management System',
'version': '1.99',
'category': 'Generic Modules/Others',
- 'description': """This is a support FTP Interface with document management system:
+ 'description': """This is a support FTP Interface with document management system.
+ With this module you would not only be able to access documents through open erp
+ also you would be able to connect with them through the file system using the FTP protocol.
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
@@ -32,7 +34,7 @@
'init_xml': [],
'update_xml': [
'document_ftp_view.xml',
- 'security/ir.model.access.csv'
+ 'security/ir.model.access.csv'
],
'demo_xml': [],
'installable': True,
diff --git a/addons/document_webdav/__terp__.py b/addons/document_webdav/__terp__.py
index ce11511d0fa..24893c275e1 100644
--- a/addons/document_webdav/__terp__.py
+++ b/addons/document_webdav/__terp__.py
@@ -34,8 +34,9 @@
"author" : "Tiny",
"category" : "Generic Modules/Others",
"website": "http://www.openerp.com",
- "description": """ With this module, the WebDAV server for the documents is activated. You can then use any compatible browser to remotely see the attachments of OpenObject.
-
+ "description": """ With this module, the WebDAV server for the documents is activated.
+ You can then use any compatible browser to remotely see the attachments of OpenObject.
+
After installation, the webDAV server can be controlled by a [webdav] section in the server's config.
""",
"depends" : ["base", "document"],
diff --git a/addons/document_webdav/i18n/pt_BR.po b/addons/document_webdav/i18n/pt_BR.po
new file mode 100644
index 00000000000..aca9eaf8488
--- /dev/null
+++ b/addons/document_webdav/i18n/pt_BR.po
@@ -0,0 +1,31 @@
+# Brazilian Portuguese translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-05-30 15:14+0000\n"
+"PO-Revision-Date: 2010-03-24 01:18+0000\n"
+"Last-Translator: Pedro_Maschio \n"
+"Language-Team: Brazilian Portuguese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: document_webdav_old
+#: model:ir.module.module,description:document_webdav_old.module_meta_information
+msgid ""
+"This is a complete document management system:\n"
+"\t* WebDav Interface\n"
+"\t* User Authentification\n"
+"\t* Document Indexation\n"
+msgstr ""
+"Este é um gerenciador de documentos completo:\n"
+"\t* WebDav Interface\n"
+"\t* User Authentification\n"
+"\t* Document Indexation\n"
diff --git a/addons/event/__terp__.py b/addons/event/__terp__.py
index 04285d4fd3c..654492e4ddf 100644
--- a/addons/event/__terp__.py
+++ b/addons/event/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -45,7 +45,9 @@
'event_view.xml',
'event_sequence.xml',
'security/event_security.xml',
- 'security/ir.model.access.csv'
+ 'security/ir.model.access.csv',
+ 'wizard/event_registration_view.xml',
+ 'wizard/event_registrations_partner.xml',
],
'demo_xml': ['event_demo.xml'],
'installable': True,
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 55dea914ac5..f257c8df6e4 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -162,7 +162,7 @@
-
+
@@ -331,7 +331,7 @@
- Registration by Event
+ Events On Registrationsreport.event.registrationformtree,graph
diff --git a/addons/event/event_wizard.xml b/addons/event/event_wizard.xml
index fd0488dc1dc..2888bd8587f 100644
--- a/addons/event/event_wizard.xml
+++ b/addons/event/event_wizard.xml
@@ -2,17 +2,17 @@
-
+ id="wizard_event_registration"/> -->
-
+ id="wizard_event_reg_partners"/> -->
- ).
#
@@ -15,13 +15,12 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
+
import event_registration
import make_invoice
import event_registrations_partner
import confirm_registration
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/event/wizard/event_registration.py b/addons/event/wizard/event_registration.py
index 40d2196b004..e7252a1a63d 100644
--- a/addons/event/wizard/event_registration.py
+++ b/addons/event/wizard/event_registration.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,40 +15,29 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-import wizard
-import pooler
+from osv import fields, osv
-def _event_registration(self, cr, uid, data, context):
- event_id = data['id']
- cr.execute('SELECT section_id FROM event_event WHERE id = %s', (event_id, ))
- res = cr.fetchone()
- value = {
- 'domain': [('section_id', '=', res[0])],
- 'name': 'Event registration',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'event.registration',
- 'context': { },
- 'type': 'ir.actions.act_window'
- }
- return value
+class event_registration_list(osv.osv_memory):
+ """ List Event Registration """
+ _name = "event.registration.list"
+ _description = "List Event Registrations"
-class wizard_event_registration(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _event_registration,
- 'state': 'end'
- }
- },
- }
-wizard_event_registration("wizard_event_registration")
+ def open_registration(self, cr, uid, ids, context={}):
+ cr.execute('SELECT section_id FROM event_event WHERE id = %s', (context['active_id'],))
+ res = cr.fetchone()
+ return {
+ 'domain': [('section_id', '=', res[0])],
+ 'name': 'Event Registrations',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'event.registration',
+ 'type': 'ir.actions.act_window'
+ }
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+event_registration_list()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/event/wizard/event_registration_view.xml b/addons/event/wizard/event_registration_view.xml
new file mode 100644
index 00000000000..5afe437bc0f
--- /dev/null
+++ b/addons/event/wizard/event_registration_view.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+ List Event Registrations
+ event.registration.list
+ form
+
+
+
+
+
+
+ Registrations
+ ir.actions.act_window
+ event.registration.list
+ form
+ form
+
+ {'record_id' : active_id}
+ new
+
+
+
+
+
+ Event Registrations
+ client_action_multi
+
+ action
+ event.event
+
+
+
+
\ No newline at end of file
diff --git a/addons/event/wizard/event_registrations_partner.py b/addons/event/wizard/event_registrations_partner.py
index 199973d5677..e8fe43f97e0 100644
--- a/addons/event/wizard/event_registrations_partner.py
+++ b/addons/event/wizard/event_registrations_partner.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,57 +15,41 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-
-import wizard
-import pooler
-
from osv import fields, osv
+from tools.translate import _
-def _list_partners(self, cr, uid, data, context):
+class event_partners_list(osv.osv_memory):
+ """ Event Partners """
+ _name = "event.partners.list"
+ _description = "List Event Partners"
+
+ def list_partners(self, cr, uid, ids, context={}):
+ obj_reg = self.pool.get('event.registration')
+ mod_obj = self.pool.get('ir.model.data')
list_partner = []
- pool_obj=pooler.get_pool(cr.dbname)
- obj_reg=pool_obj.get('event.registration')
- reg_ids = obj_reg.search(cr, uid, [('event_id','in',data['ids'])])
- data_reg = obj_reg.browse(cr, uid, reg_ids)
+ reg_ids = obj_reg.search(cr, uid, [('event_id','in',context['active_ids'])], context=context)
+ data_reg = obj_reg.browse(cr, uid, reg_ids, context=context)
for reg in data_reg:
if not reg.partner_id.id in list_partner:
list_partner.append(reg.partner_id.id)
- data['partner_ids'] = list_partner
- return {}
-
-class event_partners(wizard.interface):
- def _reg_partners(self, cr, uid, data, context):
- pool_obj = pooler.get_pool(cr.dbname)
- mod_obj = pool_obj.get('ir.model.data')
result = mod_obj._get_id(cr, uid, 'base', 'view_res_partner_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- model_data_ids = pool_obj.get('ir.model.data').search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_partner_form')])
- resource_id = pool_obj.get('ir.model.data').read(cr,uid,model_data_ids,fields=['res_id'])[0]['res_id']
+ id = mod_obj.read(cr, uid, result, ['res_id'], context=context)
+ model_data_ids = mod_obj.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_partner_form')], context=context)
+ resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
return {
- 'domain': "[('id','in', ["+','.join(map(str,data['partner_ids']))+"])]",
- 'name': 'Partners',
+ 'domain': "[('id','in', ["+','.join(map(str, list_partner))+"])]",
+ 'name': _('Event Partners'),
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'res.partner',
'views': [(False,'tree'),(resource_id,'form')],
'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
+ 'search_view_id': id['res_id']
}
- return {}
-
- states = {
- 'init' : {
- 'actions' : [_list_partners],
- 'result': {'type': 'action' , 'action':_reg_partners, 'state':'end'}
- },
-
- }
-
-event_partners("event.event_reg_partners")
+event_partners_list()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/event/wizard/event_registrations_partner.xml b/addons/event/wizard/event_registrations_partner.xml
new file mode 100644
index 00000000000..c700bde11f9
--- /dev/null
+++ b/addons/event/wizard/event_registrations_partner.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+ Event Partners
+ event.partners.list
+ form
+
+
+
+
+
+
+ List Register Partners
+ ir.actions.act_window
+ event.partners.list
+ form
+ form
+
+ {'record_id' : active_id}
+ new
+
+
+
+
+
+ Event Partners
+ client_action_multi
+
+ action
+ event.event
+
+
+
+
\ No newline at end of file
diff --git a/addons/hr/i18n/it.po b/addons/hr/i18n/it.po
index 625f910a1e0..ccae93abc2f 100644
--- a/addons/hr/i18n/it.po
+++ b/addons/hr/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 16:29+0000\n"
-"Last-Translator: Mario Riva \n"
+"PO-Revision-Date: 2010-03-28 10:20+0000\n"
+"Last-Translator: aiedail92 \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
@@ -52,12 +52,12 @@ msgstr "Domenica"
#. module: hr
#: view:res.users:0
msgid "Parents"
-msgstr ""
+msgstr "Genitori"
#. module: hr
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Modello di nome non valido nella definzione dell'azione."
#. module: hr
#: view:hr.department:0
@@ -417,7 +417,7 @@ msgstr "Categorie Dipendenti"
#. module: hr
#: field:hr.employee,address_home_id:0
msgid "Home Address"
-msgstr ""
+msgstr "Indirizzo abitazione"
#. module: hr
#: view:hr.department:0
diff --git a/addons/hr_attendance/__terp__.py b/addons/hr_attendance/__terp__.py
index d646f352255..7ea1b0b33ff 100644
--- a/addons/hr_attendance/__terp__.py
+++ b/addons/hr_attendance/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,12 @@
'name': 'Attendances Of Employees',
'version': '1.1',
'category': 'Generic Modules/Human Resources',
- 'description': """This module aims to manage employee's attendances.""",
+ 'description': """
+ This module aims to manage employee's attendances.
+
+ Keeps account of the attendances of the employees on the basis of the
+ actions(Sign in/Sign out) performed by them.
+ """,
'author': 'Tiny',
'depends': ['base', 'hr'],
'update_xml': [
diff --git a/addons/hr_evaluation/__init__.py b/addons/hr_evaluation/__init__.py
index e8abcb28e1d..0f403959cd9 100644
--- a/addons/hr_evaluation/__init__.py
+++ b/addons/hr_evaluation/__init__.py
@@ -20,8 +20,8 @@
##############################################################################
import hr_evaluation
+import wizard
import report
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/__terp__.py b/addons/hr_evaluation/__terp__.py
index 6472bc80496..be1ce233718 100644
--- a/addons/hr_evaluation/__terp__.py
+++ b/addons/hr_evaluation/__terp__.py
@@ -26,11 +26,19 @@
"category" : "Generic Modules/Human Resources",
"website" : "http://www.openerp.com",
"depends" : ["hr",'hr_recruitment','survey'],
- "description": "Ability to create employees evaluation.",
+ "description": """
+ Ability to create employees evaluation.
+ An evaluation can be created by employee for subordinates
+ juniors as well as his manager.The evaluation is done under a plan
+ in which various surveys can be created and it can be defined which
+ level of employee hierarchy fills what and final review and evaluation
+ is done by the manager.Every evaluation filled by the employees can be viewed
+ in the form of """,
"init_xml" : [],
"demo_xml" : ["hr_evaluation_demo.xml"],
"update_xml" : [
"security/ir.model.access.csv",
+ "wizard/hr_evaluation_mail_view.xml",
"hr_evaluation_view.xml",
"report/hr_evaluation_report_view.xml"],
"active": False,
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index 6c782a32d02..407b94b0e55 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -20,8 +20,9 @@
##############################################################################
import time
-from osv import fields, osv
from mx import DateTime as dt
+
+from osv import fields, osv
import tools
from tools.translate import _
@@ -31,7 +32,7 @@ class hr_evaluation_plan(osv.osv):
_columns = {
'name': fields.char("Evaluation Plan", size=64, required=True),
'company_id': fields.many2one('res.company', 'Company', required=True),
- 'phase_ids' : fields.one2many('hr_evaluation.plan.phase', 'plan_id', 'Evaluation Phases'),
+ 'phase_ids': fields.one2many('hr_evaluation.plan.phase', 'plan_id', 'Evaluation Phases'),
'month_first': fields.integer('First Evaluation After'),
'month_next': fields.integer('Next Evaluation After'),
'active': fields.boolean('Active')
@@ -66,31 +67,74 @@ class hr_evaluation_plan_phase(osv.osv):
help="Send an anonymous summary to the employee"),
'wait': fields.boolean('Wait Previous Phases',
help="Check this box if you want to wait that all preceeding phases " +
- "are finished before launching this phase.")
-
+ "are finished before launching this phase."),
+ 'mail_feature': fields.boolean('Send mail for this phase',help="Check this box if you want to send mail to employees"+
+ "coming under this phase"),
+ 'mail_body': fields.text('Email'),
+ 'email_subject':fields.text('char')
}
_defaults = {
'sequence' : lambda *a: 1,
+ 'email_subject':_('''Regarding '''),
+ 'mail_body' : lambda *a:_('''
+Date : %(date)s
+
+Dear %(employee_name)s,
+
+I am doing an evaluation regarding %(eval_name)s.
+
+Kindly submit your response.
+
+
+Thanks,
+--
+%(user_signature)s
+
+ '''),
}
+
+
hr_evaluation_plan_phase()
class hr_employee(osv.osv):
+ _name = "hr.employee"
_inherit="hr.employee"
_columns = {
'evaluation_plan_id': fields.many2one('hr_evaluation.plan', 'Evaluation Plan'),
'evaluation_date': fields.date('Next Evaluation', help="Date of the next evaluation"),
}
- def onchange_evaluation_plan_id(self,cr,uid,ids,evaluation_plan_id,context={}):
- evaluation_date = self.browse(cr, uid, ids)[0].evaluation_date or ''
+ def run_employee_evaluation(self, cr, uid, automatic=False, use_new_cursor=False, context=None):
+ for id in self.browse(cr, uid, self.search(cr, uid, [],context=context),context=context):
+ if id.evaluation_plan_id and id.evaluation_date:
+ if (dt.ISO.ParseAny(id.evaluation_date) + dt.RelativeDateTime(months = int(id.evaluation_plan_id.month_next))).strftime('%Y-%m-%d') <= time.strftime("%Y-%m-%d"):
+ self.write(cr, uid, id.id, {'evaluation_date' : (dt.ISO.ParseAny(id.evaluation_date) + dt.RelativeDateTime(months =+ int(id.evaluation_plan_id.month_next))).strftime('%Y-%m-%d')},context=context)
+ self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : id.id, 'plan_id': id.evaluation_plan_id},context)
+ return True
+
+ def onchange_evaluation_plan_id(self, cr, uid, ids, evaluation_plan_id, evaluation_date, context={}):
+ evaluation_date = evaluation_date or False
evaluation_plan_obj=self.pool.get('hr_evaluation.plan')
if evaluation_plan_id:
- for evaluation_plan in evaluation_plan_obj.browse(cr,uid,[evaluation_plan_id]):
- if not evaluation_date:
- evaluation_date=(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d'))+ dt.RelativeDateTime(months=+evaluation_plan.month_first)).strftime('%Y-%m-%d')
- else:
- evaluation_date=(dt.ISO.ParseAny(evaluation_date)+ dt.RelativeDateTime(months=+evaluation_plan.month_next)).strftime('%Y-%m-%d')
+ flag = False
+ evaluation_plan = evaluation_plan_obj.browse(cr, uid, [evaluation_plan_id],context=context)[0]
+ if not evaluation_date:
+ evaluation_date=(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d'))+ dt.RelativeDateTime(months=+evaluation_plan.month_first)).strftime('%Y-%m-%d')
+ flag = True
+ else:
+ if (dt.ISO.ParseAny(evaluation_date) + dt.RelativeDateTime(months = int(evaluation_plan.month_next))).strftime('%Y-%m-%d') <= time.strftime("%Y-%m-%d"):
+ evaluation_date=(dt.ISO.ParseAny(evaluation_date)+ dt.RelativeDateTime(months=+evaluation_plan.month_next)).strftime('%Y-%m-%d')
+ flag = True
+ if ids and flag:
+ self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : ids[0], 'plan_id': evaluation_plan_id},context=context)
return {'value': {'evaluation_date':evaluation_date}}
+
+ def create(self, cr, uid, vals, context={}):
+ id = super(hr_employee, self).create(cr, uid, vals, context=context)
+ if vals.get('evaluation_plan_id', False):
+ self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id' : id, 'plan_id': vals['evaluation_plan_id']},context=context)
+ return id
+
hr_employee()
class hr_evaluation(osv.osv):
@@ -132,18 +176,20 @@ class hr_evaluation(osv.osv):
employee_obj=self.pool.get('hr.employee')
evaluation_plan_id=''
if employee_id:
- for employee in employee_obj.browse(cr,uid,[employee_id]):
+ for employee in employee_obj.browse(cr,uid,[employee_id],context=context):
if employee and employee.evaluation_plan_id and employee.evaluation_plan_id.id:
evaluation_plan_id=employee.evaluation_plan_id.id
- employee_ids=employee_obj.search(cr,uid,[('parent_id','=',employee.id)])
+ employee_ids=employee_obj.search(cr,uid,[('parent_id','=',employee.id)],context=context)
return {'value': {'plan_id':evaluation_plan_id}}
- def button_plan_in_progress(self,cr, uid, ids, context):
+ def button_plan_in_progress(self,cr, uid, ids, context={}):
+ user_obj = self.pool.get('res.users')
employee_obj = self.pool.get('hr.employee')
hr_eval_inter_obj = self.pool.get('hr.evaluation.interview')
survey_request_obj = self.pool.get('survey.request')
- curr_employee=self.browse(cr,uid, ids)[0].employee_id
- child_employees=employee_obj.browse(cr,uid, employee_obj.search(cr,uid,[('parent_id','=',curr_employee.id)]))
+ hr_eval_plan_obj = self.pool.get('hr_evaluation.plan.phase')
+ curr_employee=self.browse(cr,uid, ids, context=context)[0].employee_id
+ child_employees=employee_obj.browse(cr,uid, employee_obj.search(cr,uid,[('parent_id','=',curr_employee.id)],context=context))
manager_employee=curr_employee.parent_id
for evaluation in self.browse(cr,uid,ids):
if evaluation and evaluation.plan_id:
@@ -151,57 +197,82 @@ class hr_evaluation(osv.osv):
for phase in evaluation.plan_id.phase_ids:
if phase.action == "bottom-up":
for child in child_employees:
+ user = False
if child.user_id:
user = child.user_id.id
- id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id ,'user_id' : user,'survey_id' : phase.survey_id.id, 'user_to_review_id' : child.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')})
+ id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id ,'user_id' : user,'survey_id' : phase.survey_id.id, 'user_to_review_id' : child.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
if not phase.wait:
- hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context)
+ hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
+ if phase.mail_feature:
+ src = tools.config.options['email_from']
+ user_obj_id = user_obj.browse(cr,uid,uid)
+ val = {
+ 'employee_name':child.name,
+ 'user_signature':curr_employee.name,
+# 'company_name':user_obj_id.company_id.name,
+ 'eval_name':phase.survey_id.title,
+ 'date':time.strftime('%Y-%m-%d'),
+ }
+ mailbody = hr_eval_plan_obj.read(cr,uid,phase.id,['mail_body','email_subject'],context=context)
+ body = mailbody['mail_body']%val
+ sub = mailbody['email_subject']+phase.survey_id.title
+ dest=[child.work_email]
+ if dest:
+ tools.email_send(src,dest,sub,body)
apprai_id.append(id)
+
elif phase.action == "top-down":
if manager_employee:
user = False
if manager_employee.user_id:
user = manager_employee.user_id.id
- id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id': user ,'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')})
+ id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id': user ,'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
if not phase.wait:
- hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context)
+ hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
+ if phase.mail_feature:
+ val.update({'employee_name':manager_employee.name})
+ mailbody = hr_eval_plan_obj.read(cr,uid,phase.id,['mail_body'],context=context)
+ body = mailbody['mail_body']%val
+ dest = [manager_employee.work_email]
+ if dest:
+ tools.email_send(src,dest,sub,body)
apprai_id.append(id)
elif phase.action == "self":
if curr_employee:
user = False
if curr_employee.user_id:
user = curr_employee.user_id.id
- id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :curr_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')})
+ id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :curr_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
if not phase.wait:
- hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context)
+ hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
apprai_id.append(id)
elif phase.action == "final":
if manager_employee:
user = False
if manager_employee.user_id:
user = manager_employee.user_id.id
- id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')})
+ id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
if not phase.wait:
- hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context)
+ hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
apprai_id.append(id)
self.write(cr, uid, evaluation.id, {'survey_request_ids':[[6, 0, apprai_id]]})
- self.write(cr,uid,ids,{'state':'wait'})
+ self.write(cr,uid,ids,{'state':'wait'},context=context)
return True
- def button_final_validation(self,cr, uid, ids, context):
+ def button_final_validation(self,cr, uid, ids, context={}):
self.write(cr,uid,ids,{'state':'progress'})
request_obj = self.pool.get('hr.evaluation.interview')
- for id in self.browse(cr, uid ,ids):
- if len(id.survey_request_ids) != len(request_obj.search(cr, uid, [('evaluation_id', '=', id.id),('state', '=', 'done')])):
+ for id in self.browse(cr, uid ,ids,context=context):
+ if len(id.survey_request_ids) != len(request_obj.search(cr, uid, [('evaluation_id', '=', id.id),('state', '=', 'done')],context=context)):
raise osv.except_osv(_('Warning !'),_("You cannot change state, because some appraisal in waiting answer or draft state"))
return True
- def button_done(self,cr, uid, ids, context):
- self.write(cr,uid,ids,{'state':'done', 'date_close': time.strftime('%Y-%m-%d')})
+ def button_done(self,cr, uid, ids, context={}):
+ self.write(cr,uid,ids,{'state':'done', 'date_close': time.strftime('%Y-%m-%d')}, context=context)
return True
- def button_cancel(self,cr, uid, ids, context):
- self.write(cr,uid,ids,{'state':'cancel'})
+ def button_cancel(self,cr, uid, ids, context={}):
+ self.write(cr,uid,ids,{'state':'cancel'}, context=context)
return True
hr_evaluation()
@@ -211,6 +282,7 @@ class survey_request(osv.osv):
_columns = {
'is_evaluation':fields.boolean('Is Evaluation?'),
}
+
survey_request()
class hr_evaluation_interview(osv.osv):
@@ -218,7 +290,6 @@ class hr_evaluation_interview(osv.osv):
_inherits={'survey.request':'request_id'}
_description='Evaluation Interview'
_columns = {
-
'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade'),
'user_to_review_id': fields.many2one('hr.employee', 'Employee'),
'evaluation_id' : fields.many2one('hr_evaluation.evaluation', 'Evaluation'),
@@ -227,23 +298,24 @@ class hr_evaluation_interview(osv.osv):
'is_evaluation': lambda *a: True,
}
- def survey_req_waiting_answer(self, cr, uid, ids, context):
+ def survey_req_waiting_answer(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, { 'state' : 'waiting_answer'})
# for id in self.browse(cr, uid, ids):
-# if id.user_id and id.user_id.address_id and id.user_id.address_id and id.user_id.address_id.email:
-# msg = " Hello %s, \n\n We are inviting you for %s survey. \n\n Thanks," %(id.user_id.name, id.survey_id.title)
-# tools.email_send(tools.config['email_from'], [id.user_id.address_id.email],\
+# print"id",id
+# if id.user_to_review_id and id.user_to_review_id.work_email:
+# msg = " Hello %s, \n\n We are inviting you for %s survey. \n\n Thanks," %(id.user_to_review_id.name, id.survey_id.title)
+# tools.email_send(tools.config['email_from'], [id.user_to_review_id.work_email],\
# 'Invite to fill up Survey', msg)
return True
- def survey_req_done(self, cr, uid, ids, context):
+ def survey_req_done(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, { 'state' : 'done'})
hr_eval_obj = self.pool.get('hr_evaluation.evaluation')
- for id in self.browse(cr, uid, ids):
+ for id in self.browse(cr, uid, ids,context=context):
flag = False
wating_id = 0
tot_done_req = 0
- records = self.pool.get("hr_evaluation.evaluation").browse(cr, uid, [id.evaluation_id.id])[0].survey_request_ids
+ records = self.pool.get("hr_evaluation.evaluation").browse(cr, uid, [id.evaluation_id.id],context=context)[0].survey_request_ids
for child in records:
if child.state == "draft" :
wating_id = child.id
@@ -254,15 +326,17 @@ class hr_evaluation_interview(osv.osv):
tot_done_req += 1
if not flag and wating_id:
self.survey_req_waiting_answer(cr, uid, [wating_id], context)
- hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress' :tot_done_req * 100 / len(records)})
+ hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress' :tot_done_req * 100 / len(records)}, context=context)
return True
- def survey_req_draft(self, cr, uid, ids, arg):
- self.write(cr, uid, ids, { 'state' : 'draft'})
+ def survey_req_draft(self, cr, uid, ids, context={}):
+ self.write(cr, uid, ids, { 'state' : 'draft'}, context=context)
return True
- def survey_req_cancel(self, cr, uid, ids, context):
- self.write(cr, uid, ids, { 'state' : 'cancel'})
+ def survey_req_cancel(self, cr, uid, ids, context={}):
+ self.write(cr, uid, ids, { 'state' : 'cancel'}, context=context)
return True
-hr_evaluation_interview()
\ No newline at end of file
+hr_evaluation_interview()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:1
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index 07aa85e0085..21aaa5473ee 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -44,8 +44,8 @@
-
+
@@ -109,7 +126,7 @@
-
+
@@ -201,6 +218,12 @@
+
+
+
+
+
+
@@ -226,9 +249,9 @@
-
-
@@ -242,10 +265,10 @@
-
-
+
@@ -263,7 +286,7 @@
-
@@ -303,5 +326,9 @@
id="menu_open_hr_evaluation_interview_requests"
action="action_hr_evaluation_interview_tree"/>
+
diff --git a/addons/hr_evaluation/report/__init__.py b/addons/hr_evaluation/report/__init__.py
index 193a389c85d..507f8d6715b 100644
--- a/addons/hr_evaluation/report/__init__.py
+++ b/addons/hr_evaluation/report/__init__.py
@@ -18,4 +18,6 @@
# along with this program. If not, see .
#
##############################################################################
-import hr_evaluation_report
\ No newline at end of file
+import hr_evaluation_report
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_evaluation/report/hr_evaluation_report.py b/addons/hr_evaluation/report/hr_evaluation_report.py
index 5e27b568c4f..3b318905bbe 100644
--- a/addons/hr_evaluation/report/hr_evaluation_report.py
+++ b/addons/hr_evaluation/report/hr_evaluation_report.py
@@ -18,11 +18,9 @@
# along with this program. If not, see .
#
##############################################################################
-
import tools
from osv import fields,osv
-
class hr_evaluation_report(osv.osv):
_name = "hr.evaluation.report"
_description = "Evaluations Statistics"
diff --git a/addons/hr_evaluation/wizard/__init__.py b/addons/hr_evaluation/wizard/__init__.py
new file mode 100644
index 00000000000..367cabbe90b
--- /dev/null
+++ b/addons/hr_evaluation/wizard/__init__.py
@@ -0,0 +1,25 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import hr_evaluation_mail
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail.py b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
new file mode 100644
index 00000000000..42b0654de1b
--- /dev/null
+++ b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
@@ -0,0 +1,43 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+import tools
+
+class hr_evaluation_reminder(osv.osv_memory):
+ _name = "hr.evaluation.reminder"
+ _description = "Sends Reminders to employess to fill the evaluations"
+ _columns = {
+ 'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Evaluations', required=True)
+ }
+
+ def send_mail(self, cr, uid, ids, context={}):
+ hr_evaluation_obj = self.pool.get('hr_evaluation.evaluation')
+ evaluation_data = self.read(cr, uid, ids, context=context)[0]
+ for waiting_id in hr_evaluation_obj.browse(cr, uid, evaluation_data['evaluation_id'], context=context).survey_request_ids:
+ if waiting_id.state == "waiting_answer" and waiting_id.user_to_review_id.work_email :
+ msg = " Hello %s, \n\n Kindly post your response for %s survey. \n\n Thanks," %(waiting_id.user_to_review_id.name, waiting_id.survey_id.title)
+ tools.email_send(tools.config['email_from'], [waiting_id.user_to_review_id.work_email],\
+ 'Reminder to fill up Survey', msg)
+ return {'type': 'ir.actions.act_window_close'}
+
+hr_evaluation_reminder()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml
new file mode 100644
index 00000000000..fff55095712
--- /dev/null
+++ b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ hr.evaluation.send.mail
+ hr.evaluation.reminder
+ form
+
+
+
+
+
+
+ Evaluation Send Mail
+ hr.evaluation.reminder
+ ir.actions.act_window
+ form
+ tree,form
+
+ {'record_id':active_id}
+ new
+
+
+
+
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index bb6a4d38577..3c99276f7f8 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -220,6 +220,7 @@ class hr_expense_line(osv.osv):
# Compute based on pricetype of employee company
pricetype_id = self.pool.get('hr.employee').browse(cr,uid,employee_id).user_id.company_id.property_valuation_price_type.id
+ context['currency_id']=self.pool.get('hr.employee').browse(cr,uid,employee_id).user_id.company_id.currency_id.id
pricetype=self.pool.get('product.price.type').browse(cr,uid,pricetype_id)
amount_unit=product.price_get(pricetype.field, context)[product.id]
diff --git a/addons/hr_holidays/__init__.py b/addons/hr_holidays/__init__.py
index 441f7d252a9..9fc701068ef 100644
--- a/addons/hr_holidays/__init__.py
+++ b/addons/hr_holidays/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,11 +15,11 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-import hr
+import hr_holidays
import report
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/__terp__.py b/addons/hr_holidays/__terp__.py
index 26dc78675cc..472061e2789 100644
--- a/addons/hr_holidays/__terp__.py
+++ b/addons/hr_holidays/__terp__.py
@@ -51,8 +51,8 @@
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
- 'hr_workflow.xml',
- 'hr_view.xml',
+ 'hr_holidays_workflow.xml',
+ 'hr_holidays_view.xml',
'hr_holidays_wizard.xml',
'hr_holidays_report.xml',
#'process/hr_holidays_process.xml'
diff --git a/addons/hr_holidays/hr.py b/addons/hr_holidays/hr_holidays.py
similarity index 100%
rename from addons/hr_holidays/hr.py
rename to addons/hr_holidays/hr_holidays.py
diff --git a/addons/hr_holidays/hr_holidays_demo.xml b/addons/hr_holidays/hr_holidays_demo.xml
new file mode 100644
index 00000000000..5e9f8cfae07
--- /dev/null
+++ b/addons/hr_holidays/hr_holidays_demo.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ Casual Leave
+ red
+
+
+
+
+
+ 12
+
+
+
+ Going For Tour
+
+ 2010-01-01 08:00
+ 2010-01-03 18:00
+ 3
+
+
+
+
+
+ Sickness Leave
+ black
+
+
+
+
+
+ 6
+
+
+
+ Sickness
+
+ 2010-02-01 00:00
+ 2010-02-03 08:00
+ 3
+
+
+
+
+
diff --git a/addons/hr_holidays/hr_view.xml b/addons/hr_holidays/hr_holidays_view.xml
similarity index 98%
rename from addons/hr_holidays/hr_view.xml
rename to addons/hr_holidays/hr_holidays_view.xml
index e8d3d6ea32b..aa1fdd5534a 100644
--- a/addons/hr_holidays/hr_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -10,15 +10,15 @@
-
+
-
+
-
-
+
+
diff --git a/addons/hr_holidays/hr_workflow.xml b/addons/hr_holidays/hr_holidays_workflow.xml
similarity index 100%
rename from addons/hr_holidays/hr_workflow.xml
rename to addons/hr_holidays/hr_holidays_workflow.xml
diff --git a/addons/hr_recruitment/__init__.py b/addons/hr_recruitment/__init__.py
index 90e97e4a2e8..75b9049aa0f 100644
--- a/addons/hr_recruitment/__init__.py
+++ b/addons/hr_recruitment/__init__.py
@@ -21,7 +21,7 @@
##############################################################################
-import hr_hr
+import hr_recruitment
import report
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_recruitment/__terp__.py b/addons/hr_recruitment/__terp__.py
index 59f74ea4e69..a19ef25515b 100644
--- a/addons/hr_recruitment/__terp__.py
+++ b/addons/hr_recruitment/__terp__.py
@@ -23,7 +23,7 @@
{
'name': 'HR - Recruitement',
'version': '1.0',
- 'category': 'Generic Modules/HR',
+ 'category': 'Generic Modules/Human Resources',
'description': """
Manages job positions and the recruitement process. It's integrated with the
survey module to allows you to define interview for different jobs.
@@ -36,19 +36,20 @@ system to store and search in your CV base.
'website': 'http://www.openerp.com',
'depends': ['hr','survey','crm'],
'init_xml': [
- 'hr_hr_data.xml'
+ 'hr_recruitment_data.xml'
],
'update_xml': [
- 'hr_hr_wizard.xml',
- 'hr_hr_view.xml',
- 'hr_hr_menu.xml',
- 'security/hr_hr_security.xml',
+ 'hr_recruitment_wizard.xml',
+ 'hr_recruitment_view.xml',
+ 'hr_recruitment_menu.xml',
+# 'report_hr_recruitment_view.xml',
+ 'security/hr_recruitment_security.xml',
'security/ir.model.access.csv',
- 'board_hr_hr_statistical_view.xml',
+ 'board_hr_recruitment_statistical_view.xml',
'report/hr_recruitment_report_view.xml'
],
'demo_xml': [
- 'hr_hr_demo.xml'
+ 'hr_recruitment_demo.xml'
],
'installable': True,
'active': False,
diff --git a/addons/hr_recruitment/board_hr_hr_statistical_view.xml b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml
similarity index 100%
rename from addons/hr_recruitment/board_hr_hr_statistical_view.xml
rename to addons/hr_recruitment/board_hr_recruitment_statistical_view.xml
diff --git a/addons/hr_recruitment/hr_hr.py b/addons/hr_recruitment/hr_recruitment.py
similarity index 100%
rename from addons/hr_recruitment/hr_hr.py
rename to addons/hr_recruitment/hr_recruitment.py
diff --git a/addons/hr_recruitment/hr_hr_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml
similarity index 100%
rename from addons/hr_recruitment/hr_hr_data.xml
rename to addons/hr_recruitment/hr_recruitment_data.xml
diff --git a/addons/hr_recruitment/hr_hr_demo.xml b/addons/hr_recruitment/hr_recruitment_demo.xml
similarity index 100%
rename from addons/hr_recruitment/hr_hr_demo.xml
rename to addons/hr_recruitment/hr_recruitment_demo.xml
diff --git a/addons/hr_recruitment/hr_hr_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
similarity index 100%
rename from addons/hr_recruitment/hr_hr_menu.xml
rename to addons/hr_recruitment/hr_recruitment_menu.xml
diff --git a/addons/hr_recruitment/hr_hr_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
similarity index 100%
rename from addons/hr_recruitment/hr_hr_view.xml
rename to addons/hr_recruitment/hr_recruitment_view.xml
diff --git a/addons/hr_recruitment/hr_hr_wizard.xml b/addons/hr_recruitment/hr_recruitment_wizard.xml
similarity index 100%
rename from addons/hr_recruitment/hr_hr_wizard.xml
rename to addons/hr_recruitment/hr_recruitment_wizard.xml
diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py
index 2f48dabd7a9..7ba9abfe812 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report.py
+++ b/addons/hr_recruitment/report/hr_recruitment_report.py
@@ -21,7 +21,7 @@
import tools
from osv import fields,osv
-from hr_recruitment import hr_hr
+from hr_recruitment import hr_recruitment
class hr_recruitment_report(osv.osv):
_name = "hr.recruitment.report"
@@ -35,7 +35,7 @@ class hr_recruitment_report(osv.osv):
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]",readonly=True),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'department_id':fields.many2one('hr.department','Department',readonly=True),
- 'priority': fields.selection(hr_hr.AVAILABLE_PRIORITIES, 'Appreciation'),
+ 'priority': fields.selection(hr_recruitment.AVAILABLE_PRIORITIES, 'Appreciation'),
}
_order = 'date desc'
diff --git a/addons/hr_recruitment/security/hr_hr_security.xml b/addons/hr_recruitment/security/hr_recruitment_security.xml
similarity index 100%
rename from addons/hr_recruitment/security/hr_hr_security.xml
rename to addons/hr_recruitment/security/hr_recruitment_security.xml
diff --git a/addons/hr_recruitment/wizard/__init__.py b/addons/hr_recruitment/wizard/__init__.py
index a70a631ffa6..48e225c5a54 100644
--- a/addons/hr_recruitment/wizard/__init__.py
+++ b/addons/hr_recruitment/wizard/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -15,12 +15,12 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-import hr_hr_wizard
+import hr_recruitment_wizard
diff --git a/addons/hr_recruitment/wizard/hr_hr_wizard.py b/addons/hr_recruitment/wizard/hr_recruitment_wizard.py
similarity index 100%
rename from addons/hr_recruitment/wizard/hr_hr_wizard.py
rename to addons/hr_recruitment/wizard/hr_recruitment_wizard.py
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index d3dc6005082..e89d52659f4 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,11 +15,12 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
import time
+
from osv import fields
from osv import osv
from osv.orm import except_orm
@@ -84,7 +85,7 @@ class hr_analytic_timesheet(osv.osv):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))])
if emp_id:
- emp = self.pool.get('hr.employee').browse(cr, uid, emp_id[0], context=context)
+ emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if bool(emp.product_id):
a = emp.product_id.product_tmpl_id.property_account_expense.id
if not a:
@@ -97,7 +98,7 @@ class hr_analytic_timesheet(osv.osv):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))])
if emp_id:
- emp = self.pool.get('hr.employee').browse(cr, uid, emp_id[0], context=context)
+ emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if emp.journal_id:
return emp.journal_id.id
return False
@@ -113,7 +114,7 @@ class hr_analytic_timesheet(osv.osv):
}
def on_change_account_id(self, cr, uid, ids, account_id):
return {'value':{}}
-
+
def on_change_date(self, cr, uid, ids, date):
if ids:
new_date = self.read(cr,uid,ids[0],['date'])['date']
@@ -121,20 +122,18 @@ class hr_analytic_timesheet(osv.osv):
warning = {'title':'User Alert!','message':'Changing the date will let this entry appear in the timesheet of the new date.'}
return {'value':{},'warning':warning}
return {'value':{}}
-
+
def create(self, cr, uid, vals, context={}):
- try:
- res = super(hr_analytic_timesheet, self).create(cr, uid, vals, context)
- return res
- except Exception,e:
- if '"journal_id" viol' in e.args[0]:
- raise except_orm(_('ValidateError'),
- _('No analytic journal available for this employee.\nDefine an employee for the selected user and assign an analytic journal.'))
- elif '"account_id" viol' in e.args[0]:
- raise except_orm(_('ValidateError'),
- _('No analytic account defined on the project.\nPlease set one or we can not automatically fill the timesheet.'))
- else:
- raise except_orm(_('UnknownError'), str(e))
+ emp_obj = self.pool.get('hr.employee')
+ emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
+ ename = ''
+ if emp_id:
+ ename = emp_obj.browse(cr, uid, emp_id[0], context=context).name
+ if not vals.get('journal_id',False):
+ raise osv.except_osv(_('Warning !'), _('Analytic journal is not defined for employee %s \nDefine an employee for the selected user and assign an analytic journal!')%(ename,))
+ if not vals.get('account_id',False):
+ raise osv.except_osv(_('Warning !'), _('No analytic account defined on the project.\nPlease set one or we can not automatically fill the timesheet.'))
+ return super(hr_analytic_timesheet, self).create(cr, uid, vals, context=context)
def on_change_user_id(self, cr, uid, ids, user_id):
if not user_id:
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index 24008e64843..3702bcb0f1d 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -308,6 +308,17 @@
+
+ hr.attendance.tree
+ hr.attendance
+ tree
+
+
+
+
+
+
+
diff --git a/addons/idea/__terp__.py b/addons/idea/__terp__.py
index c56d89e669a..592354e85fc 100644
--- a/addons/idea/__terp__.py
+++ b/addons/idea/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,13 @@
'name': 'Idea Manager',
'version': '0.1',
'category': 'Tools',
- 'description': """This module allows your user to easily and efficiently participate in the innovation of the enterprise. It allows everybody to express ideas about different subjects. Then, others users can comment these ideas and vote for particular ideas. Each idea as a score based on the different votes. The managers can obtain an easy view on best ideas from all the users. Once installed, check the menu 'Ideas' in the 'Tools' main menu.""",
+ 'description': """
+ This module allows your user to easily and efficiently participate in the innovation of the enterprise.
+ It allows everybody to express ideas about different subjects.
+ Then, others users can comment these ideas and vote for particular ideas.
+ Each idea as a score based on the different votes.
+ The managers can obtain an easy view on best ideas from all the users.
+ Once installed, check the menu 'Ideas' in the 'Tools' main menu.""",
'author': 'Tiny',
'website': 'http://openerp.com',
'depends': ['base'],
@@ -34,7 +40,7 @@
'idea_view.xml',
'idea_workflow.xml',
'security/idea_security.xml',
- 'security/ir.model.access.csv',
+ 'security/ir.model.access.csv',
],
'demo_xml': [],
'installable': True,
diff --git a/addons/idea/i18n/hr.po b/addons/idea/i18n/hr.po
index 020d7d042ba..0d143c7948c 100644
--- a/addons/idea/i18n/hr.po
+++ b/addons/idea/i18n/hr.po
@@ -1,172 +1,174 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * idea
-#
+# * idea
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 10:38+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:54+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: idea
#: field:idea.category,name:0
#: field:idea.idea,category_id:0
msgid "Category"
-msgstr ""
+msgstr "Kategorija"
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Very Good"
-msgstr ""
+msgstr "Vrlo dobro"
#. module: idea
#: view:idea.idea:0
#: field:idea.idea,stat_vote_ids:0
msgid "Statistics"
-msgstr ""
+msgstr "Statistika"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_my_idea
#: model:ir.ui.menu,name:idea.menu_idea_idea_my_idea
msgid "My Ideas"
-msgstr ""
+msgstr "Moje ideje"
#. module: idea
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Not Voted"
-msgstr ""
+msgstr "Nije izglasan"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_open_my
#: model:ir.ui.menu,name:idea.menu_idea_idea_open_my
msgid "My Open Ideas"
-msgstr ""
+msgstr "Moje otvorene Ideje"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea
#: model:ir.ui.menu,name:idea.menu_ideas
#: model:ir.ui.menu,name:idea.menu_ideas1
msgid "Ideas"
-msgstr ""
+msgstr "Ideje"
#. module: idea
#: field:idea.category,child_ids:0
msgid "Child Categories"
-msgstr ""
+msgstr "Slijedne Kategorije"
#. module: idea
#: view:idea.idea:0
msgid "New Idea"
-msgstr ""
+msgstr "Nova Ideja"
#. 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 ""
+msgstr "Ideje po Kategorijama"
#. module: idea
#: field:idea.vote,score:0
#: field:idea.vote.stat,score:0
msgid "Score"
-msgstr ""
+msgstr "Bodovanje"
#. module: idea
#: selection:idea.idea,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_vote
msgid "Idea's vote"
-msgstr ""
+msgstr "Glasanje za Ideju"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_vote_stat
msgid "Statistics on Votes"
-msgstr ""
+msgstr "Statistika Glasanja"
#. module: idea
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: idea
#: model:ir.model,name:idea.model_idea_category
msgid "Category for an idea"
-msgstr ""
+msgstr "Kategorija za Ideju"
#. module: idea
#: model:ir.module.module,shortdesc:idea.module_meta_information
msgid "Idea Manager"
-msgstr ""
+msgstr "Upravitelj Idejama"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_idea_vote_stat
msgid "Vote Statistics"
-msgstr ""
+msgstr "Statistika Glasovanja"
#. module: idea
#: selection:idea.idea,state:0
msgid "Opened"
-msgstr ""
+msgstr "Otvoren"
#. module: idea
#: field:idea.idea,state:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Good"
-msgstr ""
+msgstr "Dobro"
#. module: idea
#: field:idea.idea,description:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Normal"
-msgstr ""
+msgstr "Običan"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_reporting
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: idea
#: model:ir.model,name:idea.model_idea_vote_stat
msgid "Idea Votes Statistics"
-msgstr ""
+msgstr "Statistika Glasovanja o Ideji"
#. module: idea
#: model:ir.model,name:idea.model_idea_vote
msgid "idea.vote"
-msgstr ""
+msgstr "idea.vote"
#. module: idea
#: field:idea.comment,user_id:0
@@ -177,38 +179,38 @@ msgstr ""
#. module: idea
#: view:idea.idea:0
msgid "Your comment"
-msgstr ""
+msgstr "Vaš komentar"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_config
msgid "Configuration"
-msgstr ""
+msgstr "Konfiguracija"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_category
#: model:ir.ui.menu,name:idea.menu_idea_category
msgid "Categories"
-msgstr ""
+msgstr "Kategorije"
#. module: idea
#: view:idea.stat:0
msgid "stat"
-msgstr ""
+msgstr "Stat"
#. module: idea
#: field:idea.idea,my_vote:0
msgid "My Vote"
-msgstr ""
+msgstr "Moj glas"
#. module: idea
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: idea
#: view:idea.vote:0
msgid "Votes"
-msgstr ""
+msgstr "Glasovi"
#. module: idea
#: model:ir.module.module,description:idea.module_meta_information
@@ -220,51 +222,58 @@ msgid ""
"managers can obtain an easy view on best ideas from all the users. Once "
"installed, check the menu 'Ideas' in the 'Tools' main menu."
msgstr ""
+"Ovaj modul omogućuje Vašem korisniku da lako i jednostavno sudjeluje u "
+"unaprijeđenju poslovanja u okviru tvrtke. Omogućuje svakome da izrazi Ideje "
+"o različitim temama i područjima. Tada ostali korisnici mogu komentirati "
+"ideju i glasovati prema tome koje ideje smatraju važnima. Svaka ideja dobija "
+"zbroj bodova na osnovi glasovanja. Voditelji tako mogu imati jasan uvid u "
+"ideje djelatnika i o tome kako su one percipirane u tvrtki. Po instalaciji, "
+"odaberite izbornik \"Ideje\" u glavnom izborniku \"Pomagala\"."
#. module: idea
#: field:idea.comment,create_date:0
#: field:idea.idea,create_date:0
msgid "Creation date"
-msgstr ""
+msgstr "Datum stvaranja"
#. module: idea
#: field:idea.idea,count_votes:0
msgid "Count of votes"
-msgstr ""
+msgstr "Zbrajanje glasova"
#. module: idea
#: field:idea.vote.stat,nbr:0
msgid "Number of Votes"
-msgstr ""
+msgstr "Broj glasova"
#. module: idea
#: model:ir.model,name:idea.model_idea_idea
msgid "idea.idea"
-msgstr ""
+msgstr "idea.idea"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_draft_my
#: model:ir.ui.menu,name:idea.menu_idea_idea_draft_my
msgid "My Draft Ideas"
-msgstr ""
+msgstr "Moje Ideje u Nacrtu."
#. module: idea
#: field:idea.idea,vote_ids:0
msgid "Vote"
-msgstr ""
+msgstr "Glasuj"
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Bad"
-msgstr ""
+msgstr "Loše"
#. module: idea
#: view:idea.idea:0
#: model:ir.ui.menu,name:idea.menu_idea_idea
msgid "All Ideas"
-msgstr ""
+msgstr "Sve ideje"
#. module: idea
#: view:idea.comment:0
@@ -272,62 +281,62 @@ msgstr ""
#: field:idea.idea,comment_ids:0
#: model:ir.model,name:idea.model_idea_comment
msgid "Comments"
-msgstr ""
+msgstr "Komentari"
#. module: idea
#: field:idea.idea,count_comments:0
msgid "Count of comments"
-msgstr ""
+msgstr "Zbrajanje komentara"
#. module: idea
#: field:idea.idea,title:0
msgid "Idea Summary"
-msgstr ""
+msgstr "Sižetak Ideje"
#. module: idea
#: view:idea.category:0
msgid "Category of ideas"
-msgstr ""
+msgstr "Kategorija Ideja"
#. module: idea
#: field:idea.category,summary:0
msgid "Summary"
-msgstr ""
+msgstr "Sižetak"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_categ_open
#: model:ir.actions.act_window,name:idea.action_idea_idea_open
#: model:ir.ui.menu,name:idea.menu_idea_idea_open
msgid "Open Ideas"
-msgstr ""
+msgstr "Otvorene Ideje"
#. module: idea
#: view:idea.idea:0
#: view:idea.vote.stat:0
msgid "vote_stat of ideas"
-msgstr ""
+msgstr "Statistika glasovanja o Idejama"
#. module: idea
#: view:idea.comment:0
#: field:idea.comment,content:0
#: view:idea.idea:0
msgid "Comment"
-msgstr ""
+msgstr "Komentar"
#. module: idea
#: field:idea.category,parent_id:0
msgid "Parent Categories"
-msgstr ""
+msgstr "Ishodne Kategorije"
#. module: idea
#: field:idea.idea,user_id:0
msgid "Creator"
-msgstr ""
+msgstr "Kreator"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_tools
msgid "Tools"
-msgstr ""
+msgstr "Pomagala"
#. module: idea
#: field:idea.comment,idea_id:0
@@ -335,46 +344,46 @@ msgstr ""
#: field:idea.vote,idea_id:0
#: field:idea.vote.stat,idea_id:0
msgid "Idea"
-msgstr ""
+msgstr "Ideja"
#. module: idea
#: selection:idea.idea,my_vote:0
#: selection:idea.vote,score:0
#: selection:idea.vote.stat,score:0
msgid "Very Bad"
-msgstr ""
+msgstr "Vrlo loše"
#. module: idea
#: selection:idea.idea,state:0
msgid "Canceled"
-msgstr ""
+msgstr "Otkazan"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_idea_vote
msgid "All Votes"
-msgstr ""
+msgstr "Svi glasovi"
#. module: idea
#: view:idea.idea:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: idea
#: view:idea.idea:0
msgid "Close"
-msgstr ""
+msgstr "Zaključi"
#. module: idea
#: field:idea.idea,vote_avg:0
msgid "Average Score"
-msgstr ""
+msgstr "Prosječan zbroj bodova"
#. module: idea
#: view:idea.idea:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: idea
#: help:idea.idea,description:0
msgid "Content of the idea"
-msgstr ""
+msgstr "Sadržaj Ideje"
diff --git a/addons/l10n_be/__terp__.py b/addons/l10n_be/__terp__.py
index 43d5a189247..618367dfef7 100644
--- a/addons/l10n_be/__terp__.py
+++ b/addons/l10n_be/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -39,20 +39,21 @@
""",
'author': 'Tiny',
- 'depends': [
- 'account',
- 'account_report',
- 'base_vat',
- 'base_iban',
- 'account_chart'
+ 'depends': [
+ 'account',
+ 'account_report',
+ 'base_vat',
+ 'base_iban',
+ 'account_chart'
],
'init_xml': [],
'update_xml': [
- 'account_pcmn_belgium.xml',
- 'l10n_be_wizard.xml',
- 'l10n_be_sequence.xml',
- 'fiscal_templates.xml',
- 'security/ir.model.access.csv'
+ 'account_pcmn_belgium.xml',
+ 'l10n_be_wizard.xml',
+ 'wizard/l10n_be_account_vat_declaration_view.xml',
+ 'l10n_be_sequence.xml',
+ 'fiscal_templates.xml',
+ 'security/ir.model.access.csv'
],
'demo_xml': [
'account.report.report.csv'
diff --git a/addons/l10n_be/company.py b/addons/l10n_be/company.py
index 8d6633b0d88..4395f13380e 100644
--- a/addons/l10n_be/company.py
+++ b/addons/l10n_be/company.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,17 +15,15 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-
from osv import osv
class res_company(osv.osv):
_inherit = "res.company"
_description = 'res.company'
-
def _get_default_ad(self, addresses):
city = post_code = address = ""
for ads in addresses:
@@ -39,4 +37,4 @@ class res_company(osv.osv):
return city, post_code, address
res_company()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_be/l10n_be_wizard.xml b/addons/l10n_be/l10n_be_wizard.xml
index c20f1c62420..86c4d828b70 100644
--- a/addons/l10n_be/l10n_be_wizard.xml
+++ b/addons/l10n_be/l10n_be_wizard.xml
@@ -21,7 +21,7 @@
type="wizard"
id="partner_wizard_vat_menu"/>
-
+ id="account_wizard_vat_declaration"/> -->
).
#
@@ -15,13 +15,14 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
import account_vat_declaration
import partner_vat_listing
import wizard_vat_intra
+import l10n_be_account_vat_declaration
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_be/wizard/account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
similarity index 62%
rename from addons/l10n_be/wizard/account_vat_declaration.py
rename to addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
index 6533493ce23..490709b15ec 100644
--- a/addons/l10n_be/wizard/account_vat_declaration.py
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,69 +15,62 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-import wizard
import time
import datetime
-import pooler
import base64
-
+from osv import osv, fields
from tools.translate import _
-form_fyear = """
-"""
+class l10n_be_vat_declaration(osv.osv_memory):
+ """ Vat Declaration """
+ _name = "l1on_be.vat.declaration"
+ _description = "Vat Declaration"
-fields_fyear = {
- 'period': {'string': 'Period', 'type': 'many2one', 'relation': 'account.period', 'required': True,},
-}
+ _columns = {
+ 'period_id': fields.many2one('account.period','Period', required=True),
+ 'msg': fields.text('File created', size=64, readonly=True),
+ 'file_save' : fields.binary('Save File'),
+ }
-form = """
-"""
+ _defaults = {
+ 'msg': lambda *a:'''Save the File with '".xml"' extension.''',
+ }
-fields = {
- 'msg': {'string':'File created', 'type':'text', 'size':'100','readonly':True},
- 'file_save':{'string': 'Save File',
- 'type': 'binary',
- 'readonly': True,},
-}
+ def create_xml(self, cr, uid, ids, context={}):
+ obj_fyear = self.pool.get('account.fiscalyear')
+ obj_tax_code = self.pool.get('account.tax.code')
+ obj_acc_period = self.pool.get('account.period')
+ obj_user = self.pool.get('res.users')
+ obj_comp = self.pool.get('res.company')
+ obj_data = self.pool.get('ir.model.data')
-
-class wizard_vat_declaration(wizard.interface):
-
- def _create_xml(self, cr, uid, data, context):
list_of_tags=['00','01','02','03','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','91']
- pool_obj = pooler.get_pool(cr.dbname)
- #obj_company = pool_obj.get('res.company').browse(cr,uid,1)
- obj_company = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid).company_id
+ obj_company = obj_user.browse(cr, uid, uid, context=context).company_id
user_cmpny = obj_company.name
vat_no=obj_company.partner_id.vat
if not vat_no:
raise wizard.except_wizard(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
- tax_ids = pool_obj.get('account.tax.code').search(cr,uid,[])
+ tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
ctx = context.copy()
- ctx['period_id'] = data['form']['period'] #added context here
- tax_info = pool_obj.get('account.tax.code').read(cr,uid,tax_ids,['code','sum_period'],context=ctx)
+ data = self.read(cr, uid, ids)[0]
+ ctx['period_id'] = data['period_id'] #added context here
+ tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
- address=post_code=city=''
+ address = post_code = city = ''
if not obj_company.partner_id.address:
- address=post_code=city=''
+ address = post_code = city = ''
+
+ city, post_code, address = obj_comp._get_default_ad(obj_company.partner_id.address)
- city, post_code, address = pooler.get_pool(cr.dbname).get('res.company')._get_default_ad(obj_company.partner_id.address)
- obj_fyear = pool_obj.get('account.fiscalyear')
year_id = obj_fyear.find(cr, uid)
-
- account_period=pool_obj.get('account.period').browse(cr, uid, data['form']['period'])
+
+ account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
current_year = account_period.fiscalyear_id.name
period_code = account_period.code
@@ -93,7 +86,7 @@ class wizard_vat_declaration(wizard.interface):
starting_month = account_period.date_start[5:7]
ending_month = account_period.date_stop[5:7]
if starting_month != ending_month:
- #starting month and ending month of selected period are not the same
+ #starting month and ending month of selected period are not the same
#it means that the accounting isn't based on periods of 1 month but on quarters
quarter = str(((int(starting_month) - 1) / 3) + 1)
data_of_file += ''+quarter+'\n\t\t\t'
@@ -110,21 +103,10 @@ class wizard_vat_declaration(wizard.interface):
data_of_file +='\n\t\t\t\t' + str(int(item['sum_period']*100)) + ''
data_of_file +='\n\t\t\t\n\t\t\n\t\n'
- data['form']['msg']='Save the File with '".xml"' extension.'
- data['form']['file_save']=base64.encodestring(data_of_file)
- return data['form']
+ data['file_save'] = base64.encodestring(data_of_file)
+ self.write(cr, uid, ids, {'file_save':data['file_save']}, context=context)
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'form', 'arch':form_fyear, 'fields':fields_fyear, 'state':[('end','Cancel'),('go','Create XML')]},
- },
- 'go': {
- 'actions': [_create_xml],
- 'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Ok')]},
- }
- }
+l10n_be_vat_declaration()
-wizard_vat_declaration('wizard.account.xml.vat.declaration')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
new file mode 100644
index 00000000000..f0c19198bf3
--- /dev/null
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+ Select Period
+ l1on_be.vat.declaration
+ form
+
+
+
+
+
+
+ Vat Declaraion
+ ir.actions.act_window
+ l1on_be.vat.declaration
+ form
+ form
+
+ new
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_ch/i18n/es.po b/addons/l10n_ch/i18n/es.po
index d71483b2cbd..290f1f86bf0 100644
--- a/addons/l10n_ch/i18n/es.po
+++ b/addons/l10n_ch/i18n/es.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:24+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-21 22:07+0000\n"
+"Last-Translator: Jonay \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_ch
@@ -324,7 +324,7 @@ msgstr "Doña"
#. module: l10n_ch
#: rml:l10n_ch.invoice.bvr:0
msgid "Concerne:"
-msgstr ""
+msgstr "Concierne:"
#. module: l10n_ch
#: model:res.partner.bank.type,name:l10n_ch.bvpost
diff --git a/addons/l10n_ch_chart_c2c_pcg/__terp__.py b/addons/l10n_ch_chart_c2c_pcg/__terp__.py
index fe6e9a04511..c59104be292 100644
--- a/addons/l10n_ch_chart_c2c_pcg/__terp__.py
+++ b/addons/l10n_ch_chart_c2c_pcg/__terp__.py
@@ -33,7 +33,7 @@
"l10n_ch"
],
"author" : "Camptocamp",
- "description": "Swiws account chart that add also tax template definition",
+ "description": "Swiss account chart that also add tax template definition",
"website" : "camptocamp.com",
"category" : "Localisation/Account Charts",
"init_xml" : [
diff --git a/addons/lunch/__terp__.py b/addons/lunch/__terp__.py
index bc7dfcbfef7..e7ebb27a238 100644
--- a/addons/lunch/__terp__.py
+++ b/addons/lunch/__terp__.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -15,21 +15,27 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
{
"name": "Lunch Module",
"author": "Tiny",
+ "Description": """
+ The lunch module is for keeping record of the order placing and payment of the orders.
+ The products are defined under categories and the payment records are maintained user wise
+ Every user has a cashbox which keeps track of the amount paid for a particular order.
+
+ """,
"version": "0.1",
"depends": ["base"],
"category" : "Generic Modules/Others",
"init_xml": [],
"update_xml": [
- 'security/ir.model.access.csv',
- 'lunch_wizard.xml',
- 'lunch_view.xml',
+ 'security/ir.model.access.csv',
+ 'lunch_wizard.xml',
+ 'lunch_view.xml',
'lunch_report.xml',
#'process/lunch_process.xml'
],
diff --git a/addons/membership/__terp__.py b/addons/membership/__terp__.py
index 3d8deb6ef75..49297bc010d 100644
--- a/addons/membership/__terp__.py
+++ b/addons/membership/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -41,8 +41,9 @@ invoice and send propositions for membership renewal.
'init_xml': ['membership_data.xml'],
'update_xml': [
'security/ir.model.access.csv',
+ 'wizard/membership_invoice_view.xml',
'membership_view.xml',
- 'membership_wizard.xml',
+ 'wizard/membership_unpaid_invoice_view.xml',
'process/membership_process.xml'
],
'demo_xml': ['membership_demo.xml'],
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index 3e22529332f..dd23cb61145 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -151,13 +151,14 @@
-
+
diff --git a/addons/membership/membership_wizard.xml b/addons/membership/membership_wizard.xml
deleted file mode 100644
index 67068ff151d..00000000000
--- a/addons/membership/membership_wizard.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/membership/wizard/__init__.py b/addons/membership/wizard/__init__.py
index bffa2fb6a21..07d484d7125 100644
--- a/addons/membership/wizard/__init__.py
+++ b/addons/membership/wizard/__init__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-import invoice_membership
-import unpaid_partner_invoice
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+import membership_invoice
+import membership_unpaid_invoice
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/membership/wizard/invoice_membership.py b/addons/membership/wizard/invoice_membership.py
deleted file mode 100644
index 2eb63ad6c96..00000000000
--- a/addons/membership/wizard/invoice_membership.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields
-import wizard
-import pooler
-import time
-from tools.translate import _
-
-def _invoice_membership(self, cr, uid, data, context):
- partner_ids = data['ids']
- product_id = data['form']['product']
- pool = pooler.get_pool(cr.dbname)
- cr.execute('''
- SELECT partner_id, id, type
- FROM res_partner_address
- WHERE partner_id =ANY(%s)''',(partner_ids,))
- fetchal = cr.fetchall()
- if not fetchal:
- raise wizard.except_wizard(_('Error !'), _('No Address defined for this partner'))
- partner_address_ids = {}
- for x in range(len(fetchal)):
- pid = fetchal[x][0]
- id = fetchal[x][1]
- type = fetchal[x][2]
- if partner_address_ids.has_key(pid) and partner_address_ids[pid]['type'] == 'invoice':
- continue
- partner_address_ids[pid] = {'id': id, 'type': type}
-
- invoice_list= []
- invoice_obj = pool.get('account.invoice')
- partner_obj = pool.get('res.partner')
- product_obj = pool.get('product.product')
- invoice_line_obj = pool.get(('account.invoice.line'))
- invoice_tax_obj = pool.get(('account.invoice.tax'))
- product = product_obj.read(cr, uid, product_id, ['uom_id'])
-
- for partner_id in partner_ids:
- account_id = partner_obj.read(cr, uid, partner_id, ['property_account_receivable'])['property_account_receivable'][0]
- read_fpos = partner_obj.read(cr, uid, partner_id, ['property_account_position'])
- fpos_id = read_fpos['property_account_position'] and read_fpos['property_account_position'][0]
- line_value = {
- 'product_id' : product_id,
- }
- quantity = 1
- line_dict = invoice_line_obj.product_id_change(cr, uid, {}, product_id, product['uom_id'][0], quantity, '', 'out_invoice', partner_id, fpos_id, context=context)
- line_value.update(line_dict['value'])
- if line_value['invoice_line_tax_id']:
- tax_tab = [(6, 0, line_value['invoice_line_tax_id'])]
- line_value['invoice_line_tax_id'] = tax_tab
- invoice_id = invoice_obj.create(cr, uid, {
- 'partner_id' : partner_id,
- 'address_invoice_id': partner_address_ids[partner_id]['id'],
- 'account_id': account_id,
- 'fiscal_position': fpos_id or False
- }
- )
- line_value['invoice_id'] = invoice_id
- invoice_line_id = invoice_line_obj.create(cr, uid, line_value, context)
- invoice_obj.write(cr, uid, invoice_id, {'invoice_line':[(6,0,[invoice_line_id])]})
- invoice_list.append(invoice_id)
- if line_value['invoice_line_tax_id']:
- tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values()
- for tax in tax_value:
- invoice_tax_obj.create(cr, uid, tax, context=context)
-
- result = pool.get('ir.model.data')._get_id(cr, uid, 'account', 'view_account_invoice_filter')
- res = pool.get('ir.model.data').read(cr, uid, result, ['res_id'])
-
- value = {
- 'domain': [
- ('id', 'in', invoice_list),
- ],
- 'name': 'Membership invoice',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'type': 'ir.actions.act_window',
- 'res_id' : invoice_list,
- 'search_view_id' : res['res_id']
- }
- return value
-
-wizard_arch= """
-"""
-
-class wizard_invoice_membership(wizard.interface):
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {
- 'type' : 'form',
- 'arch' : wizard_arch,
- 'fields' : {
- 'product': {
- 'string': 'Membership product',
- 'type': 'many2one',
- 'relation': 'product.product',
- 'required': True
- },
- },
- 'state' : [('end', 'Cancel'),('ok', 'Confirm') ]}
- },
- 'ok' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action': _invoice_membership,
- 'state' : 'end'
- },
- },
-
- }
-
-wizard_invoice_membership("wizard_invoice_membership")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/membership/wizard/membership_invoice.py b/addons/membership/wizard/membership_invoice.py
new file mode 100644
index 00000000000..45d5c538b15
--- /dev/null
+++ b/addons/membership/wizard/membership_invoice.py
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import time
+
+from osv import fields, osv
+from tools.translate import _
+import tools
+
+class membership_invoice(osv.osv_memory):
+ _name = "membership.invoice"
+ _description = "Membership Invoice From Partner"
+ _columns ={
+ 'product_id': fields.many2one('product.product','Membership Product', required=True),
+ }
+
+ def membership_invoice(self, cr, uid, ids, context={}):
+ invoice_obj = self.pool.get('account.invoice')
+ partner_obj = self.pool.get('res.partner')
+ product_obj = self.pool.get('product.product')
+ invoice_line_obj = self.pool.get(('account.invoice.line'))
+ invoice_tax_obj = self.pool.get(('account.invoice.tax'))
+ partner_ids = context['active_ids']
+ for data in self.read(cr, uid, ids, context=context):
+ product_id = data['product_id']
+ cr.execute('''
+ SELECT partner_id, id, type
+ FROM res_partner_address
+ WHERE partner_id =ANY(%s)''',(partner_ids,))
+ fetchal = cr.fetchall()
+ if not fetchal:
+ raise osv.except_osv(_('Error !'), _('No Address defined for this partner'))
+ partner_address_ids = {}
+ for x in range(len(fetchal)):
+ pid = fetchal[x][0]
+ id = fetchal[x][1]
+ type = fetchal[x][2]
+ if partner_address_ids.has_key(pid) and partner_address_ids[pid]['type'] == 'invoice':
+ continue
+ partner_address_ids[pid] = {'id': id, 'type': type}
+
+ invoice_list= []
+ product = product_obj.read(cr, uid, product_id, ['uom_id'], context=context)
+
+ for partner_id in partner_ids:
+ account_id = partner_obj.read(cr, uid, partner_id, ['property_account_receivable'], context=context)['property_account_receivable'][0]
+ read_fpos = partner_obj.read(cr, uid, partner_id, ['property_account_position'], context=context)
+ fpos_id = read_fpos['property_account_position'] and read_fpos['property_account_position'][0]
+ line_value = {
+ 'product_id' : product_id,
+ }
+ quantity = 1
+ line_dict = invoice_line_obj.product_id_change(cr, uid, {}, product_id, product['uom_id'][0], quantity, '', 'out_invoice', partner_id, fpos_id, context=context)
+ line_value.update(line_dict['value'])
+ if line_value['invoice_line_tax_id']:
+ tax_tab = [(6, 0, line_value['invoice_line_tax_id'])]
+ line_value['invoice_line_tax_id'] = tax_tab
+ invoice_id = invoice_obj.create(cr, uid, {
+ 'partner_id' : partner_id,
+ 'address_invoice_id': partner_address_ids[partner_id]['id'],
+ 'account_id': account_id,
+ 'fiscal_position': fpos_id or False
+ }
+ )
+ line_value['invoice_id'] = invoice_id
+ invoice_line_id = invoice_line_obj.create(cr, uid, line_value, context=context)
+ invoice_obj.write(cr, uid, invoice_id, {'invoice_line':[(6,0,[invoice_line_id])]}, context=context)
+ invoice_list.append(invoice_id)
+ if line_value['invoice_line_tax_id']:
+ tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values()
+ for tax in tax_value:
+ invoice_tax_obj.create(cr, uid, tax, context=context)
+
+ return {
+ 'domain': [('id', 'in', invoice_list)],
+ 'name': 'Membership Invoice',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'type': 'ir.actions.act_window',
+ }
+
+membership_invoice()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/membership/wizard/membership_invoice_view.xml b/addons/membership/wizard/membership_invoice_view.xml
new file mode 100644
index 00000000000..c18c53d6679
--- /dev/null
+++ b/addons/membership/wizard/membership_invoice_view.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ membership.invoice.view.form
+ membership.invoice
+ form
+
+
+
+
+
+
+ Membership Invoice
+ membership.invoice
+ form
+ tree,form
+
+ new
+
+
+
+
+
+ vote
+ client_action_multi
+
+ action
+ res.partner
+
+
+
+
\ No newline at end of file
diff --git a/addons/membership/wizard/unpaid_partner_invoice.py b/addons/membership/wizard/membership_unpaid_invoice.py
similarity index 50%
rename from addons/membership/wizard/unpaid_partner_invoice.py
rename to addons/membership/wizard/membership_unpaid_invoice.py
index 20585f6570c..1b9a6ac3464 100644
--- a/addons/membership/wizard/unpaid_partner_invoice.py
+++ b/addons/membership/wizard/membership_unpaid_invoice.py
@@ -18,32 +18,32 @@
# along with this program. If not, see .
#
##############################################################################
+import time
-import wizard
-import pooler
+from osv import fields, osv
-wizard_arch= """
-"""
+class member_unpaid_invoice(osv.osv_memory):
+ _name = "membership.unpaid.invoice"
+ _description = "List of Unpaid Partner"
+ _columns ={
+ 'product': fields.many2one('product.product','Membership product', size=64,required=True, help='Select Membership product'),
+ }
-def _invoice_membership(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- partners = []
- cr.execute('''select p.id from res_partner as p \
+ def _invoice_membership(self, cr, uid, ids, context):
+ model_obj = self.pool.get('ir.model.data')
+ partners = []
+ result = model_obj._get_id(cr, uid, 'base', 'view_res_partner_filter')
+ res = model_obj.read(cr, uid, result, ['res_id'], context=context)
+ for data in self.read(cr, uid, ids, context=context):
+ cr.execute('''select p.id from res_partner as p \
left join account_invoice as i on p.id=i.partner_id \
left join account_invoice_line as il on i.id=il.invoice_id \
left join product_product as pr on pr.id=il.product_id \
where i.state = 'open' and pr.id=%s \
- group by p.id''' % (data['form']['product']))
- map(lambda x: partners.append(x[0]),cr.fetchall())
- result = pool.get('ir.model.data')._get_id(cr, uid, 'base', 'view_res_partner_filter')
- res = pool.get('ir.model.data').read(cr, uid, result, ['res_id'])
- value = {
+ group by p.id''' % (data['product']))
+ map(lambda x: partners.append(x[0]),cr.fetchall())
+
+ return {
'domain': [('id', 'in', partners)],
'name': 'Unpaid Partners',
'view_type': 'form',
@@ -53,34 +53,7 @@ def _invoice_membership(self, cr, uid, data, context):
'res_id' : partners,
'search_view_id' : res['res_id']
}
- return value
-class wizard_unpaid_inv(wizard.interface):
+member_unpaid_invoice()
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {
- 'type' : 'form',
- 'arch' : wizard_arch,
- 'fields' : {
- 'product': {
- 'string': 'Membership product',
- 'type': 'many2one',
- 'relation': 'product.product',
- 'help': 'Select Membership product',
- 'required': True
- },
- },
- 'state' : [('end', 'Cancel'),('ok', 'Unpaid Partners') ]}
- },
- 'ok' : {
- 'actions' : [],
- 'result' : {'type' : 'action', 'action': _invoice_membership, 'state' : 'end'},
- },
-
- }
-
-wizard_unpaid_inv("wizard.invoice.membership.unpaid")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/membership/wizard/membership_unpaid_invoice_view.xml b/addons/membership/wizard/membership_unpaid_invoice_view.xml
new file mode 100644
index 00000000000..52825386cb7
--- /dev/null
+++ b/addons/membership/wizard/membership_unpaid_invoice_view.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ unpaid.invoice.view.form
+ membership.unpaid.invoice
+ form
+
+
+
+
+
+
+ List Unpaid Partners
+ membership.unpaid.invoice
+ form
+ tree,form
+
+ new
+
+
+
+
+
+
diff --git a/addons/mrp/__init__.py b/addons/mrp/__init__.py
index b1b92e8514e..39d97d0ba11 100644
--- a/addons/mrp/__init__.py
+++ b/addons/mrp/__init__.py
@@ -21,8 +21,8 @@
import mrp
import stock
+import product
import installer
-import mrp_wizard
import wizard
import report
import company
diff --git a/addons/mrp/__terp__.py b/addons/mrp/__terp__.py
index feabb8cc123..acf25b160e0 100644
--- a/addons/mrp/__terp__.py
+++ b/addons/mrp/__terp__.py
@@ -60,8 +60,14 @@
'security/ir.model.access.csv',
'mrp_workflow.xml',
'mrp_data.xml',
- 'mrp_wizard_view.xml',
+ 'wizard/mrp_product_produce_view.xml',
+ 'wizard/make_procurement_view.xml',
+ 'wizard/change_production_qty_view.xml',
+ 'wizard/orderpoint_procurement_view.xml',
+ 'wizard/mrp_price_view.xml',
+ 'wizard/mrp_workcenter_load_view.xml',
'mrp_view.xml',
+ 'wizard/schedulers_all_view.xml',
'mrp_wizard.xml',
'mrp_report.xml',
'company_view.xml',
diff --git a/addons/mrp/i18n/fi.po b/addons/mrp/i18n/fi.po
index 9a5485923c2..40e122a85bf 100644
--- a/addons/mrp/i18n/fi.po
+++ b/addons/mrp/i18n/fi.po
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-11 08:30+0000\n"
-"Last-Translator: NightSpirit \n"
+"PO-Revision-Date: 2010-03-22 14:50+0000\n"
+"Last-Translator: Henri Kovalainen \n"
"Language-Team: Finnish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
msgid "Moves Created"
-msgstr "Luotuja Siirtoja"
+msgstr "Luodut siirrot"
#. module: mrp
#: rml:mrp.production.order:0
msgid "No. Of Cycles"
-msgstr "Syklien määrä"
+msgstr "Kiertojen määrä"
#. module: mrp
#: help:mrp.procurement.compute.all,init,automatic:0
@@ -34,46 +34,46 @@ msgid ""
"under 0. You should probably not use this option, we suggest using a MTO "
"configuration on products."
msgstr ""
-"Laukaisee automaattisen hankinnan kaikille tuotteille joiden "
-"virtuaalivaraston arvo on alle 0. Et välttämättä halua käyttää tätä "
-"mahdollisuutta, ehdotamme että käytätte MTO asetuksia tuotteille."
+"Liipaisee automaattisen hankinnan kaikille tuotteille joiden näennäisvarasto "
+"on alle 0. Tätä vaihtoehtoa ei yleensä käytetä, vaan tuotteille on parempi "
+"määrittää varastosäännöt."
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
msgid "Manufacturing Resource Planning"
-msgstr "Tuotantoresurssisuunnittelu"
+msgstr "Tuotannon resurssien suunnittelu"
#. module: mrp
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Virheellinen mallin nimi toiminnon määrittelyssä."
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr ""
+msgstr "Revisio"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2
#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2
msgid "Compute Stock Minimum Rules Only"
-msgstr "Laske vain varaston minimit"
+msgstr "Laske vain varaston minimirajat"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5
msgid "Exceptions Procurements"
-msgstr "Hankintapoikkeukset"
+msgstr "Hankinnan poikkeukset"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Workcenters"
-msgstr "Reitittävät työkeskittymät"
+msgstr "Reitittävät työpisteet"
#. module: mrp
#: help:mrp.property,composition:0
msgid "Not used in computations, for information purpose only."
-msgstr "Käytetään vain tietoja varten, ei laskentaan."
+msgstr "Ei käytetä laskutoimituksiin - vain tietoja varten."
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
@@ -89,24 +89,24 @@ msgstr "Pakkauslista"
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
msgid "Stockable Stock"
-msgstr "Varastoitavissa oleva Varasto"
+msgstr "Varastoitavissa oleva varasto"
#. module: mrp
#: field:mrp.procurement,origin:0
#: field:mrp.production,origin:0
msgid "Origin"
-msgstr ""
+msgstr "Lähde"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
#: view:res.company:0
msgid "Configuration"
-msgstr ""
+msgstr "Konfiguraatio"
#. module: mrp
#: field:mrp.production,name:0
msgid "Reference"
-msgstr ""
+msgstr "Viite"
#. module: mrp
#: view:mrp.production:0
@@ -122,18 +122,18 @@ msgstr "Automaattinen tilauspiste"
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr "Kokoelma / Pakkaus"
+msgstr "Sarja / Pakkaus"
#. module: mrp
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Virheellinen XML näkymä-arkkitehtuurille!"
#. module: mrp
#: help:res.company,security_lead:0
msgid ""
"This is the days added to what you promise to customers for security purpose"
-msgstr "Turvallisuussyistä asiakkaalle luvatut päivät"
+msgstr "Nämä päivät lisätään asiakkaalle luvattuun aikaan turvallisuussyistä"
#. module: mrp
#: field:mrp.workcenter,costs_hour:0
@@ -143,17 +143,17 @@ msgstr "Kustannukset tunnissa"
#. module: mrp
#: selection:stock.warehouse.orderpoint,logic:0
msgid "Best price (not yet active!)"
-msgstr "Sopivin hinta (ei vielä voimassa!)"
+msgstr "Paras hinta (ei vielä aktiivinen!)"
#. module: mrp
#: view:mrp.procurement:0
msgid "Product & Location"
-msgstr "Tuote ja Sijainti"
+msgstr "Tuote ja paikka"
#. module: mrp
#: view:res.company:0
msgid "MRP & Logistic Scheduler"
-msgstr "MRP -ja Logistiikka-ajastin"
+msgstr "Tuotanto- ja logistiikka-aikataulut"
#. module: mrp
#: help:mrp.workcenter,capacity_per_cycle:0
@@ -161,8 +161,9 @@ msgid ""
"Number of operation this workcenter can do in parallel. If this workcenter "
"represent a team of 5 workers, the capacity per cycle is 5."
msgstr ""
-"Monia osaston tehtäviä voi tehdä samanaikaisesti. Jos osastotiimi koostuu "
-"viidestä henkilöstä, on työvahvuus jokaisessa syklissä viisi."
+"Tässä työpisteessä samanaikaisesti suoritettavien tehtävien lukumäärä. Jos "
+"piste koostuu esim. viidestä henkilöstä, on kapasiteetti jokaisessa "
+"kierrossa viisi."
#. module: mrp
#: wizard_button:product.product.procurement,init,create:0
@@ -185,47 +186,47 @@ msgstr "Tuotteen määrä"
#. module: mrp
#: field:mrp.production,move_lines:0
msgid "Products Consummed"
-msgstr "Kulutetut Tuotteet"
+msgstr "Kulutetut tuotteet"
#. module: mrp
#: field:mrp.workcenter,costs_cycle_account_id:0
msgid "Cycle Account"
-msgstr "Syklitili"
+msgstr "Kierroksien tili"
#. module: mrp
#: view:mrp.workcenter:0
msgid "Capacity Information"
-msgstr "Kapasiteettitiedot"
+msgstr "Kapasiteetin tiedot"
#. module: mrp
#: selection:mrp.production,state:0
msgid "Packing Exception"
-msgstr "Pakkauspoikkeus"
+msgstr "Poikkeus pakkauksessa"
#. module: mrp
#: model:process.node,note:mrp.process_node_orderrfq0
msgid "A purchase order is created for a sub-contracting demand."
-msgstr "Ostotilaus on luotu ali-supistumisen vuoksi."
+msgstr "Ostotilaus luodaan alihankinnan tarpeisiin."
#. module: mrp
#: rml:mrp.production.order:0
msgid "Destination Location"
-msgstr "Kohteen sijainti"
+msgstr "Kohteen paikka"
#. module: mrp
#: view:mrp.workcenter:0
msgid "Analytic Accounting"
-msgstr ""
+msgstr "Analyyttinen tilikirjanpito"
#. module: mrp
#: model:process.node,note:mrp.process_node_servicemts0
msgid "Do nothing"
-msgstr ""
+msgstr "Älä tee mitään"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Partner Ref"
-msgstr ""
+msgstr "Kumppani viite"
#. module: mrp
#: help:mrp.procurement.orderpoint.compute,init,automatic:0
@@ -245,12 +246,12 @@ msgstr "Suunnitellut tavarat"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_producttostockrules0
msgid "you can see the minimum stock rules from product"
-msgstr "voit nähdä tuotteesta varaston minimiarvot"
+msgstr "Voit nähdä tuotteesta varaston minimirajat"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Sets / Phantom"
-msgstr ""
+msgstr "Sarja / Haamu"
#. module: mrp
#: wizard_view:mrp.procurement.compute,init:0
@@ -260,19 +261,19 @@ msgstr "Tämä ohjattu toiminto ajoittaa hankinnat."
#. module: mrp
#: field:mrp.bom,position:0
msgid "Internal Ref."
-msgstr ""
+msgstr "Sisäinen viite"
#. module: mrp
#: view:mrp.procurement:0
#: field:mrp.procurement,state:0
#: field:mrp.production,state:0
msgid "Status"
-msgstr ""
+msgstr "Tila"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduction0
msgid "Stockable Production Order"
-msgstr "Varastoimiseen kelpaava tuotantojärjestys"
+msgstr "Varastoitava tuotantotilaus"
#. module: mrp
#: help:mrp.bom,position:0
@@ -296,13 +297,13 @@ msgid ""
"When the virtual stock goes belong the Min Quantity, Open ERP generates a "
"procurement to bring the virtual stock to the Max Quantity."
msgstr ""
-"Kun sähköinen varasto menee minimi määrän alapuolelle, Open ERP luo "
-"hankinnan, joka muuttaa sähköisen varaston maksimimäärään."
+"Kun näennäsvaraston saldo menee alle minimimäärän, OpenERP luo hankinnan "
+"kasvattaakseen näennäisen varaston maksimimäärän tasolle."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockmts0
msgid "Stockable Make to Stock"
-msgstr ""
+msgstr "Varastoitava, valmistetaan varastoon"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action
@@ -317,7 +318,7 @@ msgstr "Tuotantotilaukset"
#: rml:mrp.production.order:0
#: wizard_field:product.product.procurement,init,qty:0
msgid "Quantity"
-msgstr ""
+msgstr "Määrä"
#. module: mrp
#: selection:mrp.procurement,priority:0
@@ -328,7 +329,7 @@ msgstr "Ei kiireellinen"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procureserviceproduct0
msgid "Procure Service Product"
-msgstr "Hankintapalvelutuote"
+msgstr "Hanki palvelutuote"
#. module: mrp
#: view:mrp.production:0
@@ -349,12 +350,12 @@ msgstr "Tuotannon suunnitellut tuotteet"
#. module: mrp
#: field:mrp.workcenter,timesheet_id:0
msgid "Working Time"
-msgstr ""
+msgstr "Työaika"
#. module: mrp
#: view:mrp.procurement:0
msgid "Details"
-msgstr ""
+msgstr "Tiedot"
#. module: mrp
#: model:process.process,name:mrp.process_process_procurementprocess0
@@ -376,12 +377,14 @@ msgstr "Kiireellinen"
#: help:mrp.bom,product_rounding:0
msgid ""
"Rounding applied on the product quantity. For integer only values, put 1.0"
-msgstr "Tuotteen määrä on pyöristetty. Kokonaislukuarvoihin laita 1.0"
+msgstr ""
+"Tuotteen määrään käytettävä pyöristys. Käyttääksesi vain kokonaislukuja, "
+"aseta 1.0"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Bill Of Material"
-msgstr "Materiaalilasku"
+msgstr "Osaluettelo"
#. module: mrp
#: help:mrp.routing,location_id:0
@@ -390,34 +393,34 @@ 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 ""
-"Jätä tyhjäksi jos teet hankintoja samassa paikassa kuin valmiita tuotteita "
-"tarvitaan. Aseta paikka jos teet hankintoja muualla. Tämä voi olla kumppanin "
-"sijainti jos tuotat valmistustoimintoja alihankintana."
+"Jätä tyhjäksi jos tuotanto tapahtuu samassa paikassa kuin valmiita tuotteita "
+"tarvitaan. Aseta paikka jos tuotanto tapahtuu muualla. Tämä voi olla myös "
+"kumppanin sijainti jos tuotanto tapahtuu alihankintana."
#. module: mrp
#: field:mrp.procurement,move_id:0
msgid "Reservation"
-msgstr ""
+msgstr "Varaus"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action2
msgid "Bill of Materials Structure"
-msgstr "Materiaalirakennelasku"
+msgstr "Osaluettelon rakenne"
#. module: mrp
#: wizard_field:product.product.procurement,init,product_id:0
msgid "product"
-msgstr ""
+msgstr "tuote"
#. module: mrp
#: selection:mrp.property,composition:0
msgid "max"
-msgstr "suurin"
+msgstr "max"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_producttostockrules0
msgid "Product to stock rules"
-msgstr ""
+msgstr "Tuotteen varastorajat"
#. module: mrp
#: wizard_button:product_price,init,price:0
@@ -432,7 +435,7 @@ msgstr "Tee hankinta"
#. module: mrp
#: field:mrp.bom.revision,date:0
msgid "Modification Date"
-msgstr ""
+msgstr "Muokkauspäivä"
#. module: mrp
#: help:mrp.workcenter,costs_cycle_account_id:0
@@ -441,28 +444,29 @@ msgid ""
"Complete this only if you want automatic analytic accounting entries on "
"production orders."
msgstr ""
-"Täytä tämä jos haluat vain automaattiset analyyttisen tilin kohdat "
-"tuotantomääräyksiin."
+"Täytä tämä vain jos haluat automaattiset analyyttiset tilimerkinnät "
+"tuotantotilauksista."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockproduction0
msgid "If Procure method is Make to order and supply method is produce"
-msgstr "Jos hankintatapa on tee tilaukseen ja toimitustapa on hankinta"
+msgstr ""
+"Jos hankintatapa on \"Valmista tilauksesta\" ja hankintatyyppi on tuotanto"
#. module: mrp
#: field:res.company,po_lead:0
msgid "Purchase Lead Time"
-msgstr "Oston kokonaisaika"
+msgstr "Oston läpimenoaika"
#. module: mrp
#: field:mrp.routing,location_id:0
msgid "Production Location"
-msgstr "Tuotannon sijainti"
+msgstr "Tuotannon paikka"
#. module: mrp
#: view:mrp.production:0
msgid "Change Qty"
-msgstr "Muuta määrää"
+msgstr "Muuta määrä"
#. module: mrp
#: view:mrp.production:0
@@ -477,18 +481,18 @@ msgstr "Tekijä"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduct0
msgid "Stockable Product Stock"
-msgstr ""
+msgstr "Varastoitava tuotteen varasto"
#. module: mrp
#: field:mrp.bom,product_uos:0
#: field:mrp.production.product.line,product_uos:0
msgid "Product UOS"
-msgstr ""
+msgstr "Tuotteen myyntiyksikkö"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_productionprocureproducts0
msgid "Production Procure Products"
-msgstr "Tuotannon hankintatuotteet"
+msgstr "Tuotanto hankkii tuotteet"
#. module: mrp
#: model:process.process,name:mrp.process_process_serviceproductprocess0
@@ -498,7 +502,7 @@ msgstr "Palvelutuoteprosessi"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_purchaseprocure0
msgid "Procurement convert into the draft purchase order."
-msgstr "Hankinta muunnettu ostotilausluonnokseksi."
+msgstr "Hankinta muuntuu ostotilauksen luonnokseksi."
#. module: mrp
#: field:mrp.procurement,message:0
@@ -508,7 +512,7 @@ msgstr "Viimeisin virhe"
#. module: mrp
#: field:mrp.bom,bom_lines:0
msgid "BoM Lines"
-msgstr "BoM rivit"
+msgstr "Osaluettelon rivit"
#. module: mrp
#: field:mrp.workcenter,time_start:0
@@ -518,7 +522,7 @@ msgstr "Aika ennen tuotantoa"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing_workcenter
msgid "Routing workcenter usage"
-msgstr ""
+msgstr "Reititys työpisteiden käyttö"
#. module: mrp
#: view:mrp.production:0
@@ -528,34 +532,36 @@ msgstr "Kulutetut tuotteet"
#. module: mrp
#: constraint:mrp.bom:0
msgid "Error ! You can not create recursive BoM."
-msgstr "Virhe! Et voi luoda itseään toistavaa BoM:a."
+msgstr "Virhe! Et voi luoda itseään toistavaa osaluetteloa."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockmts0
#: model:process.transition,note:mrp.process_transition_stockrfq0
msgid "If Product type is Stockable and procure method is make to stock"
msgstr ""
+"Jos tuotteen tyyppi on \"Varastoitava\" ja hankintatapa on \"Valmista "
+"varastoon\""
#. module: mrp
#: field:res.company,manufacturing_lead:0
msgid "Manufacturity Lead Time"
-msgstr "Valmistuksen kokonaisaika"
+msgstr "Valmistuksen läpimenoaika"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action4
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action4
msgid "Exceptions Procurements to Fix"
-msgstr "Korjattavat hankintapoikkeukset"
+msgstr "Korjattavat poikkeukset hankinnoissa"
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Ready"
-msgstr ""
+msgstr "Valmis"
#. module: mrp
#: view:mrp.routing:0
msgid "Workcenter Operations"
-msgstr "Työkeskittymän vaiheet"
+msgstr "Työpisteen toimenpiteet"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2_gantt
@@ -566,40 +572,39 @@ msgstr "Tuotantomääräysten suunnittelu"
#. module: mrp
#: help:mrp.workcenter,time_efficiency:0
msgid "Factor that multiplies all times expressed in the workcenter."
-msgstr ""
-"Tekijä, joka kertoo kaikki ajat, jotka on määritetty työkeskittymässä."
+msgstr "Kerroin jolla kaikki tämän työpisteen ajat kerrottaan."
#. module: mrp
#: help:mrp.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
-msgstr "Yhden syklin kesto tunneissa."
+msgstr "Yhden kierron kesto tunneissa."
#. module: mrp
#: field:mrp.production,date_finnished:0
msgid "End Date"
-msgstr ""
+msgstr "Lopetuspäivämäärä"
#. module: mrp
#: help:mrp.production,picking_id:0
msgid ""
"This is the internal picking list take bring the raw materials to the "
"production plan."
-msgstr "Tämä sisäinen keräyslista tuo raakamateriaalit tuotantosuunnitelmaa."
+msgstr "Tämä sisäinen keräyslista tuo raaka-aineet tuotantosuunnitelmaan."
#. module: mrp
#: selection:mrp.production,state:0
msgid "In Production"
-msgstr ""
+msgstr "Tuotannossa"
#. module: mrp
#: field:stock.warehouse.orderpoint,qty_multiple:0
msgid "Qty Multiple"
-msgstr "Määräkerroin"
+msgstr "Määrän kerroin"
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Waiting"
-msgstr ""
+msgstr "Odottaa"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing
@@ -608,64 +613,64 @@ msgstr ""
#: view:mrp.routing:0
#: model:process.node,name:mrp.process_node_routing0
msgid "Routing"
-msgstr ""
+msgstr "Reititys"
#. module: mrp
#: wizard_button:mrp.workcenter.load,init,report:0
msgid "Print"
-msgstr ""
+msgstr "Tulosta"
#. module: mrp
#: field:mrp.workcenter,type:0
msgid "Type"
-msgstr ""
+msgstr "Tyyppi"
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct0
#: model:process.node,note:mrp.process_node_stockproduct1
msgid "For stockable and consumable"
-msgstr "Varastoitaviin ja kulutettaviin"
+msgstr "Varastoitaville ja kulutettaville"
#. module: mrp
#: selection:mrp.workcenter.load,init,time_unit:0
msgid "Per month"
-msgstr "kuukaudessa"
+msgstr "Kuukaudessa"
#. module: mrp
#: field:mrp.procurement,product_uos_qty:0
msgid "UoS Quantity"
-msgstr "UoS määrä"
+msgstr "Myyntiyksikkö määrä"
#. module: mrp
#: rml:bom.structure:0
msgid "Product Name"
-msgstr "Tuotenimi"
+msgstr "Tuotteen nimi"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Printing date"
-msgstr ""
+msgstr "Tulostuspäivä"
#. module: mrp
#: model:process.node,name:mrp.process_node_orderrfq0
#: model:process.node,name:mrp.process_node_rfq0
msgid "RFQ"
-msgstr ""
+msgstr "Tarjouspyyntö"
#. module: mrp
#: field:mrp.bom,revision_type:0
msgid "indice type"
-msgstr ""
+msgstr "Luettelon tyyppi"
#. module: mrp
#: model:process.node,note:mrp.process_node_production0
msgid "Production orders are created for the product manufacturing."
-msgstr "Tuotantomääräykset ovat luotu tuotteen valmistusta varten."
+msgstr "Tuotantotilaukset luodaan tuotteen valmistusta varten."
#. module: mrp
#: rml:mrp.production.order:0
msgid "WorkCenter"
-msgstr "Työkeskus"
+msgstr "Työpiste"
#. module: mrp
#: field:stock.warehouse.orderpoint,product_min_qty:0
@@ -675,40 +680,41 @@ msgstr "Minimimäärä"
#. module: mrp
#: view:mrp.production:0
msgid "Production orders"
-msgstr "Tuotanto määräykset"
+msgstr "Tuotannon tilaukset"
#. module: mrp
#: field:mrp.bom,child_complete_ids:0
#: field:mrp.bom,child_ids:0
msgid "BoM Hyerarchy"
-msgstr "BoM hierarkia"
+msgstr "Osalistahierarkia"
#. module: mrp
#: view:mrp.procurement:0
msgid "Procurement Lines"
-msgstr "Hankintarivit"
+msgstr "Hankinnan rivit"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
msgid "If Product type is service and procure method is Make to stock"
-msgstr "Jos tuotteen tyyppi on palvelu ja hankintatapa on tee varastoon"
+msgstr ""
+"Jos tuotteen tyyppi on palvelu ja hankintatapa on \"Valmista varastoon\""
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "If Product type is service"
-msgstr "Jos tuotetyyppi on palvelu"
+msgstr "Jos tuotteen tyyppi on palvelu"
#. module: mrp
#: field:res.company,security_lead:0
msgid "Security Days"
-msgstr "Varopäivät"
+msgstr "Turvapäivät"
#. module: mrp
#: view:mrp.production:0
#: field:mrp.production,cycle_total:0
msgid "Total Cycles"
-msgstr "Syklimäärä"
+msgstr "Kierrot yhteensä"
#. module: mrp
#: selection:mrp.production,state:0
@@ -718,12 +724,12 @@ msgstr "Valmis tuotantoon"
#. module: mrp
#: field:mrp.bom.revision,name:0
msgid "Modification name"
-msgstr "Muunnoksen nimi"
+msgstr "Muutoksen nimi"
#. module: mrp
#: field:mrp.bom,type:0
msgid "BoM Type"
-msgstr "BoM -tyyppi"
+msgstr "Osalistan tyyppi"
#. module: mrp
#: selection:mrp.procurement,state:0
@@ -736,34 +742,34 @@ msgid ""
"This wizard will planify the procurement for this product. This procurement "
"may generate task, production orders or purchase orders."
msgstr ""
-"Tämä ohjattu toiminto suunnittelee tämän tuotteen hankinnat. Tämä hankinta "
-"saattaa luoda tehtäviä kuten tuotantomääräykset tai ostotilaukset."
+"Tämä ohjattu toiminto suunnittelee tuotteen koko hankinnan. Hankinta voi "
+"luoda tehtäviä, tuotantotilauksia tai ostotilauksia."
#. module: mrp
#: model:process.node,note:mrp.process_node_mts0
msgid "The system waits for requested products in stock."
-msgstr "Järjestelmä odottaa vaadittu tuotteita varastosta."
+msgstr "Järjestelmä odottaa vaadittuja tuotteita varastoon."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemto0
msgid "Serivce Stockable Order"
-msgstr ""
+msgstr "Huolto varastoitava tilaus"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_minimumstockprocure0
msgid "From minimum stock rules, it goes for procure product."
-msgstr "Varaston vähimmäismäärästä se menee hankintatuotteeksi."
+msgstr "Varaston minimirajasta tulee tuotteen hankinta."
#. module: mrp
#: model:process.node,name:mrp.process_node_stockproduct0
#: model:process.node,name:mrp.process_node_stockproduct1
msgid "Stockable Product"
-msgstr ""
+msgstr "Varastoitava tuote"
#. module: mrp
#: view:mrp.production:0
msgid "Production done"
-msgstr "Tuotanto on valmis"
+msgstr "Tuotanto valmis"
#. module: mrp
#: rml:bom.structure:0
@@ -771,7 +777,7 @@ msgstr "Tuotanto on valmis"
#: field:mrp.routing,code:0
#: field:mrp.workcenter,code:0
msgid "Code"
-msgstr ""
+msgstr "Koodi"
#. module: mrp
#: rml:mrp.production.order:0
@@ -788,12 +794,12 @@ msgstr "Ominaisuusryhmä"
#. module: mrp
#: field:mrp.bom,bom_id:0
msgid "Parent BoM"
-msgstr ""
+msgstr "Ylempi osaluettelo"
#. module: mrp
#: view:mrp.procurement:0
msgid "References"
-msgstr ""
+msgstr "Viitteet"
#. module: mrp
#: wizard_button:change_production_qty,confirm,end:0
@@ -807,7 +813,7 @@ msgstr ""
#: wizard_button:product.product.procurement,init,end:0
#: wizard_button:product_price,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Peruuta"
#. module: mrp
#: field:mrp.production,move_prod_id:0
@@ -817,17 +823,17 @@ msgstr "Siirrä tuote"
#. module: mrp
#: selection:mrp.workcenter,type:0
msgid "Machine"
-msgstr ""
+msgstr "Kone"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr "Tee varastoon"
+msgstr "Valmista varastoon"
#. module: mrp
#: field:mrp.workcenter,name:0
msgid "Workcenter Name"
-msgstr "Työkeskuksen nimi"
+msgstr "Työpisteen nimi"
#. module: mrp
#: view:mrp.production:0
@@ -837,7 +843,7 @@ msgstr "Aloita tuotanto"
#. module: mrp
#: selection:mrp.property,composition:0
msgid "min"
-msgstr ""
+msgstr "min"
#. module: mrp
#: help:mrp.workcenter,note:0
@@ -845,45 +851,45 @@ msgid ""
"Description of the workcenter. Explain here what's a cycle according to this "
"workcenter."
msgstr ""
-"Työkeskuksen kuvaus. Selitä tähän tämän työkeskuksen syklin tehtävät."
+"Työpisteen kuvaus. Selitä tässä mitä kierros tarkoittaa tässä työpisteessä."
#. module: mrp
#: rml:bom.structure:0
msgid "-"
-msgstr ""
+msgstr "-"
#. module: mrp
#: selection:mrp.workcenter,type:0
msgid "Human Resource"
-msgstr "Henkilöstö"
+msgstr "Ihmistyö"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action
#: model:ir.ui.menu,name:mrp.menu_mrp_workcenter_action
#: field:mrp.routing,workcenter_lines:0
msgid "Workcenters"
-msgstr "Työkeskukset"
+msgstr "Työpisteet"
#. module: mrp
#: view:mrp.procurement:0
msgid "UOM"
-msgstr ""
+msgstr "Mittayksikkö"
#. module: mrp
#: selection:mrp.procurement,procure_method:0
msgid "on order"
-msgstr "tilauksesta"
+msgstr "tilaukseen"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc0
#: model:ir.ui.menu,name:mrp.mrp_Sched_all
msgid "Compute All Schedulers"
-msgstr "Laske kaikki ajastimet"
+msgstr "Laske kaikki aikataulut"
#. module: mrp
#: field:mrp.production.workcenter.line,cycle:0
msgid "Nbr of cycle"
-msgstr "Syklinnumero"
+msgstr "Kierrosnumero"
#. module: mrp
#: field:mrp.bom,name:0
@@ -895,22 +901,22 @@ msgstr "Syklinnumero"
#: field:mrp.routing.workcenter,name:0
#: field:stock.warehouse.orderpoint,name:0
msgid "Name"
-msgstr ""
+msgstr "Nimi"
#. module: mrp
#: field:mrp.routing.workcenter,cycle_nbr:0
msgid "Number of Cycle"
-msgstr "Syklinnumero"
+msgstr "Kierrosnumero"
#. module: mrp
#: wizard_field:mrp.workcenter.load,init,measure_unit:0
msgid "Amount measuring unit"
-msgstr "Mittausyksikön määrä"
+msgstr "Määrän mittayksikkö"
#. module: mrp
#: view:mrp.procurement:0
msgid "Run procurement"
-msgstr "Aja hankinta"
+msgstr "Suorita hankinta"
#. module: mrp
#: help:res.company,schedule_range:0
@@ -919,9 +925,9 @@ msgid ""
"procurements. All procurement that are not between today and today+range are "
"skipped for futur computation."
msgstr ""
-"Ajastus analysoi tämän aikakehyksen laskettaessa hankintoja. Kaikki ne "
-"hankinnat jotka eivät ole tämän päivän ja aikavälin välissä siirretään "
-"tuleviin laskelmiin."
+"Aikataulutus analysoi tässä määrätyn pituisen ajanjakson laskiessaan "
+"hankintoja. Kaikki hankinnat jotka eivät ole nykypäivän ja nykypäivän + "
+"aikavälin puitteissa ohitetaan ja huomioidaan vasta tulevissa laskelmissa."
#. module: mrp
#: field:mrp.workcenter,time_efficiency:0
@@ -931,27 +937,27 @@ msgstr "Ajan hyötysuhde"
#. module: mrp
#: help:res.company,manufacturing_lead:0
msgid "Security days for each manufacturing operation."
-msgstr "Varopäivät jokaiselle tuotantotoiminnolle."
+msgstr "Turvapäivät jokaiselle tuotannon toiminnolle."
#. module: mrp
#: wizard_view:mrp.procurement.compute.all,init:0
msgid "Scheduler Parameters"
-msgstr "Ajastimen määritykset"
+msgstr "Aikataulutuksen parametrit"
#. module: mrp
#: help:mrp.routing.workcenter,cycle_nbr:0
msgid "A cycle is defined in the workcenter definition."
-msgstr "Sykli on kuvattu työkeskuksen kuvauksessa."
+msgstr "Kierto on kuvattu työpisteen kuvauksessa."
#. module: mrp
#: selection:mrp.workcenter.load,init,measure_unit:0
msgid "Amount in cycles"
-msgstr "Määrä sykleissä"
+msgstr "Määrä kierroissa"
#. module: mrp
#: field:mrp.production,location_dest_id:0
msgid "Finished Products Location"
-msgstr "Valmiin tuotteen sijainti"
+msgstr "Valmiiden tuotteiden paikka"
#. module: mrp
#: wizard_field:product.product.procurement,init,uom_id:0
@@ -966,12 +972,12 @@ msgstr "Hankintatapa"
#. module: mrp
#: field:mrp.workcenter,costs_journal_id:0
msgid "Analytic Journal"
-msgstr ""
+msgstr "Analyyttinen päiväkirja"
#. module: mrp
#: selection:mrp.workcenter.load,init,time_unit:0
msgid "Per week"
-msgstr "viikossa"
+msgstr "Viikossa"
#. module: mrp
#: wizard_button:mrp.procurement.compute,init,compute:0
@@ -988,7 +994,7 @@ msgstr "Odota saatavilla olevia tuotteita varaukseen"
#. module: mrp
#: wizard_button:change_production_qty,confirm,validate:0
msgid "Validate"
-msgstr ""
+msgstr "Hyväksy"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_purchaseprocure0
@@ -1003,14 +1009,14 @@ msgstr "Tuntinumero"
#. module: mrp
#: view:mrp.procurement:0
msgid "Notes"
-msgstr ""
+msgstr "Huomautukset"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_bom
#: view:mrp.bom:0
#: field:mrp.production,bom_id:0
msgid "Bill of Material"
-msgstr "Materiaalilasku"
+msgstr "Osaluettelo"
#. module: mrp
#: wizard_view:mrp.workcenter.load,init:0
@@ -1020,17 +1026,17 @@ msgstr "Valitse aikayksikkö"
#. module: mrp
#: wizard_field:product_price,init,number:0
msgid "Number of products to produce"
-msgstr "Valmistettavien tuotteiden määrä"
+msgstr "Valmistettavien tuotteiden lukumäärä"
#. module: mrp
#: help:mrp.production,location_dest_id:0
msgid "Location where the system will stock the finished products."
-msgstr "Sijainti, mihin järjestelmä varastoi valmiit tuotteet."
+msgstr "Paikka jonne järjestelmä varastoi valmiit tuotteet."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0
msgid "Material routing"
-msgstr "Materiaalireititys"
+msgstr "Materiaalien reititys"
#. module: mrp
#: selection:mrp.workcenter.load,init,time_unit:0
@@ -1040,12 +1046,12 @@ msgstr "Päivästä päivään"
#. module: mrp
#: model:process.node,name:mrp.process_node_productminimumstockrule0
msgid "Minimum stock rule"
-msgstr "Alin varastoarvo"
+msgstr "Varaston minimiraja"
#. module: mrp
#: view:mrp.bom:0
msgid "Revisions"
-msgstr ""
+msgstr "Revisiot"
#. module: mrp
#: field:mrp.bom,product_efficiency:0
@@ -1055,80 +1061,80 @@ msgstr "Tuotteen hyötysuhde"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_warehouse_orderpoint
msgid "Orderpoint minimum rule"
-msgstr "Tilauspisteen minimiarvo"
+msgstr "Tilauspisteen minimiraja"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemts0
msgid "Service Make to Stock"
-msgstr ""
+msgstr "Palvelu valmista varastoon"
#. module: mrp
#: field:mrp.production,sale_ref:0
msgid "Sale Ref"
-msgstr ""
+msgstr "Myynnin viite"
#. module: mrp
#: field:mrp.procurement,priority:0
#: field:mrp.production,priority:0
#: rml:mrp.production.order:0
msgid "Priority"
-msgstr ""
+msgstr "Prioriteetti"
#. module: mrp
#: field:mrp.procurement,location_id:0
#: field:stock.warehouse.orderpoint,location_id:0
msgid "Location"
-msgstr ""
+msgstr "Paikka"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_new
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_new
msgid "New Procurement"
-msgstr "Uusi Hankinta"
+msgstr "Uusi hankinta"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Production Order N° :"
-msgstr "Tuotantotilaus N° :"
+msgstr "Tuotantotilaus nro:"
#. module: mrp
#: selection:mrp.workcenter,type:0
msgid "Tool"
-msgstr ""
+msgstr "Työkalu"
#. module: mrp
#: help:mrp.production,location_src_id:0
msgid ""
"Location where the system will look for products used in raw materials."
msgstr ""
-"Sijainti, josta järjestelmä etsii tuotteita joita on käytetty "
-"raakamateriaaleissa."
+"Paikka josta järjestelmä etsii tuotteita joita on käytetty raaka-aineissa."
#. module: mrp
#: rml:mrp.production.order:0
#: wizard_field:product.product.procurement,init,date_planned:0
msgid "Planned Date"
-msgstr ""
+msgstr "Suunniteltu päivämäärä"
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "Procurement orders"
-msgstr "Hankintamääräykset"
+msgstr "Hankintatilaukset"
#. module: mrp
#: model:process.node,name:mrp.process_node_mts0
msgid "Make to Stock"
-msgstr ""
+msgstr "Valmista varastoon"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemto0
msgid "If product type is service and procure method is Make to order"
-msgstr "Jos tuotetyyppi on palvelu ja hankintatapa on tee tilaukseen"
+msgstr ""
+"Jos tuotteen tyyppi on palvelu ja hankintatapa on \"Valmista tilaukseen\""
#. module: mrp
#: field:res.company,schedule_range:0
msgid "Scheduler Range"
-msgstr "Ajastimen aikaväli"
+msgstr "Aikataulutuksen aikaväli"
#. module: mrp
#: field:stock.warehouse.orderpoint,product_max_qty:0
@@ -1139,7 +1145,7 @@ msgstr "Maksimimäärä"
#: model:ir.model,name:mrp.model_mrp_procurement
#: view:mrp.procurement:0
msgid "Procurement"
-msgstr ""
+msgstr "Hankinta"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.product_procurement_wizard
@@ -1159,17 +1165,17 @@ msgstr "Varaston minimihankinta"
#. module: mrp
#: help:res.company,po_lead:0
msgid "This is the leads/security time for each purchase order."
-msgstr "Tämä on kokonaisaika/varoaika jokaiselle ostotilaukselle."
+msgstr "Tämä on läpimeno-/turva-aika jokaiselle ostotilaukselle."
#. module: mrp
#: view:mrp.bom:0
msgid "BoM Structure"
-msgstr "BoM Rakenne"
+msgstr "Osaluettelon rakenne"
#. module: mrp
#: field:mrp.production,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "Aloituspäivämäärä"
#. module: mrp
#: field:mrp.workcenter,costs_hour_account_id:0
@@ -1179,29 +1185,29 @@ msgstr "Tuntitili"
#. module: mrp
#: selection:mrp.bom,revision_type:0
msgid "alphabetical indices"
-msgstr ""
+msgstr "Aakkosellinen järjestys"
#. module: mrp
#: model:process.node,note:mrp.process_node_productionorder0
msgid "Procurement for raw materials."
-msgstr "Raakamateriaalien hankinta"
+msgstr "Raaka-aineiden hankinta."
#. module: mrp
#: view:mrp.procurement:0
#: field:mrp.procurement,note:0
#: rml:mrp.production.order:0
msgid "Note"
-msgstr ""
+msgstr "Huomautus"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procurestockableproduct0
msgid "Procure Stockable Product"
-msgstr ""
+msgstr "Hanki varastoitava tuote"
#. module: mrp
#: field:mrp.bom,method:0
msgid "Method"
-msgstr ""
+msgstr "Tapa"
#. module: mrp
#: wizard_view:product_price,init:0
@@ -1211,7 +1217,7 @@ msgstr "Maksettu?"
#. module: mrp
#: model:process.node,note:mrp.process_node_routing0
msgid "Define a routing to describe the manufacturing steps."
-msgstr "Määritä reititys kuvamaan valmistusvaiheita."
+msgstr "Määritä reititys kuvamaan valmistuksen vaiheita."
#. module: mrp
#: field:mrp.bom,active:0
@@ -1219,7 +1225,7 @@ msgstr "Määritä reititys kuvamaan valmistusvaiheita."
#: field:mrp.workcenter,active:0
#: field:stock.warehouse.orderpoint,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktiivinen"
#. module: mrp
#: model:process.node,name:mrp.process_node_procureproducts0
@@ -1236,24 +1242,24 @@ msgstr "Hanki tuotteita"
#: field:mrp.procurement,property_ids:0
#: view:mrp.property:0
msgid "Properties"
-msgstr ""
+msgstr "Ominaisuudet"
#. module: mrp
#: field:mrp.procurement,date_planned:0
#: field:mrp.production,date_planned:0
msgid "Scheduled date"
-msgstr ""
+msgstr "Arvioitu päivämäärä"
#. module: mrp
#: view:mrp.procurement:0
#: view:mrp.production:0
msgid "Extra Information"
-msgstr ""
+msgstr "Lisätiedot"
#. module: mrp
#: model:process.node,note:mrp.process_node_billofmaterial0
msgid "Define the product structure, with sub-products and/or components."
-msgstr "Määritä tuoterakenne jossa mukana lisätuotteet ja/tai komponentit."
+msgstr "Määritä tuotteen rakenne, jossa on osatuotteet ja/tai komponentit."
#. module: mrp
#: model:process.node,note:mrp.process_node_minimumstockrule0
@@ -1261,12 +1267,12 @@ msgid ""
"Procurement is created if the product quantity is lower than the minimum "
"limit."
msgstr ""
-"Luodaan hankinta ja tuotteen määrä on alempi kuin määritetty alaraja."
+"Hankinta luodaan jos tuotteen lukumäärä on alempi kuin määritetty minimiraja."
#. module: mrp
#: field:mrp.procurement,date_close:0
msgid "Date Closed"
-msgstr "Sulkemispäivämäärä"
+msgstr "Sulkemispäivä"
#. module: mrp
#: field:mrp.workcenter,costs_general_account_id:0
@@ -1276,18 +1282,18 @@ msgstr "Yleinen tili"
#. module: mrp
#: field:mrp.property,composition:0
msgid "Properties composition"
-msgstr "Ominaisuusyhdistelmä"
+msgstr "Ominaisuuksien koostumus"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
#: model:ir.ui.menu,name:mrp.menu_production_orders_waiting4
msgid "Production Orders Waiting Products"
-msgstr "Tuotantomääräykset odottavat tuotteita"
+msgstr "Tuotantotilaukset jotka odottavat tuotteita"
#. module: mrp
#: rml:mrp.production.order:0
msgid "SO Number"
-msgstr ""
+msgstr "Myyntitilaus nro"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wizard_change_production_qty
@@ -1298,23 +1304,23 @@ msgstr "Muuta tuotteen määrää."
#: selection:mrp.procurement,state:0
#: selection:mrp.production,state:0
msgid "Done"
-msgstr ""
+msgstr "Valmis"
#. module: mrp
#: help:stock.warehouse.orderpoint,qty_multiple:0
msgid "The procurement quantity will by rounded up to this multiple."
-msgstr "Hankintamäärä pyöristetään tähän kertoimeen."
+msgstr "Hankinnan määrä pyöristetään ylös tähän moninkertaan."
#. module: mrp
#: field:stock.warehouse.orderpoint,logic:0
msgid "Reordering Mode"
-msgstr "Uusintatilaus Tila"
+msgstr "Uusintatilauksen tapa"
#. module: mrp
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
-msgstr ""
+msgstr "Objektin nimen tulee alkaa x_ ja se ei saa sisältää erikoismerkkejä!"
#. module: mrp
#: model:process.node,note:mrp.process_node_procureproducts0
@@ -1325,7 +1331,7 @@ msgstr "Keskeinen dokumentti tuotteiden hankintaan"
#: model:ir.actions.act_window,name:mrp.mrp_production_action3
#: model:ir.ui.menu,name:mrp.menu_mrp_production_action3
msgid "Production Orders in Progress"
-msgstr "Tuotantomääräykset kehittymässä"
+msgstr "Tuotantotilaukset jotka keskeneräisiä"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.act_product_product_2_stock_warehouse_orderpoint
@@ -1334,12 +1340,12 @@ msgstr "Tuotantomääräykset kehittymässä"
#: model:ir.ui.menu,name:mrp.menu_action_orderpoint_form
#: view:stock.warehouse.orderpoint:0
msgid "Minimum Stock Rules"
-msgstr "Varaston alarajat"
+msgstr "Varaston minimirajat"
#. module: mrp
#: field:mrp.workcenter,capacity_per_cycle:0
msgid "Capacity per Cycle"
-msgstr "Syklin kapasiteetti"
+msgstr "Kapasiteetti per kierros"
#. module: mrp
#: field:mrp.bom,product_id:0
@@ -1349,23 +1355,23 @@ msgstr "Syklin kapasiteetti"
#: field:mrp.production.product.line,product_id:0
#: field:stock.warehouse.orderpoint,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Tuote"
#. module: mrp
#: view:mrp.production:0
#: field:mrp.production,hour_total:0
msgid "Total Hours"
-msgstr ""
+msgstr "Tunnit yhteensä"
#. module: mrp
#: field:mrp.production,location_src_id:0
msgid "Raw Materials Location"
-msgstr "Raakamateriaalien sijainti"
+msgstr "Raaka-aineiden paikka"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_product_bom_structure
msgid "Product BoM Structure"
-msgstr "Tuotteen BoM Rakenne"
+msgstr "Tuotteen osaluettelon rakenne"
#. module: mrp
#: field:mrp.bom,product_uom:0
@@ -1373,7 +1379,7 @@ msgstr "Tuotteen BoM Rakenne"
#: field:mrp.production.product.line,product_uom:0
#: field:stock.warehouse.orderpoint,product_uom:0
msgid "Product UOM"
-msgstr ""
+msgstr "Tuotteen mittayksikkö"
#. module: mrp
#: help:mrp.procurement,origin:0
@@ -1381,37 +1387,38 @@ msgid ""
"Reference of the document that created this procurement.\n"
"This is automatically completed by Open ERP."
msgstr ""
-"Dokumentin viite joka loi tämän hankinnan.\n"
-"Open ERP on luonut tämän automaattisesti."
+"Viite dokumenttiin joka loi tämän hankinnan.\n"
+"OpenERP määrittää tämän automaattisesti."
#. module: mrp
#: view:mrp.production.lot.line:0
msgid "Production Products"
-msgstr "Tuotantotuotteet"
+msgstr "Tuotannon tuotteet"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockproduct0
msgid "Product type is Stockable and procure method is make to stock"
msgstr ""
-"Tuotteen tyyppi on \"varastoitavissa\" ja hankintatapa on \"tee varastoon\""
+"Tuotteen tyyppi on varastoitava ja hankintatapa on \"Valmista varastoon\""
#. 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 ""
-"BoM:n tai komponentin kelpoisuus. Jätä tyhjäksi jos aina kelvollinen."
+"Osaluettelon tai komponentin voimassaolo. Jätä tyhjäksi jos se on voimassa "
+"aina."
#. module: mrp
#: field:mrp.procurement,product_uos:0
#: field:mrp.production,product_uos:0
msgid "Product UoS"
-msgstr ""
+msgstr "Tuotteen myyntiyksikkö"
#. module: mrp
#: field:mrp.procurement,product_uom:0
msgid "Product UoM"
-msgstr ""
+msgstr "Tuotteen mittayksikkö"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_workcenter
@@ -1419,7 +1426,7 @@ msgstr ""
#: field:mrp.routing.workcenter,workcenter_id:0
#: view:mrp.workcenter:0
msgid "Workcenter"
-msgstr "Työkeskus"
+msgstr "Työpiste"
#. module: mrp
#: selection:mrp.procurement,priority:0
@@ -1436,12 +1443,12 @@ msgstr "Ostotilaus"
#. module: mrp
#: view:mrp.production:0
msgid "Production Workcenters"
-msgstr "Tuotantokeskukset"
+msgstr "Tuotannon työpisteet"
#. module: mrp
#: view:mrp.property.group:0
msgid "Properties categories"
-msgstr "Kategoriaominaisuudet"
+msgstr "Ominaisuuksien kategoriat"
#. module: mrp
#: help:mrp.procurement,procure_method:0
@@ -1449,72 +1456,72 @@ msgid ""
"If you encode manually a procurement, you probably want to use a make to "
"order method."
msgstr ""
-"Jos teet manuaalisesti hankinnan, saatat haluta käyttää \"tee tilaus\" - "
-"tapaa."
+"Jos syötät hankinnan manuaalisesti, haluat todennäköisesti käytää \"Valmista "
+"tilaukseen\"-tapaa."
#. module: mrp
#: rml:mrp.production.order:0
msgid "Source Location"
-msgstr ""
+msgstr "Lähteen paikka"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicerfq0
msgid "Stockable Order Request"
-msgstr ""
+msgstr "Varastoitavan tilauksen pyyntö"
#. module: mrp
#: view:mrp.production:0
#: view:mrp.production.product.line:0
msgid "Scheduled Products"
-msgstr "Ajoitetut tuotteet"
+msgstr "Aikataulutetut tuotteet"
#. module: mrp
#: view:mrp.production.lot.line:0
msgid "Production Products Consommation"
-msgstr ""
+msgstr "Tuotannon tuotteiden kulutus"
#. module: mrp
#: selection:mrp.bom,revision_type:0
msgid "numeric indices"
-msgstr ""
+msgstr "Numeerinen järjestys"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicerfq0
msgid "If Procure method is Make to order and supply method is buy"
-msgstr "Jos hankintatapa on \"tee tilaus\" ja toimitustapa on \"osta\""
+msgstr "Jos hankintatapa on \"Valmista tilaukseen\" ja hankitatyyppi on osto"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_procurestockableproduct0
msgid "if Product type is Stockable in procurement order"
-msgstr "Jos tuotteen tyyppi on \"Varastoitavissa\" hankintatilauksessa"
+msgstr "Jos tuotteen tyyppi hankintatilauksessa on varastoitavissa"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
#: view:mrp.production:0
#: rml:mrp.production.order:0
msgid "Work Orders"
-msgstr "Työmääräykset"
+msgstr "Työtilaukset"
#. module: mrp
#: field:mrp.workcenter,costs_cycle:0
msgid "Cost per cycle"
-msgstr "Kustannukset sykleittäin"
+msgstr "Kustannus per kierto"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_bom_revision
msgid "Bill of material revisions"
-msgstr "Materiaalitarkastusten lasku"
+msgstr "Osaluettelon revisiot"
#. module: mrp
#: view:mrp.procurement:0
msgid "Planification"
-msgstr ""
+msgstr "Suunnittelu"
#. module: mrp
#: rml:bom.structure:0
#: model:process.transition,name:mrp.process_transition_bom0
msgid "BOM"
-msgstr "BOM"
+msgstr "Osaluettelo"
#. module: mrp
#: help:mrp.bom,type:0
@@ -1526,11 +1533,17 @@ msgid ""
"sale order to the picking without going through the production order.The "
"normal BoM will generate one production order per BoM level."
msgstr ""
+"Käytä haamu-osaluetteloa raaka-aineille jotka lasketaan yhdelle "
+"tuotantotilaukselle automaattisesti, eikä jokaiselle portaalle erikseen. Jos "
+"\"Sarja / Haamu\" on määritetty osaluettelon juuritasolle käsitellään se "
+"sarjana tai pakkauksena: tuotteet korvataan komponenteilla myyntitilauksesta "
+"keräilyyn, eikä tuotantotilausta tehdä lainkaan. Normaali osalista luo "
+"tuotantotilauksen jokaiselle osalistan portaalle."
#. module: mrp
#: field:mrp.workcenter,time_cycle:0
msgid "Time for 1 cycle (hour)"
-msgstr "Yhden syklin aika (tunneissa)"
+msgstr "Yhden kierron aika (tuntia)"
#. module: mrp
#: wizard_view:product.product.procurement,done:0
@@ -1549,18 +1562,18 @@ msgstr "Sisäinen hankintapyyntö"
#: model:process.node,name:mrp.process_node_production0
#: model:process.node,name:mrp.process_node_productionorder0
msgid "Production Order"
-msgstr "Tuotantomääräys"
+msgstr "Tuotantotilaus"
#. module: mrp
#: view:mrp.production:0
msgid "Compute Data"
-msgstr "Laske tietoja"
+msgstr "Laske tiedot"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_property_group_action
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action
msgid "Property Categories"
-msgstr "Ominaisuuskategoriat"
+msgstr "Ominaisuuksien kategoriat"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc1
@@ -1571,61 +1584,61 @@ msgstr "Laske vain hankinnat"
#. module: mrp
#: field:mrp.production,product_uos_qty:0
msgid "Product UoS Qty"
-msgstr "Tuotteen UoS määrä"
+msgstr "Tuotteen myyntiyksikkö määrä"
#. module: mrp
#: rml:bom.structure:0
#: model:ir.actions.report.xml,name:mrp.report_bom_structure
msgid "BOM Structure"
-msgstr "BOM -Rakenne"
+msgstr "Osaluettelon rakenne"
#. module: mrp
#: field:mrp.bom,date_stop:0
msgid "Valid Until"
-msgstr "Mihin asti kelvollinen"
+msgstr "Voimassaolo"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action11
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action11
msgid "Temporary Procurement Exceptions"
-msgstr "Väliaikaiset hankintapoikkeukset"
+msgstr "Väliaikaiset hankinnan poikkeukset"
#. module: mrp
#: field:mrp.bom,date_start:0
msgid "Valid From"
-msgstr ""
+msgstr "Voimassa alkaen"
#. module: mrp
#: selection:mrp.bom,type:0
msgid "Normal BoM"
-msgstr "Normaali BoM"
+msgstr "Normaali osaluettelo"
#. module: mrp
#: field:mrp.bom,product_uos_qty:0
#: field:mrp.production.product.line,product_uos_qty:0
msgid "Product UOS Qty"
-msgstr "Tuotteen UOS määrä"
+msgstr "Tuotteen myyntiyksikkö määrä"
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Vahvistettu"
#. module: mrp
#: wizard_view:mrp.procurement.compute,init:0
#: wizard_view:mrp.procurement.orderpoint.compute,init:0
msgid "Parameters"
-msgstr ""
+msgstr "Parametrit"
#. module: mrp
#: view:mrp.procurement:0
msgid "Confirm"
-msgstr ""
+msgstr "Vahvista"
#. module: mrp
#: field:mrp.production,workcenter_lines:0
msgid "Workcenters Utilisation"
-msgstr "Työkeskusten käyttöaste"
+msgstr "Työpisteiden käyttöaste"
#. module: mrp
#: help:mrp.bom,product_efficiency:0
@@ -1653,7 +1666,7 @@ msgstr "Luo keräily uudelleen"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceonorder0
msgid "If procurement is make to order"
-msgstr "Jos hankinta on \"tee tilaukseen\""
+msgstr "Jos hankinta on \"Valmista tilaukseen\""
#. module: mrp
#: selection:mrp.bom,method:0
@@ -1663,13 +1676,13 @@ msgstr "Tilauksessa"
#. module: mrp
#: model:process.node,name:mrp.process_node_minimumstockrule0
msgid "Minimum Stock Rule"
-msgstr "Varaston minimiarvo"
+msgstr "Varaston minimiraja"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action_new
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action_new
msgid "New Bill of Materials"
-msgstr "Uusi materiaalilasku"
+msgstr "Uusi osaluettelo"
#. module: mrp
#: field:mrp.workcenter,time_stop:0
@@ -1684,7 +1697,7 @@ msgstr "Jakson tyyppi"
#. module: mrp
#: view:mrp.production:0
msgid "Total Qty"
-msgstr "Yhteismäärä"
+msgstr "Yhteensä"
#. module: mrp
#: field:mrp.routing.workcenter,hour_nbr:0
@@ -1695,38 +1708,38 @@ msgstr "Tuntien lukumäärä"
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action
msgid "Procurement Orders"
-msgstr "Hankintamääräykset"
+msgstr "Hankintatilaukset"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_property
msgid "Property"
-msgstr ""
+msgstr "Ominaisuus"
#. module: mrp
#: field:mrp.routing.workcenter,routing_id:0
msgid "Parent Routing"
-msgstr "Näkyvä reititys"
+msgstr "Ylempi reititys"
#. module: mrp
#: help:mrp.workcenter,time_start:0
msgid "Time in hours for the setup."
-msgstr "Asennuksen kesto tunneissa."
+msgstr "Asetuksiin kuluva aika tunneissa."
#. module: mrp
#: selection:mrp.production,state:0
msgid "Canceled"
-msgstr ""
+msgstr "Peruttu"
#. module: mrp
#: selection:mrp.property,composition:0
msgid "plus"
-msgstr ""
+msgstr "plus"
#. module: mrp
#: field:mrp.bom.revision,bom_id:0
#: field:mrp.procurement,bom_id:0
msgid "BoM"
-msgstr "BoM"
+msgstr "Osaluettelo"
#. module: mrp
#: help:mrp.bom,routing_id:0
@@ -1736,91 +1749,89 @@ msgid ""
"operations and to plan futur loads on workcenters based on production "
"plannification."
msgstr ""
-"Lista toiminnoista (lista työkeskuksista) jotka valmistavat lopullisen "
-"tuotteen. Reititystä käytetään pääasiallisesti laskemaan työkeskuksen "
-"kustannuksia toimintojen aikana ja suunnittelemaan tulevia kuormituksia "
-"jotka perustuvat tuotannon suunnitteluun."
+"Lista toiminnoista (työpisteistä) jotka tuotteen valmistaminen vaatii. "
+"Reititystä käytetään pääasiallisesti työpisteiden kustannusten laskentaan ja "
+"kuormitusten suunnitteluun."
#. module: mrp
#: selection:mrp.production,state:0
msgid "Waiting Goods"
-msgstr "Odottavat tuotteet"
+msgstr "Odottaa tuotteita"
#. module: mrp
#: model:process.process,name:mrp.process_process_stockableproductprocess0
msgid "Stockable Product Process"
-msgstr ""
+msgstr "Varastoitava tuote prosessi"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_new
#: model:ir.ui.menu,name:mrp.menu_production_orders_new
msgid "New Production Order"
-msgstr "Uusi tuotantomääräys"
+msgstr "Uusi tuotantotilaus"
#. module: mrp
#: model:process.node,note:mrp.process_node_rfq0
msgid "A Request for Quotation is created and sent to the supplier."
-msgstr "Tarjouspyyntö on luotu ja lähetetty tavarantoimittajalle."
+msgstr "Tarjouspyyntö luodaan ja lähetetään toimittajalle."
#. module: mrp
#: field:mrp.bom.revision,last_indice:0
msgid "last indice"
-msgstr ""
+msgstr "Viimeinen järjestys"
#. module: mrp
#: field:mrp.bom,revision_ids:0
#: view:mrp.bom.revision:0
msgid "BoM Revisions"
-msgstr "BoM tarkistukset"
+msgstr "Osaluettelon revisiot"
#. module: mrp
#: view:mrp.procurement:0
msgid "Retry"
-msgstr ""
+msgstr "Yritä uudelleen"
#. module: mrp
#: selection:mrp.procurement,state:0
#: selection:mrp.production,state:0
msgid "Draft"
-msgstr ""
+msgstr "Luonnos"
#. module: mrp
#: selection:mrp.procurement,priority:0
#: selection:mrp.production,priority:0
msgid "Normal"
-msgstr ""
+msgstr "Normaali"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_productionprocureproducts0
msgid "When any procuere products, it comes into the prpcurement orders"
-msgstr ""
-"Jos kysymyksessä mikä tahansa hankintatuote, se tulee hankintatilaukseen"
+msgstr "Jos on hankittavia tuotteita, ne tulevat hankintatilauksiin"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2
#: model:ir.ui.menu,name:mrp.menu_production_orders_start
msgid "Production Orders To Start"
-msgstr "Tuotantomääräykset aloittamisesta"
+msgstr "Tuotantotilaukset jotka voidaan aloittaa"
#. module: mrp
#: view:mrp.procurement:0
msgid "Procurement Reason"
-msgstr "Hankintasyy"
+msgstr "Hankinnan syy"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0
msgid "An entry is being made from billing material to routing."
-msgstr ""
+msgstr "Tehdään merkintä osalistasta reititykseen."
#. module: mrp
#: help:mrp.workcenter,timesheet_id:0
msgid "The normal working time of the workcenter."
-msgstr "Työkeskuksen normaali työaika."
+msgstr "Työpisteen normaali työaika."
#. module: mrp
#: selection:stock.warehouse.orderpoint,logic:0
msgid "Order to Max"
-msgstr "Max.tilaus"
+msgstr "Tilaa maksimiin"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom
@@ -1828,7 +1839,7 @@ msgstr "Max.tilaus"
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action
#: model:process.node,name:mrp.process_node_billofmaterial0
msgid "Bill of Materials"
-msgstr "Materiaalilasku"
+msgstr "Osaluettelo"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_procureserviceproduct0
@@ -1838,7 +1849,7 @@ msgstr "Hankintatilauksessa jos tuotteen tyyppi on palvelu"
#. module: mrp
#: selection:mrp.procurement,procure_method:0
msgid "from stock"
-msgstr ""
+msgstr "varastosta"
#. module: mrp
#: view:mrp.bom:0
@@ -1847,7 +1858,7 @@ msgstr ""
#: view:mrp.routing:0
#: view:mrp.routing.workcenter:0
msgid "General Information"
-msgstr ""
+msgstr "Yleistiedot"
#. module: mrp
#: view:mrp.production:0
@@ -1857,7 +1868,7 @@ msgstr "Tuotannot"
#. module: mrp
#: wizard_button:product.product.procurement,done,end:0
msgid "Close"
-msgstr ""
+msgstr "Sulje"
#. module: mrp
#: field:mrp.production,sale_name:0
@@ -1867,13 +1878,13 @@ msgstr "Myyntinimi"
#. module: mrp
#: model:process.node,note:mrp.process_node_productminimumstockrule0
msgid "Create minimum stock rules"
-msgstr "Luo varaston alinarvo"
+msgstr "Luo varaston minimirajat"
#. module: mrp
#: wizard_field:product.product.procurement,init,warehouse_id:0
#: field:stock.warehouse.orderpoint,warehouse_id:0
msgid "Warehouse"
-msgstr ""
+msgstr "Varasto"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production
@@ -1890,7 +1901,7 @@ msgstr "Palvelutuote"
#. module: mrp
#: field:mrp.procurement,close_move:0
msgid "Close Move at end"
-msgstr ""
+msgstr "Sulje siirto lopussa"
#. module: mrp
#: wizard_view:change_production_qty,confirm:0
@@ -1908,49 +1919,49 @@ msgstr "Muuta tuotteen määrää"
#: view:mrp.workcenter:0
#: field:mrp.workcenter,note:0
msgid "Description"
-msgstr ""
+msgstr "Kuvaus"
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Running"
-msgstr ""
+msgstr "Kesken"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_root
msgid "Manufacturing"
-msgstr "Valmistava"
+msgstr "Tuotannon hallinta"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action3
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action3
msgid "Unscheduled procurements"
-msgstr "Odottamattomat hankinnat"
+msgstr "Hankinnat joilla ei ole aikataulua"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_bom_tree_action
#: model:ir.ui.menu,name:mrp.menu_bom_tree
msgid "Bill of Material Structure"
-msgstr "Materiaalirakenteen lasku"
+msgstr "Osaluettelon rakenne"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wizard_workcenter_load
msgid "Workcenter load"
-msgstr "Työkeskuksen kuormitus"
+msgstr "Työpisteen kuormitus"
#. module: mrp
#: help:mrp.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
-msgstr "Puhdistamisen kuluvat työtunnit"
+msgstr "Siivoukseen kuluva aika tunneissa."
#. module: mrp
#: view:mrp.procurement:0
msgid "Procurement Details"
-msgstr "Hankinnan yksityiskohdat"
+msgstr "Hankinnan tiedot"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_bom0
msgid "You can see its bill of material which are used to make product"
-msgstr ""
+msgstr "Voit nähdä osaluettelon jota käytetään tuotteen valmistukseen"
#. module: mrp
#: field:mrp.production,date_planned_end:0
@@ -1968,10 +1979,10 @@ msgstr "Varastossa"
#: field:mrp.production.workcenter.line,sequence:0
#: field:mrp.routing.workcenter,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Sarja"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2
#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2
msgid "Bill of Materials Components"
-msgstr ""
+msgstr "Osaluettelon komponentit"
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index 3da923faf93..8f9e0cabe47 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-20 08:33+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2010-03-29 00:43+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-21 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 716b19164e9..6864b542396 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -134,6 +134,18 @@ class mrp_bom(osv.osv):
_name = 'mrp.bom'
_description = 'Bills of Material'
def _child_compute(self, cr, uid, ids, name, arg, context={}):
+ """
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID of mrp.production object
+ @param name:
+ @param arg:
+
+ @return: True
+
+ """
+
result = {}
for bom in self.browse(cr, uid, ids, context=context):
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
@@ -145,6 +157,9 @@ class mrp_bom(osv.osv):
if sids:
bom2 = self.pool.get('mrp.bom').browse(cr, uid, sids[0], context=context)
result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
+ print "name",name
+ print "arg",arg
+ print "result",result
return result
def _compute_type(self, cr, uid, ids, field_name, arg, context):
res = dict(map(lambda x: (x,''), ids))
@@ -189,6 +204,8 @@ class mrp_bom(osv.osv):
'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
'company_id': fields.many2one('res.company','Company',required=True),
+ 'multi_level_bom': fields.boolean('Multi-level BoM'),
+
}
_defaults = {
'active': lambda *a: 1,
@@ -196,7 +213,8 @@ class mrp_bom(osv.osv):
'product_qty': lambda *a: 1.0,
'product_rounding': lambda *a: 1.0,
'type': lambda *a: 'normal',
- 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.bom', context=c)
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.bom', context=c),
+ 'multi_level_bom': lambda *a: 0,
}
_order = "sequence"
_sql_constraints = [
@@ -298,11 +316,12 @@ class mrp_bom(osv.osv):
rev_ids = res[0]['revision_ids']
idx = 1
new_idx = []
+ bom_rev_obj = self.pool.get('mrp.bom.revision')
for rev_id in rev_ids:
if res[0]['revision_type'] == 'numeric':
- self.pool.get('mrp.bom.revision').write(cr, uid, [rev_id], {'indice' : idx})
+ bom_rev_obj.write(cr, uid, [rev_id], {'indice' : idx})
else:
- self.pool.get('mrp.bom.revision').write(cr, uid, [rev_id], {'indice' : "%c"%(idx+96,)})
+ bom_rev_obj.write(cr, uid, [rev_id], {'indice' : "%c"%(idx+96,)})
idx+=1
return True
@@ -375,30 +394,7 @@ class one2many_domain(fields.one2many):
class mrp_production(osv.osv):
_name = 'mrp.production'
_description = 'Production'
- _date_name = 'date_planned'
-
- def _get_sale_order(self,cr,uid,ids,field_name=False):
- move_obj=self.pool.get('stock.move')
- def get_parent_move(move_id):
- move = move_obj.browse(cr,uid,move_id)
- if move.move_dest_id:
- return get_parent_move(move.move_dest_id.id)
- return move_id
- productions=self.read(cr,uid,ids,['id','move_prod_id'])
- res={}
- for production in productions:
- res[production['id']]=False
- if production.get('move_prod_id',False):
- parent_move_line=get_parent_move(production['move_prod_id'][0])
- if parent_move_line:
- move = move_obj.browse(cr,uid,parent_move_line)
- #TODO: fix me sale module can not be used here,
- #as may be mrp can be installed without sale module
- if field_name=='name':
- res[production['id']]=move.sale_line_id and move.sale_line_id.order_id.name or False
- if field_name=='client_order_ref':
- res[production['id']]=move.sale_line_id and move.sale_line_id.order_id.client_order_ref or False
- return res
+ _date_name = 'date_planned'
def _production_calc(self, cr, uid, ids, prop, unknow_none, context={}):
result = {}
@@ -424,11 +420,12 @@ class mrp_production(osv.osv):
result[prod.id] = prod.date_planned[:10]
return result
- def _sale_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
- return self._get_sale_order(cr,uid,ids,field_name='name')
-
- def _sale_ref_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
- return self._get_sale_order(cr,uid,ids,field_name='client_order_ref')
+ def _ref_calc(self, cr, uid, ids, field_names=None, arg=False, context={}):
+ res = {}
+ for f in field_names:
+ for order_id in ids:
+ res[order_id] = {f:False}
+ return res
_columns = {
'name': fields.char('Reference', size=64, required=True),
@@ -470,8 +467,8 @@ class mrp_production(osv.osv):
'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder'),
'cycle_total': fields.function(_production_calc, method=True, type='float', string='Total Cycles', multi='workorder'),
- 'sale_name': fields.function(_sale_name_calc, method=True, type='char', string='Sale Name', help='Indicate the name of sale order.'),
- 'sale_ref': fields.function(_sale_ref_calc, method=True, type='char', string='Sale Reference', help='Indicate the Customer Reference from sale order.'),
+ 'sale_name': fields.function(_ref_calc, method=True, multi='sale_name', type='char', string='Sale Name', help='Indicate the name of sale order.'),
+ 'sale_ref': fields.function(_ref_calc, method=True, multi='sale_ref', type='char', string='Sale Reference', help='Indicate the Customer Reference from sale order.'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
@@ -533,15 +530,18 @@ class mrp_production(osv.osv):
def action_compute(self, cr, uid, ids, properties=[]):
results = []
+ bom_obj = self.pool.get('mrp.bom')
+ prod_line_obj = self.pool.get('mrp.production.product.line')
+ workcenter_line_obj = self.pool.get('mrp.production.workcenter.line')
for production in self.browse(cr, uid, ids):
cr.execute('delete from mrp_production_product_line where production_id=%s', (production.id,))
cr.execute('delete from mrp_production_workcenter_line where production_id=%s', (production.id,))
bom_point = production.bom_id
bom_id = production.bom_id.id
if not bom_point:
- bom_id = self.pool.get('mrp.bom')._bom_find(cr, uid, production.product_id.id, production.product_uom.id, properties)
+ bom_id = bom_obj._bom_find(cr, uid, production.product_id.id, production.product_uom.id, properties)
if bom_id:
- bom_point = self.pool.get('mrp.bom').browse(cr, uid, bom_id)
+ bom_point = bom_obj.browse(cr, uid, bom_id)
routing_id = bom_point.routing_id.id or False
self.write(cr, uid, [production.id], {'bom_id': bom_id, 'routing_id': routing_id})
@@ -552,32 +552,34 @@ class mrp_production(osv.osv):
# self.write(cr, uid, [production.id], {'location_src_id': bom_point.routing_id.location_id.id})
factor = production.product_qty * production.product_uom.factor / bom_point.product_uom.factor
- res = self.pool.get('mrp.bom')._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, properties)
+ res = bom_obj._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, properties)
results = res[0]
results2 = res[1]
for line in results:
line['production_id'] = production.id
- self.pool.get('mrp.production.product.line').create(cr, uid, line)
+ prod_line_obj.create(cr, uid, line)
for line in results2:
line['production_id'] = production.id
- self.pool.get('mrp.production.workcenter.line').create(cr, uid, line)
+ workcenter_line_obj.create(cr, uid, line)
return len(results)
def action_cancel(self, cr, uid, ids):
+ move_obj = self.pool.get('stock.move')
for production in self.browse(cr, uid, ids):
if production.move_created_ids:
- self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in production.move_created_ids])
- self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in production.move_lines])
+ move_obj.action_cancel(cr, uid, [x.id for x in production.move_created_ids])
+ move_obj.action_cancel(cr, uid, [x.id for x in production.move_lines])
self.write(cr, uid, ids, {'state':'cancel'}) #,'move_lines':[(6,0,[])]})
return True
#XXX: may be a bug here; lot_lines are unreserved for a few seconds;
# between the end of the picking list and the call to this function
def action_ready(self, cr, uid, ids):
+ move_obj = self.pool.get('stock.move')
self.write(cr, uid, ids, {'state':'ready'})
for production in self.browse(cr, uid, ids):
if production.move_prod_id:
- self.pool.get('stock.move').write(cr, uid, [production.move_prod_id.id],
+ move_obj.write(cr, uid, [production.move_prod_id.id],
{'location_id':production.location_dest_id.id})
return True
@@ -596,7 +598,23 @@ class mrp_production(osv.osv):
res = False
return res
- def do_produce(self, cr, uid, production_id, production_qty, production_mode, context=None):
+ def action_produce(self, cr, uid, production_id, production_qty, production_mode, context=None):
+ """
+ To produce final product base on production mode (consume/consume&produce).
+ If Production mode is consume, all stock move lines of raw materials will be done/consumed.
+ If Production mode is consume & produce, all stock move lines of raw materials will be done/consumed
+ and stock move lines of final product will be also done/produced.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param production_id: the ID of mrp.production object
+ @param production_qty: specify qty to produce
+ @param production_mode: specify production mode (consume/consume&produce).
+
+ @return: True
+
+ """
stock_mov_obj = self.pool.get('stock.move')
production = self.browse(cr, uid, production_id)
@@ -604,6 +622,7 @@ class mrp_production(osv.osv):
final_product_todo = []
if production_mode in ['consume','consume_produce']:
+ # To consume remaining qty of raw materials
consumed_products = {}
produced_qty = 0
for consumed_product in production.move_lines2:
@@ -628,6 +647,7 @@ class mrp_production(osv.osv):
stock_mov_obj.action_consume(cr, uid, [raw_product.id], rest_qty, production.location_src_id.id, context=context)
if production_mode == 'consume_produce':
+ # To produce remaining qty of final product
vals = {'state':'confirmed'}
final_product_todo = [x.id for x in production.move_created_ids]
stock_mov_obj.write(cr, uid, final_product_todo, vals)
@@ -663,6 +683,7 @@ class mrp_production(osv.osv):
def _costs_generate(self, cr, uid, production):
amount = 0.0
+ analytic_line_obj = self.pool.get('account.analytic.line')
for wc_line in production.workcenter_lines:
wc = wc_line.workcenter_id
if wc.costs_journal_id and wc.costs_general_account_id:
@@ -670,7 +691,7 @@ class mrp_production(osv.osv):
account = wc.costs_hour_account_id.id
if value and account:
amount += value
- self.pool.get('account.analytic.line').create(cr, uid, {
+ analytic_line_obj.create(cr, uid, {
'name': wc_line.name+' (H)',
'amount': value,
'account_id': account,
@@ -683,7 +704,7 @@ class mrp_production(osv.osv):
account = wc.costs_cycle_account_id.id
if value and account:
amount += value
- self.pool.get('account.analytic.line').create(cr, uid, {
+ analytic_line_obj.create(cr, uid, {
'name': wc_line.name+' (C)',
'amount': value,
'account_id': account,
@@ -712,6 +733,10 @@ class mrp_production(osv.osv):
def action_confirm(self, cr, uid, ids):
picking_id=False
proc_ids = []
+ seq_obj = self.pool.get('ir.sequence')
+ pick_obj = self.pool.get('stock.picking')
+ move_obj = self.pool.get('stock.move')
+ proc_obj = self.pool.get('mrp.procurement')
for production in self.browse(cr, uid, ids):
if not production.product_lines:
self.action_compute(cr, uid, [production.id])
@@ -725,7 +750,9 @@ class mrp_production(osv.osv):
pick_type = 'out'
address_id = routing_loc.address_id and routing_loc.address_id.id or False
routing_loc = routing_loc.id
- picking_id = self.pool.get('stock.picking').create(cr, uid, {
+ pick_name = seq_obj.get(cr, uid, 'stock.picking.'+pick_type)
+ picking_id = pick_obj.create(cr, uid, {
+ 'name': pick_name,
'origin': (production.origin or '').split(':')[0] +':'+production.name,
'type': pick_type,
'move_type': 'one',
@@ -750,7 +777,7 @@ class mrp_production(osv.osv):
'state': 'waiting',
'company_id': production.company_id.id,
}
- res_final_id = self.pool.get('stock.move').create(cr, uid, data)
+ res_final_id = move_obj.create(cr, uid, data)
self.write(cr, uid, [production.id], {'move_created_ids': [(6, 0, [res_final_id])]})
moves = []
@@ -758,7 +785,7 @@ class mrp_production(osv.osv):
move_id=False
newdate = production.date_planned
if line.product_id.type in ('product', 'consu'):
- res_dest_id = self.pool.get('stock.move').create(cr, uid, {
+ res_dest_id = move_obj.create(cr, uid, {
'name':'PROD:'+production.name,
'date_planned': production.date_planned,
'product_id': line.product_id.id,
@@ -773,7 +800,7 @@ class mrp_production(osv.osv):
'company_id': production.company_id.id,
})
moves.append(res_dest_id)
- move_id = self.pool.get('stock.move').create(cr, uid, {
+ move_id = move_obj.create(cr, uid, {
'name':'PROD:'+production.name,
'picking_id':picking_id,
'product_id': line.product_id.id,
@@ -788,7 +815,7 @@ class mrp_production(osv.osv):
'state': 'waiting',
'company_id': production.company_id.id,
})
- proc_id = self.pool.get('mrp.procurement').create(cr, uid, {
+ proc_id = proc_obj.create(cr, uid, {
'name': (production.origin or '').split(':')[0] + ':' + production.name,
'origin': (production.origin or '').split(':')[0] + ':' + production.name,
'date_planned': newdate,
@@ -1038,6 +1065,7 @@ class mrp_procurement(osv.osv):
def check_buy(self, cr, uid, ids):
user = self.pool.get('res.users').browse(cr, uid, uid)
+ partner_obj = self.pool.get('res.partner')
for procurement in self.browse(cr, uid, ids):
if procurement.product_id.product_tmpl_id.supply_method<>'buy':
return False
@@ -1048,7 +1076,7 @@ class mrp_procurement(osv.osv):
if user.company_id and user.company_id.partner_id:
if partner.id == user.company_id.partner_id.id:
return False
- address_id = self.pool.get('res.partner').address_get(cr, uid, [partner.id], ['delivery'])['delivery']
+ address_id = partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']
if not address_id:
cr.execute('update mrp_procurement set message=%s where id=%s', (_('No address defined for the supplier'), procurement.id))
return False
@@ -1061,6 +1089,7 @@ class mrp_procurement(osv.osv):
return False
def action_confirm(self, cr, uid, ids, context={}):
+ move_obj = self.pool.get('stock.move')
for procurement in self.browse(cr, uid, ids):
if procurement.product_qty <= 0.00:
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Requisition Order(s), it should not be less than 1!'))
@@ -1069,7 +1098,7 @@ class mrp_procurement(osv.osv):
source = procurement.location_id.id
if procurement.procure_method=='make_to_order':
source = procurement.product_id.product_tmpl_id.property_stock_procurement.id
- id = self.pool.get('stock.move').create(cr, uid, {
+ id = move_obj.create(cr, uid, {
'name': 'PROC:'+procurement.name,
'location_id': source,
'location_dest_id': procurement.location_id.id,
@@ -1084,7 +1113,7 @@ class mrp_procurement(osv.osv):
else:
# TODO: check this
if procurement.procure_method=='make_to_stock' and procurement.move_id.state in ('waiting',):
- id = self.pool.get('stock.move').write(cr, uid, [procurement.move_id.id], {'state':'confirmed'})
+ id = move_obj.write(cr, uid, [procurement.move_id.id], {'state':'confirmed'})
self.write(cr, uid, ids, {'state':'confirmed','message':''})
return True
@@ -1112,14 +1141,31 @@ class mrp_procurement(osv.osv):
return True
def action_produce_assign_product(self, cr, uid, ids, context={}):
- produce_id = False
+ """
+ This is action which call from workflow to assign production order to procuments
+ @return : True
+ """
+ res = self.make_mo(cr, uid, ids, context=context)
+ res = res.values()
+ return len(res) and res[0] or 0 #TO CHECK: why workflow is generated error if return not integer value
+
+ def make_mo(self, cr, uid, ids, context={}):
+ """
+ Make Manufecturing(production) order from procurement
+
+ @return : New created Production Orders procurement wise
+ """
+ res = {}
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
+ production_obj = self.pool.get('mrp.production')
+ move_obj = self.pool.get('stock.move')
+ wf_service = netsvc.LocalService("workflow")
for procurement in self.browse(cr, uid, ids):
res_id = procurement.move_id.id
loc_id = procurement.location_id.id
newdate = DateTime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S') - DateTime.RelativeDateTime(days=procurement.product_id.product_tmpl_id.produce_delay or 0.0)
newdate = newdate - DateTime.RelativeDateTime(days=company.manufacturing_lead)
- produce_id = self.pool.get('mrp.production').create(cr, uid, {
+ produce_id = production_obj.create(cr, uid, {
'origin': procurement.origin,
'product_id': procurement.product_id.id,
'product_qty': procurement.product_qty,
@@ -1133,32 +1179,52 @@ class mrp_procurement(osv.osv):
'move_prod_id': res_id,
'company_id': procurement.company_id.id,
})
+ res[procurement.id] = produce_id
self.write(cr, uid, [procurement.id], {'state':'running'})
- bom_result = self.pool.get('mrp.production').action_compute(cr, uid,
+ bom_result = production_obj.action_compute(cr, uid,
[produce_id], properties=[x.id for x in procurement.property_ids])
- wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production', produce_id, 'button_confirm', cr)
- self.pool.get('stock.move').write(cr, uid, [res_id],
+ move_obj.write(cr, uid, [res_id],
{'location_id':procurement.location_id.id})
- return produce_id
-
+ return res
+
def action_po_assign(self, cr, uid, ids, context={}):
- purchase_id = False
+ """
+ This is action which call from workflow to assign purchase order to procuments
+ @return : True
+ """
+ res = self.make_po(cr, uid, ids, context=context)
+ res = res.values()
+ return len(res) and res[0] or 0 #TO CHECK: why workflow is generated error if return not integer value
+
+ def make_po(self, cr, uid, ids, context={}):
+ """
+ Make purchase order from procurement
+
+ @return : New created Purchase Orders procurement wise
+ """
+ res = {}
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
+ partner_obj = self.pool.get('res.partner')
+ uom_obj = self.pool.get('product.uom')
+ pricelist_obj = self.pool.get('product.pricelist')
+ prod_obj = self.pool.get('product.product')
+ acc_pos_obj = self.pool.get('account.fiscal.position')
+ po_obj = self.pool.get('purchase.order')
for procurement in self.browse(cr, uid, ids):
res_id = procurement.move_id.id
partner = procurement.product_id.seller_ids[0].name
partner_id = partner.id
- address_id = self.pool.get('res.partner').address_get(cr, uid, [partner_id], ['delivery'])['delivery']
+ address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery']
pricelist_id = partner.property_product_pricelist_purchase.id
uom_id = procurement.product_id.uom_po_id.id
- qty = self.pool.get('product.uom')._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, uom_id)
+ qty = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, uom_id)
if procurement.product_id.seller_ids[0].qty:
qty=max(qty,procurement.product_id.seller_ids[0].qty)
- price = self.pool.get('product.pricelist').price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, False, {'uom': uom_id})[pricelist_id]
+ price = pricelist_obj.price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, False, {'uom': uom_id})[pricelist_id]
newdate = DateTime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S')
newdate = newdate - DateTime.RelativeDateTime(days=company.po_lead)
@@ -1167,7 +1233,7 @@ class mrp_procurement(osv.osv):
#Passing partner_id to context for purchase order line integrity of Line name
context.update({'lang':partner.lang, 'partner_id':partner_id})
- product=self.pool.get('product.product').browse(cr,uid,procurement.product_id.id,context=context)
+ product = prod_obj.browse(cr,uid,procurement.product_id.id,context=context)
line = {
'name': product.partner_ref,
@@ -1181,11 +1247,11 @@ class mrp_procurement(osv.osv):
}
taxes_ids = procurement.product_id.product_tmpl_id.supplier_taxes_id
- taxes = self.pool.get('account.fiscal.position').map_tax(cr, uid, partner.property_account_position, taxes_ids)
+ taxes = acc_pos_obj.map_tax(cr, uid, partner.property_account_position, taxes_ids)
line.update({
'taxes_id':[(6,0,taxes)]
})
- purchase_id = self.pool.get('purchase.order').create(cr, uid, {
+ purchase_id = po_obj.create(cr, uid, {
'origin': procurement.origin,
'partner_id': partner_id,
'partner_address_id': address_id,
@@ -1195,12 +1261,14 @@ class mrp_procurement(osv.osv):
'company_id': procurement.company_id.id,
'fiscal_position': partner.property_account_position and partner.property_account_position.id or False
})
+ res[procurement.id] = purchase_id
self.write(cr, uid, [procurement.id], {'state':'running', 'purchase_id':purchase_id})
- return purchase_id
+ return res
def action_cancel(self, cr, uid, ids):
todo = []
todo2 = []
+ move_obj = self.pool.get('stock.move')
for proc in self.browse(cr, uid, ids):
if proc.close_move:
if proc.move_id.state not in ('done','cancel'):
@@ -1209,9 +1277,9 @@ class mrp_procurement(osv.osv):
if proc.move_id and proc.move_id.state=='waiting':
todo.append(proc.move_id.id)
if len(todo2):
- self.pool.get('stock.move').action_cancel(cr, uid, todo2)
+ move_obj.action_cancel(cr, uid, todo2)
if len(todo):
- self.pool.get('stock.move').write(cr, uid, todo, {'state':'assigned'})
+ move_obj.write(cr, uid, todo, {'state':'assigned'})
self.write(cr, uid, ids, {'state':'cancel'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
@@ -1234,10 +1302,11 @@ class mrp_procurement(osv.osv):
return res
def action_done(self, cr, uid, ids):
+ move_obj = self.pool.get('stock.move')
for procurement in self.browse(cr, uid, ids):
if procurement.move_id:
if procurement.close_move and (procurement.move_id.state <> 'done'):
- self.pool.get('stock.move').action_done(cr, uid, [procurement.move_id.id])
+ move_obj.action_done(cr, uid, [procurement.move_id.id])
res = self.write(cr, uid, ids, {'state':'done', 'date_close':time.strftime('%Y-%m-%d')})
wf_service = netsvc.LocalService("workflow")
for id in ids:
diff --git a/addons/mrp/mrp_demo.xml b/addons/mrp/mrp_demo.xml
index f0c1cfa5483..8962eb6e1c8 100644
--- a/addons/mrp/mrp_demo.xml
+++ b/addons/mrp/mrp_demo.xml
@@ -165,6 +165,7 @@
Regular processor config
+ 11.0
@@ -174,6 +175,7 @@
Assembly Basic+ PC
+ 51.0
@@ -181,18 +183,21 @@
Assembly Medium PC
+ 81.0Assembly Customizable PC
+ 111.0HDD on demand
+ 141.0phantom
@@ -200,6 +205,7 @@
RAM on demand
+ 181.0phantom
@@ -207,6 +213,7 @@
HDD on demand
+ 211.0phantom
@@ -214,6 +221,7 @@
HDD on demand
+ 251.0phantom
@@ -221,6 +229,7 @@
HDD Seagate
+ 261.0normal
@@ -228,6 +237,7 @@
Assembly Basic PC
+ 291.0
@@ -236,12 +246,14 @@
Complete PC with peripherals
+ 331.0RAM on demand
+ 361.0phantom
@@ -250,6 +262,7 @@
High Speed Processor + main board on demand
+ 381.0
@@ -258,6 +271,7 @@
KITKit Mouse
+ 401.0normal
@@ -266,6 +280,7 @@
Keyboard
+ 421.0
@@ -273,6 +288,7 @@
Mouse
+ 441.0
@@ -280,6 +296,7 @@
Moon PC
+ 451.0
@@ -287,6 +304,7 @@
Mainboard ASUStek A7N8X
+ 491.0
@@ -294,6 +312,7 @@
Processor AMD Athlon 2200+
+ 511.0
@@ -301,6 +320,7 @@
Regular Case Fan
+ 541.0
@@ -308,6 +328,7 @@
DDR 256MB PC333
+ 571.0
@@ -315,6 +336,7 @@
DDR 512MB PC400
+ 591.0
@@ -322,6 +344,7 @@
DDR 1024MB PC400
+ 611.0
@@ -329,6 +352,7 @@
HDD Seagate 7200.8 80GB
+ 641.0
@@ -336,6 +360,7 @@
HDD Seagate 7200.8 120GB
+ 661.0normal
@@ -344,6 +369,7 @@
RAM on demand
+ 691.0
@@ -351,6 +377,7 @@
HDD on demand
+ 731.0
@@ -358,6 +385,7 @@
ATX middle-size case
+ 761.0normal
@@ -366,6 +394,7 @@
Processor on demand
+ 791.0normal
@@ -374,6 +403,7 @@
ATX Middle-size case
+ 811.0normal
@@ -382,6 +412,7 @@
HDD Seagate 7200.8 80GB
+ 831.0normal
@@ -390,6 +421,7 @@
High speed processor config
+ 851.0normal
@@ -398,6 +430,7 @@
HDD Seagate 7200.8 120GB
+ 871.0normal
@@ -406,6 +439,7 @@
Regular processor config
+ 891.0normal
@@ -414,6 +448,7 @@
ATX middle-size case
+ 921.0normal
@@ -422,6 +457,7 @@
HDD Seagate 7200.8 120GB
+ 951.0normal
@@ -430,6 +466,7 @@
processor
+ 981.0normal
@@ -438,6 +475,7 @@
mainboard
+ 1011.0normal
@@ -446,6 +484,7 @@
fan
+ 1051.0normal
@@ -454,6 +493,7 @@
RAM
+ 1081.0normal
@@ -462,6 +502,7 @@
Regular processor config
+ 1111.0normal
@@ -470,6 +511,7 @@
HDD Seagate 7200.8 80GB
+ 1131.0normal
@@ -478,6 +520,7 @@
ATX Middle-size case
+ 1151.0normal
@@ -487,6 +530,7 @@
KIT
+ 118Kit Keyboard + Mouse1.0
@@ -496,6 +540,7 @@
Mouse
+ 1211.0
@@ -503,6 +548,7 @@
Keyboard
+ 1231.0
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index e3071185725..15729a8c985 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -5,10 +5,10 @@
-
+
-
@@ -242,19 +242,21 @@
@@ -286,6 +291,7 @@
child_complete_ids
+
@@ -438,15 +444,7 @@
-
-
-
+ mrp.production.form
@@ -463,7 +461,7 @@
@@ -489,6 +487,7 @@
+
diff --git a/addons/mrp/mrp_wizard.xml b/addons/mrp/mrp_wizard.xml
index 74001494c77..f7bfdcd7395 100644
--- a/addons/mrp/mrp_wizard.xml
+++ b/addons/mrp/mrp_wizard.xml
@@ -1,35 +1,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Product Cost Structure
-
-
-
-
-
diff --git a/addons/mrp/product.py b/addons/mrp/product.py
new file mode 100644
index 00000000000..375bd0c9f46
--- /dev/null
+++ b/addons/mrp/product.py
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+
+
+class product_product(osv.osv):
+ _inherit = "product.product"
+
+ def do_change_standard_price(self, cr, uid, ids, datas, context={}):
+ #TODO : TO Check
+ res = super(product_product, self).do_change_standard_price(cr, uid, ids, datas, context=context)
+ bom_obj = self.pool.get('mrp.bom')
+ product_uom_obj = self.pool.get('product.uom')
+
+ def _compute_price(bom):
+ price = 0
+ if bom.bom_lines:
+ for sbom in bom.bom_lines:
+ price += _compute_price(sbom) * sbom.product_qty
+ else:
+
+ no_child_bom = bom_obj.search(cr, uid, [('product_id', '=', bom.product_id.id), ('bom_id', '=', False)])
+ if no_child_bom and bom.id not in no_child_bom:
+ other_bom = bom_obj.browse(cr, uid, no_child_bom)[0]
+ if not other_bom.product_id.calculate_price:
+ price += _compute_price(other_bom) * other_bom.product_qty
+ else:
+ price += other_bom.product_id.standard_price
+ else:
+ price += bom.product_id.standard_price
+
+ if bom.routing_id:
+ for wline in bom.routing_id.workcenter_lines:
+ wc = wline.workcenter_id
+ cycle = wline.cycle_nbr
+ hour = (wc.time_start + wc.time_stop + cycle * wc.time_cycle) * (wc.time_efficiency or 1.0)
+ price += wc.costs_cycle * cycle + wc.costs_hour * hour
+ price = product_uom_obj._compute_price(cr, uid, bom.product_uom.id, price, bom.product_id.uom_id.id)
+ if bom.bom_lines:
+ self.write(cr, uid, [bom.product_id.id], {'standard_price' : price/bom.product_qty})
+ if bom.product_uom.id != bom.product_id.uom_id.id:
+ price = product_uom_obj._compute_price(cr, uid, bom.product_uom.id, price, bom.product_id.uom_id.id)
+ return price
+
+
+ bom_ids = bom_obj.search(cr, uid, [('product_id', 'in', ids)])
+ for bom in bom_obj.browse(cr, uid, bom_ids):
+ _compute_price(bom)
+ return res
+product_product()
diff --git a/addons/mrp/report/workcenter_load.py b/addons/mrp/report/workcenter_load.py
index a65a51d03f7..248e9e5707e 100644
--- a/addons/mrp/report/workcenter_load.py
+++ b/addons/mrp/report/workcenter_load.py
@@ -134,9 +134,9 @@ class report_custom(report_int):
# select workcenters
cr.execute(
- "SELECT id, name FROM mrp_workcenter " \
- "WHERE id=ANY(%s)" \
- "ORDER BY mrp_workcenter.id" ,(ids,))
+ "SELECT mw.id, rs.name FROM mrp_workcenter mw, resource_resource rs " \
+ "WHERE mw.id=ANY(%s) and mw.resource_id=rs.id " \
+ "ORDER BY mw.id" ,(ids,))
workcenters = cr.dictfetchall()
data = []
@@ -144,13 +144,13 @@ class report_custom(report_int):
vals = []
for workcenter in workcenters:
cr.execute("SELECT SUM(mrp_production_workcenter_line.hour) AS hours, SUM(mrp_production_workcenter_line.cycle) AS cycles, \
- mrp_workcenter.name AS name, mrp_workcenter.id AS id \
- FROM mrp_production_workcenter_line, mrp_production, mrp_workcenter \
+ resource_resource.name AS name, mrp_workcenter.id AS id \
+ FROM mrp_production_workcenter_line, mrp_production, mrp_workcenter, resource_resource \
WHERE (mrp_production_workcenter_line.production_id=mrp_production.id) \
AND (mrp_production_workcenter_line.workcenter_id=mrp_workcenter.id) \
AND (mrp_workcenter.id=%s) \
AND (mrp_production.date_planned BETWEEN %s AND %s) \
- GROUP BY mrp_production_workcenter_line.workcenter_id, mrp_workcenter.name, mrp_workcenter.id \
+ GROUP BY mrp_production_workcenter_line.workcenter_id, resource_resource.name, mrp_workcenter.id \
ORDER BY mrp_workcenter.id", (workcenter['id'], dates[date]['start'] + ' 00:00:00', dates[date]['stop'] + ' 23:59:59'))
res = cr.dictfetchall()
if not res:
diff --git a/addons/mrp/schedulers.py b/addons/mrp/schedulers.py
index fb9b1edf6a8..097f81f7529 100644
--- a/addons/mrp/schedulers.py
+++ b/addons/mrp/schedulers.py
@@ -195,7 +195,7 @@ class mrp_procurement(osv.osv):
qty = max(op.product_min_qty, op.product_max_qty)-prods
reste = qty % op.qty_multiple
if reste > 0:
- qty += op.qty_multiple - reste
+ qty += op.qty_multiple - reste
newdate = DateTime.now() + DateTime.RelativeDateTime(
days=int(op.product_id.seller_delay))
if op.product_id.supply_method == 'buy':
diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv
index 9913071038c..48f27679435 100644
--- a/addons/mrp/security/ir.model.access.csv
+++ b/addons/mrp/security/ir.model.access.csv
@@ -32,6 +32,12 @@
"access_mrp_production_stock_worker","mrp.production stock_worker","model_mrp_production","stock.group_stock_user",1,0,0,0
"access_mrp_installer","mrp.installer","model_mrp_installer","mrp.group_mrp_user",1,0,0,0
"access_mrp_product_produce","mrp.product.produce","model_mrp_product_produce","mrp.group_mrp_user",1,0,0,0
+"access_mrp_make_procurement","make.procurement","model_make_procurement","mrp.group_mrp_user",1,0,0,0
+"access_mrp_change_production_qty","change.production.qty","model_change_production_qty","mrp.group_mrp_user",1,0,0,0
+"access_mrp_procurement_compute_all","mrp.procurement.compute.all","model_mrp_procurement_compute_all","mrp.group_mrp_user",1,0,0,0
+"access_mrp_procurement_orderpoint_compute","mrp.procurement.orderpoint.compute","model_mrp_procurement_orderpoint_compute","mrp.group_mrp_user",1,0,0,0
"access_mrp_production_order","mrp.production.order","model_mrp_production_order","mrp.group_mrp_user",1,0,0,0
"access_report_workcenter_load","report.workcenter.load","model_report_workcenter_load","mrp.group_mrp_manager",1,0,0,0
"access_report_mrp_inout","report.mrp.inout","model_report_mrp_inout","mrp.group_mrp_manager",1,0,0,0
+"access_mrp_product_price","mrp.product_price","model_mrp_product_price","mrp.group_mrp_manager",1,0,0,0
+"access_mrp_workcenter_load","mrp.workcenter.load","model_mrp_workcenter_load","mrp.group_mrp_manager",1,0,0,0
diff --git a/addons/mrp/wizard/__init__.py b/addons/mrp/wizard/__init__.py
index 240f25daa9d..043cdc94465 100644
--- a/addons/mrp/wizard/__init__.py
+++ b/addons/mrp/wizard/__init__.py
@@ -19,14 +19,15 @@
#
##############################################################################
-import wizard_orderpoint_procurement
+import mrp_product_produce
+import orderpoint_procurement
import wizard_procurement
-import wizard_schedulers_all
-import wizard_price
-import wizard_workcenter_load
+import schedulers_all
+import mrp_price
+import mrp_workcenter_load
import wizard_track_prod
-import wizard_change_production_qty
-import make_procurement
+import change_production_qty
+import make_procurement_product
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/wizard/change_production_qty.py b/addons/mrp/wizard/change_production_qty.py
new file mode 100644
index 00000000000..fbbbc356c7c
--- /dev/null
+++ b/addons/mrp/wizard/change_production_qty.py
@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import time
+import ir
+from osv.osv import except_osv
+from osv import fields, osv
+import netsvc
+from tools.translate import _
+
+class change_production_qty(osv.osv_memory):
+ _name = 'change.production.qty'
+ _description = 'Change Quantity of Products'
+
+ _columns = {
+ 'product_qty': fields.float('Product Qty', required=True),
+ }
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ res = super(change_production_qty, self).default_get(cr, uid, fields, context=context)
+ prod_obj = self.pool.get('mrp.production')
+ prod = prod_obj.browse(cr, uid, context.get('active_id'))
+ if 'product_qty' in fields:
+ res.update({'product_qty': prod.product_qty})
+ return res
+
+ def change_prod_qty(self, cr, uid, ids, context):
+ """
+ Changes the Quantity of Product.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ record_id = context and context.get('active_id',False)
+ assert record_id, _('Active Id is not found')
+ prod_obj = self.pool.get('mrp.production')
+ product_lines_obj = self.pool.get('mrp.production.product.line')
+ bom_obj = self.pool.get('mrp.bom')
+ for wiz_qty in self.browse(cr, uid, ids):
+ prod = prod_obj.browse(cr, uid,record_id)
+ prod_obj.write(cr, uid,prod.id, {'product_qty': wiz_qty.product_qty})
+ prod_obj.action_compute(cr, uid, [prod.id])
+
+ move_lines_obj = self.pool.get('stock.move')
+ for move in prod.move_lines:
+ bom_point = prod.bom_id
+ bom_id = prod.bom_id.id
+ if not bom_point:
+ bom_id = bom_obj._bom_find(cr, uid, prod.product_id.id, prod.product_uom.id)
+ if not bom_id:
+ raise osv.except_osv(_('Error'), _("Couldn't find bill of material for product"))
+ prod_obj.write(cr, uid, [prod.id], {'bom_id': bom_id})
+ bom_point = sbom_obj.browse(cr, uid, [bom_id])[0]
+
+ if not bom_id:
+ raise osv.except_osv(_('Error'), _("Couldn't find bill of material for product"))
+
+ factor = prod.product_qty * prod.product_uom.factor / bom_point.product_uom.factor
+ res = bom_obj._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, [])
+ for r in res[0]:
+ if r['product_id']== move.product_id.id:
+ move_lines_obj.write(cr, uid,move.id, {'product_qty' : r['product_qty']})
+ for m in prod.move_created_ids:
+ move_lines_obj.write(cr, uid,m.id, {'product_qty': wiz_qty.product_qty})
+
+ return {}
+
+change_production_qty()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/wizard/change_production_qty_view.xml b/addons/mrp/wizard/change_production_qty_view.xml
new file mode 100644
index 00000000000..34520a71721
--- /dev/null
+++ b/addons/mrp/wizard/change_production_qty_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+ Change Product Qty
+ change.production.qty
+ form
+
+
+
+
+
+
+ Change Product Qty
+ ir.actions.act_window
+ change.production.qty
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/mrp/wizard/make_procurement.py b/addons/mrp/wizard/make_procurement.py
deleted file mode 100644
index 0cf12107181..00000000000
--- a/addons/mrp/wizard/make_procurement.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-import netsvc
-
-import time
-
-def _get_default(obj, cr, uid, data, context=None):
- pool = pooler.get_pool(cr.dbname)
- product = pool.get('product.product').browse(cr, uid, data['id'], context)
- return {'product_id': product.id, 'uom_id':product.uom_id.id, 'qty':1.0}
-
-def make_procurement(obj, cr, uid, data, context=None):
- '''Create procurement'''
- pool = pooler.get_pool(cr.dbname)
- wh = pool.get('stock.warehouse').browse(cr, uid, data['form']['warehouse_id'], context)
- user = pool.get('res.users').browse(cr, uid, uid, context)
- procure_id = pool.get('mrp.procurement').create(cr, uid, {
- 'name':'INT:'+str(user.login),
- 'date_planned':data['form']['date_planned'],
- 'product_id':data['form']['product_id'],
- 'product_qty':data['form']['qty'],
- 'product_uom':data['form']['uom_id'],
- 'location_id':wh.lot_stock_id.id,
- 'procure_method':'make_to_order',
- }, context=context)
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'mrp.procurement', procure_id, 'button_confirm', cr)
- return {}
-
-
-class MakeProcurement(wizard.interface):
- '''Wizard that create a procurement from a product form'''
-
- done_form = """
-"""
- procurement_form = """
-"""
- procurement_fields = {
- 'qty': {'string': 'Quantity', 'type': 'float', 'digits':(16,2), 'required': True},
- 'product_id': {'string': 'product', 'type': 'many2one', 'relation': 'product.product', 'required': True, 'readonly':1},
- 'uom_id': {'string': 'Unit of Measure', 'type': 'many2one', 'relation': 'product.uom', 'required':True},
- 'warehouse_id': {'string': 'Warehouse', 'type': 'many2one', 'relation':'stock.warehouse', 'required':True},
- 'date_planned': {'string': 'Planned Date', 'type': 'date', 'required':True, 'default': lambda *args: time.strftime('%Y-%m-%d')}
- }
-
- states = {
- 'init': {
- 'actions': [_get_default],
- 'result': {'type': 'form', 'arch': procurement_form, 'fields': procurement_fields,
- 'state': [
- ('end', 'Cancel'),
- ('create', 'Ask New Products')
- ]
- }
- },
- 'done': {
- 'actions': [],
- 'result': {'type': 'form', 'arch': done_form, 'fields': {},
- 'state': [
- ('end', 'Close'),
- ]
- }
- },
- 'create': {
- 'actions': [],
- 'result': {'type': 'action', 'action': make_procurement, 'state': 'done'}
- }
- }
-
-MakeProcurement('product.product.procurement')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp/wizard/make_procurement_product.py b/addons/mrp/wizard/make_procurement_product.py
new file mode 100644
index 00000000000..a549d9f24b2
--- /dev/null
+++ b/addons/mrp/wizard/make_procurement_product.py
@@ -0,0 +1,134 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+import time
+
+from osv import fields, osv
+
+class make_procurement(osv.osv_memory):
+ _name = 'make.procurement'
+ _description = 'Make Procurements'
+
+ def onchange_product_id(self, cr, uid, ids, prod_id):
+ """
+ On Change of Product ID getting the value of related UoM.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param prod_id: Changed ID of Product
+
+ @return: A dictionary which gives the UoM of the changed Product
+
+ """
+ product = self.pool.get('product.product').browse(cr, uid, prod_id)
+ return {'value': {'uom_id': product.uom_id.id}}
+
+ _columns = {
+ 'qty': fields.float('Quantity', digits=(16,2), required=True),
+ 'product_id': fields.many2one('product.product', 'Product', required=True, readonly=1),
+ 'uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True),
+ 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True),
+ 'date_planned': fields.date('Planned Date', required=True),
+ }
+
+ _defaults = {
+ 'date_planned': lambda *args: time.strftime('%Y-%m-%d'),
+ 'qty': lambda *args: 1.0,
+ }
+
+ def make_procurement(self, cr, uid, ids, context=None):
+ """
+ Creates procurement order for selected product.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return: A dictionary which loads Procurement form view.
+
+ """
+ user = self.pool.get('res.users').browse(cr, uid, uid, context).login
+ wh_obj = self.pool.get('stock.warehouse')
+ procurement_obj = self.pool.get('mrp.procurement')
+ wf_service = netsvc.LocalService("workflow")
+ data_obj = self.pool.get('ir.model.data')
+
+ for proc in self.browse(cr, uid, ids):
+ wh = wh_obj.browse(cr, uid, proc.warehouse_id.id, context)
+ procure_id = procurement_obj.create(cr, uid, {
+ 'name':'INT: '+str(user),
+ 'date_planned': proc.date_planned,
+ 'product_id': proc.product_id.id,
+ 'product_qty': proc.qty,
+ 'product_uom': proc.uom_id.id,
+ 'location_id': wh.lot_stock_id.id,
+ 'procure_method':'make_to_order',
+ })
+
+ wf_service.trg_validate(uid, 'mrp.procurement', procure_id, 'button_confirm', cr)
+
+
+ id2 = data_obj._get_id(cr, uid, 'mrp', 'mrp_procurement_tree_view')
+ id3 = data_obj._get_id(cr, uid, 'mrp', 'mrp_procurement_form_view')
+
+ if id2:
+ id2 = data_obj.browse(cr, uid, id2, context=context).res_id
+ if id3:
+ id3 = data_obj.browse(cr, uid, id3, context=context).res_id
+
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'mrp.procurement',
+ 'res_id' : procure_id,
+ 'views': [(id3,'form'),(id2,'tree')],
+ 'type': 'ir.actions.act_window',
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ record_id = context and context.get('active_id', False) or False
+
+ res = super(make_procurement, self).default_get(cr, uid, fields, context=context)
+ product_id = self.pool.get('product.product').browse(cr, uid, record_id, context=context).id
+ if 'product_id' in fields:
+ res.update({'product_id':product_id})
+ return res
+
+make_procurement()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/mrp/wizard/make_procurement_view.xml b/addons/mrp/wizard/make_procurement_view.xml
new file mode 100644
index 00000000000..08c4b2cabf5
--- /dev/null
+++ b/addons/mrp/wizard/make_procurement_view.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ Requisition Request
+ make.procurement
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/wizard/wizard_workcenter_load.py b/addons/mrp/wizard/mrp_price.py
similarity index 51%
rename from addons/mrp/wizard/wizard_workcenter_load.py
rename to addons/mrp/wizard/mrp_price.py
index 6465622c421..5d3c16cbaa5 100644
--- a/addons/mrp/wizard/wizard_workcenter_load.py
+++ b/addons/mrp/wizard/mrp_price.py
@@ -19,34 +19,37 @@
#
##############################################################################
-import wizard
+from osv import fields, osv
-_time_unit_form = '''
-'''
-
-_time_unit_fields = {
- 'time_unit': {'string':'Type of period', 'type':'selection', 'selection':[('day', 'Day by day'),('week', 'Per week'),('month', 'Per month')], 'required':True},
- 'measure_unit': {'string':'Amount measuring unit', 'type':'selection', 'selection':[('hours', 'Amount in hours'),('cycles', 'Amount in cycles')], 'required':True},
-}
-
-class wizard_mrp_workcenter(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'form', 'arch':_time_unit_form, 'fields':_time_unit_fields, 'state':[('end','Cancel'),('report','Print') ]},
- },
- 'report': {
- 'actions': [],
- 'result': {'type':'print', 'report':'mrp.workcenter.load', 'state':'end'},
- },
+class mrp_price(osv.osv_memory):
+ _name = 'mrp.product_price'
+ _description = 'Product Price'
+ _columns = {
+ 'number': fields.integer('Number of products to produce', required=True),
}
+
+ def print_report(self, cr, uid, ids, context=None):
+ """
+ To print the report of Product cost structure
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+
+ @return : Report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = self.read(cr, uid, ids, ['number'])
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'product.price',
+ 'datas' : datas,
+ }
-wizard_mrp_workcenter('mrp.workcenter.load')
-
+mrp_price()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp/wizard/mrp_price_view.xml b/addons/mrp/wizard/mrp_price_view.xml
new file mode 100644
index 00000000000..e2e294c5739
--- /dev/null
+++ b/addons/mrp/wizard/mrp_price_view.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ Product Cost Structure
+ mrp.product_price
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/mrp_wizard.py b/addons/mrp/wizard/mrp_product_produce.py
similarity index 74%
rename from addons/mrp/mrp_wizard.py
rename to addons/mrp/wizard/mrp_product_produce.py
index 40d9f2ed1ab..7c77dfdee94 100644
--- a/addons/mrp/mrp_wizard.py
+++ b/addons/mrp/wizard/mrp_product_produce.py
@@ -34,6 +34,16 @@ class mrp_product_produce(osv.osv_memory):
}
def _get_product_qty(self, cr, uid, context):
+ """
+ To obtain product quantity
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return: quantity
+
+ """
prod = self.pool.get('mrp.production').browse(cr, uid,
context['active_id'], context=context)
done = 0.0
@@ -47,11 +57,22 @@ class mrp_product_produce(osv.osv_memory):
}
def do_produce(self, cr, uid, ids, context={}):
+ """
+ To check the product type
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+ @return:
+
+ """
prod_obj = self.pool.get('mrp.production')
move_ids = context['active_ids']
for data in self.read(cr, uid, ids):
for move_id in move_ids:
- prod_obj.do_produce(cr, uid, move_id,
+ prod_obj.action_produce(cr, uid, move_id,
data['product_qty'], data['mode'], context=context)
return {}
diff --git a/addons/mrp/mrp_wizard_view.xml b/addons/mrp/wizard/mrp_product_produce_view.xml
similarity index 100%
rename from addons/mrp/mrp_wizard_view.xml
rename to addons/mrp/wizard/mrp_product_produce_view.xml
diff --git a/addons/mrp/wizard/mrp_workcenter_load.py b/addons/mrp/wizard/mrp_workcenter_load.py
new file mode 100644
index 00000000000..1b5478dcbeb
--- /dev/null
+++ b/addons/mrp/wizard/mrp_workcenter_load.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+
+class mrp_workcenter_load(osv.osv_memory):
+ _name = 'mrp.workcenter.load'
+ _description = 'Workcenter Load'
+
+ _columns = {
+ 'time_unit': fields.selection([('day', 'Day by day'),('week', 'Per week'),('month', 'Per month')],'Type of period', required=True),
+ 'measure_unit': fields.selection([('hours', 'Amount in hours'),('cycles', 'Amount in cycles')],'Amount measuring unit', required=True),
+ }
+
+ def print_report(self, cr, uid, ids, context=None):
+ """
+ To print the report of Work Center Load
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+
+ @return : Report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = self.read(cr, uid, ids, ['time_unit','measure_unit'])
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'mrp.workcenter.load',
+ 'datas' : datas,
+ }
+
+mrp_workcenter_load()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/wizard/mrp_workcenter_load_view.xml b/addons/mrp/wizard/mrp_workcenter_load_view.xml
new file mode 100644
index 00000000000..a6b7a4f987d
--- /dev/null
+++ b/addons/mrp/wizard/mrp_workcenter_load_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+ Work Center Load
+ mrp.workcenter.load
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/wizard/orderpoint_procurement.py b/addons/mrp/wizard/orderpoint_procurement.py
new file mode 100644
index 00000000000..731c3fca440
--- /dev/null
+++ b/addons/mrp/wizard/orderpoint_procurement.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+#
+# Order Point Method:
+# - Order if the virtual stock of today is bellow the min of the defined order point
+#
+
+import threading
+from osv import fields,osv
+
+class procurement_compute(osv.osv_memory):
+ _name = 'mrp.procurement.orderpoint.compute'
+ _description = 'Automatic Order Point'
+
+ _columns = {
+ 'automatic': fields.boolean('Automatic Orderpoint', help='If the stock of a product is under 0, it will act like an orderpoint'),
+ }
+
+ _defaults = {
+ 'automatic' : lambda *a: False,
+ }
+
+ def _procure_calculation_orderpoint(self, cr, uid, ids, context):
+ """
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+ """
+ proc_obj = self.pool.get('mrp.procurement')
+ for proc in self.browse(cr, uid, ids):
+ proc_obj._procure_orderpoint_confirm(cr, uid, automatic=proc.automatic, use_new_cursor=cr.dbname, context=context)
+
+ return {}
+
+ def procure_calculation(self, cr, uid, ids, context):
+ """
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ """
+ threaded_calculation = threading.Thread(target=self._procure_calculation_orderpoint, args=(cr, uid, ids, context))
+ threaded_calculation.start()
+ return {}
+
+procurement_compute()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/wizard/orderpoint_procurement_view.xml b/addons/mrp/wizard/orderpoint_procurement_view.xml
new file mode 100644
index 00000000000..c17bedae84f
--- /dev/null
+++ b/addons/mrp/wizard/orderpoint_procurement_view.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ Compute Stock Minimum Rules Only
+ mrp.procurement.orderpoint.compute
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/wizard/schedulers_all.py b/addons/mrp/wizard/schedulers_all.py
new file mode 100644
index 00000000000..62497564905
--- /dev/null
+++ b/addons/mrp/wizard/schedulers_all.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import threading
+
+from osv import osv, fields
+
+class procurement_compute(osv.osv_memory):
+ _name = 'mrp.procurement.compute.all'
+ _description = 'Compute all schedulers'
+
+ _columns = {
+ 'automatic': fields.boolean('Automatic orderpoint',help='Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products.'),
+ }
+
+ _defaults ={
+ 'automatic': lambda *a: False,
+ }
+
+ def _procure_calculation_all(self, cr, uid, ids, context):
+ """
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+ """
+ proc_obj = self.pool.get('mrp.procurement')
+ for proc in self.browse(cr, uid, ids):
+ proc_obj.run_scheduler(cr, uid, automatic=proc.automatic, use_new_cursor=cr.dbname,\
+ context=context)
+ return {}
+
+ def procure_calculation(self, cr, uid, ids, context):
+ """
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+ """
+ threaded_calculation = threading.Thread(target=self._procure_calculation_all, args=(cr, uid, ids, context))
+ threaded_calculation.start()
+ return {}
+
+procurement_compute()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/mrp/wizard/schedulers_all_view.xml b/addons/mrp/wizard/schedulers_all_view.xml
new file mode 100644
index 00000000000..b8b465e03e9
--- /dev/null
+++ b/addons/mrp/wizard/schedulers_all_view.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ Compute Schedulers
+ mrp.procurement.compute.all
+ form
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/wizard/wizard_change_production_qty.py b/addons/mrp/wizard/wizard_change_production_qty.py
deleted file mode 100644
index a9a8387acdf..00000000000
--- a/addons/mrp/wizard/wizard_change_production_qty.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import time
-import wizard
-import ir
-import pooler
-from osv.osv import except_osv
-from osv import fields,osv
-import netsvc
-from tools.translate import _
-
-
-form1 = '''
-'''
-
-form1_fields={
- 'product_qty': {'string': 'Product Qty', 'type':'float', 'required':True},
- }
-
-def _get_qty(self,cr,uid, data, state):
- prod_obj = pooler.get_pool(cr.dbname).get('mrp.production')
- prod = prod_obj.browse(cr, uid,data['ids'])[0]
- form1_fields['product_qty']['default']=prod.product_qty
- return {}
-def _get_states(self, cr, uid, data, context):
- prod_obj = pooler.get_pool(cr.dbname).get('mrp.production')
- prod = prod_obj.browse(cr, uid,data['ids'])[0]
- if prod.state in ('cancel', 'done'):
- raise wizard.except_wizard(_('Warning !'), _('The production is in "%s" state. You can not change the production quantity anymore') % (prod.state).upper() )
- return 'end'
- if prod.state in ('draft'):
- #raise wizard.except_wizard('Warning !', 'The production is in "%s" state. You can change the production quantity directly...!!!' % (prod.state).upper() )
- return 'end'
- else:
- return 'confirm'
-
-def _change_prod_qty(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- prod_obj = pool.get('mrp.production')
- prod = prod_obj.browse(cr, uid,data['ids'])[0]
- prod_obj.write(cr, uid,prod.id, {'product_qty' : data['form']['product_qty']})
- prod_obj.action_compute(cr, uid, [prod.id])
-
- move_lines_obj = pool.get('stock.move')
- for move in prod.move_lines:
- bom_point = prod.bom_id
- bom_id = prod.bom_id.id
- if not bom_point:
- bom_id = pool.get('mrp.bom')._bom_find(cr, uid, prod.product_id.id, prod.product_uom.id)
- if not bom_id:
- raise osv.except_osv(_('Error'), _("Couldn't find bill of material for product"))
- self.write(cr, uid, [prod.id], {'bom_id': bom_id})
- bom_point = pool.get('mrp.bom').browse(cr, uid, [bom_id])[0]
-
- if not bom_id:
- raise osv.except_osv(_('Error'), _("Couldn't find bill of material for product"))
-
- factor = prod.product_qty * prod.product_uom.factor / bom_point.product_uom.factor
- res = pool.get('mrp.bom')._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, [])
- for r in res[0]:
- if r['product_id']== move.product_id.id:
- move_lines_obj.write(cr, uid,move.id, {'product_qty' : r['product_qty']})
-
- product_lines_obj = pool.get('mrp.production.product.line')
-
- for m in prod.move_created_ids:
- move_lines_obj.write(cr, uid,m.id, {'product_qty' : data['form']['product_qty']})
-
- return {}
-
-class change_production_qty(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'choice', 'next_state' : _get_states}
- },
-
- 'confirm' : {
- 'actions' : [_get_qty],
- 'result': {'type': 'form', 'arch':form1, 'fields':form1_fields, 'state':[('end','Cancel'),('validate','Validate')]}
- },
-
- 'validate': {
- 'actions': [],
- 'result': {'type':'action', 'action':_change_prod_qty, 'state':'end'}
- },
-
- 'end' : {
- 'actions' : [],
- 'result': {'type': 'state', 'state': 'end'},
- },
- }
-
-change_production_qty('change_production_qty')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/wizard/wizard_orderpoint_procurement.py b/addons/mrp/wizard/wizard_orderpoint_procurement.py
deleted file mode 100644
index a4fa57bb9a8..00000000000
--- a/addons/mrp/wizard/wizard_orderpoint_procurement.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-#
-# Order Point Method:
-# - Order if the virtual stock of today is bellow the min of the defined order point
-#
-
-import wizard
-import threading
-import pooler
-
-parameter_form = '''
-'''
-
-parameter_fields = {
- 'automatic': {'string': 'Automatic orderpoint', 'type': 'boolean', 'help': 'If the stock of a product is under 0, it will act like an orderpoint', 'default': lambda *a: False},
-}
-
-def _procure_calculation_orderpoint(self, db_name, uid, data, context):
- db, pool = pooler.get_db_and_pool(db_name)
- cr = db.cursor()
- try:
- proc_obj = pool.get('mrp.procurement')
- automatic = data['form']['automatic']
- proc_obj._procure_orderpoint_confirm(cr, uid, automatic=automatic,\
- use_new_cursor=cr.dbname, context=context)
- finally:
- cr.close()
- return {}
-
-def _procure_calculation(self, cr, uid, data, context):
- threaded_calculation = threading.Thread(target=_procure_calculation_orderpoint, args=(self, cr.dbname, uid, data, context))
- threaded_calculation.start()
- return {}
-
-class procurement_compute(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Stock')]}
- },
- 'compute': {
- 'actions': [_procure_calculation],
- 'result': {'type': 'state', 'state':'end'}
- },
- }
-procurement_compute('mrp.procurement.orderpoint.compute')
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp/wizard/wizard_schedulers_all.py b/addons/mrp/wizard/wizard_schedulers_all.py
deleted file mode 100644
index e93e31c0599..00000000000
--- a/addons/mrp/wizard/wizard_schedulers_all.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import threading
-import pooler
-
-parameter_form = '''
-'''
-
-parameter_fields = {
- 'automatic': {'string': 'Automatic orderpoint', 'type': 'boolean', 'help': 'Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products.', 'default': lambda *a: False},
-}
-
-def _procure_calculation_all(self, db_name, uid, data, context):
- db, pool = pooler.get_db_and_pool(db_name)
- cr = db.cursor()
- proc_obj = pool.get('mrp.procurement')
- automatic = data['form']['automatic']
- proc_obj.run_scheduler(cr, uid, automatic=automatic, use_new_cursor=cr.dbname,\
- context=context)
- cr.close()
- return {}
-
-def _procure_calculation(self, cr, uid, data, context):
- threaded_calculation = threading.Thread(target=_procure_calculation_all, args=(self, cr.dbname, uid, data, context))
- threaded_calculation.start()
- return {}
-
-class procurement_compute(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Stock') ]}
- },
- 'compute': {
- 'actions': [_procure_calculation],
- 'result': {'type': 'state', 'state':'end'}
- },
- }
-procurement_compute('mrp.procurement.compute.all')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp_repair/__terp__.py b/addons/mrp_repair/__terp__.py
index 2f44e257a80..12a796b4f3b 100644
--- a/addons/mrp_repair/__terp__.py
+++ b/addons/mrp_repair/__terp__.py
@@ -37,11 +37,12 @@
'depends': ['base', 'sale', 'account'],
'update_xml': [
'security/ir.model.access.csv',
- 'mrp_repair_sequence.xml',
- 'mrp_repair_wizard.xml',
+ 'mrp_repair_sequence.xml',
+ 'wizard/mrp_repair_cancel_view.xml',
+ 'wizard/mrp_repair_make_invoice_view.xml',
'mrp_repair_view.xml',
'mrp_repair_workflow.xml',
- 'mrp_repair_report.xml'
+ 'mrp_repair_report.xml',
],
'demo_xml': [],
'installable': True,
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index fc91fe1f9e6..e456c3770d2 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -95,7 +95,7 @@ class mrp_repair(osv.osv):
\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.'),
- 'location_id': fields.many2one('stock.location', 'Current Location', required=True, select=True, readonly=True, states={'draft':[('readonly',False)]}),
+ 'location_id': fields.many2one('stock.location', 'Current Location', select=True, readonly=True, states={'draft':[('readonly',False)]}),
'location_dest_id': fields.many2one('stock.location', 'Delivery Location', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('stock.move', 'Move',required=True, domain="[('product_id','=',product_id)]", readonly=True, states={'draft':[('readonly',False)]}),
'guarantee_limit': fields.date('Guarantee limit', help="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."),
@@ -261,12 +261,12 @@ class mrp_repair(osv.osv):
def action_invoice_create(self, cr, uid, ids, group=False, context=None):
res={}
invoices_group = {}
- for repair in self.browse(cr, uid, ids, context=context):
+ for repair in self.browse(cr, uid, ids, context=context):
res[repair.id]=False
if repair.state in ('draft','cancel') or repair.invoice_id:
continue
if not (repair.partner_id.id and repair.partner_invoice_id.id):
- raise osv.except_osv(_('No partner !'),_('You have to select a partner in the repair form !'))
+ raise osv.except_osv(_('No partner !'),_('You have to select a Partner Invoice Address in the repair form !'))
comment=repair.quotation_notes
if (repair.invoice_method != 'none'):
if group and repair.partner_invoice_id.id in invoices_group:
@@ -398,7 +398,9 @@ class mrp_repair(osv.osv):
self.pool.get('mrp.repair.line').write(cr, uid, [move.id], {'move_id': move_id})
if repair.deliver_bool:
+ pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out')
picking = self.pool.get('stock.picking').create(cr, uid, {
+ 'name': pick_name,
'origin': repair.name,
'state': 'draft',
'move_type': 'one',
diff --git a/addons/mrp_repair/mrp_repair_wizard.xml b/addons/mrp_repair/mrp_repair_wizard.xml
deleted file mode 100644
index 42383f517cc..00000000000
--- a/addons/mrp_repair/mrp_repair_wizard.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/addons/mrp_repair/report/order.rml b/addons/mrp_repair/report/order.rml
index 6c56c80978b..bb3e61ab4e7 100644
--- a/addons/mrp_repair/report/order.rml
+++ b/addons/mrp_repair/report/order.rml
@@ -397,7 +397,7 @@
- [[ format(o.quotation_notes) or '' ]]
+ [[ format(o.quotation_notes) or removeParentNode('blockTable') ]]
diff --git a/addons/mrp_repair/security/ir.model.access.csv b/addons/mrp_repair/security/ir.model.access.csv
index 0f12f66a815..c524afce69b 100644
--- a/addons/mrp_repair/security/ir.model.access.csv
+++ b/addons/mrp_repair/security/ir.model.access.csv
@@ -5,3 +5,7 @@
"access_mrp_repair_line_manager","MRP Repair Line manager","model_mrp_repair_line","stock.group_stock_manager",1,1,1,1
"access_mrp_repair_fee_user","MRP Repair Fee user","model_mrp_repair_fee","stock.group_stock_user",1,0,0,0
"access_mrp_repair_fee_manager","MRP Repair Fee manager","model_mrp_repair_fee","stock.group_stock_manager",1,1,1,1
+"access_mrp_repair_cancel_user","mrp.repair.cancel user","model_mrp_repair_cancel","stock.group_stock_user",1,0,0,0
+"access_mrp_repair_cancel_manager","mrp.repair.cancel manager","model_mrp_repair_cancel","stock.group_stock_manager",1,1,1,1
+"access_mrp_repair_make_invoice_user","mrp.repair.make_invoice user","model_mrp_repair_make_invoice","stock.group_stock_user",1,0,0,0
+"access_mrp_repair_make_invoice_manager","mrp.repair.make_invoice manager","model_mrp_repair_make_invoice","stock.group_stock_manager",1,1,1,1
diff --git a/addons/mrp_repair/wizard/__init__.py b/addons/mrp_repair/wizard/__init__.py
index ec3063f01de..4f3075f055c 100644
--- a/addons/mrp_repair/wizard/__init__.py
+++ b/addons/mrp_repair/wizard/__init__.py
@@ -19,7 +19,7 @@
#
##############################################################################
-import wizard_cancel_repair
-import wizard_make_invoice
+import cancel_repair
+import make_invoice
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_repair/wizard/cancel_repair.py b/addons/mrp_repair/wizard/cancel_repair.py
new file mode 100644
index 00000000000..91df6fb01ef
--- /dev/null
+++ b/addons/mrp_repair/wizard/cancel_repair.py
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+class repair_cancel(osv.osv_memory):
+ _name = 'mrp.repair.cancel'
+ _description = 'Cancel Repair'
+
+ def cancel_repair(self, cr, uid, ids, context):
+ """
+ Cancels the repair
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ record_id = context and context.get('active_id', False) or False
+ assert record_id, _('Active ID is not Found')
+ repair_order_obj = self.pool.get('mrp.repair')
+ repair_line_obj = self.pool.get('mrp.repair.line')
+ repair_order = repair_order_obj.browse(cr, uid, record_id)
+
+ if repair_order.invoiced or repair_order.invoice_method == 'none':
+ repair_order_obj.action_cancel(cr, uid, [record_id], context=context)
+ else:
+ raise osv.except_osv(_('Warning!'),_('Repair is not cancelled. It is not invoiced.'))
+
+ return {}
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ """
+ Changes the view dynamically
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+
+ @return: New arch of view.
+
+ """
+ record_id = context and context.get('active_id', False) or False
+ res = super(repair_cancel, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
+ if record_id:
+ repair_order = self.pool.get('mrp.repair').browse(cr, uid, record_id)
+ if not repair_order.invoiced:
+ res['arch'] = """
+ """
+ return res
+
+repair_cancel()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/mrp_repair/wizard/make_invoice.py b/addons/mrp_repair/wizard/make_invoice.py
new file mode 100644
index 00000000000..063040590e6
--- /dev/null
+++ b/addons/mrp_repair/wizard/make_invoice.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv, fields
+
+class make_invoice(osv.osv_memory):
+ _name = 'mrp.repair.make_invoice'
+ _description = 'Make Invoice'
+
+ _columns = {
+ 'group': fields.boolean('Group by partner invoice address'),
+ }
+
+ def make_invoices(self, cr, uid, ids, context):
+ """
+ Generates invoice(s) of selected records.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return: Loads the view of new invoice(s).
+
+ """
+ inv = self.browse(cr, uid, ids[0])
+ order_obj = self.pool.get('mrp.repair')
+ newinv = order_obj.action_invoice_create(cr, uid, context['active_ids'], group=inv.group,context=context)
+
+ return {
+ 'domain': [('id','in', newinv.values())],
+ 'name': 'Invoices',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'view_id': False,
+ 'context': "{'type':'out_invoice'}",
+ 'type': 'ir.actions.act_window'
+ }
+
+make_invoice()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml b/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml
new file mode 100644
index 00000000000..4af2a3394b0
--- /dev/null
+++ b/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ Cancel Repair
+ mrp.repair.cancel
+ form
+
+
+
+
+
+
+ Cancel Repair Order
+ ir.actions.act_window
+ mrp.repair.cancel
+ form
+ form
+ new
+
+
+
+
+
diff --git a/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml b/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml
new file mode 100644
index 00000000000..f914d198d06
--- /dev/null
+++ b/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+ Make Invoice
+ mrp.repair.make_invoice
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp_repair/wizard/wizard_cancel_repair.py b/addons/mrp_repair/wizard/wizard_cancel_repair.py
deleted file mode 100644
index d895096ce6f..00000000000
--- a/addons/mrp_repair/wizard/wizard_cancel_repair.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-
-cancel_form = """
-
-"""
-
-cancel_fields = {}
-
-def check_state(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- repair_obj = pool.get('mrp.repair').browse(cr, uid, data['ids'])[0]
- if repair_obj.invoice_id:
- return 'display'
- else:
- pool.get('mrp.repair').write(cr,uid,data['ids'],{'state':'cancel'})
- return 'end'
-
-
-def _cancel_repair(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- repair_obj = pool.get('mrp.repair').browse(cr, uid, data['ids'])
- pool.get('mrp.repair').write(cr,uid,data['ids'],{'state':'cancel'})
- mrp_line_obj = pool.get('mrp.repair.line')
- for line in repair_obj:
- mrp_line_obj.write(cr, uid, [l.id for l in line.operations], {'state': 'cancel'})
- return {}
-
-class repair_cancel(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'choice', 'next_state' : check_state}
- },
-
- 'display' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : cancel_form,
- 'fields' : cancel_fields,
- 'state' : [('end', 'No'),('yes', 'Yes') ]}
- },
- 'yes' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action' : _cancel_repair,
- 'state' : 'end'}
- },
- 'end' : {
- 'actions' : [],
- 'result': {'type': 'state', 'state': 'end'},
- },
- }
-repair_cancel("mrp.repair.cancel")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp_repair/wizard/wizard_make_invoice.py b/addons/mrp_repair/wizard/wizard_make_invoice.py
deleted file mode 100644
index 71aefadfe4b..00000000000
--- a/addons/mrp_repair/wizard/wizard_make_invoice.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import pooler
-
-invoice_form = """
-
-"""
-invoice_fields = {
- 'group': {
- 'string': 'Group by partner invoice address',
- 'type':'boolean'
- },
-}
-
-ack_form = """
-"""
-
-ack_fields = {}
-
-def _makeInvoices(self, cr, uid, data, context):
- order_obj = pooler.get_pool(cr.dbname).get('mrp.repair')
- newinv = order_obj.action_invoice_create(cr, uid, data['ids'],group=data['form']['group'],context=context)
-
- return {
- 'domain': [('id','in', newinv.values())],
- 'name': 'Invoices',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'view_id': False,
- 'context': "{'type':'out_refund'}",
- 'type': 'ir.actions.act_window'
- }
-
-
-class make_invoice(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : invoice_form,
- 'fields' : invoice_fields,
- 'state' : [('end', 'Cancel'),('invoice', 'Create invoices') ]}
- },
- 'invoice' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action' : _makeInvoices,
- 'state' : 'end'}
- },
- }
-make_invoice("mrp.repair.make_invoice")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/multi_company/__terp__.py b/addons/multi_company/__terp__.py
index b3126b9bf99..e42bec3e2bb 100644
--- a/addons/multi_company/__terp__.py
+++ b/addons/multi_company/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,8 +24,9 @@
'name': 'Multi Company',
'version': '1.0',
'category': 'Custom',
- 'description': """This module add the possibility to easily manage
- the default value for each object
+ 'description': """
+ Multicompany module is for managing a multicompany environment.
+ This module is the base module for other multicompany modules.
""",
'author': 'Tiny,SYLEAM',
'website': 'http://www.openerp.com/',
diff --git a/addons/olap/__terp__.py b/addons/olap/__terp__.py
index 7583de75182..28c742d1f58 100644
--- a/addons/olap/__terp__.py
+++ b/addons/olap/__terp__.py
@@ -6,7 +6,12 @@
"depends" : ["base"],
"category" : "Generic Modules/Olap",
"description": """
- Base module to manage Olap schemas. Cube designer.
+ Olap module is used to install BI module in client. Olap provides Online
+ Analytical Process with the mdx query. BI provides Cube Browsing and
+ Cube Designing. After installing Olap Module you will get Cube Browser
+ and Cube Desinger in Reporting Menu. Cube Browser is used to generate
+ the reports with table view (mdx view) of mdx query. and Cube designer
+ is used to make cubes in BI..
""",
"init_xml" : ["data/olap_data.xml"],
"update_xml" : [
diff --git a/addons/olap/i18n/hr.po b/addons/olap/i18n/hr.po
new file mode 100644
index 00000000000..0038a67346e
--- /dev/null
+++ b/addons/olap/i18n/hr.po
@@ -0,0 +1,1399 @@
+# Croatian translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-26 05:24+0000\n"
+"PO-Revision-Date: 2010-03-23 00:34+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Croatian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Hide"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_saved_query_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_saved_query_form
+#: view:olap.saved.query:0
+msgid "Olap Saved Query"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,time:0
+#: field:olap.saved.query,time:0
+msgid "Time"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid "Auto Configure Structure"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Olap fact database"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,value_sql:0
+msgid ""
+"You can provide valid sql expression. Make sure it have function with fully "
+"qualified column name like (sum,avg ...)(tablename.columnname (+,- ...) "
+"tablename.columnname)"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,schema_id:0
+msgid "Schema id"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,database_id:0
+msgid "Database Connection"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "MySQL"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_password:0
+msgid "Database password"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.tables:0
+msgid "Olap database tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Connection url"
+msgstr ""
+
+#. module: olap
+#: view:olap.application.table:0
+msgid "Olap Application Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.parameters.config.wizard,host_name:0
+msgid "Server Name"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_password:0
+msgid "Password for the login."
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,application_id:0
+#: field:olap.application.table,application_id:0
+msgid "Application Id"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.todo,note:olap.config_auto_directory
+msgid "This wizard will configure the URL of the web client"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_fact_database_form
+#: model:ir.ui.menu,name:olap.menu_bi_conf_fact
+msgid "Fact Databases"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_browser_url
+msgid "Cube Browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_dimension_form
+msgid "Olap Dimension"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_database_columns
+msgid "Olap Database Columns"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "BI Web Client."
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_port:0
+msgid " Port to be used in connection"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,primary_key:0
+msgid "Primary Key"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,table_id:0
+msgid "Table Id"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "This wizard will automatically configure the web client for BI."
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,type:0
+msgid "Database type"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query_builder,back:0
+#: wizard_view:olap.query_builder,init:0
+msgid "Cube Fetcher"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,info:0
+#: wizard_view:olap.load.table,ok:0
+msgid "Your database structure has been correctly loaded"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_parameters_config_wizard
+msgid "Olap Server Parameters"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_cube_table_form
+msgid "Olap Cube Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,formatstring:0
+msgid "Format string"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,exec,exec:0
+#: wizard_button:olap.query_builder,ok,exec:0
+msgid "Execute"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.application.configuration,configure,end:0
+#: wizard_button:olap.fact.database.test_connection,init,end:0
+#: wizard_button:olap.load.table,info,end:0
+#: wizard_button:olap.query.logs.clear,info,end:0
+#: wizard_button:olap.query.logs.clear,ok,end:0
+#: view:olap.warehouse.wizard:0
+msgid "Ok"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_conf_known_application
+msgid "Known Application"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,level:0
+#: wizard_field:olap.query_builder,ok,level:0
+msgid "Level"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,column_id_name:0
+#: field:olap.measure,value_column_id_name:0
+msgid "Column ID"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid ""
+"We will load the complete structure of the database by introspection, so "
+"that you will be able to work on it, and specify a better structure "
+"according to your reporting needs."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_form
+msgid "Olap Applicatiion"
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,name:0
+msgid "Query Name"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,mdx_query:0
+#: wizard_field:olap.query_builder,ok,mdx_query:0
+msgid "MDX Query"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_bi_auto_configure_wizard
+msgid "bi.auto.configure.wizard"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,primary_key:0
+msgid "Primary key"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.act_bi_auto_configure
+msgid "Auto Configuration"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,note:0
+msgid "Schema description"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.act_bi_load_db_wizard
+msgid "Load database Structure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_level
+#: view:olap.level:0
+msgid "Olap level"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "None (0000.00)"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_host:0
+msgid "Database host"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_fact_database
+msgid "Olap Fact Database"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid "Auto Congifuring Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,name:0
+msgid "Application name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,column_link_id:0
+msgid "Relational Column"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,type:0
+msgid "Level class"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,name:0
+msgid "Cube name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_table_form
+msgid "Olap Applicatiion Table"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_saved_query
+msgid "olap.saved.query"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,column_name:0
+msgid "Columns Name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_hierarchy_form
+msgid "Olap Hierarchies"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,ready:0
+msgid "Ready"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,measure_type:0
+#: field:olap.measure,value_column:0
+msgid "Fact Table Column"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_database_tables_form
+#: field:olap.application,table_ids:0
+#: view:olap.fact.database:0
+#: field:olap.fact.database,table_ids:0
+msgid "Tables"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application
+msgid "Olap application"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Schema is ready to use"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_designer_url
+msgid "Cube Designer"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_login:0
+msgid "Database login"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_table_form
+msgid "Application Table"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query.logs.clear,info:0
+#: wizard_view:olap.query.logs.clear,ok:0
+msgid "Logs Cleared successfully"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_schema
+#: model:ir.ui.menu,name:olap.menu_action_olap_schema_form
+#: view:olap.schema:0
+msgid "Olap Schema"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_form
+msgid "Application"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,mdx_query_output:0
+#: wizard_field:olap.query_builder,ok,mdx_query_output:0
+msgid "MDX Query Output"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,primary_key_table:0
+msgid "Primary key table"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,table_name:0
+msgid ""
+"The name of the table on which the column is defined. If False, take the "
+"table from the cube."
+msgstr ""
+
+#. module: olap
+#: view:olap.warehouse.wizard:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_dimension_form
+msgid "Olap Dimensions"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,user_id:0
+msgid "Tiny ERP User"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_application_configuration
+msgid "Configure from Application"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_port:0
+msgid "Database port"
+msgstr ""
+
+#. module: olap
+#: help:olap.parameters.config.wizard,host_port:0
+msgid ""
+"Put the port for the server. Put 8080 if its not clear."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "The Structure is Loaded"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,cube_id:0
+#: field:olap.measure,cube_id:0
+#: field:olap.query.logs,cube_id:0
+#: field:olap.saved.query,cube_id:0
+msgid "Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,available_table_ids:0
+msgid "Available Tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Configure Manually"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,related_to:0
+msgid "Related To"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Olap database columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,field_id:0
+msgid "Link Field"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Mark as Configured"
+msgstr ""
+
+#. module: olap
+#: view:olap.application.field:0
+msgid "Olap Application Field"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Comma Seperator (0,000)"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,agregator:0
+msgid "Agregator"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,configure:0
+msgid "Your database structure (Open ERP) has been sucessfully configured."
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: olap
+#: help:olap.parameters.config.wizard,host_name:0
+msgid ""
+"Put here the server address or IP Put localhost if its not "
+"clear."
+msgstr ""
+
+#. module: olap
+#: view:olap.database.tables:0
+msgid "Database tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Reload Structure"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,init:0
+msgid "This will Auto Configure Application"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid "Load Data Structure"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+#: view:bi.load.db.wizard:0
+#: wizard_button:olap.application.configuration,init,end:0
+#: wizard_button:olap.load.table,init,end:0
+#: view:olap.parameters.config.wizard:0
+#: wizard_button:olap.query.logs.clear,init,end:0
+#: wizard_button:olap.query_builder,exec,end:0
+#: wizard_button:olap.query_builder,ok,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid ""
+"After having loaded the structure, you will be able to hide/show or rename "
+"tables and columns to simplify end-users interface. The following database "
+"will be loaded:"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_level_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_level_form
+#: view:olap.level:0
+msgid "Olap Level"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,loaded:0
+msgid "Loaded"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_name:0
+msgid "Name of the database to be used for analysis."
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_login:0
+msgid "Login for the database name specified."
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,dimension_id:0
+#: wizard_field:olap.query_builder,exec,dimension:0
+#: wizard_field:olap.query_builder,ok,dimension:0
+msgid "Dimension"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application_table
+msgid "Olap application table"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+msgid ""
+"We will load the complete structure of the database by introspection, "
+"so that you will be able to work on it, and specify a better structure "
+"according to your reporting needs."
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,axis_keys:0
+msgid "Axis Keys"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,query_log:0
+msgid "Query Logging"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,measure_type:0
+msgid "Measure Type"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,fact_database_id:0
+msgid "Database Id"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_host:0
+msgid "Give hostname to make connection to the database."
+msgstr ""
+
+#. module: olap
+#: field:olap.level,hierarchy_id:0
+msgid "Hierarchy"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "The Structure is Configured."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_schema_form
+msgid "Olap Schemas"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,table_id:0
+msgid "Fact table"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid ""
+"This will Auto Configure Application. This will help to increase the "
+"readability of the tables and columns by giving it meaningful and easy to "
+"comprehend name. You can hides particular data and columns by reconfiguring "
+"the structure option."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_field_form
+msgid "Olap Applicatiion Field"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,query:0
+#: field:olap.saved.query,query:0
+#: view:olap.warehouse.wizard:0
+#: field:olap.warehouse.wizard,query:0
+msgid "Query"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Auto Application Configuration"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Postfix Default Currency(0000.00 EUR)"
+msgstr ""
+
+#. module: olap
+#: field:bi.load.db.wizard,db_name:0
+#: wizard_field:olap.load.table,init,db_name:0
+msgid "Database Name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,measure_ids:0
+msgid "Measures"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_conf_cube_query_builder
+#: wizard_view:olap.query_builder,exec:0
+#: wizard_view:olap.query_builder,ok:0
+msgid "Query Builder"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,dimension_ids:0
+msgid "Dimensions"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_cube
+#: view:olap.cube:0
+msgid "Olap cube"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_warehouse
+#: model:ir.model,name:olap.model_olap_warehouse_wizard
+#: model:ir.ui.menu,name:olap.menu_bi_warehouse
+msgid "Olap Warehouse"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_field_form
+msgid "Application Field"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_dimension
+#: view:olap.dimension:0
+msgid "Olap dimension"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,name:0
+msgid "Application field name"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Connection parameters"
+msgstr ""
+
+#. module: olap
+#: field:bi.auto.configure.wizard,name:0
+#: field:bi.load.db.wizard,fact_table:0
+#: wizard_field:olap.load.table,init,fact_table:0
+msgid "Fact Name"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+msgid "Database columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.table,table_name:0
+#: field:olap.cube.table,name:0
+#: field:olap.level,table_name:0
+#: field:olap.measure,table_name:0
+msgid "Table name"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,measure_type:0
+msgid "Select between auto column or sql expression for the measures"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_load_column
+msgid "Open Columns"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_database_columns_form
+#: field:olap.database.tables,columns:0
+msgid "Columns"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_test_connection
+#: view:olap.fact.database:0
+msgid "Test Connection"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_measure_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_measure_form
+msgid "Olap Measures"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.application.configuration,init,configure:0
+#: view:olap.parameters.config.wizard:0
+msgid "Configure"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+msgid ""
+"After having loaded the structure, you will be able to hide/show or "
+"rename tables and columns to simplify end-users interface. The following "
+"database will be loaded:"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,hierarchy:0
+#: wizard_field:olap.query_builder,ok,hierarchy:0
+msgid "Hiearchy"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,measure_type:0
+#: field:olap.measure,value_sql:0
+msgid "SQL Expression"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_menu_olap_load_table
+msgid "Load Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,level_ids:0
+msgid "Levels"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application_field
+msgid "Olap application field"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_database_columns_form
+msgid "Database Columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,active:0
+#: field:olap.database.tables,active:0
+msgid "Active"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,datatype:0
+msgid "Integer"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,init:0
+msgid " Auto Configure "
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "Sum"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query.logs.clear,init,user_name:0
+#: field:olap.saved.query,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,count:0
+msgid "Count"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,name:0
+msgid "End-User Name"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Postfix Default Currency with comma seperator (0,000.00 EUR)"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,datatype:0
+msgid "Datatype"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,back,ok:0
+#: wizard_button:olap.query_builder,init,ok:0
+msgid "Fetch Data"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Prefix Default Currency with comma seperator (EUR 0,000.00)"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,info:0
+#: wizard_view:olap.load.table,ok:0
+#: wizard_view:olap.query.logs.clear,info:0
+#: wizard_view:olap.query.logs.clear,ok:0
+msgid "Load Data"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,query_ids:0
+msgid "Queries"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "Oracle"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_cube_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_cube_form
+#: model:ir.ui.menu,name:olap.menu_bi_conf_cubes
+msgid "Olap Cubes"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_cube_table_form
+msgid "Olap Cubes Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,name:0
+msgid "Measure name"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,connection_type:0
+msgid "Socket"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,connection_type:0
+msgid "Connection type"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "count"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_name:0
+msgid "Database name"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,type:0
+msgid "Type"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Show"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,exec,back:0
+#: wizard_button:olap.query_builder,ok,back:0
+msgid "Change cube"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_database_tables_form
+#: view:olap.cube.table:0
+#: field:olap.cube.table,line_ids:0
+msgid "Database Tables"
+msgstr ""
+
+#. module: olap
+#: help:olap.level,table_name:0
+msgid ""
+"The name of the table on which the column is defined. If False, take the "
+"table from the hierarchy."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Nothing has been Configured"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,name:0
+msgid "Dimension name"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.load.table,ok,end:0
+msgid "Continue and Configure Structure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_measure
+#: view:olap.measure:0
+msgid "Olap measure"
+msgstr ""
+
+#. module: olap
+#: help:olap.cube,table_id:0
+msgid "Table(s) for cube."
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,measure:0
+#: wizard_field:olap.query_builder,ok,measure:0
+msgid "Measure"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,column_db_name:0
+msgid "Column DBName"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "We Can Start building Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,table_id:0
+msgid "Database Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,name:0
+msgid "Schema name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_query_logs_my_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_query_logs_my_form
+#: view:olap.query.logs:0
+msgid "My Logs"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Information"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,back,cube_schema:0
+#: wizard_field:olap.query_builder,init,cube_schema:0
+msgid "Select Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,table_id:0
+msgid "Fact table(s)"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.url,name:olap.menu_url_cube_designer
+msgid "name_menu_url_cube_designer"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_config_bi_parameters
+msgid "Parameters Configuration"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Connect to Database"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Database Connected"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,table_name:0
+#: field:olap.application.table,name:0
+msgid "Application table name"
+msgstr ""
+
+#. module: olap
+#: help:olap.hierarchy,table_id:0
+msgid "Table(s) to make hierarchy on the cube."
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "General information"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,query:0
+msgid "Application Query"
+msgstr ""
+
+#. module: olap
+#: help:olap.cube,query_log:0
+msgid "Enabling this will log all the queries in the browser"
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,mdx_id:0
+msgid "Module"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,is_hidden:0
+#: field:olap.application.table,is_hidden:0
+#: field:olap.database.columns,hide:0
+#: field:olap.database.tables,hide:0
+msgid "Hidden"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,hierarchy_ids:0
+msgid "Hierarchies"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,result_size:0
+msgid "Result Size"
+msgstr ""
+
+#. module: olap
+#: view:olap.application:0
+msgid "Olap Application"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_database_tables
+msgid "Olap Database Tables"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Prefix Default Currency (EUR 0000.00)"
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Olap cube_table"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "Parameters Configure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_hierarchy
+#: view:olap.hierarchy:0
+msgid "Olap hierarchy"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_cube_table
+#: model:ir.model,name:olap.model_olap_cube_table_line
+msgid "Olap cube table"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,field_name:0
+msgid "Field name"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_query_logs
+msgid "Olap query logs"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,name:0
+msgid "Fact name"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,formatstring:0
+msgid " Let you specify how the measure to be displayed in cube browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_server_parameters
+msgid "Server Parameters"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+#: wizard_button:olap.load.table,init,ok:0
+#: view:olap.schema:0
+msgid "Load Database Structure"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,name:0
+msgid "Level name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,schema_id:0
+#: field:olap.query.logs,schema_id:0
+#: field:olap.saved.query,schema_id:0
+msgid "Schema"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,connection_url:0
+#: field:olap.schema,app_detect:0
+msgid "Connection URL"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,cube_ids:0
+msgid "Cubes"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "ReConfigure Structure"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,field_ids:0
+msgid "Fields"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "Average"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid "Load Database Tables"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_hierarchy_form
+msgid "Olap Hierarchy"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,cube_table_id:0
+msgid "Cube Table"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi
+msgid "Businesss Intelligence"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_bi_load_db_wizard
+msgid "bi.load.db.wizard"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.url,name:olap.menu_url_cube_browser
+msgid "name_menu_url_cube_browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_fact_database_form
+msgid "Databases"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,name:0
+msgid "Hierarchy name"
+msgstr ""
+
+#. module: olap
+#: model:ir.module.module,description:olap.module_meta_information
+msgid ""
+"\n"
+" Base module to manage Olap schemas. Cube designer.\n"
+" "
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Joined Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,loaded:0
+msgid "Loading Datastructure"
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Joined Table"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "PostgreSQL"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query.logs.clear,init:0
+msgid " To Load Data"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,sequence:0
+#: field:olap.level,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_conf_tools
+msgid "Tools"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,state:0
+msgid "Schema State"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,datatype:0
+msgid "Float"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_query_logs_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_query_logs_form
+#: view:olap.query.logs:0
+msgid "All Logs"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,connection_type:0
+#: field:olap.parameters.config.wizard,host_port:0
+msgid "Port"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Fact database"
+msgstr ""
+
+#. module: olap
+#: model:ir.module.module,shortdesc:olap.module_meta_information
+msgid "olap"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,name:0
+msgid "Column Name"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,table_db_name:0
+msgid "Table Name"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,configure:0
+msgid "Auto Configure"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,configure:0
+msgid "Configuring Datastructure"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_load_configuration_table
+msgid "Open Configuration"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Configure Automatically "
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_clear_logs
+#: model:ir.ui.menu,name:olap.menu_bi_clear_logs
+#: wizard_button:olap.query.logs.clear,init,ok:0
+msgid "Clear Logs"
+msgstr ""
diff --git a/addons/olap_crm/__terp__.py b/addons/olap_crm/__terp__.py
index 794b65138b4..940355ab49c 100644
--- a/addons/olap_crm/__terp__.py
+++ b/addons/olap_crm/__terp__.py
@@ -27,7 +27,7 @@
"depends" : ["olap"],
"category" : "Generic Modules/Olap",
"description": """
- Sale module will load the data in olap tables
+ CRM module will load the data in olap tables
""",
"init_xml" : ['olap_data.xml'],
"update_xml" :[],
diff --git a/addons/olap_crm/i18n/pt_BR.po b/addons/olap_crm/i18n/pt_BR.po
new file mode 100644
index 00000000000..1608cac66d5
--- /dev/null
+++ b/addons/olap_crm/i18n/pt_BR.po
@@ -0,0 +1,34 @@
+# Brazilian Portuguese translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-26 05:29+0000\n"
+"PO-Revision-Date: 2010-03-24 01:24+0000\n"
+"Last-Translator: Pedro_Maschio \n"
+"Language-Team: Brazilian Portuguese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap_crm
+#: model:ir.module.module,description:olap_crm.module_meta_information
+msgid ""
+"\n"
+" Sale module will load the data in olap tables\n"
+" "
+msgstr ""
+"\n"
+" Módulo de vendas vai carregar os dados nas tabelas OLAP\n"
+" "
+
+#. module: olap_crm
+#: model:ir.module.module,shortdesc:olap_crm.module_meta_information
+msgid "olap_crm"
+msgstr "olap_crm"
diff --git a/addons/olap_extract/i18n/pt_BR.po b/addons/olap_extract/i18n/pt_BR.po
new file mode 100644
index 00000000000..178edd2bfeb
--- /dev/null
+++ b/addons/olap_extract/i18n/pt_BR.po
@@ -0,0 +1,59 @@
+# Brazilian Portuguese translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-26 05:29+0000\n"
+"PO-Revision-Date: 2010-03-24 01:31+0000\n"
+"Last-Translator: Pedro_Maschio \n"
+"Language-Team: Brazilian Portuguese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap_extract
+#: model:ir.module.module,shortdesc:olap_extract.module_meta_information
+msgid "olap_extract"
+msgstr "olap_extract"
+
+#. module: olap_extract
+#: wizard_button:olap.extract.schema,init,ok:0
+msgid "OK"
+msgstr "OK"
+
+#. module: olap_extract
+#: model:ir.actions.wizard,name:olap_extract.bi_olap_extract_schema
+msgid "Olap Extract"
+msgstr "Extrato OLAP"
+
+#. module: olap_extract
+#: model:ir.module.module,description:olap_extract.module_meta_information
+msgid ""
+"\n"
+" Extracts the schema structure.\n"
+" "
+msgstr ""
+"\n"
+" Extrato do esquema de estrutura\n"
+" "
+
+#. module: olap_extract
+#: wizard_field:olap.extract.schema,init,module_name:0
+msgid "Module Name"
+msgstr "Nome do Módulo"
+
+#. module: olap_extract
+#: wizard_button:olap.extract.schema,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: olap_extract
+#: wizard_view:olap.extract.schema,init:0
+msgid "New Module Name"
+msgstr "Novo Nome do Módulo"
diff --git a/addons/olap_sale/i18n/pt_BR.po b/addons/olap_sale/i18n/pt_BR.po
new file mode 100644
index 00000000000..f946a91bc88
--- /dev/null
+++ b/addons/olap_sale/i18n/pt_BR.po
@@ -0,0 +1,34 @@
+# Brazilian Portuguese translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-26 05:29+0000\n"
+"PO-Revision-Date: 2010-03-24 01:33+0000\n"
+"Last-Translator: Pedro_Maschio \n"
+"Language-Team: Brazilian Portuguese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap_sale
+#: model:ir.module.module,description:olap_sale.module_meta_information
+msgid ""
+"\n"
+" Sale module will load the data in olap tables\n"
+" "
+msgstr ""
+"\n"
+" Módulo de vendas vai carregar os dados nas tabelas OLAP\n"
+" "
+
+#. module: olap_sale
+#: model:ir.module.module,shortdesc:olap_sale.module_meta_information
+msgid "olap_sale"
+msgstr "olap_sale"
diff --git a/addons/point_of_sale/__terp__.py b/addons/point_of_sale/__terp__.py
index e094d9dcb37..b1838a28fc1 100644
--- a/addons/point_of_sale/__terp__.py
+++ b/addons/point_of_sale/__terp__.py
@@ -38,9 +38,30 @@ Main features :
'author': 'Tiny',
'depends': ['sale', 'delivery'],
# 'depends': ['sale', 'purchase', 'account', 'account_tax_include','board','mrp','board_manufacturing','delivery','profile_manufacturing','account','multi_company'],
- 'init_xml': [
- 'security/point_of_sale_security.xml',
+ 'init_xml': [],
+
+ 'update_xml': [
+ 'security/point_of_sale_security.xml',
'security/ir.model.access.csv',
+ 'wizard/pos_details.xml',
+ 'wizard/pos_add_product.xml',
+ 'wizard/pos_confirm.xml',
+ 'wizard/pos_discount.xml',
+ 'wizard/pos_get_sale.xml',
+ 'wizard/pos_open_statement.xml',
+ 'wizard/pos_close_statement.xml',
+ 'wizard/pos_box_entries.xml',
+ 'wizard/pos_payment_report_user_view.xml',
+ 'wizard/pos_payment_report_date_view.xml',
+ 'wizard/pos_box_out.xml',
+ 'wizard/pos_sales_user.xml',
+ 'wizard/all_closed_cashbox_of_the_day.xml',
+ 'wizard/pos_sales_user_current_user.xml',
+ 'wizard/pos_sale_user_today.xml',
+ 'wizard/pos_receipt_view.xml',
+ 'wizard/pos_payment_report_user.xml',
+ 'wizard/pos_payment_report.xml',
+ 'wizard/pos_payment.xml',
'pos_report.xml',
'pos_wizard.xml',
'pos_view.xml',
@@ -51,18 +72,7 @@ Main features :
'statement_view.xml',
'statement_report.xml',
'statement_data.xml',
- 'statement_wizard.xml'
- ],
- 'update_xml': [
- 'security/point_of_sale_security.xml',
- 'security/ir.model.access.csv',
- 'pos_report.xml',
- 'pos_wizard.xml',
- 'pos_view.xml',
- 'pos_sequence.xml',
- 'posrule_data.xml',
- 'pos_data.xml',
- 'pos_workflow.xml'
+ 'statement_wizard.xml',
],
'demo_xml': ['pos_demo.xml','singer_statement_demo.xml','multi_company_stock_data.xml'],
'installable': True,
diff --git a/addons/point_of_sale/account_bank_statement.py b/addons/point_of_sale/account_bank_statement.py
index b599f0531f9..b71e78afcfd 100644
--- a/addons/point_of_sale/account_bank_statement.py
+++ b/addons/point_of_sale/account_bank_statement.py
@@ -125,14 +125,17 @@ class account_bank_statement(osv.osv):
}
def create(self, cr, uid, vals, context=None):
- open_jrnl = self.search(cr, uid, [('company_id', '=', vals['company_id']), ('journal_id', '=', vals['journal_id']), ('state', '=', 'open')])
- if open_jrnl:
- raise osv.except_osv('Error', u'Une caisse de type espèce est déjà ouverte')
- if 'starting_details_ids' in vals:
- vals['starting_details_ids'] = starting_details_ids = map(list, vals['starting_details_ids'])
- for i in starting_details_ids:
- if i and i[0] and i[1]:
- i[0], i[1] = 0, 0
+
+ company_id = vals and vals.get('company_id',False)
+ if company_id:
+ open_jrnl = self.search(cr, uid, [('company_id', '=', vals['company_id']), ('journal_id', '=', vals['journal_id']), ('state', '=', 'open')])
+ if open_jrnl:
+ raise osv.except_osv('Error', u'Une caisse de type espèce est déjà ouverte')
+ if 'starting_details_ids' in vals:
+ vals['starting_details_ids'] = starting_details_ids = map(list, vals['starting_details_ids'])
+ for i in starting_details_ids:
+ if i and i[0] and i[1]:
+ i[0], i[1] = 0, 0
res = super(account_bank_statement, self).create(cr, uid, vals, context=context)
return res
diff --git a/addons/point_of_sale/pos_view.xml b/addons/point_of_sale/pos_view.xml
index baaac139ce4..f5ce8368bbe 100644
--- a/addons/point_of_sale/pos_view.xml
+++ b/addons/point_of_sale/pos_view.xml
@@ -43,7 +43,7 @@
-
+
@@ -68,8 +68,8 @@
-->
-
-
+
+
+
-
+
+
@@ -981,22 +981,29 @@ invoiced
-
+
-
+
+
+
+
-
+
-
-
-
+
+
+
+
+
diff --git a/addons/point_of_sale/pos_wizard.xml b/addons/point_of_sale/pos_wizard.xml
index 325350d031b..2e09b5cc9df 100644
--- a/addons/point_of_sale/pos_wizard.xml
+++ b/addons/point_of_sale/pos_wizard.xml
@@ -9,17 +9,13 @@
string="Return Goods"/>
-
+
-
+
@@ -30,64 +26,49 @@
-
-
+
-
+
+
+
-
+
-
-
+ string="Close Statements"/>-->
-
+ string="All Cashboxes Of the day"/-->
diff --git a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
index 854acfde3a9..f3c21da2dcb 100644
--- a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
+++ b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
@@ -138,4 +138,6 @@ class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
res = self.cr.dictfetchall()
return res[0]['net_total'] or 0.0
-report_sxw.report_sxw('report.all.closed.cashbox.of.the.day', 'account.bank.statement', 'addons/statement/report/all_closed_cashbox_of_the_day.rml', parser=all_closed_cashbox_of_the_day)
+
+report_sxw.report_sxw('report.all.closed.cashbox.of.the.day', 'account.bank.statement', 'addons/point_of_sale/report/all_closed_cashbox_of_the_day.rml', parser=all_closed_cashbox_of_the_day)
+
diff --git a/addons/point_of_sale/report/pos_payment_report_date.py b/addons/point_of_sale/report/pos_payment_report_date.py
index 1578f0e6958..82723a43125 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.py
+++ b/addons/point_of_sale/report/pos_payment_report_date.py
@@ -43,7 +43,7 @@ class pos_payment_report_date(report_sxw.rml_parse):
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state in ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id in %s " \
- ,(dt1,dt2,tuple(form['user_id'][0][-1])))
+ ,(dt1,dt2,tuple(form['user_id'])))
data=self.cr.dictfetchall()
return data
@@ -55,7 +55,7 @@ class pos_payment_report_date(report_sxw.rml_parse):
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state in ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id in %s " \
- ,(dt1,dt2,tuple(form['user_id'][0][-1])))
+ ,(dt1,dt2,tuple(form['user_id'])))
res=self.cr.fetchone()[0]
return res
diff --git a/addons/point_of_sale/report/pos_payment_report_user.py b/addons/point_of_sale/report/pos_payment_report_user.py
index cde5162425e..9af9377d64c 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.py
+++ b/addons/point_of_sale/report/pos_payment_report_user.py
@@ -35,7 +35,7 @@ class pos_payment_report_user(report_sxw.rml_parse):
def __pos_payment_user__(self,form):
data={}
- ids = form['user_id'][0][-1]
+ ids = form['user_id']
idss = map(str, ids)
sql = "select pt.name,pol.qty,pol.discount,pol.price_unit, " \
"(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) as total " \
diff --git a/addons/point_of_sale/report/pos_receipt.rml b/addons/point_of_sale/report/pos_receipt.rml
index ecf1aa8c52a..1d5e70241c7 100644
--- a/addons/point_of_sale/report/pos_receipt.rml
+++ b/addons/point_of_sale/report/pos_receipt.rml
@@ -104,7 +104,9 @@
E-mail : [[ address and address.email ]]Shop : [[ o.shop_id.name ]]Vendeur : [[ o.user_id1.name ]]
- Date : [[ o.date_order ]]
+
+ Date : [[ formatLang(o.date_order,date = True) ]]
+
diff --git a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
index d863efd40f3..0eb0dba773a 100644
--- a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
+++ b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
@@ -71,7 +71,7 @@
Tel : [[ address and address.phone ]]E-mail : [[ address and address.email ]]Salesman : [[ o.user_id.name ]]
- Sale Date : [[ o.date_order ]]
+ Sale Date : [[ str(o.date_order) ]]Purchase Voucher : [[o.name]]
diff --git a/addons/point_of_sale/report/pos_sales_user.py b/addons/point_of_sale/report/pos_sales_user.py
index 034587a8ae4..b1b7272a030 100644
--- a/addons/point_of_sale/report/pos_sales_user.py
+++ b/addons/point_of_sale/report/pos_sales_user.py
@@ -42,7 +42,7 @@ class pos_sales_user(report_sxw.rml_parse):
"from pos_order as po,res_users as ru,res_company as rc " \
"where po.date_order >= %s and po.date_order <= %s " \
"and po.company_id=rc.id and po.user_id=ru.id and po.user_id in %s " \
- ,(dt1,dt2,tuple(form['user_id'][0][-1])))
+ ,(dt1,dt2,tuple(form['user_id'])))
data = self.cr.dictfetchall()
return data
diff --git a/addons/point_of_sale/report/pos_sales_user_today.py b/addons/point_of_sale/report/pos_sales_user_today.py
index 4e06a936116..a5caf899069 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.py
+++ b/addons/point_of_sale/report/pos_sales_user_today.py
@@ -36,7 +36,7 @@ class pos_sales_user_today(report_sxw.rml_parse):
def _get_data(self,form):
data={}
- ids = form['user_id'][0][-1]
+ ids = form['user_id']
idss = map(str, ids)
self.cr.execute("select po.name as pos,po.date_order,ru.name as user,po.state,rc.name " \
diff --git a/addons/point_of_sale/security/ir.model.access.csv b/addons/point_of_sale/security/ir.model.access.csv
index efbe26893f1..a761e78c362 100644
--- a/addons/point_of_sale/security/ir.model.access.csv
+++ b/addons/point_of_sale/security/ir.model.access.csv
@@ -19,3 +19,12 @@
"access_report_sales_by_margin_pos","report.sales.by.margin.pos","model_report_sales_by_margin_pos","point_of_sale.group_pos_user",1,0,0,0
"access_report_sales_by_margin_pos_month","report.sales.by.margin.pos.month","model_report_sales_by_margin_pos_month","point_of_sale.group_pos_user",1,0,0,0
"access_singer_statement","singer.statement","model_singer_statement","point_of_sale.group_pos_user",1,0,0,0
+"access_add_product","pos.add.product ","model_pos_add_product","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_confirm","pos.confirm","model_pos_confirm","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_discount","pos.discount","model_pos_discount","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_get_sale","pos.get.sale","model_pos_get_sale","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_close_statement","pos.open.statement","model_pos_open_statement","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_open_statement","pos.close.statement","model_pos_close_statement","point_of_sale.group_pos_user",1,0,0,0
+"acess_pos_box_entries ","pos.box.entries ","model_pos_box_entries","point_of_sale.group_pos_user",1,0,0,0
+"access_pos_box_out","pos.box.out","model_pos_box_out","point_of_sale.group_pos_user",1,0,0,0
+"acess_pos_details ","pos.details ","model_pos_details","point_of_sale.group_pos_user",1,0,0,0
diff --git a/addons/point_of_sale/statement_report.xml b/addons/point_of_sale/statement_report.xml
index 256d0644583..719729a5d45 100644
--- a/addons/point_of_sale/statement_report.xml
+++ b/addons/point_of_sale/statement_report.xml
@@ -9,7 +9,7 @@
name="pos.user.product"
auto="False"
multi="True"
- rml="statement/report/pos_users_product.rml"
+ rml="point_of_sale/report/pos_users_product.rml"
/>
-
diff --git a/addons/point_of_sale/statement_view.xml b/addons/point_of_sale/statement_view.xml
index e7e7119583d..7f241e5bfa8 100644
--- a/addons/point_of_sale/statement_view.xml
+++ b/addons/point_of_sale/statement_view.xml
@@ -417,23 +417,27 @@
+
+ name="Open Registers" parent="point_of_sale.menu_point_config"
+ string="Open Register"
+ action="action_pos_open_statement"
+ id="menu_open_statement" sequence="1" />
+
+ />
+
+ name="Close Register" parent="point_of_sale.menu_point_config"
+ string="Close Register"
+ action="action_pos_close_statement"
+ id="menu_close_statement" sequence="2" />
+
+
diff --git a/addons/point_of_sale/statement_wizard.xml b/addons/point_of_sale/statement_wizard.xml
index f3bffb15ce1..c4f4ddf9072 100644
--- a/addons/point_of_sale/statement_wizard.xml
+++ b/addons/point_of_sale/statement_wizard.xml
@@ -1,9 +1,9 @@
-
-
-
+-->
-
+ string="All Cashboxes Of the day"/>-->
+
+ />
+
diff --git a/addons/point_of_sale/wizard/__init__.py b/addons/point_of_sale/wizard/__init__.py
index 1ff9c124861..1384fb8329a 100644
--- a/addons/point_of_sale/wizard/__init__.py
+++ b/addons/point_of_sale/wizard/__init__.py
@@ -20,24 +20,29 @@
#
##############################################################################
-import wizard_pos_payment
+#import wizard_pos_payment
import wizard_default_journal
-import wizard_refund_order
-import wizard_add_product
-import wizard_confirm
-import wizard_discount
-import wizard_get_sale
import wizard_scan_product
-import wizard_receipt
import wizard_return
-import wizard_pos_payment_report
-import wizard_pos_sales_user
-import wizard_pos_sales_user_today
-import wizard_pos_payment_report_date
-import wizard_pos_payment_report_user
-import wizard_pos_sales_user_current_user
-import wizard_pos_details
-import wizard_open_statement
-import wizard_all_closed_cashbox_of_the_day
+#import wizard_open_statement
+import pos_add_product
+import pos_confirm
+import pos_discount
+import pos_get_sale
+import pos_open_statement
+import pos_close_statement
+import pos_box_entries
+import pos_box_out
+import pos_details
+import pos_sales_user
+import pos_sales_user_today
+import pos_sales_user_current_user
+import all_closed_cashbox_of_the_day
+import pos_receipt
+import pos_payment_report_user
+import pos_payment_report_date
+import pos_payment_report
+import pos_payment
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/all_closed_cashbox_of_the_day.xml b/addons/point_of_sale/wizard/all_closed_cashbox_of_the_day.xml
new file mode 100644
index 00000000000..e78ef5c6d6a
--- /dev/null
+++ b/addons/point_of_sale/wizard/all_closed_cashbox_of_the_day.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ all closed cashbox of the day
+ all.closed.cashbox.of.the.day
+ form
+
+
+
+
+
+
+
+
+ All Cashboxes Of the day
+ all.closed.cashbox.of.the.day
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_add_product.py b/addons/point_of_sale/wizard/pos_add_product.py
new file mode 100644
index 00000000000..f02d8bd3b30
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_add_product.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+class add_product(osv.osv_memory):
+ _name = 'pos.add.product'
+ _description = 'Add Product'
+
+ _columns = {
+ 'product_id': fields.many2one('product.product', 'Product',required=True),
+ 'quantity': fields.float('Quantity ', required=True),
+ }
+ _defaults = {
+ 'quantity': lambda *a: 1,
+ }
+
+ def select_product(self, cr, uid, ids, context):
+ """
+ To get the product and quantity and add in order .
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : Retrun the add product form again for adding more product
+ """
+ this = self.browse(cr, uid, ids[0], context=context)
+ record_id = context and context.get('active_id',False)
+ assert record_id, _('Active ID is not found')
+ if record_id:
+ order_obj = self.pool.get('pos.order')
+ order_obj.add_product(cr, uid, record_id, this.product_id.id,this.quantity,context=context)
+
+ return {
+ 'name': _('Add Product'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'pos.add.product',
+ 'view_id': False,
+ 'target':'new',
+ 'views': False,
+ 'type': 'ir.actions.act_window',
+ }
+add_product()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_add_product.xml b/addons/point_of_sale/wizard/pos_add_product.xml
new file mode 100644
index 00000000000..5d380624f0d
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_add_product.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ Add Product
+ pos.add.product
+ form
+
+
+
+
+
+
+ Add Product
+ ir.actions.act_window
+ pos.add.product
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_box_entries.py b/addons/point_of_sale/wizard/pos_box_entries.py
new file mode 100644
index 00000000000..83e3e576044
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_box_entries.py
@@ -0,0 +1,133 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from tools.misc import UpdateableStr
+from mx import DateTime
+from tools.translate import _
+
+def get_journal(self,cr,uid,context):
+ """
+ Make the selection list of Cash Journal .
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Return the list of journal
+ """
+
+ obj = self.pool.get('account.journal')
+ user = self.pool.get('res.users').browse(cr, uid, uid)
+ ids = obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', user.company_id.id)])
+ res = obj.read(cr, uid, ids, ['id', 'name'], context)
+ res = [(r['id'], r['name']) for r in res]
+ res.insert(0, ('', ''))
+ return res
+
+class pos_box_entries(osv.osv_memory):
+ _name = 'pos.box.entries'
+ _description = 'Pos Box Entries'
+
+
+
+ def _get_income_product(self,cr,uid,context):
+
+ """
+ Make the selection list of purchasing products.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Return of operation of product
+ """
+ obj = self.pool.get('product.product')
+ ids = obj.search(cr, uid, [('income_pdt', '=', True)])
+ res = obj.read(cr, uid, ids, ['id', 'name'], context)
+ res = [(r['id'], r['name']) for r in res]
+ res.insert(0, ('', ''))
+
+ return res
+
+
+ _columns = {
+ 'name': fields.char('Name', size=32,required=True),
+ 'journal_id': fields.selection(get_journal, "Journal",required=True),
+ 'product_id': fields.selection(_get_income_product, "Operation",required=True),
+ 'amount' :fields.float('Amount', digits=(16,2)),
+ 'ref':fields.char('Ref', size=32),
+ }
+ _defaults = {
+ 'journal_id': lambda *a: 1,
+ 'product_id': lambda *a: 1,
+ }
+ def get_in(self, cr, uid, ids, context):
+
+
+ """
+ Create the entry of statement in journal .
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Return of operation of product
+ """
+ statement_obj = self.pool.get('account.bank.statement')
+ product_obj = self.pool.get('product.template')
+ res_obj = self.pool.get('res.users')
+ product_obj=self.pool.get('product.product')
+ bank_statement=self.pool.get('account.bank.statement.line')
+ for data in self.read(cr, uid, ids):
+ args = {}
+ curr_company = res_obj.browse(cr,uid,uid).company_id.id
+ statement_id = statement_obj.search(cr,uid, [('journal_id','=',data['journal_id']),('company_id','=',curr_company),('user_id','=',uid),('state','=','open')])
+ if not statement_id:
+ raise osv.except_osv(_('Error !'), _('You have to open at least one cashbox'))
+
+ product = product_obj.browse(cr, uid, data['product_id'])
+ acc_id = product_obj.browse(cr,uid,data['product_id']).property_account_income
+ if not acc_id:
+ raise osv.except_osv(_('Error !'), _('please check that account is set to %s')%(product_obj.browse(cr,uid,data['product_id']).name))
+ if statement_id:
+ statement_id = statement_id[0]
+ if not statement_id:
+ statement_id = statement_obj.create(cr,uid,{'date':time.strftime('%Y-%m-%d 00:00:00'),
+ 'journal_id':data['journal_id'],
+ 'company_id':curr_company,
+ 'user_id':uid,
+ })
+
+ args['statement_id'] = statement_id
+ args['journal_id'] = data['journal_id']
+ if acc_id:
+ args['account_id'] = acc_id.id
+ args['amount'] = data['amount'] or 0.0
+ args['ref'] = "%s" %(data['ref'] or '')
+ args['name'] = "%s: %s "% (product_obj.browse(cr,uid,data['product_id']).name, data['name'].decode('utf8'))
+ address_u = res_obj.browse(cr,uid,uid).address_id
+ if address_u:
+ partner_id = address_u.partner_id and address_u.partner_id.id or None
+ args['partner_id'] = partner_id
+ statement_line_id =bank_statement.create(cr, uid, args)
+
+ return {}
+pos_box_entries()
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_box_entries.xml b/addons/point_of_sale/wizard/pos_box_entries.xml
new file mode 100644
index 00000000000..e0f0a21402f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_box_entries.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ Box Entries
+ pos.box.entries
+ form
+
+
+
+
+
+
+ Box Entries
+ ir.actions.act_window
+ pos.box.entries
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_box_out.py b/addons/point_of_sale/wizard/pos_box_out.py
new file mode 100644
index 00000000000..52d2be0a3d0
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_box_out.py
@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from tools.misc import UpdateableStr
+from mx import DateTime
+from tools.translate import _
+import pos_box_entries
+print dir(pos_box_entries)
+
+class pos_box_out(osv.osv_memory):
+ _name = 'pos.box.out'
+ _description = 'Pos Box Out'
+
+ def _get_expense_product(self,cr,uid,context):
+
+ """
+ Make the selection list of expense product.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Return of operation of product
+ """
+ obj = self.pool.get('product.product')
+ company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
+ ids = obj.search(cr, uid, ['&', ('expense_pdt', '=', True), '|', ('company_id', '=', company_id), ('company_id', '=', None)])
+ res = obj.read(cr, uid, ids, ['id', 'name'], context)
+ res = [(r['id'], r['name']) for r in res]
+ res.insert(0, ('', ''))
+ return res
+
+ _columns = {
+ 'name': fields.char('Name', size=32,required=True),
+ 'journal_id': fields.selection(pos_box_entries.get_journal, "Journal",required=True),
+ 'product_id': fields.selection(_get_expense_product, "Operation",required=True),
+ 'amount' :fields.float('Amount', digits=(16,2)),
+ 'ref':fields.char('Ref', size=32),
+ }
+ _defaults = {
+ 'journal_id': lambda *a: 1,
+ 'product_id': lambda *a: 1,
+ }
+ def get_out(self, cr, uid, ids, context):
+
+ """
+ Create the entries in the CashBox .
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Return of operation of product
+ """
+ args = {}
+ statement_obj= self.pool.get('account.bank.statement')
+ statement_line_obj=self.pool.get('account.bank.statement.line')
+ product_obj= self.pool.get('product.template')
+ productp_obj= self.pool.get('product.product')
+ res_obj = self.pool.get('res.users')
+ for data in self.read(cr, uid, ids):
+
+ curr_company = res_obj.browse(cr,uid,uid).company_id.id
+ statement_id = statement_obj.search(cr,uid, [('journal_id','=',data['journal_id']),('company_id','=',curr_company),('user_id','=',uid),('state','=','open')])
+ monday = (DateTime.now() + DateTime.RelativeDateTime(weekday=(DateTime.Monday,0))).strftime('%Y-%m-%d')
+ sunday = (DateTime.now() + DateTime.RelativeDateTime(weekday=(DateTime.Sunday,0))).strftime('%Y-%m-%d')
+ done_statmt = statement_obj.search(cr,uid, [('date','>=',monday+' 00:00:00'),('date','<=',sunday+' 23:59:59'),('journal_id','=',data['journal_id']),('company_id','=',curr_company),('user_id','=',uid)])
+ stat_done = statement_obj.browse(cr,uid, done_statmt)
+ address_u = res_obj.browse(cr,uid,uid).address_id
+ am = 0.0
+
+ amount_check = productp_obj.browse(cr,uid,data['product_id']).am_out or False
+ for st in stat_done:
+ for s in st.line_ids:
+ if address_u and s.partner_id==address_u.partner_id and s.am_out:
+ am+=s.amount
+ if (-data['amount'] or 0.0)+ am <-(res_obj.browse(cr,uid,uid).company_id.max_diff or 0.0) and amount_check:
+ val = (res_obj.browse(cr,uid,uid).company_id.max_diff or 0.0)+ am
+ raise osv.except_osv(_('Error !'), _('The maximum value you can still withdraw is exceeded. \n Remaining value is equal to %d ')%(val))
+
+ acc_id = product_obj.browse(cr,uid,data['product_id']).property_account_income
+ if not acc_id:
+ raise osv.except_osv(_('Error !'), _('please check that account is set to %s')%(product_obj.browse(cr,uid,data['product_id']).name))
+ if not statement_id:
+ raise osv.except_osv(_('Error !'), _('You have to open at least one cashbox'))
+ if statement_id:
+ statement_id = statement_id[0]
+ if not statement_id:
+ statement_id = statement_obj.create(cr,uid,{'date':time.strftime('%Y-%m-%d 00:00:00'),
+ 'journal_id':data['journal_id'],
+ 'company_id':curr_company,
+ 'user_id':uid,
+ })
+ args['statement_id']= statement_id
+ args['journal_id']= data['journal_id']
+ if acc_id:
+ args['account_id']= acc_id.id
+ amount= data['amount'] or 0.0
+ if data['amount'] > 0:
+ amount= -data['amount']
+ args['amount'] = amount
+ if productp_obj.browse(cr,uid,data['product_id']).am_out:
+ args['am_out'] = True
+ args['ref'] = data['ref'] or ''
+ args['name'] = "%s: %s "%(product_obj.browse(cr,uid,data['product_id']).name, data['name'].decode('utf8'))
+ address_u = res_obj.browse(cr,uid,uid).address_id
+ if address_u:
+ partner_id = address_u.partner_id and address_u.partner_id.id or None
+ args['partner_id'] = partner_id
+ statement_line_id = statement_line_obj.create(cr, uid, args)
+ return {}
+
+pos_box_out()
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_box_out.xml b/addons/point_of_sale/wizard/pos_box_out.xml
new file mode 100644
index 00000000000..c634b4cf997
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_box_out.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ Box Out
+ pos.box.out
+ form
+
+
+
+
+
+
+ Box Out
+ ir.actions.act_window
+ pos.box.out
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_close_statement.py b/addons/point_of_sale/wizard/pos_close_statement.py
new file mode 100644
index 00000000000..4a1d305973d
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_close_statement.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+import time
+
+class pos_close_statement(osv.osv_memory):
+ _name = 'pos.close.statement'
+ _description = 'Close Statements'
+
+
+ def close_statement(self, cr, uid, ids, context):
+ """
+ Close the statements
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : Blank Dictionary
+ """
+ company_id=self.pool.get('res.users').browse(cr,uid,uid).company_id.id
+ statement_obj = self.pool.get('account.bank.statement')
+ singer_obj = self.pool.get('singer.statement')
+ journal_obj=self.pool.get('account.journal')
+ journal_lst=journal_obj.search(cr,uid,[('company_id','=',company_id),('auto_cash','=',True),('check_dtls','=',False)])
+ journal_ids=journal_obj.browse(cr,uid, journal_lst)
+ for journal in journal_ids:
+ ids = statement_obj.search(cr, uid, [('state','!=','confirm'),('user_id','=',uid),('journal_id','=',journal.id)])
+ statement_obj.button_confirm(cr,uid,ids)
+ return {}
+pos_close_statement()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_close_statement.xml b/addons/point_of_sale/wizard/pos_close_statement.xml
new file mode 100644
index 00000000000..fed3518b706
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_close_statement.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ Close Statements
+ pos.close.statement
+ form
+
+
+
+
+
+
+
+
+
+ Close Register
+ ir.actions.act_window
+ pos.close.statement
+ form
+ form
+ new
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_confirm.py b/addons/point_of_sale/wizard/pos_confirm.py
new file mode 100644
index 00000000000..f2765a5b74a
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_confirm.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+class pos_confirm(osv.osv_memory):
+ _name = 'pos.confirm'
+ _description = 'Point of Sale Confirm'
+ def action_confirm(self, cr, uid, ids, context):
+ """
+ Confirm the order and close the sales .
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return :Blank dictionary
+ """
+
+ this = self.browse(cr, uid, ids[0], context=context)
+ record_id = context and context.get('active_id',False)
+ if record_id:
+ if isinstance(record_id, (int, long)):
+ record_id=[record_id]
+ if record_id:
+ company_id=self.pool.get('res.users').browse(cr,uid,uid).company_id
+ order_obj = self.pool.get('pos.order')
+
+ for order_id in order_obj.browse(cr, uid, record_id, context=context):
+ if order_id.state =='paid':
+ order_obj.write(cr,uid,[order_id.id],{'journal_entry':True})
+ order_obj.create_account_move(cr, uid, [order_id.id], context=context)
+
+ wf_service = netsvc.LocalService("workflow")
+ for i in record_id:
+ wf_service.trg_validate(uid, 'pos.order', i, 'done', cr)
+ return {}
+
+pos_confirm()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_confirm.xml b/addons/point_of_sale/wizard/pos_confirm.xml
new file mode 100644
index 00000000000..384d75f768f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_confirm.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ Sale Confirm
+ pos.confirm
+ form
+
+
+
+
+
+
+ Sale Confirm
+ ir.actions.act_window
+ pos.confirm
+ form
+ form
+ new
+
+
+
+
+ Sale Confirm
+ client_action_multi
+
+ action
+ pos.order
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_details.py b/addons/point_of_sale/wizard/pos_details.py
new file mode 100644
index 00000000000..d51b30bdca9
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_details.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
+import time
+
+class pos_details(osv.osv_memory):
+ _name = 'pos.details'
+ _description = 'Sales Details'
+
+ _columns = {
+ 'date_start': fields.date('Date Start',required=True),
+ 'date_end': fields.date('Date End',required=True)
+ }
+ _defaults = {
+ 'date_start': lambda *a: time.strftime('%Y-%m-%d'),
+ 'date_end': lambda *a: time.strftime('%Y-%m-%d'),
+ }
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+
+ datas = {'ids' : context.get('active_ids', [])}
+ res = self.read(cr, uid, ids, ['date_start','date_end'], context)
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type':'ir.actions.report.xml',
+ 'report_name':'pos.details',
+ 'datas':datas,
+ }
+pos_details()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_details.xml b/addons/point_of_sale/wizard/pos_details.xml
new file mode 100644
index 00000000000..7d6dd346c12
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_details.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ POS Details
+ pos.details
+ form
+
+
+
+
+
+
+
+ Sale Details
+ ir.actions.act_window
+ pos.details
+ form
+ form
+ new
+ {'record_id' : active_id}
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_discount.py b/addons/point_of_sale/wizard/pos_discount.py
new file mode 100644
index 00000000000..8c9f9ac032d
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_discount.py
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+class pos_discount(osv.osv_memory):
+ _name = 'pos.discount'
+ _description = 'Add Discount'
+
+ _columns = {
+ 'discount': fields.float('Discount ', required=True),
+ 'discount_notes': fields.char('Discount Notes',size= 128, required=True),
+ }
+ _defaults = {
+ 'discount': lambda *a: 5,
+ }
+
+ def apply_discount(self, cr, uid, ids, context):
+ """
+ To give the discount of product and check the.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : nothing
+ """
+ this = self.browse(cr, uid, ids[0], context=context)
+ record_id = context and context.get('active_id', False)
+ if isinstance(record_id, (int, long)):
+ record_id=[record_id]
+
+ order_ref = self.pool.get('pos.order')
+ order_line_ref =self.pool.get('pos.order.line')
+
+ for order in order_ref.browse(cr, uid, record_id, context=context):
+
+ for line in order.lines :
+ company_discount = order.company_id.company_discount
+ applied_discount = this.discount
+
+ if applied_discount == 0.00:
+ notice = 'No Discount'
+ elif company_discount >= applied_discount:
+ notice = 'Minimum Discount'
+ else:
+ notice = this.discount_notes
+
+ res_new = {
+ }
+
+ if this.discount <= company_discount:
+ res_new = {
+ 'discount': this.discount,
+ 'notice': notice,
+ 'price_ded': line.price_unit * line.qty * (this.discount or 0) * 0.01 or 0.0
+ }
+ else:
+ res_new = {
+ 'discount': this.discount,
+ 'notice': notice,
+ 'price_ded': line.price_unit * line.qty * (this.discount or 0) * 0.01 or 0.0
+ }
+
+ order_line_ref.write(cr, uid, [line.id], res_new, context=context)
+ return {}
+
+# def check_discount(self, cr, uid, record_id, discount, context):
+# """
+# Check the discount of define by company .
+# @param self: The object pointer.
+# @param cr: A database cursor
+# @param uid: ID of the user currently logged in
+# @param record_id:Current Order id
+# @param discount:Select Discount
+# @param context: A standard dictionary
+# @return : retrun to apply and used the company discount base on condition
+# """
+
+# order_ref = self.pool.get('pos.order')
+#
+# for order in order_ref.browse(cr, uid, record_id, context=context):
+# company_disc = order.company_id.company_discount
+# for line in order.lines :
+# prod_disc = discount
+# if prod_disc <= company_disc :
+# return 'apply_discount'
+# else :
+# return 'disc_discount'
+pos_discount()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/pos_discount.xml b/addons/point_of_sale/wizard/pos_discount.xml
new file mode 100644
index 00000000000..a0a7c534a95
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_discount.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ Apply Discount
+ pos.discount
+ form
+
+
+
+
+
+
+ Apply Discount
+ ir.actions.act_window
+ pos.discount
+ form
+ form
+ new
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_get_sale.py b/addons/point_of_sale/wizard/pos_get_sale.py
new file mode 100644
index 00000000000..901cc3a521f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_get_sale.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+class pos_get_sale(osv.osv_memory):
+ _name = 'pos.get.sale'
+ _description = 'Get From Sale'
+
+ _columns = {
+ 'picking_id': fields.many2one('stock.picking', 'Sale Order', domain=[('state','in',('assigned','confirmed')), ('type', '=', 'out')],context="{'contact_display':'partner'}",required=True),
+ }
+
+ def sale_complete(self, cr, uid, ids, context):
+ """
+ Select the picking order and add the in Point of sale order
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : nothing
+ """
+ this = self.browse(cr, uid, ids[0], context=context)
+ record_id = context and context.get('active_id',False)
+
+ proxy_pos = self.pool.get('pos.order')
+ proxy_pick = self.pool.get('stock.picking')
+ proxy_order_line=self.pool.get('pos.order.line')
+
+ if record_id:
+ order=proxy_pos.browse(cr, uid, record_id, context)
+
+ if order.state in ('paid', 'invoiced'):
+ raise osv.except_osv(_('UserError '), _("You can't modify this order. It has already been paid"))
+
+ for pick in proxy_pick.browse(cr, uid, [this.picking_id.id], context):
+ proxy_pos.write(cr, uid, record_id, {
+ 'last_out_picking':this.picking_id.id,
+ 'partner_id': pick.address_id and pick.address_id.partner_id.id
+ })
+
+ order = proxy_pick.write(cr, uid, [this.picking_id.id], {
+ 'invoice_state': 'none',
+ 'pos_order': record_id
+ })
+
+ for line in pick.move_lines:
+ proxy_order_line.create(cr, uid, {
+ 'name': line.sale_line_id.name,
+ 'order_id': record_id,
+ 'qty': line.product_qty,
+ 'product_id': line.product_id.id,
+ 'price_unit': line.sale_line_id.price_unit,
+ 'discount': line.sale_line_id.discount,
+ })
+
+ return {}
+pos_get_sale()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_get_sale.xml b/addons/point_of_sale/wizard/pos_get_sale.xml
new file mode 100644
index 00000000000..9a28da548d2
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_get_sale.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+ Open Sale Order
+ pos.get.sale
+ form
+
+
+
+
+
+ Select an Open Sale Order
+ ir.actions.act_window
+ pos.get.sale
+ form
+ form
+ new
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_open_statement.py b/addons/point_of_sale/wizard/pos_open_statement.py
new file mode 100644
index 00000000000..1c02221677c
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_open_statement.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+import time
+class pos_open_statement(osv.osv_memory):
+ _name = 'pos.open.statement'
+ _description = 'Open Statements'
+
+
+ def open_statement(self, cr, uid, ids, context):
+ """
+ Open the statements
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : Blank Directory
+ """
+ company_id=self.pool.get('res.users').browse(cr,uid,uid).company_id.id
+ statement_obj =self.pool.get('account.bank.statement')
+ singer_obj = self.pool.get('singer.statement')
+ journal_obj=self.pool.get('account.journal')
+ journal_lst=journal_obj.search(cr,uid,[('company_id','=',company_id),('auto_cash','=',True)])
+ journal_ids=journal_obj.browse(cr,uid, journal_lst)
+ for journal in journal_ids:
+ ids = statement_obj.search(cr, uid, [('state','!=','confirm'),('user_id','=',uid),('journal_id','=',journal.id)])
+ if len(ids):
+ raise osv.except_osv(_('Message'),_('You can not open a Cashbox for "%s". \n Please close the cashbox related to. '%(journal.name) ))
+ sql = """ Select id from account_bank_statement
+ where journal_id=%d
+ and company_id =%d
+ order by id desc limit 1"""%(journal.id,company_id)
+ singer_ids=None
+ cr.execute(sql)
+ st_id = cr.fetchone()
+ number=''
+ sequence_obj=self.pool.get('ir.sequence')
+ if journal.statement_sequence_id:
+ number = sequence_obj.get_id(cr, uid, journal.id)
+ else:
+ number = sequence_obj.get(cr, uid,
+ 'account.bank.statement')
+
+ # statement_id=statement_obj.create(cr,uid,{'journal_id':journal.id,
+ # 'company_id':company_id,
+ # 'user_id':uid,
+ # 'state':'open',
+ # 'name':number
+ # })
+ period=statement_obj._get_period(cr,uid,context) or None
+ cr.execute("INSERT INTO account_bank_statement(journal_id,company_id,user_id,state,name, period_id,date) VALUES(%d,%d,%d,'open','%s',%d,'%s')"%(journal.id,company_id,uid,number, period, time.strftime('%Y-%m-%d %H:%M:%S')))
+ cr.commit()
+ cr.execute("select id from account_bank_statement where journal_id=%d and company_id=%d and user_id=%d and state='open' and name='%s'"%(journal.id,company_id,uid,number))
+ statement_id=cr.fetchone()[0]
+ if st_id:
+ statemt_id=statement_obj.browse(cr,uid,st_id[0])
+ if statemt_id and statemt_id.ending_details_ids:
+ statement_obj.write(cr, uid,[statement_id], {'balance_start':statemt_id.balance_end,
+ 'state':'open'})
+ if statemt_id.ending_details_ids:
+ for i in statemt_id.ending_details_ids:
+ c=singer_obj.create(cr,uid, { 'pieces':i.pieces,
+ 'number':i.number,
+ 'starting_id':statement_id,
+ })
+ cr.commit()
+ return {}
+pos_open_statement()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_open_statement.xml b/addons/point_of_sale/wizard/pos_open_statement.xml
new file mode 100644
index 00000000000..9b80a7ec60d
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_open_statement.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ Open Statements
+ pos.open.statement
+ form
+
+
+
+
+
+
+
+ Open Register
+ ir.actions.act_window
+ pos.open.statement
+ form
+ form
+ new
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_payment.py b/addons/point_of_sale/wizard/pos_payment.py
new file mode 100644
index 00000000000..b29a6a43b7f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment.py
@@ -0,0 +1,204 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+import pos_box_entries
+import time
+from decimal import Decimal
+from tools.translate import _
+import pos_receipt
+
+class pos_make_payment(osv.osv_memory):
+ _name = 'pos.make.payment'
+ _description = 'Point of Sale Payment'
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(pos_make_payment, self).default_get(cr, uid, fields, context=context)
+ record_id = context and context.get('active_id',False)
+ j_obj = self.pool.get('account.journal')
+ company_id = self.pool.get('res.users').browse(cr,uid,uid).company_id.id
+ journal = j_obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', company_id)])
+ if journal:
+ journal = journal[0]
+ else:
+ journal = None
+ wf_service = netsvc.LocalService("workflow")
+
+
+ order = self.pool.get('pos.order').browse(cr, uid, record_id, context)
+ #get amount to pay
+ amount = order.amount_total - order.amount_paid
+
+ if amount<=0.0:
+ context.update({'flag':True})
+ self.pool.get('pos.order').action_paid(cr,uid,[record_id],context)
+ elif order.amount_paid > 0.0:
+ self.pool.get('pos.order').write(cr, uid, [record_id],{'state':'advance'})
+
+ invoice_wanted_checked = False
+
+ current_date = time.strftime('%Y-%m-%d')
+
+ if 'journal' in fields:
+ res.update({'journal':journal})
+ if 'amount' in fields:
+ res.update({'amount':amount})
+ if 'invoice_wanted' in fields:
+ res.update({'invoice_wanted':invoice_wanted_checked})
+ if 'payment_date' in fields:
+ res.update({'payment_date':current_date})
+ if 'payment_name' in fields:
+ res.update({'payment_name':'Payment'})
+ return res
+ def view_init(self, cr, uid, fields_list, context=None):
+ res = super(pos_make_payment, self).view_init(cr, uid, fields_list, context=context)
+ record_id = context and context.get('active_id', False) or False
+ order = self.pool.get('pos.order').browse(cr, uid, record_id)
+ if not order.lines:
+ raise osv.except_osv('Error!','No Order Lines ')
+ True
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ """
+ Changes the view dynamically
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+
+ @return: New arch of view.
+
+ """
+ record_id = context and context.get('record_id', False) or False
+ res = super(pos_make_payment, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
+
+ if record_id:
+ order = self.pool.get('pos.order').browse(cr, uid, record_id)
+ amount = order.amount_total - order.amount_paid
+ if amount==0.0:
+ res['arch'] = """
+ """
+ return res
+
+ def check(self, cr, uid, ids, context=None):
+
+ """Check the order:
+ if the order is not paid: continue payment,
+ if the order is paid print invoice (if wanted) or ticket.
+ """
+ record_id = context and context.get('active_id',False)
+ order_obj = self.pool.get('pos.order')
+ jrnl_obj = self.pool.get('account.journal')
+ order = order_obj.browse(cr, uid, record_id, context)
+ amount = order.amount_total - order.amount_paid
+ data = self.read(cr, uid, ids)[0]
+
+ # Todo need to check ...
+ if amount !=0.0:
+ invoice_wanted = data['invoice_wanted']
+ jrnl_used=False
+ if data.get('journal',False):
+ jrnl_used=jrnl_obj.browse(cr,uid,data['journal'])
+ order_obj.write(cr, uid, [record_id], {'invoice_wanted': invoice_wanted})
+ order_obj.add_payment(cr, uid, record_id, data, context=context)
+
+ if amount<=0.0:
+ context.update({'flag':True})
+ order_obj.action_paid(cr,uid,[record_id],context)
+ if order_obj.test_paid(cr, uid, [record_id]):
+ if order.partner_id and order.invoice_wanted:
+ return self.create_invoice(cr,uid,ids,context)
+ else:
+ return self.print_report(cr, uid, ids, context)
+ return {}
+
+
+ def create_invoice(self, cr, uid, ids, context):
+ wf_service = netsvc.LocalService("workflow")
+ record_ids = context and context.get('active_ids',False)
+ for i in record_ids:
+ wf_service.trg_validate(uid, 'pos.order', i, 'invoice', cr)
+ datas = {'ids' : context.get('active_ids', [])}
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'pos.invoice',
+ 'datas' : datas,
+ }
+
+ def print_report(self, cr, uid, ids, context=None):
+ if not context:
+ context={}
+ """
+ @summary: To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = {}
+ datas['form'] = res
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'pos.receipt',
+ 'datas' : datas,
+ }
+
+ def trigger_wkf(self, cr, uid, data, context):
+ record_id = context and context.get('active_id',False)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'pos.order', record_id, 'payment', cr)
+ return {}
+
+ _columns = {
+ 'journal':fields.selection(pos_box_entries.get_journal, "Journal",required=True),
+ 'product_id': fields.many2one('product.product', "Acompte"),
+ 'amount':fields.float('Amount', digits=(16,2) ,required= True),
+ 'payment_name': fields.char('Payment name', size=32, required=True),
+ 'payment_date': fields.date('Payment date', required=True),
+ 'is_acc': fields.boolean('Accompte'),
+ 'invoice_wanted': fields.boolean('Invoice'),
+ 'num_sale':fields.char('Num.File', size=32),
+ }
+
+pos_make_payment()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_payment.xml b/addons/point_of_sale/wizard/pos_payment.xml
new file mode 100644
index 00000000000..771ec3c72e3
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+"""
+
+
+
+ Add payment :
+ pos.make.payment
+ form
+
+
+
+
+
+ Add payment
+ ir.actions.act_window
+ pos.make.payment
+ form
+ form
+ new
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_payment_report.py b/addons/point_of_sale/wizard/pos_payment_report.py
new file mode 100644
index 00000000000..12cc044e448
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report.py
@@ -0,0 +1,74 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import pooler
+import netsvc
+import wizard
+import time# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
+import time
+
+class pos_payment_report(osv.osv_memory):
+ _name = 'pos.payment.report'
+ _description = 'Payment Report'
+
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+
+ datas = {'ids' : context.get('active_ids', [])}
+ return {
+ 'type':'ir.actions.report.xml',
+ 'report_name':'pos.payment.report',
+ 'datas':datas,
+ }
+pos_payment_report()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/pos_payment_report.xml b/addons/point_of_sale/wizard/pos_payment_report.xml
new file mode 100644
index 00000000000..593068a9ebf
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ Payment Report
+ pos.payment.report
+ form
+
+
+
+
+
+
+ Payment Report
+ ir.actions.act_window
+ pos.details
+ form
+ form
+ new
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_payment_report_date.py b/addons/point_of_sale/wizard/pos_payment_report_date.py
new file mode 100644
index 00000000000..9e24fb76505
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report_date.py
@@ -0,0 +1,65 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv
+from osv import fields
+import time
+class pos_payment_report_date(osv.osv_memory):
+ '''
+ Open ERP Model
+ '''
+ _name = 'pos.payment.report.date'
+ _description = 'POS Payment Report according to date'
+ def print_report(self, cr, uid, ids, context=None):
+
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = self.read(cr, uid, ids, ['date_start','date_end','user_id'])
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'pos.payment.report.date',
+ 'datas' : datas,
+ }
+
+ _columns = {
+ 'date_start': fields.date('Start Date', required=True),
+ 'date_end': fields.date('End Date', required=True),
+ 'user_id':fields.many2many('res.users','res_user_sale','user_id','sale_id','Salesman')
+ }
+ _defaults = {
+ 'date_start': lambda *a: time.strftime('%Y-%m-%d'),
+ 'date_end': lambda *a: time.strftime('%Y-%m-%d'),
+ }
+pos_payment_report_date()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_payment_report_date_view.xml b/addons/point_of_sale/wizard/pos_payment_report_date_view.xml
new file mode 100644
index 00000000000..4c05c8ac514
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report_date_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ pos.payment.report.date.form
+ pos.payment.report.date
+ form
+
+
+
+
+
+
+ Sales lines Report
+ ir.actions.act_window
+ pos.payment.report.date
+ form
+ form
+ new
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_payment_report_user.py b/addons/point_of_sale/wizard/pos_payment_report_user.py
new file mode 100644
index 00000000000..59df8d28881
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report_user.py
@@ -0,0 +1,56 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv
+from osv import fields
+
+class pos_payment_report_user(osv.osv_memory):
+ '''
+ Open ERP Model
+ '''
+ _name = 'pos.payment.report.user'
+ _description = 'Sales lines by Users'
+ def print_report(self, cr, uid, ids, context=None):
+
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = self.read(cr, uid, ids, ['user_id'])
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'pos.payment.report.user',
+ 'datas' : datas,
+ }
+
+ _columns = {
+ 'user_id':fields.many2many('res.users','res_user_sale','user_id','sale_id','Salesman')
+ }
+pos_payment_report_user()
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_payment_report_user.xml b/addons/point_of_sale/wizard/pos_payment_report_user.xml
new file mode 100644
index 00000000000..bccfe92a847
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report_user.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ Pyament Report
+ pos.payment.report
+ form
+
+
+
+
+
+
+
+ Pyament Report
+ ir.actions.act_window
+ pos.payment.report
+ form
+ form
+ new
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_payment_report_user_view.xml b/addons/point_of_sale/wizard/pos_payment_report_user_view.xml
new file mode 100644
index 00000000000..9d6e925ebd7
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_payment_report_user_view.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ pos.payment.report.user.form
+ pos.payment.report.user
+ form
+
+
+
+
+
+ Sales lines by Users
+ ir.actions.act_window
+ pos.payment.report.user
+ form
+ form
+ new
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_receipt.py b/addons/point_of_sale/wizard/pos_receipt.py
new file mode 100644
index 00000000000..a812ad342a4
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_receipt.py
@@ -0,0 +1,66 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+
+from mx import DateTime
+import time
+
+class pos_receipt(osv.osv_memory):
+ _name = 'pos.receipt'
+ _description = 'Point of sale receipt'
+
+ _columns = {
+
+ }
+ def view_init(self, cr , uid , fields_list, context=None):
+ order_lst =self. pool.get('pos.order').browse(cr,uid,context['active_id'])
+ for order in order_lst:
+ if order.state_2 in ('to_verify'):
+ raise osv.except_osv(_('Error!', 'Can not print the receipt because of discount and/or payment '))
+ True
+ def print_report(self, cr, uid, ids, context=None):
+
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+ datas = {'ids' : context.get('active_ids',[])}
+ res = {}
+ datas['form'] = res
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'pos.receipt',
+ 'datas' : datas,
+ }
+
+pos_receipt()
+
+
+
+
diff --git a/addons/point_of_sale/wizard/pos_receipt_view.xml b/addons/point_of_sale/wizard/pos_receipt_view.xml
new file mode 100644
index 00000000000..5839e4fcb3e
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_receipt_view.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ Receipt
+ pos.receipt
+ form
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/point_of_sale/wizard/wizard_return.py b/addons/point_of_sale/wizard/pos_return.py
similarity index 93%
rename from addons/point_of_sale/wizard/wizard_return.py
rename to addons/point_of_sale/wizard/pos_return.py
index 591fd00b18a..1b5860cef1c 100644
--- a/addons/point_of_sale/wizard/wizard_return.py
+++ b/addons/point_of_sale/wizard/pos_return.py
@@ -20,19 +20,69 @@
#
##############################################################################
-import wizard
-import pooler
-from tools.misc import UpdateableStr
+#import wizard
+#import pooler
+#from tools.misc import UpdateableStr
+#
+#import netsvc
+#import time
+#
+#from tools.translate import _
+#from decimal import Decimal
+
+#arch=UpdateableStr()
+#fields={}
import netsvc
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
import time
-from tools.translate import _
-from decimal import Decimal
+class pos_return(osv.osv_memory):
+ _name = 'pos.return'
+ _description = 'Point of sale return'
-arch=UpdateableStr()
-fields={}
+ _columns = {
+
+ }
+pos_return()
+
+class pos_add_payment(osv.osv_memory):
+ _name = 'pos.add.payment'
+ _description = 'Add Payment'
+
+ _columns = {
+ 'amount': fields.float('Amount', digits=(16,2),required=True),
+ 'journal': fields.function(_get_journal, 'Journal', method=True, required=True),
+ 'payment_date': fields.date('Payment date',required=True),
+ 'payment_name': fields.char('Payment name', size=32,required=True),
+ 'invoice_wanted': fields.boolean('Invoice'),
+ 'num_sale': fields.char('Num.Cof', size=32)
+ }
+ _defaults = {
+ 'payment_name': lambda *a: 'Payment'
+ }
+
+pos_add_payment()
+
+class pos_add_product(osv.osv_memory):
+ _name = 'pos.add.product'
+ _description = 'Add Product'
+
+ _columns = {
+ 'product': fields.many2one('product.product','Product', required=True),
+ 'quantity': fields.integer( 'Quantity',required=True),
+
+ }
+
+ _defaults = {
+ 'product': lambda *a: 'False',
+ 'quantity': lambda *a: 1
+ }
+
+pos_add_product()
def _get_journal(self, cr, uid, context):
diff --git a/addons/point_of_sale/wizard/pos_sale_user_today.xml b/addons/point_of_sale/wizard/pos_sale_user_today.xml
new file mode 100644
index 00000000000..78f01a4650f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_sale_user_today.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ Sales User Today
+ pos.sales.user.today
+ form
+
+
+
+
+
+ Sale by Users
+ ir.actions.act_window
+ pos.sales.user.today
+ form
+ form
+ new
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_sales_user.py b/addons/point_of_sale/wizard/pos_sales_user.py
new file mode 100644
index 00000000000..cbb2ddaead9
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_sales_user.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
+import time
+
+class pos_sale_user(osv.osv_memory):
+ _name = 'pos.sale.user'
+ _description = 'Sale by User'
+
+ _columns = {
+ 'date_start': fields.date('Date Start',required=True),
+ 'date_end': fields.date('Date End',required=True),
+ 'user_id': fields.many2many('res.users', 'sale_user_rel', 'user_id', 'uid', 'Salesman'),
+ }
+
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : return report
+ """
+
+ datas = {'ids' : context.get('active_ids', [])}
+ res = self.read(cr, uid, ids, ['date_start','date_end','user_id'], context)
+ res = res and res[0] or {}
+ datas['form'] = res
+ return {
+ 'type':'ir.actions.report.xml',
+ 'report_name':'pos.sales.user',
+ 'datas':datas,
+ }
+pos_sale_user()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/pos_sales_user.xml b/addons/point_of_sale/wizard/pos_sales_user.xml
new file mode 100644
index 00000000000..0fc46f81aac
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_sales_user.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ Sale By User
+ pos.sale.user
+ form
+
+
+
+
+
+
+
+ Sale by User
+ ir.actions.act_window
+ pos.sale.user
+ form
+ form
+ new
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/auction/wizard/auction_wizard_enable_taken.py b/addons/point_of_sale/wizard/pos_sales_user_current_user.py
similarity index 51%
rename from addons/auction/wizard/auction_wizard_enable_taken.py
rename to addons/point_of_sale/wizard/pos_sales_user_current_user.py
index 01f54ca28dc..22ac95a5451 100644
--- a/addons/auction/wizard/auction_wizard_enable_taken.py
+++ b/addons/point_of_sale/wizard/pos_sales_user_current_user.py
@@ -19,43 +19,39 @@
#
##############################################################################
-import wizard
import netsvc
-import pooler
-#field name="confirm_en"/>
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
+import time
-take_form = """
-
-"""
-
-take_fields = {
- 'confirm_en': {'string':'Catalog Number', 'type':'integer'},
-}
-
-def _confirm_enable(self,cr,uid,data,context={}):
- pool = pooler.get_pool(cr.dbname)
- pool.get('auction.lots').write(cr,uid,data['ids'],{'ach_emp':False})
- return {}
-
-class enable_take_away(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {
- 'type' : 'form',
- 'arch' : take_form,
- 'fields' : take_fields,
- 'state' : [ ('end', 'Cancel'),('go', 'Enable Taken away')]}
- },
- 'go' : {
- 'actions' : [_confirm_enable],
- 'result' : {'type' : 'state', 'state' : 'end'}
- },
-}
-enable_take_away('auction.lots.enable')
+class pos_sales_user_today_current_user(osv.osv_memory):
+ _name = 'pos.sales.user.today.current_user'
+ _description = 'Sales Details'
+ _columns = {
+ }
+
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+
+ datas = {'ids' : context.get('active_ids', [])}
+ res = self.read(cr, uid, ids, [], context)
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type':'ir.actions.report.xml',
+ 'report_name':'pos.sales.user.today.current.user',
+ 'datas':datas,
+ }
+pos_sales_user_today_current_user()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/pos_sales_user_current_user.xml b/addons/point_of_sale/wizard/pos_sales_user_current_user.xml
new file mode 100644
index 00000000000..5625b70770f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_sales_user_current_user.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ Sales for Current User
+ pos.sales.user.today.current_user
+ form
+
+
+
+
+
+
+
+ Sales for Current User
+ ir.actions.act_window
+ pos.sales.user.today.current_user
+ form
+ form
+ new
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_sales_user_today.py b/addons/point_of_sale/wizard/pos_sales_user_today.py
new file mode 100644
index 00000000000..50464b6936d
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_sales_user_today.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import netsvc
+from osv import osv,fields
+from tools.translate import _
+from mx import DateTime
+import time
+
+class pos_sales_user_today(osv.osv_memory):
+ _name = 'pos.sales.user.today'
+ _description = 'Sales User Today'
+
+ _columns = {
+ 'user_id': fields.many2many('res.users', 'sale_user_rel_today', 'user_id', 'uid', 'Salesman'),
+ }
+
+ def print_report(self, cr, uid, ids, context={}):
+ """
+ To get the date and print the report
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param context: A standard dictionary
+ @return : retrun report
+ """
+
+ datas = {'ids' : context.get('active_ids', [])}
+ res = self.read(cr, uid, ids, ['user_id'], context)
+ res = res and res[0] or {}
+ datas['form'] = res
+
+ return {
+ 'type':'ir.actions.report.xml',
+ 'report_name':'pos.sales.user.today',
+ 'datas':datas,
+ }
+pos_sales_user_today()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/point_of_sale/wizard/wizard_add_product.py b/addons/point_of_sale/wizard/wizard_add_product.py
deleted file mode 100644
index 0daa0bdf0db..00000000000
--- a/addons/point_of_sale/wizard/wizard_add_product.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import wizard
-
-
-_form = """
-
-"""
-_fields = {
- 'product': {
- 'string': 'Product',
- 'type': 'many2one',
- 'relation': 'product.product',
- 'required': True,
- 'default': False
- },
-
- 'quantity': {
- 'string': 'Quantity',
- 'type': 'integer',
- 'required': True,
- 'default': 1},
- }
-
-
-def _add(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('pos.order')
- order_obj.add_product(cr, uid, data['id'], data['form']['product'],
- data['form']['quantity'], context=context)
-
- return {}
-
-
-def _pre_init(self, cr, uid, data, context):
- return {'product': False, 'quantity': 1}
-
-
-class add_product(wizard.interface):
-
- states = {
- 'init': {
- 'actions': [_pre_init],
- 'result': {
- 'type': 'form',
- 'arch': _form,
- 'fields': _fields,
- 'state': [('end', 'Cancel'), ('add', '_Add product', 'gtk-ok', True)
- ]
- }
- },
- 'add': {
- 'actions': [_add],
- 'result': {
- 'type': 'state',
- 'state': 'init',
- }
- },
- }
-
-add_product('pos.add_product')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_all_closed_cashbox_of_the_day.py b/addons/point_of_sale/wizard/wizard_all_closed_cashbox_of_the_day.py
deleted file mode 100644
index bdb7f72cb93..00000000000
--- a/addons/point_of_sale/wizard/wizard_all_closed_cashbox_of_the_day.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import netsvc
-import wizard
-import time
-
-
-class wizard_all_closed_cashbox_of_the_day(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'print', 'report':'all.closed.cashbox.of.the.day', 'state':'end'}
- },
- }
-
-wizard_all_closed_cashbox_of_the_day('all.closed.cashbox.of.the.day')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_confirm.py b/addons/point_of_sale/wizard/wizard_confirm.py
deleted file mode 100644
index b819c840ae5..00000000000
--- a/addons/point_of_sale/wizard/wizard_confirm.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-import wizard
-import netsvc
-import pooler
-import time
-
-_form = """
-
-"""
-_fields = {}
-
-def _confirm(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- company_id=pool.get('res.users').browse(cr,uid,uid).company_id
- order_obj = pool.get('pos.order')
- for order_id in order_obj.browse(cr, uid, data['ids'], context=context):
- if order_id.state =='paid':
- order_obj.write(cr,uid,[order_id.id],{'journal_entry':True})
- order_obj.create_account_move(cr, uid, [order_id.id], context=context)
-
- wf_service = netsvc.LocalService("workflow")
- for i in data['ids']:
- wf_service.trg_validate(uid, 'pos.order', i, 'done', cr)
- return {}
-
-def _get_state(self, cr, uid, data, context):
- action = 'invoice'
- return action
-class pos_confirm(wizard.interface):
-
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': _form,
- 'fields': _fields,
- 'state': (('end', 'No','gtk-cancel'),
- ('open', 'Yes', 'gtk-ok', True)
- )
- }
- },
- 'open': {
- 'actions': [_confirm],
- 'result': {
- 'type': 'state',
- 'state':'end'}
- },
- }
-
-pos_confirm('pos.confirm')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_discount.py b/addons/point_of_sale/wizard/wizard_discount.py
deleted file mode 100644
index 035c387793c..00000000000
--- a/addons/point_of_sale/wizard/wizard_discount.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import wizard
-
-_form = """
-
-"""
-disc_form = """
-
-
-"""
-
-
-_fields = {
- 'discount': {
- 'string': 'Discount percentage',
- 'type': 'float',
- 'required': True,
- 'default': lambda *args: 5
- },
-}
-
-disc_fields = {
- 'note': {
- 'string': 'Discount Notes',
- 'type': 'char',
- 'size': 128,
- 'required': True
- },
-}
-
-class discount_wizard(wizard.interface):
-
- def apply_discount(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order_ref = pool.get('pos.order')
- order_line_ref = pool.get('pos.order.line')
- for order in order_ref.browse(cr, uid, data['ids'], context=context):
- for line in order.lines :
- company_discount = order.company_id.company_discount
- applied_discount =data['form']['discount']
- if applied_discount == 0.00:
- notice = 'No Discount'
- elif company_discount >= applied_discount:
- notice = 'Minimum Discount'
- else:
- notice = data['form']['note']
- if self.check_discount(cr, uid, data, context) == 'apply_discount':
- order_line_ref.write(cr, uid, [line.id],
- {'discount': data['form']['discount'],
- 'price_ded':line.price_unit*line.qty*(data['form']['discount'] or 0)*0.01 or 0.0,
- 'notice':notice
- },
- context=context,)
- else :
- order_line_ref.write(cr, uid, [line.id],
- {'discount': data['form']['discount'],
- 'notice': notice,
- 'price_ded':line.price_unit*line.qty*(data['form']['discount'] or 0)*0.01 or 0.0
- },
- context=context,)
- return {}
-
- def check_discount(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order_ref = pool.get('pos.order')
- for order in order_ref.browse(cr, uid, data['ids'], context=context):
- company_disc = order.company_id.company_discount
- for line in order.lines :
- prod_disc = data['form']['discount']
- if prod_disc <= company_disc :
- return 'apply_discount'
- else :
- return 'disc_discount'
-
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': _form,
- 'fields': _fields,
- 'state': (('end', 'Cancel'),
- ('check_disc', 'Apply Discount', 'gtk-ok', True)
- )
- }
- },
-
- 'check_disc': {
- 'actions': [],
- 'result': {'type':'choice','next_state':check_discount}
- },
-
- 'disc_discount': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': disc_form,
- 'fields':disc_fields,
- 'state': (('end', 'Cancel'),
- ('apply_discount', 'Apply Discount', 'gtk-ok', True)
- )
- }
- },
- 'apply_discount': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': apply_discount,
- 'state': "end",
- }
- },
- }
-
-discount_wizard('pos.discount')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_get_sale.py b/addons/point_of_sale/wizard/wizard_get_sale.py
deleted file mode 100644
index de686c11d49..00000000000
--- a/addons/point_of_sale/wizard/wizard_get_sale.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import wizard
-from tools.translate import _
-
-picking_form = """
-
-"""
-
-picking_fields = {
- 'picking_id': {'string': 'Sale Order', 'type': 'many2one', 'relation': 'stock.picking', 'required': True}
-}
-
-
-def _sale_complete(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order = pool.get('pos.order').browse(cr, uid, data['id'], context)
-
- if order.state in ('paid', 'invoiced'):
- raise wizard.except_wizard(_('UserError'), _("You can't modify this order. It has already been paid"))
-
- pick = pool.get('stock.picking').browse(cr, uid, data['form']['picking_id'], context)
-
- pool.get('pos.order').write(cr, uid, data['id'], {
- 'last_out_picking': data['form']['picking_id'],
- 'partner_id': pick.address_id and pick.address_id.partner_id.id
- })
-
- order = pool.get('stock.picking').write(cr, uid, [data['form']['picking_id']], {
- 'invoice_state': 'none',
- 'pos_order': data['id']
- })
-
- for line in pick.move_lines:
- pool.get('pos.order.line').create(cr, uid, {
- 'name': line.sale_line_id.name,
- 'order_id': data['id'],
- 'qty': line.product_qty,
- 'product_id': line.product_id.id,
- 'price_unit': line.sale_line_id.price_unit,
- 'discount': line.sale_line_id.discount,
- })
-
- return {}
-
-
-class pos_sale_get(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': picking_form,
- 'fields': picking_fields,
- 'state': (('end', 'Cancel'),
- ('set', 'Confirm', 'gtk-ok', True)
- )
- }
- },
- 'set': {
- 'actions': [_sale_complete],
- 'result': {
- 'type': 'state',
- 'state': "end",
- }
- },
- }
-
-pos_sale_get('pos.sale.get')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_open_statement.py b/addons/point_of_sale/wizard/wizard_open_statement.py
deleted file mode 100644
index 09205a97b08..00000000000
--- a/addons/point_of_sale/wizard/wizard_open_statement.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import wizard
-from tools.translate import _
-import time
-
-statement_form = """
-
-"""
-statement_form_close = """
-
-"""
-
-statement_fields = {}
-
-def _close_statement(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- company_id=pool.get('res.users').browse(cr,uid,uid).company_id.id
- statement_obj = pool.get('account.bank.statement')
- singer_obj = pool.get('singer.statement')
- journal_obj=pool.get('account.journal')
- journal_lst=journal_obj.search(cr,uid,[('company_id','=',company_id),('auto_cash','=',True),('check_dtls','=',False)])
- journal_ids=journal_obj.browse(cr,uid, journal_lst)
- for journal in journal_ids:
- ids = statement_obj.search(cr, uid, [('state','!=','confirm'),('user_id','=',uid),('journal_id','=',journal.id)])
- statement_obj.button_confirm(cr,uid,ids)
- return {}
-def _open_statement(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- company_id=pool.get('res.users').browse(cr,uid,uid).company_id.id
- statement_obj = pool.get('account.bank.statement')
- singer_obj = pool.get('singer.statement')
- journal_obj=pool.get('account.journal')
- journal_lst=journal_obj.search(cr,uid,[('company_id','=',company_id),('auto_cash','=',True)])
- journal_ids=journal_obj.browse(cr,uid, journal_lst)
- for journal in journal_ids:
- ids = statement_obj.search(cr, uid, [('state','!=','confirm'),('user_id','=',uid),('journal_id','=',journal.id)])
- if len(ids):
- raise wizard.except_wizard(_('Message'),_('You can not open a Cashbox for "%s". \n Please close the cashbox related to. '%(journal.name) ))
- sql = """ Select id from account_bank_statement
- where journal_id=%d
- and company_id =%d
- order by id desc limit 1"""%(journal.id,company_id)
- singer_ids=None
- cr.execute(sql)
- st_id = cr.fetchone()
- number=''
- if journal.statement_sequence_id:
- number = pool.get('ir.sequence').get_id(cr, uid, journal.id)
- else:
- number = pool.get('ir.sequence').get(cr, uid,
- 'account.bank.statement')
-
-# statement_id=statement_obj.create(cr,uid,{'journal_id':journal.id,
-# 'company_id':company_id,
-# 'user_id':uid,
-# 'state':'open',
-# 'name':number
-# })
- period=statement_obj._get_period(cr,uid,context) or None
- cr.execute("INSERT INTO account_bank_statement(journal_id,company_id,user_id,state,name, period_id,date) VALUES(%d,%d,%d,'open','%s',%d,'%s')"%(journal.id,company_id,uid,number, period, time.strftime('%Y-%m-%d %H:%M:%S')))
- cr.commit()
- cr.execute("select id from account_bank_statement where journal_id=%d and company_id=%d and user_id=%d and state='open' and name='%s'"%(journal.id,company_id,uid,number))
- statement_id=cr.fetchone()[0]
- if st_id:
- statemt_id=statement_obj.browse(cr,uid,st_id[0])
- if statemt_id and statemt_id.ending_details_ids:
- statement_obj.write(cr, uid,[statement_id], {'balance_start':statemt_id.balance_end,
- 'state':'open'})
- if statemt_id.ending_details_ids:
- for i in statemt_id.ending_details_ids:
- c=singer_obj.create(cr,uid, { 'pieces':i.pieces,
- 'number':i.number,
- 'starting_id':statement_id,
- })
- cr.commit()
- return {}
-
-class statement_open(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': statement_form,
- 'fields': statement_fields,
- 'state': (('end', 'No','gtk-cancel'),
- ('open', 'Yes', 'gtk-ok', True)
- )
- }
- },
- 'open': {
- 'actions': [_open_statement],
- 'result': {
- 'type': 'state',
-# 'action' :_open_statement,
- 'state':'end'}
- },
- }
-statement_open('statement.open')
-class statement_close(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': statement_form_close,
- 'fields': statement_fields,
- 'state': (('end', 'No','gtk-cancel'),
- ('open', 'Yes', 'gtk-ok', True)
- )
- }
- },
- 'open': {
- 'actions': [_close_statement],
- 'result': {
- 'type': 'state',
- 'state':'end'}
- },
- }
-statement_close('statement.close')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/wizard_pos_details.py b/addons/point_of_sale/wizard/wizard_pos_details.py
deleted file mode 100644
index 80a0593c08e..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_details.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields
-from osv import osv
-import time
-import ir
-from mx import DateTime
-import datetime
-import pooler
-from tools import config
-import wizard
-import netsvc
-
-
-pos_details_res_form= """
-
-"""
-
-pos_details_res_field= {
- 'date_start': {'string':'Start Date','type':'date','required': True,'default': lambda *a: time.strftime('%Y-%m-%d')},
- 'date_end': {'string':'End Date','type':'date','required': True,'default': lambda *a: time.strftime('%Y-%m-%d')},
-
-
-}
-
-
-class wizard_pos_details(wizard.interface):
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : pos_details_res_form,
- 'fields' : pos_details_res_field,
- 'state' : [('end', 'Cancel','gtk-cancel'),('print_report', 'Print Report','gtk-print') ]}
- },
- 'print_report' : {
- 'actions' : [],
- 'result' : {'type' : 'print',
- 'report':'pos.details',
- 'state' : 'end'}
- },
- }
-wizard_pos_details('pos.details')
diff --git a/addons/point_of_sale/wizard/wizard_pos_payment.py b/addons/point_of_sale/wizard/wizard_pos_payment.py
deleted file mode 100644
index 580b0b308dd..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_payment.py
+++ /dev/null
@@ -1,233 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import netsvc
-import wizard
-import time
-from decimal import Decimal
-from tools.translate import _
-
-
-def _get_journal(self, cr, uid, context):
- pool = pooler.get_pool(cr.dbname)
- obj = pool.get('account.journal')
- c=pool.get('res.users').browse(cr,uid,uid).company_id.id
- ids = obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', c)])
- res = obj.read(cr, uid, ids, ['id', 'name'], context)
- res = [(r['id'], r['name']) for r in res]
- return res
-
-
-payment_form = """
-
-"""
-
-payment_fields = {
- 'amount': {'string': 'Amount', 'type': 'float', 'required': True},
- 'is_acc': {'string': 'Accompte', 'type': 'boolean'},
- 'invoice_wanted': {'string': 'Invoice', 'type': 'boolean'},
- 'journal': {'string': 'Journal',
- 'type': 'selection',
- 'selection': _get_journal,
- 'required': True,
- },
- 'payment_date': {'string': 'Payment date', 'type': 'date', 'required': True},
- 'payment_name': {'string': 'Payment name', 'type': 'char', 'size': '32', 'required':True, 'default':'Payment'},
- 'num_sale': {'string': 'Num.File', 'type': 'char', 'size': '32'},
- 'product_id': {'string':'Acompte','type': 'many2one', 'relation': 'product.product'},
- }
-
-
-def _pre_init(self, cr, uid, data, context):
- def _get_journal(pool, order):
- j_obj = pool.get('account.journal')
- c = pool.get('res.users').browse(cr,uid,uid).company_id.id
- journal = j_obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', c)])
- if journal:
- journal = journal[0]
- else:
- journal = None
- return journal
-
- wf_service = netsvc.LocalService("workflow")
- # wf_service.trg_validate(uid, 'pos.order', data['id'], 'start_payment', cr)
-
- pool = pooler.get_pool(cr.dbname)
- order = pool.get('pos.order').browse(cr, uid, data['id'], context)
- #get amount to pay
- #amount = Decimal(str(order.amount_total)) - Decimal(str(order.amount_paid))
- amount = order.amount_total - order.amount_paid
-
- if amount<=0:
- context.update({'flag':True})
- pool.get('pos.order').action_paid(cr,uid,data['ids'],context)
- elif order.amount_paid > 0:
- pool.get('pos.order').write(cr, uid, data['id'],{'state':'advance'})
-
-
- # get journal:
- journal = _get_journal(pool, order)
-
- # check if an invoice is wanted:
- #invoice_wanted_checked = not not order.partner_id # not not -> boolean
- invoice_wanted_checked = False
-
- # select the current date
- current_date = time.strftime('%Y-%m-%d')
-
- return {'journal': journal, 'amount': amount, 'invoice_wanted': invoice_wanted_checked, 'payment_date': current_date}
-
-
-def _add_pay(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('pos.order')
- jrnl_obj = pool.get('account.journal')
- result = data['form']
- invoice_wanted = data['form']['invoice_wanted']
- jrnl_used=False
- if data['form'] and data['form'].get('journal',False):
- jrnl_used=jrnl_obj.browse(cr,uid,data['form']['journal'])
-
- # add 'invoice_wanted' in 'pos.order'
- order_obj.write(cr, uid, [data['id']], {'invoice_wanted': invoice_wanted})
-
- order_obj.add_payment(cr, uid, data['id'], result, context=context)
- return {}
-
-
-def _check(self, cr, uid, data, context):
- """Check the order:
- if the order is not paid: continue payment,
- if the order is paid print invoice (if wanted) or ticket.
- """
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('pos.order')
- order = order_obj.browse(cr, uid, data['id'], context)
- amount = order.amount_total - order.amount_paid
- if amount<=0:
- context.update({'flag':True})
- pool.get('pos.order').action_paid(cr,uid,data['ids'],context)
-
- action = 'ask_pay'
- if order_obj.test_paid(cr, uid, [data['id']]):
- if order.partner_id:
- if order.invoice_wanted:
- action = 'invoice'
- else:
- action = 'paid'
- elif order.date_payment:
- action = 'receipt'
- else:
- action = 'paid'
- return action
-
-
-def create_invoice(self, cr, uid, data, context):
- wf_service = netsvc.LocalService("workflow")
- for i in data['ids']:
- wf_service.trg_validate(uid, 'pos.order', i, 'invoice', cr)
- return {}
-
-def _trigger_wkf(self, cr, uid, data, context):
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'pos.order', data['id'], 'payment', cr)
- return {}
-
-
-
-class pos_payment(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'choice',
- 'next_state': _check,
- }
- },
- 'ask_pay': {
- 'actions': [_pre_init],
- 'result': {
- 'type': 'form',
- 'arch': payment_form,
- 'fields': payment_fields,
- 'state': (('end', 'Cancel'), ('finish', 'Finish'), ('add_pay', 'Ma_ke payment', 'gtk-ok', True))
- }
- },
- 'add_pay': {
- 'actions': [_add_pay],
- 'result': {
- 'type': 'state',
- 'state': "init",
- }
- },
- 'invoice': {
- 'actions': [create_invoice],
- 'result': {
- 'type': 'print',
- 'report': 'pos.invoice',
- 'state': 'finish'
- }
- },
- 'receipt': {
- 'actions': [],
- 'result': {
- 'type': 'print',
- 'report': 'pos.receipt',
- 'state': 'finish'
- }
- },
- 'paid': {
- 'actions': [],
- 'result': {
- 'type': 'print',
- 'report': 'pos.receipt',
- 'state': 'finish'
- }
- },
- 'finish': {
- 'actions': [_trigger_wkf],
- 'result': {
- 'type': 'state',
- 'state': 'end'
- }
- },
-
- }
-
-pos_payment('pos.payment')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_pos_payment_report.py b/addons/point_of_sale/wizard/wizard_pos_payment_report.py
deleted file mode 100644
index 1f6ed1afda5..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_payment_report.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import netsvc
-import wizard
-import time
-
-
-class wizard_pos_payment_report(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'print', 'report':'pos.payment.report', 'state':'end'}
- },
- }
-
-wizard_pos_payment_report('pos.payment.report')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_pos_payment_report_date.py b/addons/point_of_sale/wizard/wizard_pos_payment_report_date.py
deleted file mode 100644
index 570b6de9ad7..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_payment_report_date.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import netsvc
-import wizard
-import time
-
-pos_payment_report_date_form= """
-
-"""
-
-pos_payment_report_date_field= {
-
- 'date_start': {'string':'Start Date','type':'date','required': True,'default': lambda *a: time.strftime('%Y-%m-%d')},
- 'date_end': {'string':'End Date','type':'date','required': True,'default': lambda *a: time.strftime('%Y-%m-%d')},
- 'user_id': {'string': 'Salesman', 'type': 'many2many', 'relation': 'res.users', 'required': True},
-}
-
-
-class wizard_pos_payment_report_date(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : pos_payment_report_date_form,
- 'fields' : pos_payment_report_date_field,
- 'state' : [('end', 'Cancel','gtk-cancel'),('print_report', 'Print Report','gtk-print') ]}
- },
- 'print_report' : {
- 'actions' : [],
- 'result' : {'type' : 'print',
- 'report':'pos.payment.report.date',
- 'state' : 'end'}
- },
- }
-
-wizard_pos_payment_report_date('pos.payment.report.date')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_pos_payment_report_user.py b/addons/point_of_sale/wizard/wizard_pos_payment_report_user.py
deleted file mode 100644
index aaad1d328c5..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_payment_report_user.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields
-from osv import osv
-import time
-import ir
-from mx import DateTime
-import datetime
-import pooler
-from tools import config
-import wizard
-import netsvc
-
-
-pos_payment_report_user_form= """
-
-"""
-
-pos_payment_report_user_field= {
-
- 'user_id': {'string': 'Salesman', 'type': 'many2many', 'relation': 'res.users', 'required': True},
-
-}
-
-
-class wizard_pos_payment_report_user(wizard.interface):
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : pos_payment_report_user_form,
- 'fields' : pos_payment_report_user_field,
- 'state' : [('end', 'Cancel','gtk-cancel'),('print_report', 'Print Report','gtk-print') ]}
- },
- 'print_report' : {
- 'actions' : [],
- 'result' : {'type' : 'print',
- 'report':'pos.payment.report.user',
- 'state' : 'end'}
- },
- }
-wizard_pos_payment_report_user('pos.payment.report.user')
diff --git a/addons/point_of_sale/wizard/wizard_pos_sales_user_current_user.py b/addons/point_of_sale/wizard/wizard_pos_sales_user_current_user.py
deleted file mode 100644
index a76c0c97b59..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_sales_user_current_user.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import pooler
-import netsvc
-import wizard
-import time
-
-
-class wizard_pos_sales_user_today_current_user(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'print', 'report':'pos.sales.user.today.current.user', 'state':'end'}
- },
- }
-
-wizard_pos_sales_user_today_current_user('pos.sales.user.today.current.user')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_pos_sales_user_today.py b/addons/point_of_sale/wizard/wizard_pos_sales_user_today.py
deleted file mode 100644
index 58d990ef4bc..00000000000
--- a/addons/point_of_sale/wizard/wizard_pos_sales_user_today.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields
-from osv import osv
-import time
-import ir
-from mx import DateTime
-import datetime
-import pooler
-from tools import config
-import wizard
-import netsvc
-
-
-sale_pos_res_form= """
-
-"""
-
-sale_pos_res_field= {
-
- 'user_id': {'string': 'Salesman', 'type': 'many2many', 'relation': 'res.users', 'required': True},
-
-}
-
-
-class wizard_pos_sales_user_today(wizard.interface):
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : sale_pos_res_form,
- 'fields' : sale_pos_res_field,
- 'state' : [('end', 'Cancel','gtk-cancel'),('print_report', 'Print Report','gtk-print') ]}
- },
- 'print_report' : {
- 'actions' : [],
- 'result' : {'type' : 'print',
- 'report':'pos.sales.user.today',
- 'state' : 'end'}
- },
- }
-wizard_pos_sales_user_today('pos.sales.user.today')
diff --git a/addons/point_of_sale/wizard/wizard_receipt.py b/addons/point_of_sale/wizard/wizard_receipt.py
deleted file mode 100644
index 64e8a2e5685..00000000000
--- a/addons/point_of_sale/wizard/wizard_receipt.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-#import time
-#import netsvc
-#from tools.misc import UpdateableStr
-#import pooler
-import wizard
-import pooler
-from tools.translate import _
-
-def _check(self,cr,uid,data,*a):
- pool = pooler.get_pool(cr.dbname)
- order_lst = pool.get('pos.order').browse(cr,uid,data['ids'])
- for order in order_lst:
- if order.state_2 in ('to_verify'):
- raise wizard.except_wizard('Error!', 'Can not print the receipt because of discount and/or payment ')
- return data
-
-class print_order_receipt(wizard.interface):
- states = {
- 'init': {
- 'actions': [_check],
- 'result': {'type':'print', 'report':'pos.receipt', 'state':'end'}
- }
- }
-
-print_order_receipt('ord.receipt')
-
diff --git a/addons/point_of_sale/wizard/wizard_refund_order.py b/addons/point_of_sale/wizard/wizard_refund_order.py
deleted file mode 100644
index 188e7b47690..00000000000
--- a/addons/point_of_sale/wizard/wizard_refund_order.py
+++ /dev/null
@@ -1,232 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-import time
-import netsvc
-from tools.misc import UpdateableStr
-import wizard
-import pooler
-from mx import DateTime
-from tools.translate import _
-
-
-entry_form = '''
-
-'''
-
-def _get_journal(self,cr,uid,context):
- pool = pooler.get_pool(cr.dbname)
- obj = pool.get('account.journal')
- user = pool.get('res.users').browse(cr, uid, uid)
- ids = obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', user.company_id.id)])
- res = obj.read(cr, uid, ids, ['id', 'name'], context)
- res = [(r['id'], r['name']) for r in res]
- res.insert(0, ('', ''))
- return res
-
-def _get_pdt(self,cr,uid,context):
- pool = pooler.get_pool(cr.dbname)
- obj = pool.get('product.product')
- ids = obj.search(cr, uid, [('income_pdt', '=', True)])
- res = obj.read(cr, uid, ids, ['id', 'name'], context)
- res = [(r['id'], r['name']) for r in res]
- res.insert(0, ('', ''))
- return res
-
-def _get_pdt_exp(self,cr,uid,context):
- pool = pooler.get_pool(cr.dbname)
- obj = pool.get('product.product')
- company_id = pool.get('res.users').browse(cr, uid, uid).company_id.id
- ids = obj.search(cr, uid, ['&', ('expense_pdt', '=', True), '|', ('company_id', '=', company_id), ('company_id', '=', None)])
- res = obj.read(cr, uid, ids, ['id', 'name'], context)
- res = [(r['id'], r['name']) for r in res]
- res.insert(0, ('', ''))
- return res
-
-entry_fields = {
- 'journal_id': {'string': 'Journal', 'type': 'selection', 'selection': _get_journal, 'required':True},
- 'product_id': {'string': 'Operation', 'type': 'selection', 'selection':_get_pdt , 'required':True},
- 'amount': {'string': 'Amount', 'type': 'float'},
- 'name': {'string': 'Name', 'type': 'char', 'size': '32', 'required':True},
- 'ref': {'string': 'Ref.', 'type': 'char', 'size': '32'},
-
-}
-
-out_fields = {
- 'journal_id': {'string': 'Journal', 'type': 'selection', 'selection': _get_journal, 'required':True},
- 'product_id': {'string': 'Operation', 'type': 'selection', 'selection':_get_pdt_exp , 'required':True},
- 'amount': {'string': 'Amount', 'type': 'float'},
- 'name': {'string': 'Name', 'type': 'char', 'size': '32', 'required':True},
- 'ref': {'string': 'Ref.', 'type': 'char', 'size': '32'},
-}
-
-def _get_out(self, cr, uid, data, context):
- args = {}
- pool = pooler.get_pool(cr.dbname)
- statement_obj= pool.get('account.bank.statement')
- product_obj= pool.get('product.template')
- productp_obj= pool.get('product.product')
- res_obj = pool.get('res.users')
- curr_company = res_obj.browse(cr,uid,uid).company_id.id
- statement_id = statement_obj.search(cr,uid, [('journal_id','=',data['form']['journal_id']),('company_id','=',curr_company),('user_id','=',uid),('state','=','open')])
- monday = (DateTime.now() + DateTime.RelativeDateTime(weekday=(DateTime.Monday,0))).strftime('%Y-%m-%d')
- sunday = (DateTime.now() + DateTime.RelativeDateTime(weekday=(DateTime.Sunday,0))).strftime('%Y-%m-%d')
- done_statmt = statement_obj.search(cr,uid, [('date','>=',monday+' 00:00:00'),('date','<=',sunday+' 23:59:59'),('journal_id','=',data['form']['journal_id']),('company_id','=',curr_company),('user_id','=',uid)])
- stat_done = statement_obj.browse(cr,uid, done_statmt)
- address_u = pool.get('res.users').browse(cr,uid,uid).address_id
- am = 0.0
- amount_check = productp_obj.browse(cr,uid,data['form']['product_id']).am_out or False
- for st in stat_done:
- for s in st.line_ids:
- if address_u and s.partner_id==address_u.partner_id and s.am_out:
- am+=s.amount
- if (-data['form']['amount'] or 0.0)+ am <-(res_obj.browse(cr,uid,uid).company_id.max_diff or 0.0) and amount_check:
- val = (res_obj.browse(cr,uid,uid).company_id.max_diff or 0.0)+ am
- raise wizard.except_wizard(_('Error !'), _('The maximum value you can still withdraw is exceeded. \n Remaining value is equal to %d ')%(val))
-
- acc_id = product_obj.browse(cr,uid,data['form']['product_id']).property_account_income
- if not acc_id:
- raise wizard.except_wizard(_('Error !'), _('please check that account is set to %s')%(product_obj.browse(cr,uid,data['form']['product_id']).name))
- if not statement_id:
- raise wizard.except_wizard(_('Error !'), _('You have to open at least one cashbox'))
- if statement_id:
- statement_id = statement_id[0]
- if not statement_id:
- statement_id = statement_obj.create(cr,uid,{'date':time.strftime('%Y-%m-%d 00:00:00'),
- 'journal_id':data['form']['journal_id'],
- 'company_id':curr_company,
- 'user_id':uid,
- })
- args['statement_id']= statement_id
- args['journal_id']= data['form']['journal_id']
- if acc_id:
- args['account_id']= acc_id.id
- amount= data['form']['amount'] or 0.0
- if data['form']['amount'] > 0:
- amount= -data['form']['amount']
- args['amount'] = amount
- if productp_obj.browse(cr,uid,data['form']['product_id']).am_out:
- args['am_out'] = True
- args['ref'] = data['form']['ref'] or ''
- args['name'] = "%s: %s "%(product_obj.browse(cr,uid,data['form']['product_id']).name, data['form']['name'].decode('utf8'))
- address_u = pool.get('res.users').browse(cr,uid,uid).address_id
- if address_u:
- partner_id = address_u.partner_id and address_u.partner_id.id or None
- args['partner_id'] = partner_id
- statement_line_id = pool.get('account.bank.statement.line').create(cr, uid, args)
- return {}
-
-def _get_in(self, cr, uid, data, context):
- args = {}
- pool = pooler.get_pool(cr.dbname)
- statement_obj = pool.get('account.bank.statement')
- product_obj = pool.get('product.template')
- res_obj = pool.get('res.users')
- curr_company = res_obj.browse(cr,uid,uid).company_id.id
- statement_id = statement_obj.search(cr,uid, [('journal_id','=',data['form']['journal_id']),('company_id','=',curr_company),('user_id','=',uid),('state','=','open')])
- if not statement_id:
- raise wizard.except_wizard(_('Error !'), _('You have to open at least one cashbox'))
-
- product = pool.get('product.product').browse(cr, uid, data['form']['product_id'])
- acc_id = product_obj.browse(cr,uid,data['form']['product_id']).property_account_income
- if not acc_id:
- raise wizard.except_wizard(_('Error !'), _('please check that account is set to %s')%(product_obj.browse(cr,uid,data['form']['product_id']).name))
- if statement_id:
- statement_id = statement_id[0]
- if not statement_id:
- statement_id = statement_obj.create(cr,uid,{'date':time.strftime('%Y-%m-%d 00:00:00'),
- 'journal_id':data['form']['journal_id'],
- 'company_id':curr_company,
- 'user_id':uid,
- })
-
- args['statement_id'] = statement_id
- args['journal_id'] = data['form']['journal_id']
- if acc_id:
- args['account_id'] = acc_id.id
- args['amount'] = data['form']['amount'] or 0.0
- args['ref'] = "%s" %(data['form']['ref'] or '')
- args['name'] = "%s: %s "% (product_obj.browse(cr,uid,data['form']['product_id']).name, data['form']['name'].decode('utf8'))
- address_u = pool.get('res.users').browse(cr,uid,uid).address_id
- if address_u:
- partner_id = address_u.partner_id and address_u.partner_id.id or None
- args['partner_id'] = partner_id
- statement_line_id = pool.get('account.bank.statement.line').create(cr, uid, args)
-
- return {}
-
-class box_entries(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': entry_form % u'Entrée de caisse',
- 'fields': entry_fields,
- 'state': [('end', 'Cancel', 'gtk-cancel'), ('next', 'Make entries in the Cashbox', 'gtk-ok')]
- }
- },
- 'next': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _get_in,
- 'state': 'end'
- }
- },
- }
-
-box_entries('pos.entry')
-
-class box_out(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': entry_form % u'Sortie de caisse',
- 'fields': out_fields,
- 'state': [('end', 'Cancel', 'gtk-cancel'), ('next', 'Make Entries in the CashBox', 'gtk-ok')]
- }
- },
- 'next': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _get_out,
- 'state': 'end'
- }
- },
- }
-
-box_out('pos.out')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/point_of_sale/wizard/wizard_pos_sales_user.py b/addons/pos_sales_user.py
similarity index 100%
rename from addons/point_of_sale/wizard/wizard_pos_sales_user.py
rename to addons/pos_sales_user.py
diff --git a/addons/process/__terp__.py b/addons/process/__terp__.py
index 88c15e59059..d8c039ef276 100644
--- a/addons/process/__terp__.py
+++ b/addons/process/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -25,7 +25,13 @@
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
-This module allows you to manage your process for the end-users.
+ This module shows the basic processes involved
+ in the selected modules and in the sequence these
+ occur
+
+ Note: This applies to the modules containing modulename_process_xml
+ for e.g product/process/product_process_xml
+
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
diff --git a/addons/process/i18n/fi.po b/addons/process/i18n/fi.po
new file mode 100644
index 00000000000..32848ad7035
--- /dev/null
+++ b/addons/process/i18n/fi.po
@@ -0,0 +1,304 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-03-22 07:48+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Node"
+msgstr "Prosessisolmu"
+
+#. module: process
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr "Objektin nimen tulee alkaa x_ ja se ei saa sisältää erikoismerkkejä!"
+
+#. module: process
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Virheellinen mallin nimi toiminnon määrittelyssä."
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Roles from Workflow"
+msgstr "Roolit työnkulusta"
+
+#. module: process
+#: field:process.node,menu_id:0
+msgid "Related Menu"
+msgstr "Liittyvä valikko"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: field:process.transition,action_ids:0
+msgid "Buttons"
+msgstr "Painikkeet"
+
+#. module: process
+#: selection:process.node,kind:0
+msgid "State"
+msgstr "Tila"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Details"
+msgstr "Tiedot"
+
+#. module: process
+#: field:process.node,help_url:0
+msgid "Help URL"
+msgstr "Ohjeen URL"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_node_form
+#: model:ir.model,name:process.model_process_node
+#: model:ir.ui.menu,name:process.menu_process_node_form
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Nodes"
+msgstr "Prosessisolmut"
+
+#. module: process
+#: view:process.process:0
+#: field:process.process,node_ids:0
+msgid "Nodes"
+msgstr "Solmut"
+
+#. module: process
+#: view:process.node:0
+#: field:process.node,condition_ids:0
+#: view:process.process:0
+msgid "Conditions"
+msgstr "Ehdot"
+
+#. module: process
+#: field:process.condition,node_id:0
+msgid "Node"
+msgstr "Solmu"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Workflow Trigger"
+msgstr "Työnkulun liipaisin"
+
+#. module: process
+#: field:process.transition,note:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: process
+#: model:ir.model,name:process.model_process_transition_action
+msgid "Process Transitions Actions"
+msgstr "Prosessin siirtymien toiminnot"
+
+#. module: process
+#: field:process.condition,model_id:0
+#: field:process.node,model_id:0
+#: field:process.process,model_id:0
+msgid "Object"
+msgstr "Objekti"
+
+#. module: process
+#: field:process.transition,source_node_id:0
+msgid "Source Node"
+msgstr "Lähdesolmu"
+
+#. module: process
+#: field:process.transition,transition_ids:0
+msgid "Workflow Transitions"
+msgstr "Työnkulun siirtymät"
+
+#. module: process
+#: field:process.transition.action,action:0
+msgid "Action ID"
+msgstr "Toiminnon tunnus"
+
+#. module: process
+#: view:process.transition:0
+msgid "Process Transition"
+msgstr "Prosessin siirtymä"
+
+#. module: process
+#: model:ir.model,name:process.model_process_condition
+#: view:process.node:0
+#: view:process.process:0
+msgid "Condition"
+msgstr "Ehto"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Dummy"
+msgstr "Tyhjä"
+
+#. module: process
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Virheellinen XML näkymä-arkkitehtuurille!"
+
+#. module: process
+#: field:process.condition,name:0
+#: field:process.node,name:0
+#: field:process.process,name:0
+#: field:process.transition,name:0
+#: field:process.transition.action,name:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: process
+#: field:process.transition,role_ids:0
+msgid "Roles"
+msgstr "Työtehtävät"
+
+#. module: process
+#: field:process.node,transition_in:0
+msgid "Starting Transitions"
+msgstr "Aloittavat siirtymät"
+
+#. module: process
+#: field:process.node,note:0
+#: field:process.process,note:0
+#: view:process.transition:0
+msgid "Notes"
+msgstr "Huomautukset"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: field:process.transition.action,transition_id:0
+msgid "Transition"
+msgstr "Siirtymä"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Roles Required"
+msgstr "Vaaditut työtehtävät"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Extra Information"
+msgstr "Lisätiedot"
+
+#. module: process
+#: selection:process.node,kind:0
+#: field:process.node,subflow_id:0
+msgid "Subflow"
+msgstr "Alikulku"
+
+#. module: process
+#: field:process.process,active:0
+msgid "Active"
+msgstr "Aktiivinen"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Action"
+msgstr "Toiminto"
+
+#. module: process
+#: field:process.node,flow_start:0
+msgid "Starting Flow"
+msgstr "Aloittava kulku"
+
+#. module: process
+#: field:process.condition,model_states:0
+msgid "Expression"
+msgstr "Lauseke"
+
+#. module: process
+#: field:process.transition.action,state:0
+msgid "Type"
+msgstr "Tyyppi"
+
+#. module: process
+#: field:process.node,transition_out:0
+msgid "Ending Transitions"
+msgstr "Lopettavat siirtymät"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_form
+#: model:ir.model,name:process.model_process_process
+#: model:ir.ui.menu,name:process.menu_process_form
+#: field:process.node,process_id:0
+#: view:process.process:0
+msgid "Process"
+msgstr "Prosessi"
+
+#. module: process
+#: model:ir.module.module,shortdesc:process.module_meta_information
+msgid "Enterprise Process"
+msgstr "Yrityksen prosessi"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Actions"
+msgstr "Toiminnot"
+
+#. module: process
+#: field:process.node,model_states:0
+msgid "States Expression"
+msgstr "Tilojen lauseke"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_transition_form
+#: model:ir.model,name:process.model_process_transition
+#: model:ir.ui.menu,name:process.menu_process_transition_form
+msgid "Process Transitions"
+msgstr "Prosessin siirtymät"
+
+#. module: process
+#: field:process.transition,target_node_id:0
+msgid "Target Node"
+msgstr "Kohdesolmu"
+
+#. module: process
+#: field:process.node,kind:0
+msgid "Kind of Node"
+msgstr "Solmun tyyppi"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Outgoing Transitions"
+msgstr "Lähtevät siirtymät"
+
+#. module: process
+#: model:ir.ui.menu,name:process.menu_process
+msgid "Enterprise Processes"
+msgstr "Yrityksen prosessit"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Transitions"
+msgstr "Siirtymät"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Object Method"
+msgstr "Objektimenetelmä"
diff --git a/addons/process/i18n/hr.po b/addons/process/i18n/hr.po
index 56b85055356..9e8d8da7ea5 100644
--- a/addons/process/i18n/hr.po
+++ b/addons/process/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * process
-#
+# * process
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 16:30+0000\n"
-"Last-Translator: Ivica Perić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:55+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:48+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: process
#: view:process.node:0
@@ -27,47 +28,48 @@ msgstr ""
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: process
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: process
#: view:process.node:0
#: view:process.process:0
#: view:process.transition:0
msgid "Roles from Workflow"
-msgstr ""
+msgstr "Uloge iz Hodograma"
#. module: process
#: field:process.node,menu_id:0
msgid "Related Menu"
-msgstr ""
+msgstr "Povezani izbornik"
#. module: process
#: view:process.node:0
#: view:process.process:0
#: field:process.transition,action_ids:0
msgid "Buttons"
-msgstr ""
+msgstr "Tipke"
#. module: process
#: selection:process.node,kind:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: process
#: view:process.node:0
#: view:process.process:0
#: view:process.transition:0
msgid "Details"
-msgstr ""
+msgstr "Detalji"
#. module: process
#: field:process.node,help_url:0
msgid "Help URL"
-msgstr ""
+msgstr "Help URL"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_node_form
@@ -76,84 +78,84 @@ msgstr ""
#: view:process.node:0
#: view:process.process:0
msgid "Process Nodes"
-msgstr ""
+msgstr "Procesna čvorišta"
#. module: process
#: view:process.process:0
#: field:process.process,node_ids:0
msgid "Nodes"
-msgstr ""
+msgstr "Čvorišta"
#. module: process
#: view:process.node:0
#: field:process.node,condition_ids:0
#: view:process.process:0
msgid "Conditions"
-msgstr ""
+msgstr "Uvjeti"
#. module: process
#: field:process.condition,node_id:0
msgid "Node"
-msgstr ""
+msgstr "Čvorište"
#. module: process
#: selection:process.transition.action,state:0
msgid "Workflow Trigger"
-msgstr ""
+msgstr "Okidač Hodograma"
#. module: process
#: field:process.transition,note:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: process
#: model:ir.model,name:process.model_process_transition_action
msgid "Process Transitions Actions"
-msgstr ""
+msgstr "Radnje Procesnih Prijelaza"
#. module: process
#: field:process.condition,model_id:0
#: field:process.node,model_id:0
#: field:process.process,model_id:0
msgid "Object"
-msgstr ""
+msgstr "Objekt"
#. module: process
#: field:process.transition,source_node_id:0
msgid "Source Node"
-msgstr ""
+msgstr "Čvorište izvor"
#. module: process
#: field:process.transition,transition_ids:0
msgid "Workflow Transitions"
-msgstr ""
+msgstr "Prijelazi Hodograma"
#. module: process
#: field:process.transition.action,action:0
msgid "Action ID"
-msgstr ""
+msgstr "ID Radnje"
#. module: process
#: view:process.transition:0
msgid "Process Transition"
-msgstr ""
+msgstr "Prijelaz Procesa"
#. module: process
#: model:ir.model,name:process.model_process_condition
#: view:process.node:0
#: view:process.process:0
msgid "Condition"
-msgstr ""
+msgstr "Uvjet"
#. module: process
#: selection:process.transition.action,state:0
msgid "Dummy"
-msgstr ""
+msgstr "Dummy"
#. module: process
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: process
#: field:process.condition,name:0
@@ -162,80 +164,80 @@ msgstr ""
#: field:process.transition,name:0
#: field:process.transition.action,name:0
msgid "Name"
-msgstr ""
+msgstr "Ime"
#. module: process
#: field:process.transition,role_ids:0
msgid "Roles"
-msgstr ""
+msgstr "Uloge"
#. module: process
#: field:process.node,transition_in:0
msgid "Starting Transitions"
-msgstr ""
+msgstr "Početni prijelazi"
#. module: process
#: field:process.node,note:0
#: field:process.process,note:0
#: view:process.transition:0
msgid "Notes"
-msgstr ""
+msgstr "Bilješke"
#. module: process
#: view:process.node:0
#: view:process.process:0
#: field:process.transition.action,transition_id:0
msgid "Transition"
-msgstr ""
+msgstr "Prijelaz"
#. module: process
#: view:process.node:0
#: view:process.process:0
#: view:process.transition:0
msgid "Roles Required"
-msgstr ""
+msgstr "Potrebne Uloge"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Extra Information"
-msgstr ""
+msgstr "Dodatne Informacije"
#. module: process
#: selection:process.node,kind:0
#: field:process.node,subflow_id:0
msgid "Subflow"
-msgstr ""
+msgstr "Podtok"
#. module: process
#: field:process.process,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivan"
#. module: process
#: selection:process.transition.action,state:0
msgid "Action"
-msgstr ""
+msgstr "Radnja"
#. module: process
#: field:process.node,flow_start:0
msgid "Starting Flow"
-msgstr ""
+msgstr "Početni tok"
#. module: process
#: field:process.condition,model_states:0
msgid "Expression"
-msgstr ""
+msgstr "Izraz"
#. module: process
#: field:process.transition.action,state:0
msgid "Type"
-msgstr ""
+msgstr "Tip"
#. module: process
#: field:process.node,transition_out:0
msgid "Ending Transitions"
-msgstr ""
+msgstr "Završni prijelazi"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_form
@@ -244,60 +246,60 @@ msgstr ""
#: field:process.node,process_id:0
#: view:process.process:0
msgid "Process"
-msgstr ""
+msgstr "Proces"
#. module: process
#: model:ir.module.module,shortdesc:process.module_meta_information
msgid "Enterprise Process"
-msgstr ""
+msgstr "Proces poduzeća"
#. module: process
#: view:process.node:0
#: view:process.process:0
#: view:process.transition:0
msgid "Actions"
-msgstr ""
+msgstr "Radnje"
#. module: process
#: field:process.node,model_states:0
msgid "States Expression"
-msgstr ""
+msgstr "Izraz Stanja"
#. module: process
#: model:ir.actions.act_window,name:process.action_process_transition_form
#: model:ir.model,name:process.model_process_transition
#: model:ir.ui.menu,name:process.menu_process_transition_form
msgid "Process Transitions"
-msgstr ""
+msgstr "Prijelazi Procesa"
#. module: process
#: field:process.transition,target_node_id:0
msgid "Target Node"
-msgstr ""
+msgstr "Ciljno čvorište"
#. module: process
#: field:process.node,kind:0
msgid "Kind of Node"
-msgstr ""
+msgstr "Čvorište neke vrste"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Outgoing Transitions"
-msgstr ""
+msgstr "Izlazni prijelazi"
#. module: process
#: model:ir.ui.menu,name:process.menu_process
msgid "Enterprise Processes"
-msgstr ""
+msgstr "Procesi poduzeća"
#. module: process
#: view:process.node:0
#: view:process.process:0
msgid "Transitions"
-msgstr ""
+msgstr "Prijelazi"
#. module: process
#: selection:process.transition.action,state:0
msgid "Object Method"
-msgstr ""
+msgstr "Object Method"
diff --git a/addons/product/company.py b/addons/product/company.py
index f23d010b600..0f248dba309 100644
--- a/addons/product/company.py
+++ b/addons/product/company.py
@@ -36,16 +36,6 @@ class res_company(osv.osv):
help="The price type field in the selected price type will be used, instead of the default one, \
for valuation of product in the current company"),
}
-
- def _check_currency(self, cr, uid, ids):
- for rec in self.browse(cr, uid, ids):
- if rec.currency_id.id <> rec.property_valuation_price_type.currency_id.id:
- return False
- return True
-
- _constraints = [
- (_check_currency, 'Error! You can not chooes a pricetype in a different currency than your company (Not supported now).', ['property_valuation_price_type'])
- ]
res_company()
diff --git a/addons/product/i18n/es.po b/addons/product/i18n/es.po
index 6eecd987a70..de87785a953 100644
--- a/addons/product/i18n/es.po
+++ b/addons/product/i18n/es.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 11:12+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-21 19:25+0000\n"
+"Last-Translator: Jonay \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:55+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@@ -990,6 +990,10 @@ msgid ""
"management. For example, in food industries, you will manage a stock of ham "
"but invoice in Kg. Keep empty to use the default UOM."
msgstr ""
+"Usado por compañías que manejan dos unidades de medida: facturación y "
+"administración de inventarios. Por ejemplo, en las industrias alimentaria, "
+"se administra el almacén de jamón pero se factura en Kg. Dejar sin llenar "
+"para usar UOM por defecto."
#. module: product
#: view:product.product:0
@@ -1437,6 +1441,9 @@ msgid ""
"products with infinite stock, or for use when you have no inventory "
"management in the system."
msgstr ""
+"Cambiará la forma en que las compras son procesadas. Los Consumibles son "
+"productos almacenables y con infinita capacidad de almacenamiento, o para "
+"usarse cuando no hay administración de inventarios en el sistema."
#. module: product
#: model:process.node,note:product.process_node_supplier0
diff --git a/addons/product/product.py b/addons/product/product.py
index 87b0622ae9e..d51d0733e81 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -82,9 +82,9 @@ class product_uom(osv.osv):
'name': fields.char('Name', size=64, required=True, translate=True),
'category_id': fields.many2one('product.uom.categ', 'UoM Category', required=True, ondelete='cascade',
help="Unit of Measure of a category can be converted between each others in the same category."),
- 'factor': fields.float('Rate', digits=(12, 6), required=True,
+ 'factor': fields.float('Ratio', digits=(12, 6), required=True,
help='The coefficient for the formula:\n' \
- '1 (base unit) = coeff (this unit). Rate = 1 / Factor.'),
+ '1 (base unit) = coeff (this unit). Ratio = 1 / Factor.'),
'factor_inv': fields.function(_factor, digits=(12, 6),
method=True, string='Factor',
help='The coefficient for the formula:\n' \
@@ -93,6 +93,9 @@ class product_uom(osv.osv):
'rounding': fields.float('Rounding Precision', digits=(16, 3), required=True,
help="The computed quantity will be a multiple of this value. Use 1.0 for products that can not be split."),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the unit of measure without removing it."),
+ 'uom_factor': fields.selection([('bigger','Bigger than the Default'),
+ ('smaller','Smaller than the Default'),
+ ('','')],'UoM Factor'),
}
_defaults = {
@@ -100,6 +103,7 @@ class product_uom(osv.osv):
'factor_inv': lambda *a: 1.0,
'active': lambda *a: 1,
'rounding': lambda *a: 0.01,
+ 'uom_factor': lambda *a: 'smaller',
}
_sql_constraints = [
@@ -204,7 +208,13 @@ class product_category(osv.osv):
'parent_id': fields.many2one('product.category','Parent Category', select=True),
'child_id': fields.one2many('product.category', 'parent_id', string='Child Categories'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."),
+ 'type': fields.selection([('view','View'), ('normal','Normal')], 'Category Type'),
}
+
+ _defaults = {
+ 'type' : lambda *a : 'normal',
+ }
+
_order = "sequence"
def _check_recursion(self, cr, uid, ids):
level = 100
@@ -252,7 +262,7 @@ class product_template(osv.osv):
'produce_delay': fields.float('Manufacturing Lead Time', help="Average time to produce this product. This is only for the production order and, if it is a multi-level bill of material, it's only for the level of this product. Different lead times will be summed for all levels and purchase orders."),
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Requisition Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the requisition request."),
'rental': fields.boolean('Can be Rent'),
- 'categ_id': fields.many2one('product.category','Category', required=True, change_default=True),
+ 'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]"),
'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Sale Price'), help="Base price for computing the customer price. Sometimes called the catalog price."),
'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Account'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price."),
'volume': fields.float('Volume', help="The volume in m3."),
@@ -441,7 +451,7 @@ class product_product(osv.osv):
'default_code' : fields.char('Code', size=64),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the product without removing it."),
'variants': fields.char('Variants', size=64),
- 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True),
+ 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=False),
'ean13': fields.char('EAN13', size=13),
'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."),
'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')),
@@ -523,7 +533,6 @@ class product_product(osv.osv):
def price_get(self, cr, uid, ids, ptype='list_price', context={}):
res = {}
product_uom_obj = self.pool.get('product.uom')
-
for product in self.browse(cr, uid, ids, context=context):
res[product.id] = product[ptype] or 0.0
if ptype == 'list_price':
@@ -533,6 +542,16 @@ class product_product(osv.osv):
uom = product.uos_id or product.uom_id
res[product.id] = product_uom_obj._compute_price(cr, uid,
uom.id, res[product.id], context['uom'])
+ # Convert from price_type currency to asked one
+ if 'currency_id' in context:
+ pricetype_obj = self.pool.get('product.price.type')
+ # Take the price_type currency from the product field
+ # This is right cause a field cannot be in more than one currency
+ price_type_id = pricetype_obj.search(cr, uid, [('field','=',ptype)])[0]
+ price_type_currency_id = pricetype_obj.browse(cr,uid,price_type_id).currency_id.id
+ res[product.id] = self.pool.get('res.currency').compute(cr, uid, price_type_currency_id,
+ context['currency_id'], res[product.id],context=context)
+
return res
def copy(self, cr, uid, id, default=None, context=None):
diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml
index 4ed27c81d1d..300a2b0f546 100644
--- a/addons/product/product_data.xml
+++ b/addons/product/product_data.xml
@@ -21,25 +21,31 @@
PCE1.0
- 1.0
+ 1.0KGM1.0
- 1.0
+ 1.0Hour8.0
- 1.0
+ 1.0Day1.0
- 1.0
+ 1.0
+
+
+
+ TON
+ 1.0
+ 1.0
-
-
-
-
-
+
product.margin.graphproduct.product
diff --git a/addons/product_margin/wizard/__init__.py b/addons/product_margin/wizard/__init__.py
index 4e2ecc2e39a..e1f1680bccb 100644
--- a/addons/product_margin/wizard/__init__.py
+++ b/addons/product_margin/wizard/__init__.py
@@ -19,7 +19,7 @@
#
##############################################################################
-import wizard_product_margin
+import product_margin
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_margin/wizard/product_margin.py b/addons/product_margin/wizard/product_margin.py
new file mode 100644
index 00000000000..1907c6695c2
--- /dev/null
+++ b/addons/product_margin/wizard/product_margin.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import time
+from osv import osv
+from osv import fields
+
+import netsvc
+import time
+from tools.translate import _
+class product_margin(osv.osv_memory):
+ '''
+ Product Margin
+ '''
+ _name = 'product.margin'
+ _description = 'Product Margin'
+
+ def action_open_window(self, cr, uid, ids, context):
+ """
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: the ID or list of IDs if we want more than one
+
+ @return:
+ """
+ mod_obj = self.pool.get('ir.model.data')
+ result = mod_obj._get_id(cr, uid, 'product', 'product_search_form_view')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+ cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.graph', 'graph'))
+ view_res3 = cr.fetchone()[0]
+ cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.form.inherit', 'form'))
+ view_res2 = cr.fetchone()[0]
+ cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.tree', 'tree'))
+ view_res = cr.fetchone()[0]
+
+ #get the current product.margin object to obtain the values from it
+ product_margin_obj = self.browse(cr,uid,ids)[0]
+
+ return {
+ 'name': _('Product Margins'),
+ 'context':{'date_from':product_margin_obj.from_date,'date_to':product_margin_obj.to_date,'invoice_state' : product_margin_obj.invoice_state},
+ 'view_type': 'form',
+ "view_mode": 'tree,form,graph',
+ 'res_model':'product.product',
+ 'type': 'ir.actions.act_window',
+ 'views': [(view_res,'tree'), (view_res2,'form'), (view_res3,'graph')],
+ 'view_id': False,
+ 'search_view_id': id['res_id']
+ }
+
+ def action_cancel(self, cr, uid, ids, context=None):
+ """
+
+
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: the ID or list of IDs if we want more than one
+
+ @return:
+ """
+ return {'type':'ir.actions.act_window_close'}
+
+ _columns = {
+ #TODO : import time required to get currect date
+ 'from_date': fields.date('From'),
+ #TODO : import time required to get currect date
+ 'to_date': fields.date('To'),
+ 'invoice_state':fields.selection([
+ ('paid','Paid'),
+ ('open_paid','Open and Paid'),
+ ('draft_open_paid','Draft, Open and Paid'),
+ ],'Invoice State', select=True, required=True),
+ }
+ _defaults = {
+ 'from_date': lambda *a:time.strftime('%Y-01-01'),
+ 'to_date': lambda *a:time.strftime('%Y-01-01'),
+ 'invoice_state': lambda *a:"open_paid",
+ }
+product_margin()
diff --git a/addons/product_margin/wizard/product_margin_view.xml b/addons/product_margin/wizard/product_margin_view.xml
new file mode 100644
index 00000000000..66869e120a5
--- /dev/null
+++ b/addons/product_margin/wizard/product_margin_view.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ product.margin.form
+ product.margin
+ form
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/product_margin/wizard/wizard_product_margin.py b/addons/product_margin/wizard/wizard_product_margin.py
deleted file mode 100644
index 625cfd4c1df..00000000000
--- a/addons/product_margin/wizard/wizard_product_margin.py
+++ /dev/null
@@ -1,93 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-import time
-
-from tools.translate import _
-
-def _action_open_window(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'product', 'product_search_form_view')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.graph', 'graph'))
- view_res3 = cr.fetchone()[0]
- cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.form.inherit', 'form'))
- view_res2 = cr.fetchone()[0]
- cr.execute('select id,name from ir_ui_view where name=%s and type=%s', ('product.margin.tree', 'tree'))
- view_res = cr.fetchone()[0]
- return {
- 'name': _('Product Margins'),
- 'context':{'date_from':data['form']['from_date'],'date_to':data['form']['to_date'],'invoice_state' : data['form']['invoice_state']},
- 'view_type': 'form',
- "view_mode": 'tree,form,graph',
- 'res_model':'product.product',
- 'type': 'ir.actions.act_window',
- 'views': [(view_res,'tree'), (view_res2,'form'), (view_res3,'graph')],
- 'view_id': False,
- 'search_view_id': id['res_id']
- }
-
-
-class product_margins(wizard.interface):
- form1 = '''
- '''
- form1_fields = {
- 'from_date': {
- 'string': 'From',
- 'type': 'date',
- 'default': lambda *a:time.strftime('%Y-01-01'),
-
- },
- 'to_date': {
- 'string': 'To',
- 'type': 'date',
- 'default': lambda *a:time.strftime('%Y-12-31'),
-
- },
- 'invoice_state': {
- 'string': 'Invoice State',
- 'type': 'selection',
- 'selection': [('paid','Paid'),('open_paid','Open and Paid'),('draft_open_paid','Draft, Open and Paid'),],
- 'required': True,
- 'default': lambda *a:"open_paid",
- },
- }
-
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':form1, 'fields':form1_fields, 'state': [('end', 'Cancel','gtk-cancel'),('open', 'Open Margins','gtk-ok')]}
- },
- 'open': {
- 'actions': [],
- 'result': {'type': 'action', 'action': _action_open_window, 'state':'end'}
- }
- }
-product_margins('product.margins')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/profile_crm/i18n/pt_BR.po b/addons/profile_crm/i18n/pt_BR.po
index 9835bcb01a2..9dcdf808e07 100644
--- a/addons/profile_crm/i18n/pt_BR.po
+++ b/addons/profile_crm/i18n/pt_BR.po
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 12:46+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-24 01:34+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_crm
#: model:ir.module.module,description:profile_crm.module_meta_information
msgid "Profile for CRM"
-msgstr ""
+msgstr "Perfil para CRM"
diff --git a/addons/profile_tools/__terp__.py b/addons/profile_tools/__terp__.py
index 209be09cfc9..508a68e819f 100644
--- a/addons/profile_tools/__terp__.py
+++ b/addons/profile_tools/__terp__.py
@@ -25,7 +25,9 @@
"version" : "1.0",
"depends" : ["base"],
"author" : "Tiny",
- "description": """Installer for various interesting tools
+ "category" : "Tools",
+ "description": """Installs tools for lunch,survey,subscription and audittrail
+ module
""",
'website': 'http://www.openerp.com',
'init_xml': [],
diff --git a/addons/project/company.py b/addons/project/company.py
index 52b037b5890..f745739bf60 100644
--- a/addons/project/company.py
+++ b/addons/project/company.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,12 +15,11 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-from osv import fields
-from osv import osv
+from osv import fields, osv
class res_company(osv.osv):
_inherit = 'res.company'
@@ -29,10 +28,9 @@ class res_company(osv.osv):
help='This will set the unit of measure used in projects and tasks.\n' \
"If you use the timesheet linked to projects (project_timesheet module), don't " \
"forget to setup the right unit of measure in your employees.",
-
+
),
}
-
res_company()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/i18n/hr.po b/addons/project/i18n/hr.po
index 25c69ea1eab..f353fc0bda4 100644
--- a/addons/project/i18n/hr.po
+++ b/addons/project/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * project
-#
+# * project
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-30 06:24+0000\n"
-"Last-Translator: nafterburner \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 19:19+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:39+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: project
#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened
@@ -29,7 +30,7 @@ msgstr "Zadaci Procesa"
#. module: project
#: help:project.task.delegate,init,name:0
msgid "New title of the task delegated to the user."
-msgstr ""
+msgstr "Novi naziv zadatka delegiran Korisniku"
#. module: project
#: view:config.compute.remaining:0
@@ -59,7 +60,7 @@ msgstr "Pogrešno ime modela u definiciji akcije."
#. module: project
#: wizard_field:project.task.delegate,init,planned_hours_me:0
msgid "Hours to Validate"
-msgstr ""
+msgstr "Sati za procjenu"
#. module: project
#: field:project.project,progress_rate:0
@@ -73,6 +74,7 @@ msgid ""
"Total remaining time, can be re-estimated periodically by the assignee of "
"the task."
msgstr ""
+"Ukupno preostalo vrijeme, periodično ga može procjenjivati nositelj zadatka."
#. module: project
#: field:project.project,child_id:0
@@ -87,7 +89,7 @@ msgstr "Članovi Projekta"
#. module: project
#: model:process.node,name:project.process_node_taskbydelegate0
msgid "Task by delegate"
-msgstr ""
+msgstr "Zadatak po nostelju"
#. module: project
#: model:ir.actions.act_window,name:project.open_view_my_project_my_run
@@ -98,7 +100,7 @@ msgstr "Moji Tekući Projekti"
#. module: project
#: field:project.task,child_ids:0
msgid "Delegated Tasks"
-msgstr ""
+msgstr "Delegirani Zadaci"
#. module: project
#: help:project.project,warn_header:0
@@ -106,6 +108,8 @@ msgid ""
"Header added at the beginning of the email for the warning message sent to "
"the customer when a task is closed."
msgstr ""
+"Zaglavlje dodano na početku emaila za poruku upozorenja koja se šalje "
+"korisniku kada je zadatak obavljen."
#. module: project
#: field:project.task,priority:0
@@ -120,7 +124,7 @@ msgstr "Ažuriranje"
#. module: project
#: help:project.task.delegate,init,user_id:0
msgid "User you want to delegate this task to."
-msgstr ""
+msgstr "Korisnik kojem želite delegirati zadatak."
#. module: project
#: model:ir.actions.wizard,name:project.wizard_attachment_task
@@ -135,7 +139,7 @@ msgstr "Postavite u tijeku"
#. module: project
#: model:process.node,note:project.process_node_drafttask0
msgid "Define the Requirements and Set Planned Hours."
-msgstr ""
+msgstr "Odredite zahtjeve i postavite planirane sate."
#. module: project
#: model:ir.actions.act_window,name:project.open_task_type_form
@@ -151,7 +155,7 @@ msgstr "Novi Projekt na Temelju Predloška"
#. module: project
#: model:ir.actions.act_window,name:project.dblc_proj
msgid "Project's tasks"
-msgstr ""
+msgstr "Projektni zadaci"
#. module: project
#: selection:project.task,priority:0
@@ -170,6 +174,10 @@ msgid ""
"works done on tasks, eso. It is able to render planning, order tasks, eso.\n"
" "
msgstr ""
+"Modul za upravljanje projektima koji prati projekte na više razina, zadatke, "
+"obavljen posao u okviru zadataka, itd. Može predstaviti planiranje, naručiti "
+"zadatke, itd.\n"
+" "
#. module: project
#: model:ir.actions.act_window,name:project.action_view_task5_prog_prog
@@ -199,6 +207,8 @@ msgid ""
"Estimated time for you to validate the work done by the user to whom you "
"delegate this task."
msgstr ""
+"Procijenjeno vrijeme potrebno za procjenu rada korisnika kojemu je zadatak "
+"dodijeljen."
#. module: project
#: view:project.project:0
@@ -235,13 +245,14 @@ msgstr "Započni Zadatak"
#: model:ir.actions.act_window,name:project.action_view_task5_prog_draft
#: model:ir.ui.menu,name:project.menu_tasks_yours_prog_draft
msgid "My Draft Tasks"
-msgstr ""
+msgstr "Moji zadaci u nacrtu."
#. module: project
#: view:project.project:0
msgid ""
"Automatic variables for headers and footer. Use exactly the same notation."
msgstr ""
+"Automatske varijable za zaglavlje i podnožje. Koristi potpuno istu notaciju."
#. module: project
#: selection:project.project,state:0
@@ -253,7 +264,7 @@ msgstr "Poništeno"
#: view:project.project:0
#: field:project.project,warn_header:0
msgid "Mail Header"
-msgstr ""
+msgstr "Zaglavlje maila."
#. module: project
#: model:process.node,name:project.process_node_donetask0
@@ -268,12 +279,12 @@ msgstr "Zadatak je Završen"
#. module: project
#: model:process.transition,note:project.process_transition_delegate0
msgid "Delegates tasks to the other user"
-msgstr ""
+msgstr "Delegira zadatke drugom korisniku."
#. module: project
#: help:project.task,effective_hours:0
msgid "Computed using the sum of the task work done."
-msgstr ""
+msgstr "Izračunato kao zbir rada izvršenog zadatkom."
#. module: project
#: help:project.project,warn_customer:0
@@ -281,21 +292,24 @@ msgid ""
"If you check this, the user will have a popup when closing a task that "
"propose a message to send by email to the customer."
msgstr ""
+"Obaberete li ovo, korisnik će vidjeti \"popup\" obavjest kada zaključuje "
+"zadatak koji predlaže slanje emaila stranki."
#. module: project
#: help:project.task.delegate,init,new_task_description:0
msgid "Reinclude the description of the task in the task of the user."
msgstr ""
+"Ponovo uključite opis zadatka u okviru zadatka koji dodjeljujete korisniku."
#. module: project
#: field:project.project,category_id:0
msgid "Analytic Account"
-msgstr "Analitički Račun"
+msgstr "Analitički Konto"
#. module: project
#: field:project.task.work,user_id:0
msgid "Done by"
-msgstr ""
+msgstr "izvršio"
#. module: project
#: model:ir.actions.act_window,name:project.act_project_project_2_project_task_all
@@ -334,20 +348,20 @@ msgstr "Zadatak: %(name)s"
#. module: project
#: view:project.project:0
msgid "Reset as Project"
-msgstr ""
+msgstr "Postavi kao Projekt"
#. module: project
#: view:project.task:0
msgid "Delegations"
-msgstr "Delegacija"
+msgstr "Delegiranja"
#. module: project
#: help:project.project,members:0
msgid ""
"Project's member. Not used in any computation, just for information purpose."
msgstr ""
-"Član projekta. Ne koristi se u niti jednom računanja, samo za informacijske "
-"svrhe."
+"Član projekta. Ne koristi se u kalkulacijama, služi samo za informativnu "
+"svrhu."
#. module: project
#: view:project.project:0
@@ -363,7 +377,7 @@ msgstr "Svi projekti"
#. module: project
#: model:process.transition,note:project.process_transition_draftopentask0
msgid "From draft state, it will come into the open state."
-msgstr ""
+msgstr "Iz stanja Nacrta, doći će u stanje Otvoreno"
#. module: project
#: wizard_view:project.task.delegate,init:0
@@ -374,6 +388,7 @@ msgstr "Delegirani Zadaci"
#: help:project.project,progress_rate:0
msgid "Percent of tasks closed according to the total of tasks todo."
msgstr ""
+"Postotak zaključenih zadataka, na osnovi ukupnog broja preuzetih zadataka."
#. module: project
#: wizard_field:project.task.delegate,init,new_task_description:0
@@ -393,7 +408,7 @@ msgstr "Matični Projekt"
#. module: project
#: help:project.task,total_hours:0
msgid "Computed as: Time Spent + Remaining Time."
-msgstr ""
+msgstr "Računa se kao: Utrošeno vrijeme + Preostalo vrijeme"
#. module: project
#: field:project.task,type:0
@@ -433,7 +448,7 @@ msgstr "Preostali Sati"
#. module: project
#: model:ir.model,name:project.model_project_task_type
msgid "Project task type"
-msgstr ""
+msgstr "Tip projektnog zadatka"
#. module: project
#: field:project.project,planned_hours:0
@@ -445,7 +460,7 @@ msgstr "Planirano Vrijeme"
#: view:project.task:0
#: view:project.task.work:0
msgid "Task Work"
-msgstr ""
+msgstr "Rad u okviru Zadatka"
#. module: project
#: selection:res.company,project_time_mode:0
@@ -456,7 +471,7 @@ msgstr "Sati"
#: model:ir.actions.act_window,name:project.action_view_task5_pending
#: model:ir.ui.menu,name:project.menu_tasks_yours_pending
msgid "My Pending Tasks"
-msgstr "Moji Zadaci na Čekanju"
+msgstr "Moji neizvršeni Zadaci"
#. module: project
#: model:ir.actions.act_window,name:project.act_project_project_2_project_task_opened
@@ -474,7 +489,7 @@ msgstr "Nedodijeljeni Zadaci"
#. module: project
#: wizard_field:project.task.delegate,init,name:0
msgid "Delegated Title"
-msgstr ""
+msgstr "Delegirani naslov"
#. module: project
#: model:ir.actions.act_window,name:project.open_view_my_project
@@ -486,6 +501,8 @@ msgstr "Moji Projekti"
#: help:project.task.delegate,init,planned_hours:0
msgid "Estimated time to close this task by the delegated user."
msgstr ""
+"Procijenjeno vrijeme potrebno za izvršenje zadatka od strane delegiranog "
+"korisnika."
#. module: project
#: selection:project.project,state:0
@@ -528,7 +545,7 @@ msgstr "Aktiviraj Račun"
#. module: project
#: model:process.transition,name:project.process_transition_draftopentask0
msgid "Draft Open task"
-msgstr ""
+msgstr "Skiciraj otvoreni zadatak"
#. module: project
#: view:project.project:0
@@ -538,18 +555,18 @@ msgstr "Korisnik: %(user_id)s"
#. module: project
#: field:project.task,delay_hours:0
msgid "Delay Hours"
-msgstr ""
+msgstr "Odgodi u satima"
#. module: project
#: field:project.project,contact_id:0
msgid "Contact"
-msgstr "Kontakt"
+msgstr "Kontaktiraj"
#. module: project
#: model:process.transition,name:project.process_transition_delegate0
#: view:project.task:0
msgid "Delegate"
-msgstr "Delegat"
+msgstr "Delegiraj"
#. module: project
#: constraint:ir.ui.view:0
@@ -589,28 +606,28 @@ msgstr "Novi Zadatak"
#. module: project
#: help:project.project,timesheet_id:0
msgid "Timetable working hours to adjust the gantt diagram report"
-msgstr ""
+msgstr "Raspored radnih sati za prilagođavanje izvještaja Gantt dijagramom"
#. module: project
#: view:project.project:0
msgid "Project's members"
-msgstr "Član Projekta"
+msgstr "Članovi Projekta"
#. module: project
#: model:process.transition,note:project.process_transition_taskinvoice0
msgid "After task is completed, Create its invoice."
-msgstr ""
+msgstr "Nakon što je zadatak izvršen, napravi Račun."
#. module: project
#: help:project.task,progress:0
msgid "Computed as: Time Spent / Total Time."
-msgstr ""
+msgstr "Računa se kao: Utrošeno vrijeme / Ukupno vrijeme"
#. module: project
#: model:ir.actions.act_window,name:project.action_view_task4
#: model:ir.ui.menu,name:project.menu_action_view_task4
msgid "My Tasks"
-msgstr "Moji Zadatci"
+msgstr "Moji Zadaci"
#. module: project
#: view:project.project:0
@@ -625,12 +642,12 @@ msgstr "Planirano"
#. module: project
#: help:project.project,total_hours:0
msgid "Sum of total hours of all tasks related to this project."
-msgstr "Zbroj ukupnog vremena svih poslova vezanih uz ovaj projekt."
+msgstr "Zbroj ukupnog vremena svih zadataka vezanih uz ovaj projekt."
#. module: project
#: view:project.task:0
msgid "Delegated tasks"
-msgstr ""
+msgstr "Delegirani Zadaci"
#. module: project
#: view:project.task:0
@@ -655,14 +672,14 @@ msgstr "E-Mails"
#. module: project
#: model:process.node,note:project.process_node_triggerinvoice0
msgid "Trigger invoices from sale order lines"
-msgstr ""
+msgstr "Aktiviraj Račune na osnovi Prodajnih narudžbi"
#. module: project
#: model:process.transition.action,name:project.process_transition_action_opendrafttask0
#: view:project.task:0
#: selection:project.task,state:0
msgid "Draft"
-msgstr "Skica"
+msgstr "Nacrt"
#. module: project
#: selection:project.task,priority:0
@@ -672,7 +689,7 @@ msgstr "Nisko"
#. module: project
#: field:project.project,manager:0
msgid "Project Manager"
-msgstr "Menadžer Projekta"
+msgstr "Voditelj Projekta"
#. module: project
#: view:project.project:0
@@ -694,6 +711,8 @@ msgid ""
"New state of your own task. Pending will be reopened automatically when the "
"delegated task is closed."
msgstr ""
+"Novo stanje vašeg zadatka. Ono što je u toku, automatski će se otvoriti kada "
+"se zaključi delegirani zadatak."
#. module: project
#: field:res.company,project_time_mode:0
@@ -719,7 +738,7 @@ msgstr "Ukupno vrijeme"
#. module: project
#: field:project.task,active:0
msgid "Active"
-msgstr "Aktivno"
+msgstr "Aktivan"
#. module: project
#: model:project.task.type,name:project.project_tt_bug
@@ -734,7 +753,7 @@ msgstr "Citat"
#. module: project
#: view:project.task:0
msgid "Task edition"
-msgstr ""
+msgstr "(re)Izdanje zadatka"
#. module: project
#: help:project.task,delay_hours:0
@@ -742,6 +761,9 @@ msgid ""
"Computed as: Total Time - Estimated Time. It gives the difference of the "
"time estimated by the project manager and the real time to close the task."
msgstr ""
+"računa se kao: Ukupno vrijeme - Procijenjeno vrijeme. Daje razliku između "
+"vremena koje je procijenio Voditelj projekta i realnog vremena potrebnog za "
+"zaključenje zadatka."
#. module: project
#: model:process.node,name:project.process_node_opentask0
@@ -761,7 +783,7 @@ msgstr "Mjeseci"
#. module: project
#: model:process.transition,note:project.process_transition_opendonetask0
msgid "When task is completed, it will come into the done state."
-msgstr ""
+msgstr "Kada je zadatak izvršen, doći će u stanje \"Gotovo\""
#. module: project
#: field:project.task.work,date:0
@@ -775,6 +797,9 @@ msgid ""
"If you use the timesheet linked to projects (project_timesheet module), "
"don't forget to setup the right unit of measure in your employees."
msgstr ""
+"Ovo će postaviti jedinicu mjere koja se koristi u projektima i zadacima. "
+"Koristite li Raspored povezan s Projektima (Project Timesheet Module), ne "
+"zaboravite postaviti jedinice mjerenja."
#. module: project
#: model:ir.actions.act_window,name:project.act_res_users_2_project_project
@@ -794,7 +819,7 @@ msgstr "Hitno"
#. module: project
#: wizard_view:project.task.delegate,init:0
msgid "Delegate this task to a user"
-msgstr ""
+msgstr "Delegirajte ovaj zadatak korisniku."
#. module: project
#: field:project.task,delegated_user_id:0
@@ -804,7 +829,7 @@ msgstr "Delegirano Za"
#. module: project
#: field:project.task,date_close:0
msgid "Date Closed"
-msgstr ""
+msgstr "Datum zaključenja"
#. module: project
#: field:project.task,user_id:0
@@ -817,11 +842,14 @@ msgid ""
"Estimated time to do the task, usually set by the project manager when the "
"task is in draft state."
msgstr ""
+"Procijenjeno vrijeme za izvršenje zadatka, koje obično odredi Voditelj "
+"Projekta kada je zadatak u stanju Nacrta."
#. module: project
#: help:project.project,effective_hours:0
msgid "Sum of spent hours of all tasks related to this project."
msgstr ""
+"Zbroj utrošenih sati za izvršenje svih zadataka vezanih uz ovaj projekt."
#. module: project
#: help:project.task,project_id:0
@@ -829,6 +857,8 @@ msgid ""
"If you have [?] in the project name, it means there are no analytic account "
"linked to this project."
msgstr ""
+"Vidite li (?) u imenu projekta, znači da nema Analitičkog Konta, vezanog uz "
+"Projekt."
#. module: project
#: help:project.project,planned_hours:0
@@ -844,7 +874,7 @@ msgstr "Mjesečni radovi"
#: model:ir.actions.report.xml,name:project.report_project_project_gantt
#: model:ir.actions.report.xml,name:project.report_project_task_gantt
msgid "Gantt Representation"
-msgstr ""
+msgstr "Predstavljanje Ganttogramom"
#. module: project
#: field:project.project,warn_customer:0
@@ -859,7 +889,7 @@ msgstr "Stanje"
#. module: project
#: field:project.task,name:0
msgid "Task summary"
-msgstr ""
+msgstr "Sižetak Zadatka"
#. module: project
#: view:project.project:0
@@ -873,6 +903,9 @@ msgid ""
"projects. It enables you to connect projects with budgets, planning, cost "
"and revenue analysis, timesheets on projects, etc."
msgstr ""
+"Povežite ovaj projekt s Analitičkim Kontom, ako trebate upravljanje "
+"financijama vezano uz projekt. Time ćete uz projekt vezati budžetiranje, "
+"planiranje, analizu prihoda i rashoda, rasporede, itd."
#. module: project
#: view:project.project:0
@@ -950,7 +983,7 @@ msgstr "Pošaljite mail kupcu"
#. module: project
#: field:project.project,warn_manager:0
msgid "Warn Manager"
-msgstr "Upravitelj Upozorenja"
+msgstr "Upozorite Voditelja"
#. module: project
#: model:ir.model,name:project.model_config_compute_remaining
@@ -960,12 +993,13 @@ msgstr "config.compute.remaining"
#. module: project
#: wizard_button:project.task.close,mail_ask,close:0
msgid "Quiet close"
-msgstr "Tiho zatvaranje"
+msgstr "Tiho zaključenje"
#. module: project
#: help:project.task.delegate,init,prefix:0
msgid "New title of your own task to validate the work done."
-msgstr "Novi naslov za svoj zadatak da biste provjerili valjanost posla."
+msgstr ""
+"Novi naslov za vaš vlastiti zadatak u cilju vrednovanja izvršenog rada."
#. module: project
#: field:project.task,progress:0
@@ -982,7 +1016,7 @@ msgstr "Opis"
#. module: project
#: model:process.transition,name:project.process_transition_taskinvoice0
msgid "Task invoice"
-msgstr ""
+msgstr "Račun vezan uz zadatak"
#. module: project
#: model:ir.actions.act_window,name:project.open_view_my_project_open
@@ -993,12 +1027,12 @@ msgstr "Struktura Projekta"
#. module: project
#: wizard_view:project.task.delegate,init:0
msgid "Validation Task"
-msgstr "Potvrdni Zadatak"
+msgstr "Zadatak vrednovanja"
#. module: project
#: field:project.task,work_ids:0
msgid "Work done"
-msgstr "Rad"
+msgstr "Izvršeni rad"
#. module: project
#: selection:project.project,state:0
@@ -1011,11 +1045,12 @@ msgid ""
"If you have [?] in the name, it means there are no analytic account linked "
"to project."
msgstr ""
+"Vidite li (?) u imenu, znači da nema Analitičkog Konta, vezanog uz Projekt."
#. module: project
#: model:ir.actions.wizard,name:project.wizard_delegate_task
msgid "Delegate Task"
-msgstr ""
+msgstr "Delegiraj Zadatak"
#. module: project
#: field:project.project,tasks:0
@@ -1028,16 +1063,18 @@ msgid ""
"If you check this field, the project manager will receive a request each "
"time a task is completed by his team."
msgstr ""
+"Označite li ovo polje, Voditelj projekta bit će obaviješten svaki puta kada "
+"netko iz tima dovrši zadatak."
#. module: project
#: model:project.task.type,name:project.project_tt_feature
msgid "New Feature"
-msgstr "Nea Mogućnost"
+msgstr "Novo svojstvo"
#. module: project
#: model:process.node,note:project.process_node_opentask0
msgid "Encode your working hours."
-msgstr ""
+msgstr "Kodiraj radne sate"
#. module: project
#: wizard_field:project.task.delegate,init,prefix:0
@@ -1052,7 +1089,7 @@ msgstr "Zadatak Projekta"
#. module: project
#: field:project.task,effective_hours:0
msgid "Hours Spent"
-msgstr "Potrošeno Sati"
+msgstr "Utrošeno Sati"
#. module: project
#: field:project.task,total_hours:0
@@ -1069,7 +1106,7 @@ msgstr "Predložak Projekata"
#: field:project.project,priority:0
#: field:project.task,sequence:0
msgid "Sequence"
-msgstr "Sekvenca"
+msgstr "Slijed"
#. module: project
#: help:project.project,warn_footer:0
@@ -1077,6 +1114,8 @@ msgid ""
"Footer added at the beginning of the email for the warning message sent to "
"the customer when a task is closed."
msgstr ""
+"Naslovnik dodan na početku emaila za poruku upozorenja koja se šalje "
+"korisniku kada je zadatak obavljen."
#. module: project
#: view:project.project:0
@@ -1091,17 +1130,17 @@ msgstr "Izračunaj Preostale Sate"
#. module: project
#: wizard_field:project.task.delegate,init,state:0
msgid "Validation State"
-msgstr ""
+msgstr "Stanje Vrednovanja"
#. module: project
#: constraint:project.project:0
msgid "Error ! You can not create recursive projects."
-msgstr ""
+msgstr "Greška ! Ne možete kreirati rekurzivne projekte."
#. module: project
#: field:project.task,date_deadline:0
msgid "Deadline"
-msgstr "Krajnji Rok"
+msgstr "Rok"
#. module: project
#: wizard_field:project.task.delegate,init,user_id:0
@@ -1111,28 +1150,28 @@ msgstr "Dodijeli"
#. module: project
#: field:project.task.work,name:0
msgid "Work summary"
-msgstr ""
+msgstr "Sižetak rada"
#. module: project
#: view:project.project:0
msgid "Date Stop: %(date_stop)s"
-msgstr ""
+msgstr "Datum zaustavljanja: %(date_stop)s"
#. module: project
#: field:project.project,date_end:0
msgid "Expected End"
-msgstr ""
+msgstr "Očekivani kraj"
#. module: project
#: model:process.node,note:project.process_node_taskbydelegate0
msgid "Delegate your task to the other user"
-msgstr ""
+msgstr "Delegirajte zadatak drugom korisniku."
#. module: project
#: view:project.project:0
#: field:project.project,warn_footer:0
msgid "Mail Footer"
-msgstr ""
+msgstr "Podnožje maila"
#. module: project
#: model:ir.actions.act_window,name:project.open_view_project_open
diff --git a/addons/project/project.py b/addons/project/project.py
index e9c11cc605c..0c6cc839f6d 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -18,14 +18,13 @@
# along with this program. If not, see .
#
##############################################################################
-
from lxml import etree
import mx.DateTime
import datetime
import time
+
from tools.translate import _
from osv import fields, osv
-from tools.translate import _
class project_task_type(osv.osv):
_name = 'project.task.type'
@@ -47,11 +46,9 @@ class project(osv.osv):
_description = "Project"
_inherits = {'account.analytic.account':"category_id"}
- def search(self, cr, user, args, offset=0, limit=None, order=None,
- context=None, count=False):
+ def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
if user == 1:
- return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order,
- context=context, count=count)
+ return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
if context and context.has_key('user_prefence') and context['user_prefence']:
cr.execute("""SELECT project.id FROM project_project project
LEFT JOIN account_analytic_account account ON account.id = project.category_id
@@ -62,7 +59,7 @@ class project(osv.osv):
return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order,
context=context, count=count)
- def _complete_name(self, cr, uid, ids, name, args, context):
+ def _complete_name(self, cr, uid, ids, name, args, context={}):
res = {}
for m in self.browse(cr, uid, ids, context=context):
res[m.id] = (m.parent_id and (m.parent_id.name + '/') or '') + m.name
@@ -72,20 +69,21 @@ class project(osv.osv):
return super(project, self).check_recursion(cursor, user, ids,
parent=parent)
- def onchange_partner_id(self, cr, uid, ids, part):
+ def onchange_partner_id(self, cr, uid, ids, part, context={}):
+ partner_obj = self.pool.get('res.partner')
if not part:
return {'value':{'contact_id': False, 'pricelist_id': False}}
- addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
+ addr = partner_obj.address_get(cr, uid, [part], ['contact'])
+ pricelist = partner_obj.read(cr, uid, part, ['property_product_pricelist'], context=context)
+ pricelist_id = pricelist.get('property_product_pricelist', False) and pricelist.get('property_product_pricelist')[0] or False
+ return {'value':{'contact_id': addr['contact'], 'pricelist_id': pricelist_id}}
- pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id
- return {'value':{'contact_id': addr['contact'], 'pricelist_id': pricelist}}
-
- def _progress_rate(self, cr, uid, ids, names, arg, context=None):
+ def _progress_rate(self, cr, uid, ids, names, arg, context={}):
res = {}.fromkeys(ids, 0.0)
progress = {}
if not ids:
return res
- ids2 = self.search(cr, uid, [('parent_id','child_of',ids)])
+ ids2 = self.search(cr, uid, [('parent_id','child_of',ids)], context=context)
if ids2:
cr.execute('''SELECT
project_id, sum(planned_hours), sum(total_hours), sum(effective_hours)
@@ -96,15 +94,15 @@ class project(osv.osv):
state<>'cancelled'
GROUP BY
project_id''',(ids2,))
- progress = dict(map(lambda x: (x[0], (x[1],x[2],x[3])), cr.fetchall()))
+ progress = dict(map(lambda x: (x[0], (x[1], x[2], x[3])), cr.fetchall()))
for project in self.browse(cr, uid, ids, context=context):
- s = [0.0,0.0,0.0]
+ s = [0.0, 0.0, 0.0]
tocompute = [project]
while tocompute:
p = tocompute.pop()
tocompute += p.child_ids
for i in range(3):
- s[i] += progress.get(p.id, (0.0,0.0,0.0))[i]
+ s[i] += progress.get(p.id, (0.0, 0.0, 0.0))[i]
res[project.id] = {
'planned_hours': s[0],
'effective_hours': s[2],
@@ -177,7 +175,7 @@ class project(osv.osv):
res = self.setActive(cr, uid, ids,value=True, context=context)
return res
- def copy(self, cr, uid, id, default={},context={}):
+ def copy(self, cr, uid, id, default={}, context={}):
proj = self.browse(cr, uid, id, context=context)
default = default or {}
context['active_test'] = False
@@ -190,34 +188,37 @@ class project(osv.osv):
cr.execute('update project_task set active=True where project_id =ANY(%s)',(ids,))
return res
- def duplicate_template(self, cr, uid, ids,context={}):
+ def duplicate_template(self, cr, uid, ids, context={}):
+ project_obj = self.pool.get('project.project')
+ task_obj = self.pool.get('project.task')
result = []
- for proj in self.browse(cr, uid, ids):
+ for proj in self.browse(cr, uid, ids, context=context):
parent_id = context.get('parent_id',False)
- new_id = self.pool.get('project.project').copy(cr, uid, proj.id, default = {
+ new_id = project_obj.copy(cr, uid, proj.id, default = {
'name': proj.name +_(' (copy)'),
'state':'open',
- 'parent_id':parent_id})
+ 'parent_id':parent_id}, context=context)
result.append(new_id)
cr.execute('select id from project_task where project_id=%s', (proj.id,))
res = cr.fetchall()
for (tasks_id,) in res:
- self.pool.get('project.task').copy(cr, uid, tasks_id, default = {
+ task_obj.copy(cr, uid, tasks_id, default = {
'project_id': new_id,
'active':True}, context=context)
- child_ids = self.search(cr, uid, [('parent_id','=', proj.id)])
+ child_ids = self.search(cr, uid, [('parent_id','=', proj.id)], context=context)
if child_ids:
- self.duplicate_template(cr, uid, child_ids, context={'parent_id':new_id})
+ self.duplicate_template(cr, uid, child_ids, context={'parent_id': new_id})
return result
# set active value for a project, its sub projects and its tasks
def setActive(self, cr, uid, ids, value=True, context={}):
+ task_obj = self.pool.get('project.task')
for proj in self.browse(cr, uid, ids, context):
self.write(cr, uid, [proj.id], {'state': value and 'open' or 'template'}, context)
cr.execute('select id from project_task where project_id=%s', (proj.id,))
tasks_id = [x[0] for x in cr.fetchall()]
if tasks_id:
- self.pool.get('project.task').write(cr, uid, tasks_id, {'active': value}, context)
+ task_obj.write(cr, uid, tasks_id, {'active': value}, context=context)
child_ids = self.search(cr, uid, [('parent_id','=', proj.id)])
if child_ids:
self.setActive(cr, uid, child_ids, value, context)
@@ -253,7 +254,7 @@ class task(osv.osv):
return res
def onchange_planned(self, cr, uid, ids, planned = 0.0, effective = 0.0):
- return {'value':{'remaining_hours' : planned - effective}}
+ return {'value':{'remaining_hours' : planned - effective}}
def _default_project(self, cr, uid, context={}):
if 'project_id' in context and context['project_id']:
@@ -269,8 +270,8 @@ class task(osv.osv):
default['work_ids'] = []
return super(task, self).copy_data(cr, uid, id, default, context)
- def _check_dates(self, cr, uid, ids):
- task = self.read(cr, uid, ids[0],['date_start','date_end'])
+ def _check_dates(self, cr, uid, ids, context={}):
+ task = self.read(cr, uid, ids[0],['date_start', 'date_end'])
if task['date_start'] and task['date_end']:
if task['date_start'] > task['date_end']:
return False
@@ -309,7 +310,7 @@ class task(osv.osv):
'company_id': fields.many2one('res.company', 'Company'),
}
_defaults = {
- 'user_id': lambda obj,cr,uid,context: uid,
+ 'user_id': lambda obj, cr, uid, context: uid,
'state': lambda *a: 'draft',
'priority': lambda *a: '2',
'progress': lambda *a: 0,
@@ -317,7 +318,7 @@ class task(osv.osv):
'active': lambda *a: True,
'date_start': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'project_id': _default_project,
- '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 = "sequence, priority, date_start, id"
@@ -328,7 +329,8 @@ class task(osv.osv):
# Override view according to the company definition
#
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- obj_tm = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.project_time_mode_id
+ users_obj = self.pool.get('res.users')
+ obj_tm = users_obj.browse(cr, uid, uid, context).company_id.project_time_mode_id
tm = obj_tm and obj_tm.name or 'Hours'
res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
@@ -470,7 +472,7 @@ class project_work(osv.osv):
'company_id': fields.related('task_id','company_id',type='many2one',relation='res.company',string='Company',store=True)
}
_defaults = {
- 'user_id': lambda obj,cr,uid,context: uid,
+ 'user_id': lambda obj, cr, uid, context: uid,
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S')
}
_order = "date desc"
@@ -498,8 +500,9 @@ project_work()
class config_compute_remaining(osv.osv_memory):
_name='config.compute.remaining'
def _get_remaining(self,cr, uid, ctx):
+ task_obj = self.pool.get('project.task')
if 'active_id' in ctx:
- return self.pool.get('project.task').browse(cr,uid,ctx['active_id']).remaining_hours
+ return task_obj.browse(cr,uid,ctx['active_id'],context=ctx).remaining_hours
return False
_columns = {
@@ -511,12 +514,30 @@ class config_compute_remaining(osv.osv_memory):
}
def compute_hours(self, cr, uid, ids, context=None):
+ task_obj = self.pool.get('project.task')
+ request = self.pool.get('res.request')
if 'active_id' in context:
remaining_hrs=self.browse(cr,uid,ids)[0].remaining_hours
- self.pool.get('project.task').write(cr,uid,context['active_id'],{'remaining_hours':remaining_hrs})
+ task_obj.write(cr,uid,context['active_id'],{'remaining_hours':remaining_hrs})
+ if context.get('button_reactivate', False):
+ tasks = task_obj.browse(cr, uid, [context['active_id']], context=context)
+ for task in tasks:
+ project = task.project_id
+ if project and project.warn_manager and project.user_id.id and (project.user_id.id != uid):
+ request.create(cr, uid, {
+ 'name': _("Task '%s' set in progress") % task.name,
+ 'state': 'waiting',
+ 'act_from': uid,
+ 'act_to': project.user_id.id,
+ 'ref_partner_id': task.partner_id.id,
+ 'ref_doc1': 'project.task,%d' % task.id,
+ 'ref_doc2': 'project.project,%d' % project.id,
+ })
+ task_obj.write(cr, uid, [task.id], {'state': 'open'})
return {
'type': 'ir.actions.act_window_close',
}
+
config_compute_remaining()
class message(osv.osv):
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 460e74a4cc3..b910515c950 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -207,7 +207,7 @@
-
+
@@ -268,7 +268,7 @@
-
+
@@ -329,11 +329,12 @@
-
-
+
+
+
@@ -411,7 +412,6 @@
-
@@ -601,7 +601,7 @@
-
+
@@ -610,7 +610,7 @@
-
+
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index 948ed70ef80..dd271ee97da 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -32,7 +32,6 @@
search
-
@@ -41,8 +40,8 @@
-
-
+
+
@@ -55,12 +54,11 @@
-
-
+ Tasksreport.project.task.userform
diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml
index 7c34807517a..7fcb2e6fedb 100644
--- a/addons/project/security/project_security.xml
+++ b/addons/project/security/project_security.xml
@@ -23,7 +23,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -32,7 +32,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
diff --git a/addons/project/wizard/close_task.py b/addons/project/wizard/close_task.py
index f577929a8f6..89e4409f643 100644
--- a/addons/project/wizard/close_task.py
+++ b/addons/project/wizard/close_task.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -37,7 +37,8 @@ mail_fields = {
}
def email_send(cr, uid, ids, to_adr, description, context={}):
- for task in pooler.get_pool(cr.dbname).get('project.task').browse(cr, uid, ids, context):
+ pool = pooler.get_pool(cr.dbname)
+ for task in pool.get('project.task').browse(cr, uid, ids, context=context):
project = task.project_id
subject = "Task '%s' closed" % task.name
if task.user_id and task.user_id.address_id and task.user_id.address_id.email:
@@ -45,7 +46,6 @@ def email_send(cr, uid, ids, to_adr, description, context={}):
signature = task.user_id.signature
else:
raise wizard.except_wizard(_('Error'), _("Couldn't send mail because your email address is not configured!"))
-
if to_adr:
val = {
'name': task.name,
@@ -75,8 +75,8 @@ class wizard_close(wizard.interface):
partner_id = task.partner_id or task.project_id.partner_id
if partner_id and partner_id.address[0].email:
email = partner_id.address[0].email
- return {'description': task.description, 'email':email}
-
+ return {'description': task.description or task.name, 'email':email}
+
def _data_send(self, cr, uid, data, context):
task_obj = pooler.get_pool(cr.dbname).get('project.task')
if data['form']['email']:
diff --git a/addons/project/wizard/compute_tasks_date.py b/addons/project/wizard/compute_tasks_date.py
index 7f9965367ae..9c81aefca1e 100644
--- a/addons/project/wizard/compute_tasks_date.py
+++ b/addons/project/wizard/compute_tasks_date.py
@@ -133,15 +133,15 @@ class wizard_compute_tasks(wizard.interface):
'init': {
'actions': [],
'result': {'type':'form', 'arch':compute_form, 'fields':compute_fields, 'state':[
- ('end', 'Cancel'),
- ('compute', 'Compute')
+ ('end', 'Cancel', 'gtk-cancel'),
+ ('compute', 'Compute', 'gtk-ok', True)
]},
},
'compute': {
'actions': [_compute_date],
- 'result': {'type':'form','arch':success_msg,'fields':{}, 'state':[('end', 'Ok')]},
+ 'result': {'type':'form','arch':success_msg,'fields':{}, 'state':[('end', 'Ok', 'gtk-ok', True)]},
}
}
wizard_compute_tasks('wizard.compute.tasks')
diff --git a/addons/project/wizard/task_delegate.py b/addons/project/wizard/task_delegate.py
index 1bb6c538593..0fe662dc3cb 100644
--- a/addons/project/wizard/task_delegate.py
+++ b/addons/project/wizard/task_delegate.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -96,7 +96,7 @@ class wizard_delegate(wizard.interface):
'actions': [_ask_auto_complete],
'result': {'type':'form', 'arch':ask_form, 'fields':ask_fields, 'state':[
('end', 'Cancel'),
- ('valid', 'Validate')
+ ('valid', 'Validate', '', True)
]},
},
'valid': {
diff --git a/addons/project_gtd/i18n/hr.po b/addons/project_gtd/i18n/hr.po
index 8ef7fd48dc8..d42e1a703ab 100644
--- a/addons/project_gtd/i18n/hr.po
+++ b/addons/project_gtd/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * project_gtd
-#
+# * project_gtd
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:23+0000\n"
-"Last-Translator: Miro Glavić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 19:22+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:59+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: project_gtd
#: view:project.gtd.timebox:0
@@ -46,7 +47,7 @@ msgstr "Mjesečno"
#. module: project_gtd
#: field:project.gtd.timebox,parent_id:0
msgid "Parent Timebox"
-msgstr ""
+msgstr "Ishodni Timebox"
#. module: project_gtd
#: constraint:ir.ui.view:0
@@ -67,7 +68,7 @@ msgstr "Prioritet"
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks_my_inbox
#: model:ir.ui.menu,name:project_gtd.menu_open_time_myinbox
msgid "My Inbox"
-msgstr ""
+msgstr "Moj Inbox"
#. module: project_gtd
#: field:project.gtd.context,project_default_id:0
@@ -77,7 +78,7 @@ msgstr "Zadani Projekt"
#. module: project_gtd
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: project_gtd
#: field:project.gtd.timebox,context4_id:0
@@ -87,7 +88,7 @@ msgstr "Kontekst 4"
#. module: project_gtd
#: wizard_field:project.gtd.timebox.fill,init,timebox_to_id:0
msgid "Set to Timebox"
-msgstr ""
+msgstr "Postavi na Timebox"
#. module: project_gtd
#: selection:project.gtd.timebox,type:0
@@ -97,29 +98,29 @@ msgstr "Drugo"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.open_gtd_task_inbox
msgid "Inbox Tasks"
-msgstr ""
+msgstr "Zadaci u Inboxu"
#. module: project_gtd
#: view:project.gtd.timebox:0
#: field:project.gtd.timebox,name:0
#: field:project.task,timebox_id:0
msgid "Timebox"
-msgstr ""
+msgstr "Timebox"
#. module: project_gtd
#: model:ir.module.module,shortdesc:project_gtd.module_meta_information
msgid "Getting Things Done - Time Management Module"
-msgstr ""
+msgstr "Getting Things Done - Modul za upravljanje vremenom"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks
msgid "Timebox Tasks"
-msgstr ""
+msgstr "Zadaci u Timeboxu"
#. module: project_gtd
#: wizard_view:project.gtd.timebox.fill,init:0
msgid "Timebox tasks selection"
-msgstr ""
+msgstr "Odabir zadataka u Timeboxu"
#. module: project_gtd
#: field:project.gtd.timebox,type:0
@@ -134,7 +135,7 @@ msgstr "Efektivni Sati"
#. module: project_gtd
#: model:ir.actions.wizard,name:project_gtd.open_gtd_timebox_empty
msgid "Empty Timebox"
-msgstr ""
+msgstr "Prazan Timebox"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks_my_pending
@@ -144,7 +145,7 @@ msgstr "Moji Neriješeni Zadaci"
#. module: project_gtd
#: view:project.gtd.timebox:0
msgid "Timebox Definition"
-msgstr ""
+msgstr "Definicija Timeboxa"
#. module: project_gtd
#: field:project.gtd.timebox,user_id:0
@@ -155,7 +156,7 @@ msgstr "Korisnik"
#: model:ir.actions.wizard,name:project_gtd.open_gtd_timebox_daily
#: model:ir.ui.menu,name:project_gtd.menu_open_time_daily_inbox
msgid "My Daily Timebox"
-msgstr ""
+msgstr "Moj dnevni Timebox"
#. module: project_gtd
#: model:ir.model,name:project_gtd.model_project_gtd_context
@@ -180,7 +181,7 @@ msgstr "Kontekst 3"
#. module: project_gtd
#: wizard_button:project.gtd.timebox.fill,init,process:0
msgid "Add to Timebox"
-msgstr ""
+msgstr "Dodaj u Timebox"
#. module: project_gtd
#: field:project.gtd.timebox,context5_id:0
@@ -207,7 +208,7 @@ msgstr "Dnevno"
#. module: project_gtd
#: model:ir.actions.wizard,name:project_gtd.open_gtd_timebox_fill
msgid "Plannify Timebox"
-msgstr ""
+msgstr "Postavi planiranje u Timebox"
#. module: project_gtd
#: field:project.gtd.timebox,col_project:0
@@ -219,14 +220,14 @@ msgstr "Projekt"
#: model:ir.actions.act_window,name:project_gtd.open_gtd_timebox_tree_my
#: model:ir.ui.menu,name:project_gtd.menu_open_gtd_time_my_timeboxes
msgid "My Timeboxes"
-msgstr ""
+msgstr "Moji Timeboxovi"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.open_gtd_timebox_tree
#: model:ir.ui.menu,name:project_gtd.menu_open_gtd_time_timeboxes
#: view:project.gtd.timebox:0
msgid "Timeboxes"
-msgstr ""
+msgstr "Timeboxovi"
#. module: project_gtd
#: view:project.task:0
@@ -254,7 +255,7 @@ msgstr "Upravljanje Vremenom"
#. module: project_gtd
#: view:project.task:0
msgid "Getting Things Done"
-msgstr ""
+msgstr "Getting Things Done"
#. module: project_gtd
#: field:project.gtd.timebox,task1_ids:0
@@ -276,12 +277,12 @@ msgstr "Redoslijed"
#. module: project_gtd
#: field:project.gtd.timebox,child_ids:0
msgid "Child Timeboxes"
-msgstr ""
+msgstr "Ishodni Timeboxovi"
#. module: project_gtd
#: model:ir.ui.menu,name:project_gtd.menu_open_time_allinbox
msgid "All My Timeboxes"
-msgstr ""
+msgstr "Svi moji Timeboxovi"
#. module: project_gtd
#: field:project.gtd.timebox,col_deadline:0
@@ -291,7 +292,7 @@ msgstr "Krajnji Rok"
#. module: project_gtd
#: wizard_field:project.gtd.timebox.fill,init,timebox_id:0
msgid "Get from Timebox"
-msgstr ""
+msgstr "Uzmi iz Timeboxa"
#. module: project_gtd
#: wizard_button:project.gtd.timebox.fill,init,end:0
diff --git a/addons/project_gtd/wizard/project_gtd_fill.py b/addons/project_gtd/wizard/project_gtd_fill.py
index 3bbb947c5ba..ca3964d34c5 100644
--- a/addons/project_gtd/wizard/project_gtd_fill.py
+++ b/addons/project_gtd/wizard/project_gtd_fill.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -61,7 +61,7 @@ class wiz_timebox_fill(wizard.interface):
'arch':_gtd_arch,
'fields':_gtd_field,
'state':[
- ('end','Cancel'),
+ ('end','Cancel', 'gtk-cancel'),
('process','Add to Timebox')
]
}
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index 74444780b57..3ea0b196705 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -36,6 +36,10 @@ class project_issue_report(osv.osv):
c.project_id as project_id,
c.type_id as type_id,
count(*) as nbr,
+ sum(planned_revenue) as amount_revenue,
+ sum(planned_cost) as amount_costs,
+ sum(planned_revenue*probability/100)::decimal(16,2) as amount_revenue_prob,
+ avg(probability)::decimal(16,2) as probability,
to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
from
project_issue c
diff --git a/addons/project_long_term/__init__.py b/addons/project_long_term/__init__.py
index 5a6ad27710f..8efcc1a0007 100644
--- a/addons/project_long_term/__init__.py
+++ b/addons/project_long_term/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -15,12 +15,11 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-import project
+import project_long_term
import wizard
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project_long_term/__terp__.py b/addons/project_long_term/__terp__.py
index 5367ff02567..25529f5b245 100644
--- a/addons/project_long_term/__terp__.py
+++ b/addons/project_long_term/__terp__.py
@@ -18,8 +18,6 @@
# along with this program. If not, see .
#
##############################################################################
-
-
{
"name" : "Long Term Project Management",
"version": "1.1",
@@ -27,15 +25,24 @@
"website" : "http://www.openerp.com",
"category" : "Generic Modules/Projects & Services",
"depends" : ["project", "resource"],
- "description": """Long Term Project management module that track planning, scheduling, resources allocation.
+ "description": """
+
+ Long Term Project management module that track planning, scheduling, resources allocation.
+ Mainly used with Big project management.
+ - Project Phases will be maintain by Manager of the project
+ - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.
+ If no project given then all the draft,open and pending states phases will be taken
+ - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as arguement and computes all the open,draft and pending tasks
+ - Schedule Tasks: All the tasks which are in draft,pending and open states are scheduled with taking the phase's start date
+
""",
"init_xml" : [],
- "demo_xml" : ["project_demo.xml"],
+ "demo_xml" : ["project_long_term_demo.xml"],
"update_xml": [
- #"security/ir.model.access.csv",
- "project_wizard.xml" ,
- "project_view.xml",
- "project_workflow.xml"
+ "security/ir.model.access.csv",
+ "project_long_term_wizard.xml" ,
+ "project_long_term_view.xml",
+ "project_long_term_workflow.xml"
],
'installable': True,
'active': False,
diff --git a/addons/project_long_term/project_data_scheduler.xml b/addons/project_long_term/project_data_scheduler.xml
deleted file mode 100644
index 32e74725d58..00000000000
--- a/addons/project_long_term/project_data_scheduler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
- Calculate Project Task Length Scheduler
-
-
- 1
- minutes
- -1
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/project_long_term/project.py b/addons/project_long_term/project_long_term.py
similarity index 67%
rename from addons/project_long_term/project.py
rename to addons/project_long_term/project_long_term.py
index 595d3c82140..0ac0f902220 100644
--- a/addons/project_long_term/project.py
+++ b/addons/project_long_term/project_long_term.py
@@ -18,24 +18,23 @@
# along with this program. If not, see .
#
##############################################################################
-
from lxml import etree
import mx.DateTime
import time
+
from tools.translate import _
from osv import fields, osv
-
class project_phase(osv.osv):
_name = "project.phase"
_description = "Project Phase"
- def _check_recursion(self, cr, uid, ids):
- obj_self = self.browse(cr, uid, ids[0])
- prev_ids = obj_self.previous_phase_ids
- next_ids = obj_self.next_phase_ids
+ def _check_recursion(self, cr, uid, ids, context={}):
+ data_phase = self.browse(cr, uid, ids[0], context=context)
+ prev_ids = data_phase.previous_phase_ids
+ next_ids = data_phase.next_phase_ids
# it should nither be in prev_ids nor in next_ids
- if (obj_self in prev_ids) or (obj_self in next_ids):
+ if (data_phase in prev_ids) or (data_phase in next_ids):
return False
ids = [id for id in prev_ids if id in next_ids]
# both prev_ids and next_ids must be unique
@@ -48,7 +47,7 @@ class project_phase(osv.osv):
while prev_ids:
cr.execute('select distinct prv_phase_id from project_phase_rel where next_phase_id in ('+','.join(map(str, prev_ids))+')')
prv_phase_ids = filter(None, map(lambda x: x[0], cr.fetchall()))
- if obj_self.id in prv_phase_ids:
+ if data_phase.id in prv_phase_ids:
return False
ids = [id for id in prv_phase_ids if id in next_ids]
if ids:
@@ -58,7 +57,7 @@ class project_phase(osv.osv):
while next_ids:
cr.execute('select distinct next_phase_id from project_phase_rel where prv_phase_id in ('+','.join(map(str, next_ids))+')')
next_phase_ids = filter(None, map(lambda x: x[0], cr.fetchall()))
- if obj_self.id in next_phase_ids:
+ if data_phase.id in next_phase_ids:
return False
ids = [id for id in next_phase_ids if id in prev_ids]
if ids:
@@ -66,33 +65,30 @@ class project_phase(osv.osv):
next_ids = next_phase_ids
return True
- def _check_dates(self, cr, uid, ids):
- phase = self.read(cr, uid, ids[0], ['date_start', 'date_end'])
- if phase['date_start'] and phase['date_end']:
- if phase['date_start'] > phase['date_end']:
- return False
+ def _check_dates(self, cr, uid, ids, context={}):
+ phase = self.read(cr, uid, ids[0], ['date_start', 'date_end'], context=context)
+ if phase['date_start'] and phase['date_end'] and phase['date_start'] > phase['date_end']:
+ return False
return True
- def _check_constraint_start(self, cr, uid, ids):
- phase = self.read(cr, uid, ids[0], ['date_start', 'constraint_date_start'])
- if phase['date_start'] and phase['constraint_date_start']:
- if phase['date_start'] < phase['constraint_date_start']:
- return False
+ def _check_constraint_start(self, cr, uid, ids, context={}):
+ phase = self.read(cr, uid, ids[0], ['date_start', 'constraint_date_start'], context=context)
+ if phase['date_start'] and phase['constraint_date_start'] and phase['date_start'] < phase['constraint_date_start']:
+ return False
return True
- def _check_constraint_end(self, cr, uid, ids):
- phase = self.read(cr, uid, ids[0], ['date_end', 'constraint_date_end'])
- if phase['date_end'] and phase['constraint_date_end']:
- if phase['date_end'] > phase['constraint_date_end']:
- return False
+ def _check_constraint_end(self, cr, uid, ids, context={}):
+ phase = self.read(cr, uid, ids[0], ['date_end', 'constraint_date_end'], context=context)
+ if phase['date_end'] and phase['constraint_date_end'] and phase['date_end'] > phase['constraint_date_end']:
+ return False
return True
_columns = {
'name': fields.char("Phase Name", size=64, required=True),
'date_start': fields.datetime('Starting Date'),
'date_end': fields.datetime('End Date'),
- 'constraint_date_start': fields.datetime('Constraint Starting Date'),
- 'constraint_date_end': fields.datetime('Constraint End Date'),
+ 'constraint_date_start': fields.datetime('Start Date', help='force the phase to start after this date'),
+ 'constraint_date_end': fields.datetime('End Date', help='force the phase to finish before this date'),
'project_id': fields.many2one('project.project', 'Project', required=True),
'next_phase_ids': fields.many2many('project.phase', 'project_phase_rel', 'prv_phase_id', 'next_phase_id', 'Next Phases'),
'previous_phase_ids': fields.many2many('project.phase', 'project_phase_rel', 'next_phase_id', 'prv_phase_id', 'Previous Phases'),
@@ -120,73 +116,73 @@ class project_phase(osv.osv):
(_check_constraint_end, 'Error! Phase must end-before Constraint End Date.', ['date_end', 'constraint_date_end']),
]
- def onchange_project(self, cr, uid, ids, project):
+ def onchange_project(self, cr, uid, ids, project, context={}):
result = {}
+ project_obj = self.pool.get('project.project')
if project:
- project_obj = self.pool.get('project.project')
- project_id = project_obj.browse(cr, uid, project)
- if project_id.date_start:
- result['date_start'] = mx.DateTime.strptime(project_id.date_start, "%Y-%m-%d").strftime('%Y-%m-%d %H:%M:%S')
- return {'value': result}
+ project_id = project_obj.browse(cr, uid, project, context=context)
+ if project_id.date_start:
+ result['date_start'] = mx.DateTime.strptime(project_id.date_start, "%Y-%m-%d").strftime('%Y-%m-%d %H:%M:%S')
+ return {'value': result}
return {'value': {'date_start': []}}
- def _check_date_start(self, cr, uid, phase, date_end, context=None):
+ def _check_date_start(self, cr, uid, phase, date_end, context={}):
"""
Check And Compute date_end of phase if change in date_start < older time.
"""
- resource_calendar_obj = self.pool.get('resource.calendar')
uom_obj = self.pool.get('product.uom')
resource_obj = self.pool.get('resource.resource')
- calendar_id = phase.project_id.resource_calendar_id.id
+ cal_obj = self.pool.get('resource.calendar')
+ calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
if resource_id:
- cal_id = resource_obj.browse(cr, uid, resource_id[0]).calendar_id.id
+# cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
+ res = resource_obj.read(cr, uid, resource_id[0], ['calendar_id'], context=context)[0]
+ cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
calendar_id = cal_id
- default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')])[0]
+ default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')], context=context)[0]
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
- work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id or False, date_end, avg_hours or 0.0, resource_id or False)
+ work_times = cal_obj.interval_min_get(cr, uid, calendar_id, date_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
dt_start = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
- self.write(cr, uid, [phase.id], {'date_start': dt_start, 'date_end': date_end.strftime('%Y-%m-%d %H:%M:%S')})
+ self.write(cr, uid, [phase.id], {'date_start': dt_start, 'date_end': date_end.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
- def _check_date_end(self, cr, uid, phase, date_start, context=None):
+ def _check_date_end(self, cr, uid, phase, date_start, context={}):
"""
Check And Compute date_end of phase if change in date_end > older time.
"""
- resource_calendar_obj = self.pool.get('resource.calendar')
uom_obj = self.pool.get('product.uom')
resource_obj = self.pool.get('resource.resource')
- calendar_id = phase.project_id.resource_calendar_id.id
- resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
+ cal_obj = self.pool.get('resource.calendar')
+ calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
+ resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)], context=context)
if resource_id:
- cal_id = resource_obj.browse(cr, uid, resource_id[0]).calendar_id.id
+# cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
+ res = resource_obj.read(cr, uid, resource_id[0], ['calendar_id'], context=context)[0]
+ cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
calendar_id = cal_id
- default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')])[0]
+ default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')], context=context)[0]
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
- work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id or False, date_start, avg_hours or 0.0, resource_id or False)
+ work_times = cal_obj.interval_get(cr, uid, calendar_id, date_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
dt_end = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
- self.write(cr, uid, [phase.id], {'date_start': date_start.strftime('%Y-%m-%d %H:%M:%S'), 'date_end': dt_end})
+ self.write(cr, uid, [phase.id], {'date_start': date_start.strftime('%Y-%m-%d %H:%M:%S'), 'date_end': dt_end}, context=context)
- def write(self, cr, uid, ids, vals, context=None):
-
- if not context:
- context = {}
-
- if context.get('scheduler',False):
- return super(project_phase, self).write(cr, uid, ids, vals, context=context)
-
- # Consider calendar and efficiency if the phase is performed by a resource
- # otherwise consider the project's working calendar
- phase = self.browse(cr, uid, ids[0])
+ def write(self, cr, uid, ids, vals, context={}):
resource_calendar_obj = self.pool.get('resource.calendar')
resource_obj = self.pool.get('resource.resource')
uom_obj = self.pool.get('product.uom')
- resource_id = False
- calendar_id = phase.project_id.resource_calendar_id.id
- resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
+ if not context:
+ context = {}
+ if context.get('scheduler',False):
+ return super(project_phase, self).write(cr, uid, ids, vals, context=context)
+ # Consider calendar and efficiency if the phase is performed by a resource
+ # otherwise consider the project's working calendar
+ phase = self.browse(cr, uid, ids[0], context=context)
+ calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
+ resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)],context=context)
if resource_id:
- cal_id = resource_obj.browse(cr, uid, resource_id[0]).calendar_id.id
+ cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
if cal_id:
calendar_id = cal_id
default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')])[0]
@@ -194,25 +190,20 @@ class project_phase(osv.osv):
# Change the date_start and date_end
# for previous and next phases respectively based on valid condition
- if vals.get('date_start'):
- if vals['date_start'] < phase.date_start:
+ if vals.get('date_start', False) and vals['date_start'] < phase.date_start:
dt_start = mx.DateTime.strptime(vals['date_start'],'%Y-%m-%d %H:%M:%S')
- work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id or False, dt_start, avg_hours or 0.0, resource_id or False)
- vals['date_end'] = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
- super(project_phase, self).write(cr, uid, ids, vals, context=context)
-
+ work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id, dt_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
+ if work_times:
+ vals['date_end'] = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
for prv_phase in phase.previous_phase_ids:
- self._check_date_start(cr, uid, prv_phase, dt_start)
- if vals.get('date_end'):
- if vals['date_end'] > phase.date_end:
+ self._check_date_start(cr, uid, prv_phase, dt_start, context=context)
+ if vals.get('date_end', False) and vals['date_end'] > phase.date_end:
dt_end = mx.DateTime.strptime(vals['date_end'],'%Y-%m-%d %H:%M:%S')
- work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id or False, dt_end, avg_hours or 0.0, resource_id or False)
- vals['date_start'] = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
- super(project_phase, self).write(cr, uid, ids, vals, context=context)
-
+ work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id, dt_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
+ if work_times:
+ vals['date_start'] = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
for next_phase in phase.next_phase_ids:
- self._check_date_end(cr, uid, next_phase, dt_end)
-
+ self._check_date_end(cr, uid, next_phase, dt_end, context=context)
return super(project_phase, self).write(cr, uid, ids, vals, context=context)
def set_draft(self, cr, uid, ids, *args):
@@ -276,66 +267,70 @@ class task(osv.osv):
def onchange_planned(self, cr, uid, ids, project, user_id=False, planned=0.0, effective=0.0, date_start=None, occupation_rate=0.0):
result = {}
+ resource = False
+ resource_obj = self.pool.get('resource.resource')
+ project_pool = self.pool.get('project.project')
+ resource_calendar = self.pool.get('resource.calendar')
+ if not project:
+ return {'value' : result}
if date_start:
- resource_obj = self.pool.get('resource.resource')
- project_pool = self.pool.get('project.project')
hrs = float(planned / float(occupation_rate))
calendar_id = project_pool.browse(cr, uid, project).resource_calendar_id.id
- resource_calendar = self.pool.get('resource.calendar')
dt_start = mx.DateTime.strptime(date_start, '%Y-%m-%d %H:%M:%S')
resource_id = resource_obj.search(cr, uid, [('user_id','=',user_id)])
if resource_id:
- resource = resource_obj.browse(cr, uid, resource_id)[0]
- hrs = planned / (float(occupation_rate) * resource.time_efficiency)
- if resource.calendar_id.id:
- calendar_id = resource.calendar_id.id
- work_times = resource_calendar.interval_get(cr, uid, calendar_id or False, dt_start, hrs or 0.0, resource_id or False)
- result['date_end'] = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
+ resource_data = resource_obj.browse(cr, uid, resource_id)[0]
+ resource = resource_data.id
+ hrs = planned / (float(occupation_rate) * resource_data.time_efficiency)
+ if resource_data.calendar_id.id:
+ calendar_id = resource_data.calendar_id.id
+ work_times = resource_calendar.interval_get(cr, uid, calendar_id, dt_start, hrs or 0.0, resource or False)
+ if work_times:
+ result['date_end'] = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
result['remaining_hours'] = planned - effective
return {'value' : result}
- def _check_date_start(self, cr, uid, task, date_end, context=None):
+ def _check_date_start(self, cr, uid, task, date_end, context={}):
"""
Check And Compute date_end of task if change in date_start < older time.
"""
resource_calendar_obj = self.pool.get('resource.calendar')
resource_obj = self.pool.get('resource.resource')
- calendar_id = task.project_id.resource_calendar_id.id
+ calendar_id = task.project_id.resource_calendar_id and task.project_id.resource_calendar_id.id or False
hours = task.planned_hours / task.occupation_rate
- resource_id = resource_obj.search(cr, uid, [('user_id', '=', task.user_id.id)])
+ resource_id = resource_obj.search(cr, uid, [('user_id', '=', task.user_id.id)], context=context)
if resource_id:
- resource = resource_obj.browse(cr, uid, resource_id[0])
+ resource = resource_obj.browse(cr, uid, resource_id[0], context=context)
if resource.calendar_id.id:
- calendar_id = resource.calendar_id.id
+ calendar_id = resource.calendar_id and resource.calendar_id.id or False
hours = task.planned_hours / (float(task.occupation_rate) * resource.time_efficiency)
- work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id or False, date_end, hours or 0.0, resource_id or False)
+ work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id, date_end, hours or 0.0, resource_id and resource_id[0] or False)
dt_start = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
self.write(cr, uid, [task.id], {'date_start' : dt_start,'date_end' : date_end.strftime('%Y-%m-%d %H:%M:%S')})
- def _check_date_end(self, cr, uid, task, date_start, context=None):
+ def _check_date_end(self, cr, uid, task, date_start, context={}):
"""
Check And Compute date_end of task if change in date_end > older time.
"""
-
resource_calendar_obj = self.pool.get('resource.calendar')
resource_obj = self.pool.get('resource.resource')
- calendar_id = task.project_id.resource_calendar_id.id
+ calendar_id = task.project_id.resource_calendar_id and task.project_id.resource_calendar_id.id or False
hours = task.planned_hours / task.occupation_rate
- resource_id = resource_obj.search(cr,uid,[('user_id', '=', task.user_id.id)])
+ resource_id = resource_obj.search(cr,uid,[('user_id', '=', task.user_id.id)], context=context)
if resource_id:
- resource = resource_obj.browse(cr, uid, resource_id[0])
+ resource = resource_obj.browse(cr, uid, resource_id[0], context=context)
if resource.calendar_id.id:
- calendar_id = resource.calendar_id.id
+ calendar_id = resource.calendar_id and resource.calendar_id.id or False
hours = task.planned_hours / (float(task.occupation_rate) * resource.time_efficiency)
- work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id or False, date_start, hours or 0.0, resource_id or False)
+ work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id, date_start, hours or 0.0, resource_id and resource_id[0] or False)
dt_end = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
- self.write(cr, uid, [task.id], {'date_start' : date_start.strftime('%Y-%m-%d %H:%M:%S'),'date_end' : dt_end})
-
- def write(self, cr, uid, ids, vals, context=None):
+ self.write(cr, uid, [task.id], {'date_start': date_start.strftime('%Y-%m-%d %H:%M:%S'),'date_end' : dt_end}, context=context)
+ def write(self, cr, uid, ids, vals, context={}):
+ resource_calendar_obj = self.pool.get('resource.calendar')
+ resource_obj = self.pool.get('resource.resource')
if not context:
context = {}
-
if context.get('scheduler',False):
return super(task, self).write(cr, uid, ids, vals, context=context)
@@ -345,40 +340,33 @@ class task(osv.osv):
if isinstance(ids, list):
task_id = ids[0]
task_rec = self.browse(cr, uid, task_id, context=context)
- resource_calendar_obj = self.pool.get('resource.calendar')
- resource_obj = self.pool.get('resource.resource')
- calendar_id = task_rec.project_id.resource_calendar_id.id
+ calendar_id = task_rec.project_id.resource_calendar_id and task_rec.project_id.resource_calendar_id.id or False
hrs = task_rec.planned_hours / task_rec.occupation_rate
- resource_id = resource_obj.search(cr, uid, [('user_id', '=', task_rec.user_id.id)])
+ resource_id = resource_obj.search(cr, uid, [('user_id', '=', task_rec.user_id.id)], context=context)
if resource_id:
- resource = resource_obj.browse(cr, uid, resource_id[0])
+ resource = resource_obj.browse(cr, uid, resource_id[0], context=context)
if resource.calendar_id.id:
- calendar_id = resource.calendar_id.id
+ calendar_id = resource.calendar_id and resource.calendar_id.id or False
hrs = task_rec.planned_hours / (float(task_rec.occupation_rate) * resource.time_efficiency)
# Change the date_start and date_end
# for previous and next tasks respectively based on valid condition
- if vals.get('date_start'):
- if vals['date_start'] < task_rec.date_start:
- dt_start = mx.DateTime.strptime(vals['date_start'], '%Y-%m-%d %H:%M:%S')
- work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id or False, dt_start, hrs or 0.0, resource_id or False)
+ if vals.get('date_start', False) and vals['date_start'] < task_rec.date_start:
+ dt_start = mx.DateTime.strptime(vals['date_start'], '%Y-%m-%d %H:%M:%S')
+ work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id, dt_start, hrs or 0.0, resource.id or False)
+ if work_times:
vals['date_end'] = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
- super(task, self).write(cr, uid, ids, vals, context=context)
-
- for prv_task in task_rec.parent_ids:
- self._check_date_start(cr, uid, prv_task, dt_start)
- if vals.get('date_end'):
- if vals['date_end'] > task_rec.date_end:
- dt_end = mx.DateTime.strptime(vals['date_end'], '%Y-%m-%d %H:%M:%S')
- work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id or False, dt_end, hrs or 0.0, resource_id or False)
+ for prv_task in task_rec.parent_ids:
+ self._check_date_start(cr, uid, prv_task, dt_start)
+ if vals.get('date_end', False) and vals['date_end'] > task_rec.date_end:
+ dt_end = mx.DateTime.strptime(vals['date_end'], '%Y-%m-%d %H:%M:%S')
+ work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id, dt_end, hrs or 0.0, resource.id or False)
+ if work_times:
vals['date_start'] = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
- super(task, self).write(cr, uid, ids, vals, context=context)
-
- for next_task in task_rec.child_ids:
- self._check_date_end(cr, uid, next_task, dt_end)
+ for next_task in task_rec.child_ids:
+ self._check_date_end(cr, uid, next_task, dt_end)
return super(task, self).write(cr, uid, ids, vals, context=context)
task()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project_long_term/project_data.xml b/addons/project_long_term/project_long_term_data.xml
similarity index 92%
rename from addons/project_long_term/project_data.xml
rename to addons/project_long_term/project_long_term_data.xml
index 2addd68fa19..32d041544cc 100644
--- a/addons/project_long_term/project_data.xml
+++ b/addons/project_long_term/project_long_term_data.xml
@@ -1,9 +1,7 @@
-
+
Projectproject.project
diff --git a/addons/project_long_term/project_demo.xml b/addons/project_long_term/project_long_term_demo.xml
similarity index 100%
rename from addons/project_long_term/project_demo.xml
rename to addons/project_long_term/project_long_term_demo.xml
diff --git a/addons/project_long_term/project_report.xml b/addons/project_long_term/project_long_term_report.xml
similarity index 97%
rename from addons/project_long_term/project_report.xml
rename to addons/project_long_term/project_long_term_report.xml
index c3b681cdd8b..3bbbce1874c 100644
--- a/addons/project_long_term/project_report.xml
+++ b/addons/project_long_term/project_long_term_report.xml
@@ -1,7 +1,6 @@
-
diff --git a/addons/project_long_term/project_view.xml b/addons/project_long_term/project_long_term_view.xml
similarity index 92%
rename from addons/project_long_term/project_view.xml
rename to addons/project_long_term/project_long_term_view.xml
index bf138bf58bc..53eaba2e4a9 100644
--- a/addons/project_long_term/project_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -48,7 +48,7 @@
-
+
@@ -68,9 +68,9 @@
-
+
@@ -83,10 +83,10 @@
-
-
+
+
@@ -149,9 +149,10 @@
-
+
+
@@ -190,17 +191,23 @@
+
+
+
-
-
+
+
+
+
-
+
+
@@ -209,7 +216,7 @@
- Project phases
+ Project Phasesproject.phaseformtree,form,calendar,gantt
diff --git a/addons/project_long_term/project_wizard.xml b/addons/project_long_term/project_long_term_wizard.xml
similarity index 99%
rename from addons/project_long_term/project_wizard.xml
rename to addons/project_long_term/project_long_term_wizard.xml
index c61a1042003..0904bbb4429 100644
--- a/addons/project_long_term/project_wizard.xml
+++ b/addons/project_long_term/project_long_term_wizard.xml
@@ -1,9 +1,11 @@
+
+
+
diff --git a/addons/project_long_term/project_workflow.xml b/addons/project_long_term/project_long_term_workflow.xml
similarity index 100%
rename from addons/project_long_term/project_workflow.xml
rename to addons/project_long_term/project_long_term_workflow.xml
diff --git a/addons/project_long_term/wizard/compute_phases_date.py b/addons/project_long_term/wizard/compute_phases_date.py
index 3c14d7525aa..61f3bb42251 100644
--- a/addons/project_long_term/wizard/compute_phases_date.py
+++ b/addons/project_long_term/wizard/compute_phases_date.py
@@ -18,14 +18,13 @@
# along with this program. If not, see .
#
##############################################################################
+import datetime
+from resource.faces import *
+from new import classobj
import wizard
import pooler
from tools.translate import _
-import datetime
-
-from resource.faces import *
-from new import classobj
import working_calendar as wkcal
@@ -37,7 +36,7 @@ compute_form = """
"""
compute_fields = {
- 'project_id': {'string':'Project', 'type':'many2one', 'relation':'project.project'},
+ 'project_id': {'string':'Project', 'type':'many2one', 'relation':'project.project', 'help': 'If you do not specify project then it will take All projects with state=draft, open, pending'},
}
@@ -50,7 +49,6 @@ class wizard_compute_phases(wizard.interface):
calendar_id -- working calendar of the project
"""
-
pool = pooler.get_pool(cr.dbname)
phase_obj = pool.get('project.phase')
resource_obj = pool.get('resource.resource')
@@ -60,13 +58,14 @@ class wizard_compute_phases(wizard.interface):
leaves = []
time_efficiency = 1.0
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
+
if resource_id:
# Create a new resource object with
# all the attributes of the Resource Class
resource = resource_obj.browse(cr, uid, resource_id, context=context)[0]
time_efficiency = resource.time_efficiency
- leaves = wkcal.compute_leaves(cr, uid, calendar_id or False , resource_id, resource.calendar_id.id)
- phase_resource_obj = classobj(str(phase.responsible_id.name), (Resource,),
+ leaves = wkcal.compute_leaves(cr, uid, calendar_id , resource.id, resource.calendar_id.id)
+ phase_resource_obj = classobj((phase.responsible_id.name.encode('utf8')), (Resource,),
{'__doc__': phase.responsible_id.name,
'__name__': phase.responsible_id.name,
'vacation': tuple(leaves),
@@ -83,7 +82,7 @@ class wizard_compute_phases(wizard.interface):
# If project has working calendar then that
# else the default one would be considered
if calendar_id:
- working_days = wkcal.compute_working_calendar(cr, uid, calendar_id)
+ working_days = wkcal.compute_working_calendar(cr, uid, calendar_id, context=context)
vacation = tuple(wkcal.compute_leaves(cr, uid, calendar_id))
def phase():
@@ -105,18 +104,20 @@ class wizard_compute_phases(wizard.interface):
end_date = e_date
date_start = end_date
# Write the calculated dates back
+ ctx = context.copy()
+ ctx.update({'scheduler': True})
phase_obj.write(cr, uid, [phase.id], {'date_start': start_date.strftime('%Y-%m-%d %H:%M:%S'),
'date_end': end_date.strftime('%Y-%m-%d %H:%M:%S')},
- context={'scheduler': True
- })
+ context=ctx)
# Recursive call till all the next phases scheduled
for phase in phase.next_phase_ids:
if phase.state in ['draft','open','pending']:
- self._phase_schedule(cr, uid, phase, date_start, phase.project_id.resource_calendar_id.id or False)
+ id_cal = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
+ self._phase_schedule(cr, uid, phase, date_start, id_cal, context=context)
else:
continue
- def _compute_date(self, cr, uid, data, context):
+ def _compute_date(self, cr, uid, data, context={}):
"""
Compute the phases for scheduling.
"""
@@ -132,24 +133,25 @@ class wizard_compute_phases(wizard.interface):
else: # Else take all the draft,open,pending states phases
phase_ids = phase_obj.search(cr, uid,[('state', 'in', ['draft', 'open', 'pending']),
('previous_phase_ids', '=', False)
- ])
+ ], context=context)
phase_ids.sort()
- phase_objs = phase_obj.browse(cr, uid, phase_ids, context=context)
- for phase in phase_objs:
+ phases = phase_obj.browse(cr, uid, phase_ids, context=context)
+ for phase in phases:
start_date = phase.project_id.date_start
if not phase.project_id.date_start:
start_date = datetime.datetime.now().strftime("%Y-%m-%d")
start_dt = datetime.datetime.strftime((datetime.datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d %H:%M")
- calendar_id = phase.project_id.resource_calendar_id.id
- self._phase_schedule(cr, uid, phase, start_dt, calendar_id or False)
+ calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
+ self._phase_schedule(cr, uid, phase, start_dt, calendar_id, context=context)
return {}
def _open_phases_list(self, cr, uid, data, context):
"""
Return the scheduled phases list.
"""
- mod_obj = pooler.get_pool(cr.dbname).get('ir.model.data')
- act_obj = pooler.get_pool(cr.dbname).get('ir.actions.act_window')
+ pool = pooler.get_pool(cr.dbname)
+ mod_obj = pool.get('ir.model.data')
+ act_obj = pool.get('ir.actions.act_window')
result = mod_obj._get_id(cr, uid, 'project_long_term', 'act_project_phase')
id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id']
result = act_obj.read(cr, uid, [id], context=context)[0]
@@ -162,15 +164,15 @@ class wizard_compute_phases(wizard.interface):
states = {
'init': {
'actions': [],
- 'result': {'type':'form', 'arch':compute_form, 'fields':compute_fields, 'state':[
- ('end', 'Cancel'),
- ('compute', 'Compute')
+ 'result': {'type': 'form', 'arch': compute_form, 'fields': compute_fields, 'state':[
+ ('end', 'Cancel', 'gtk-cancel'),
+ ('compute', 'Compute', 'gtk-ok', True)
]},
},
'compute': {
'actions': [_compute_date],
- 'result': {'type': 'action', 'action':_open_phases_list, 'state':'end'},
+ 'result': {'type': 'action', 'action': _open_phases_list, 'state': 'end'},
},
}
wizard_compute_phases('wizard.compute.phases')
diff --git a/addons/project_long_term/wizard/compute_tasks_date.py b/addons/project_long_term/wizard/compute_tasks_date.py
index cc6a443a454..77e7bbd6512 100644
--- a/addons/project_long_term/wizard/compute_tasks_date.py
+++ b/addons/project_long_term/wizard/compute_tasks_date.py
@@ -18,18 +18,17 @@
# along with this program. If not, see .
#
##############################################################################
-
-import wizard
-import pooler
-from tools.translate import _
import datetime
-
from resource.faces import *
from new import classobj
import operator
import working_calendar as wkcal
+import wizard
+import pooler
+from tools.translate import _
+
compute_form = """
"""
compute_fields = {
- 'project_id': {'string':'Project', 'type':'many2one', 'relation':'project.project', 'required':'True'},
+ 'project_id': {'string':'Project', 'type':'many2one', 'relation':'project.project', 'required':True},
}
class wizard_compute_tasks(wizard.interface):
@@ -62,8 +61,8 @@ class wizard_compute_tasks(wizard.interface):
])
if task_ids:
task_ids.sort()
- task_objs = task_pool.browse(cr, uid, task_ids, context=context)
- calendar_id = project.resource_calendar_id.id
+ tasks = task_pool.browse(cr, uid, task_ids, context=context)
+ calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False
start_date = project.date_start
if not project.date_start:
start_date = datetime.datetime.now().strftime("%Y-%m-%d")
@@ -73,12 +72,14 @@ class wizard_compute_tasks(wizard.interface):
for user in project.members:
leaves = []
time_efficiency = 1.0
- resource_id = resource_obj.search(cr, uid, [('user_id', '=', user.id)])
+ resource_id = resource_obj.search(cr, uid, [('user_id', '=', user.id)], context=context)
if resource_id:
- resource = resource_obj.browse(cr, uid, resource_id, context=context)[0]
- leaves = wkcal.compute_leaves(cr, uid, calendar_id or False , resource_id, resource.calendar_id.id)
- time_efficiency = resource.time_efficiency
- resources.append(classobj(str(user.name), (Resource,), {'__doc__': user.name,
+# resource = resource_obj.browse(cr, uid, resource_id, context=context)[0]
+ resource = resource_obj.read(cr, uid, resource_id, ['calendar_id','time_efficiency'], context=context)[0]
+ if resource.get('calendar_id', False):
+ leaves = wkcal.compute_leaves(cr, uid, calendar_id , resource_id[0], resource['calendar_id'] and resource['calendar_id'][0] or False)
+ time_efficiency = resource.get('time_efficiency')
+ resources.append(classobj((user.name.encode('utf8')), (Resource,), {'__doc__': user.name,
'__name__': user.name,
'vacation': tuple(leaves),
'efficiency': time_efficiency
@@ -105,20 +106,20 @@ class wizard_compute_tasks(wizard.interface):
try:
resource = reduce(operator.or_, resources)
except:
- raise wizard.except_wizard(_('MemberError'), _('Project must have members assigned !'))
+ raise wizard.except_wizard(_('Error'), _('Project must have members assigned !'))
minimum_time_unit = 1
if calendar_id: # If project has calendar
working_days = wkcal.compute_working_calendar(cr, uid, calendar_id)
vacation = tuple(wkcal.compute_leaves(cr, uid, calendar_id))
# Dynamic Creation of tasks
i = 0
- for each_task in task_objs:
+ for each_task in tasks:
hours = str(each_task.planned_hours / each_task.occupation_rate)+ 'H'
if each_task.priority in priority_dict.keys():
priorty = priority_dict[each_task.priority]
if each_task.user_id:
for resource in resources:
- if resource.__name__ == each_task.user_id.name:
+ if resource.__name__ == each_task.user_id.name: # check me!!
task = create_tasks(i, hours, priorty, resource)
else:
task = create_tasks(i, hours, priorty)
@@ -131,29 +132,30 @@ class wizard_compute_tasks(wizard.interface):
s_date = t.start.to_datetime()
e_date = t.end.to_datetime()
if loop_no == 0:
- project_obj.write(cr, uid, [project_id], {'date' : e_date})
+ project_obj.write(cr, uid, [project_id], {'date' : e_date}, context=context)
else:
+ ctx = context.copy()
+ ctx.update({'scheduler': True})
user_id = user_obj.search(cr, uid, [('name', '=', t.booked_resource[0].__name__)])
- task_pool.write(cr, uid, [task_objs[loop_no-1].id], {'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
+ task_pool.write(cr, uid, [tasks[loop_no-1].id], {'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
'date_deadline': e_date.strftime('%Y-%m-%d %H:%M:%S'),
'user_id': user_id[0]},
- context={'scheduler': True
- })
+ context=ctx)
loop_no +=1
return {}
states = {
'init': {
'actions': [],
- 'result': {'type':'form', 'arch':compute_form, 'fields':compute_fields, 'state':[
- ('end', 'Cancel'),
- ('compute', 'Compute')
+ 'result': {'type': 'form', 'arch': compute_form, 'fields': compute_fields, 'state': [
+ ('end', 'Cancel', 'gtk-cancel'),
+ ('compute', 'Compute', 'gtk-ok', True)
]},
},
'compute': {
'actions': [_compute_date],
- 'result': {'type':'form','arch':success_msg,'fields':{}, 'state':[('end', 'Ok')]},
+ 'result': {'type': 'form','arch': success_msg,'fields': {}, 'state': [('end', 'Ok')]},
}
}
wizard_compute_tasks('wizard.compute.tasks')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project_long_term/wizard/schedule_tasks.py b/addons/project_long_term/wizard/schedule_tasks.py
index 6db678333a9..4a170859032 100644
--- a/addons/project_long_term/wizard/schedule_tasks.py
+++ b/addons/project_long_term/wizard/schedule_tasks.py
@@ -18,18 +18,17 @@
# along with this program. If not, see .
#
##############################################################################
-
-import wizard
-import pooler
-from tools.translate import _
import datetime
-
from resource.faces import *
from new import classobj
import operator
import working_calendar as wkcal
+import wizard
+import pooler
+from tools.translate import _
+
success_msg = """
+
@@ -288,6 +289,15 @@
name="Product purchases"
res_model="purchase.order.line"
src_model="product.product"/>
-
+
diff --git a/addons/purchase/purchase_wizard.xml b/addons/purchase/purchase_wizard.xml
index e7fd3ce6efc..d76ce1e3819 100644
--- a/addons/purchase/purchase_wizard.xml
+++ b/addons/purchase/purchase_wizard.xml
@@ -1,11 +1,13 @@
+
diff --git a/addons/purchase/security/purchase_security.xml b/addons/purchase/security/purchase_security.xml
index 84b9a87ff05..2685e52d909 100644
--- a/addons/purchase/security/purchase_security.xml
+++ b/addons/purchase/security/purchase_security.xml
@@ -18,7 +18,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -29,7 +29,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
diff --git a/addons/purchase/wizard/__init__.py b/addons/purchase/wizard/__init__.py
index e79d70fbaeb..73bb88500a8 100644
--- a/addons/purchase/wizard/__init__.py
+++ b/addons/purchase/wizard/__init__.py
@@ -19,7 +19,7 @@
#
##############################################################################
-import wizard_group
+import purchase_order_group
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/wizard/purchase_order_group.py b/addons/purchase/wizard/purchase_order_group.py
new file mode 100644
index 00000000000..8c4e0784a7b
--- /dev/null
+++ b/addons/purchase/wizard/purchase_order_group.py
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+import netsvc
+import pooler
+import time
+import wizard
+from osv.orm import browse_record, browse_null
+
+class purchase_order_group(osv.osv_memory):
+ _name = "purchase.order.group"
+ _description = "Purchase Wizard"
+ _columns = {
+
+ }
+
+ def merge_orders(self, cr, uid, ids, context):
+ """
+ To merge similar type of purchase orders.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs
+ @param context: A standard dictionary
+
+ @return: purchase order view
+
+ """
+ order_obj = self.pool.get('purchase.order')
+ mod_obj =self.pool.get('ir.model.data')
+ result = mod_obj._get_id(cr, uid, 'purchase', 'view_purchase_order_filter')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+
+
+ allorders = order_obj.do_merge(cr, uid, context.get('active_ids',[]), context)
+
+
+ return {
+ 'domain': "[('id','in', [" + ','.join(map(str, allorders)) + "])]",
+ 'name': 'Purchase Orders',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'purchase.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
+ }
+purchase_order_group()
+
diff --git a/addons/purchase/wizard/purchase_order_group_view.xml b/addons/purchase/wizard/purchase_order_group_view.xml
new file mode 100644
index 00000000000..aa835b36f0b
--- /dev/null
+++ b/addons/purchase/wizard/purchase_order_group_view.xml
@@ -0,0 +1,39 @@
+
+
+
+
+ Merger Purchase Orders
+ purchase.order.group
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/purchase/wizard/wizard_group.py b/addons/purchase/wizard/wizard_group.py
deleted file mode 100644
index 050be8c88d6..00000000000
--- a/addons/purchase/wizard/wizard_group.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import time
-
-import wizard
-import netsvc
-import pooler
-from osv.orm import browse_record, browse_null
-
-
-merge_form = """
-
-"""
-
-merge_fields = {
-}
-
-ack_form = """
-"""
-
-ack_fields = {}
-
-
-def _merge_orders(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- order_obj = pool.get('purchase.order')
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'purchase', 'view_purchase_order_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
-
- def make_key(br, fields):
- list_key = []
- for field in fields:
- field_val = getattr(br, field)
- if field in ('product_id', 'move_dest_id', 'account_analytic_id'):
- if not field_val:
- field_val = False
- if isinstance(field_val, browse_record):
- field_val = field_val.id
- elif isinstance(field_val, browse_null):
- field_val = False
- elif isinstance(field_val, list):
- field_val = ((6, 0, tuple([v.id for v in field_val])),)
- list_key.append((field, field_val))
- list_key.sort()
- return tuple(list_key)
-
- # compute what the new orders should contain
- new_orders = {}
- for porder in [order for order in order_obj.browse(cr, uid, data['ids']) if order.state == 'draft']:
- order_key = make_key(porder, ('partner_id', 'location_id', 'pricelist_id'))
-
- new_order = new_orders.setdefault(order_key, ({}, []))
- new_order[1].append(porder.id)
- order_infos = new_order[0]
- if not order_infos:
- order_infos.update({
- 'origin': porder.origin,
- 'date_order': time.strftime('%Y-%m-%d'),
- 'partner_id': porder.partner_id.id,
- 'partner_address_id': porder.partner_address_id.id,
- 'dest_address_id': porder.dest_address_id.id,
- 'warehouse_id': porder.warehouse_id.id,
- 'location_id': porder.location_id.id,
- 'pricelist_id': porder.pricelist_id.id,
- 'state': 'draft',
- 'order_line': {},
- 'notes': '%s' % (porder.notes or '',),
- })
- else:
- #order_infos['name'] += ', %s' % porder.name
- if porder.notes:
- order_infos['notes'] = (order_infos['notes'] or '') + ('\n%s' % (porder.notes,))
- if porder.origin:
- order_infos['origin'] = (order_infos['origin'] or '') + ' ' + porder.origin
-
- for order_line in porder.order_line:
- line_key = make_key(order_line, ('name', 'date_planned', 'taxes_id', 'price_unit', 'notes', 'product_id', 'move_dest_id', 'account_analytic_id'))
- o_line = order_infos['order_line'].setdefault(line_key, {})
- if o_line:
- # merge the line with an existing line
- o_line['product_qty'] += order_line.product_qty * order_line.product_uom.factor / o_line['uom_factor']
- else:
- # append a new "standalone" line
- for field in ('product_qty', 'product_uom'):
- field_val = getattr(order_line, field)
- if isinstance(field_val, browse_record):
- field_val = field_val.id
- o_line[field] = field_val
- o_line['uom_factor'] = order_line.product_uom and order_line.product_uom.factor or 1.0
-
- wf_service = netsvc.LocalService("workflow")
-
- allorders = []
- for order_key, (order_data, old_ids) in new_orders.iteritems():
- # skip merges with only one order
- if len(old_ids) < 2:
- allorders += (old_ids or [])
- continue
-
- # cleanup order line data
- for key, value in order_data['order_line'].iteritems():
- del value['uom_factor']
- value.update(dict(key))
- order_data['order_line'] = [(0, 0, value) for value in order_data['order_line'].itervalues()]
-
- # create the new order
- neworder_id = order_obj.create(cr, uid, order_data)
- allorders.append(neworder_id)
-
- # make triggers pointing to the old orders point to the new order
- for old_id in old_ids:
- wf_service.trg_redirect(uid, 'purchase.order', old_id, neworder_id, cr)
- wf_service.trg_validate(uid, 'purchase.order', old_id, 'purchase_cancel', cr)
-
- return {
- 'domain': "[('id','in', [" + ','.join(map(str, allorders)) + "])]",
- 'name': 'Purchase Orders',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'purchase.order',
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
-
-
-class merge_orders(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch': merge_form, 'fields' : merge_fields, 'state' : [('end', 'Cancel'), ('merge', 'Merge orders') ]}
- },
- 'merge': {
- 'actions': [],
- 'result': {'type': 'action', 'action': _merge_orders, 'state': 'end'}
- },
- }
-
-merge_orders("purchase.order.merge")
-
diff --git a/addons/purchase_tender/__terp__.py b/addons/purchase_tender/__terp__.py
index 1e684e7c4ef..fb514e64bd0 100644
--- a/addons/purchase_tender/__terp__.py
+++ b/addons/purchase_tender/__terp__.py
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -14,16 +14,18 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
{
"name" : "Purchase - Purchase Tender",
"version" : "0.1",
"author" : "Tiny",
- "category" : "Generic Modules/Purchase",
+ "category" : "Generic Modules/Sales & Purchases",
"website" : "http://www.openerp.com",
- "description": """ This module allows you to manage your Purchase Tenders. When a purchase order is created, you now have the opportunity to save the related tender.
+ "description": """
+ This module allows you to manage your Purchase Tenders.
+ When a purchase order is created, you now have the opportunity to save the related tender.
This new object will regroup and will allow you to easily keep track and order all your purchase orders.
""",
"depends" : ["purchase"],
diff --git a/addons/report_account/i18n/hr.po b/addons/report_account/i18n/hr.po
index 8fbac0905bd..0a30ded862a 100644
--- a/addons/report_account/i18n/hr.po
+++ b/addons/report_account/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_account
-#
+# * report_account
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:14+0000\n"
-"Last-Translator: dzuvela \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 00:58+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:55+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_account
#: selection:report.invoice.created,type:0
@@ -31,27 +32,27 @@ msgstr ""
#. module: report_account
#: field:report.aged.receivable,name:0
msgid "Month Range"
-msgstr ""
+msgstr "Raspon Mjeseci"
#. module: report_account
#: selection:report.invoice.created,type:0
msgid "Customer Invoice"
-msgstr ""
+msgstr "Račun Stranke"
#. module: report_account
#: model:ir.actions.act_window,name:report_account.action_view_created_invoice_dashboard
msgid "Invoices Created Within Past 15 Days"
-msgstr ""
+msgstr "Računi kreirani u zadnjih 15 dana"
#. module: report_account
#: model:ir.model,name:report_account.model_report_invoice_created
msgid "Report of Invoices Created within Last 15 days"
-msgstr ""
+msgstr "Izvještaj o računima kreiranima u zadnjih 15 dana"
#. module: report_account
#: selection:report.invoice.created,type:0
msgid "Supplier Invoice"
-msgstr ""
+msgstr "Račun Dobavljača"
#. module: report_account
#: field:report.invoice.created,state:0
@@ -61,27 +62,27 @@ msgstr "Status"
#. module: report_account
#: selection:report.invoice.created,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: report_account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_account
#: field:report.account.receivable,debit:0
msgid "Debit"
-msgstr ""
+msgstr "Dug"
#. module: report_account
#: field:report.account.receivable,type:0
msgid "Account Type"
-msgstr ""
+msgstr "Tip Tvrtke Kupca"
#. module: report_account
#: field:report.invoice.created,type:0
msgid "Type"
-msgstr ""
+msgstr "Tip"
#. module: report_account
#: field:report.invoice.created,name:0
@@ -96,47 +97,47 @@ msgstr "Ukupni iznos"
#. module: report_account
#: field:report.invoice.created,residual:0
msgid "Residual"
-msgstr ""
+msgstr "Preostali"
#. module: report_account
#: field:report.invoice.created,date_invoice:0
msgid "Date Invoiced"
-msgstr ""
+msgstr "Datum izrade računa"
#. module: report_account
#: view:report.account.receivable:0
msgid "Accounts by type"
-msgstr ""
+msgstr "Tvrtke kupci po tipu"
#. module: report_account
#: field:report.invoice.created,number:0
msgid "Invoice Number"
-msgstr ""
+msgstr "Broj računa"
#. module: report_account
#: field:report.invoice.created,amount_untaxed:0
msgid "Untaxed"
-msgstr ""
+msgstr "Bez poreza"
#. module: report_account
#: selection:report.invoice.created,state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: report_account
#: model:ir.model,name:report_account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
-msgstr ""
+msgstr "Stara potraživanja do danas"
#. module: report_account
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_account
#: model:ir.model,name:report_account.model_report_account_receivable
msgid "Receivable accounts"
-msgstr ""
+msgstr "Konta Potraživanja"
#. module: report_account
#: field:report.invoice.created,date_due:0
@@ -146,22 +147,22 @@ msgstr "Datum dospijeća"
#. module: report_account
#: field:report.account.receivable,credit:0
msgid "Credit"
-msgstr ""
+msgstr "Kredit"
#. module: report_account
#: field:temp.range,name:0
msgid "Range"
-msgstr ""
+msgstr "Raspon"
#. module: report_account
#: model:ir.module.module,description:report_account.module_meta_information
msgid "A module that adds new reports based on the account module."
-msgstr ""
+msgstr "Modul koji dodaje nove izvještaje na osnovi ACCOUNT Modula"
#. module: report_account
#: selection:report.invoice.created,type:0
msgid "Supplier Refund"
-msgstr ""
+msgstr "Namirenje dobavljača"
#. module: report_account
#: selection:report.invoice.created,state:0
@@ -172,33 +173,33 @@ msgstr "Poništeno"
#: field:report.account.receivable,balance:0
#: field:report.aged.receivable,balance:0
msgid "Balance"
-msgstr ""
+msgstr "Saldo"
#. module: report_account
#: model:ir.module.module,shortdesc:report_account.module_meta_information
msgid "Account Reporting - Reporting"
-msgstr ""
+msgstr "Izvještavanje o tvrtki Kupcu - Izvještavanje"
#. module: report_account
#: field:report.invoice.created,origin:0
msgid "Origin"
-msgstr ""
+msgstr "Porijeklo"
#. module: report_account
#: model:ir.actions.act_window,name:report_account.action_account_receivable_graph
#: model:ir.ui.menu,name:report_account.menu_account_receivable_graph
msgid "Balance by Type of Account"
-msgstr ""
+msgstr "Saldo po tipu konta"
#. module: report_account
#: view:report.invoice.created:0
msgid "Invoices"
-msgstr ""
+msgstr "računi"
#. module: report_account
#: selection:report.invoice.created,state:0
msgid "Pro-forma"
-msgstr ""
+msgstr "Pro-forma"
#. module: report_account
#: field:report.invoice.created,currency_id:0
@@ -213,18 +214,18 @@ msgstr "Tjedan"
#. module: report_account
#: field:report.invoice.created,create_date:0
msgid "Create Date"
-msgstr ""
+msgstr "Kreiraj datum"
#. module: report_account
#: model:ir.actions.act_window,name:report_account.action_aged_receivable_graph
#: view:report.aged.receivable:0
msgid "Aged Receivable"
-msgstr ""
+msgstr "Stara potraživanja"
#. module: report_account
#: field:report.invoice.created,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: report_account
#: field:report.invoice.created,amount_total:0
@@ -234,9 +235,9 @@ msgstr "Ukupno"
#. module: report_account
#: selection:report.invoice.created,state:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: report_account
#: view:report.invoice.created:0
msgid "Untaxed Amount"
-msgstr ""
+msgstr "Iznos bez poreza"
diff --git a/addons/report_analytic/i18n/hr.po b/addons/report_analytic/i18n/hr.po
index 5b903e730d2..ef3677a8475 100644
--- a/addons/report_analytic/i18n/hr.po
+++ b/addons/report_analytic/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_analytic
-#
+# * report_analytic
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:14+0000\n"
-"Last-Translator: dzuvela \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:39+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:44+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_analytic
#: model:ir.model,name:report_analytic.model_report_analytic_account_close
@@ -26,36 +27,37 @@ msgstr ""
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_analytic
#: field:report.analytic.account.close,quantity_max:0
msgid "Max. Quantity"
-msgstr ""
+msgstr "Maks. količina"
#. module: report_analytic
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_analytic
#: field:report.analytic.account.close,name:0
msgid "Analytic account"
-msgstr ""
+msgstr "Analitički Konto"
#. module: report_analytic
#: field:report.analytic.account.close,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: report_analytic
#: field:report.analytic.account.close,date_deadline:0
msgid "Deadline"
-msgstr ""
+msgstr "Rok"
#. module: report_analytic
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_analytic
#: model:ir.module.module,shortdesc:report_analytic.module_meta_information
@@ -65,19 +67,19 @@ msgstr "Izvještaji analitike"
#. module: report_analytic
#: field:report.analytic.account.close,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: report_analytic
#: field:report.analytic.account.close,balance:0
msgid "Balance"
-msgstr ""
+msgstr "Saldo"
#. module: report_analytic
#: model:ir.actions.act_window,name:report_analytic.action_analytic_account_tree
#: model:ir.ui.menu,name:report_analytic.menu_action_analytic_account_tree
#: view:report.analytic.account.close:0
msgid "Expired analytic accounts"
-msgstr ""
+msgstr "Zastarjela Analitička Konta"
#. module: report_analytic
#: field:report.analytic.account.close,quantity:0
diff --git a/addons/report_analytic_line/i18n/hr.po b/addons/report_analytic_line/i18n/hr.po
index 48d5e8f2418..7c64c5f5968 100644
--- a/addons/report_analytic_line/i18n/hr.po
+++ b/addons/report_analytic_line/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_analytic_line
-#
+# * report_analytic_line
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-22 12:39+0000\n"
-"Last-Translator: Jožek Prikratki \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:46+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:48+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_analytic_line
#: model:ir.actions.act_window,name:report_analytic_line.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice
@@ -24,7 +25,7 @@ msgstr "Stavke za fakturiranje"
#. module: report_analytic_line
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "Neispravan XML za izgradnju preglednog ekrana!"
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_analytic_line
#: field:report.account.analytic.line.to.invoice,product_id:0
@@ -78,7 +79,7 @@ msgstr "Analitičke stavke za ispis na fakturi"
#. module: report_analytic_line
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "Pogrešno ime modela u definiciji akcije."
+msgstr "Pogrešno ime modela u definiciji Radnje"
#. module: report_analytic_line
#: field:report.account.analytic.line.to.invoice,unit_amount:0
diff --git a/addons/report_analytic_planning/i18n/hr.po b/addons/report_analytic_planning/i18n/hr.po
index 33103817671..fd213f045fa 100644
--- a/addons/report_analytic_planning/i18n/hr.po
+++ b/addons/report_analytic_planning/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_analytic_planning
-#
+# * report_analytic_planning
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-10-01 07:47+0000\n"
-"Last-Translator: Miro Glavić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:43+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
@@ -24,170 +25,171 @@ msgstr ""
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Planning by Account"
-msgstr ""
+msgstr "Planiranje po Kontu"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Summary by project"
-msgstr ""
+msgstr "Sižetak po Projektu"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.line,amount_unit:0
msgid "Qty UoM"
-msgstr ""
+msgstr "Količina JM"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Odgovoran"
#. module: report_analytic_planning
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat
msgid "Planning stat"
-msgstr ""
+msgstr "Stat Planiranja"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,state:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.line,account_id:0
msgid "Analytic account"
-msgstr ""
+msgstr "Analitički Konto"
#. module: report_analytic_planning
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_analytic_planning
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_form
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat
msgid "Planning Statistics"
-msgstr ""
+msgstr "Statistike Planiranja"
#. module: report_analytic_planning
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat_account
msgid "Planning account stat"
-msgstr ""
+msgstr "Stat Planskog Konta"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.stat,sum_amount:0
msgid "Planned hours"
-msgstr ""
+msgstr "Planirani Sati"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Real"
-msgstr ""
+msgstr "Stvarno"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_my_form
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat_my
msgid "My Planning Statistics"
-msgstr ""
+msgstr "Moje Statistike Planiranja"
#. module: report_analytic_planning
#: model:ir.module.module,description:report_analytic_planning.module_meta_information
msgid "Planning on analytic accounts."
-msgstr ""
+msgstr "Planiranje Analitičkih konta"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,name:0
msgid "Planning Name"
-msgstr ""
+msgstr "Ime Planiranja"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Quantities"
-msgstr ""
+msgstr "Količine"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "HR Planning"
-msgstr ""
+msgstr "Planiranje Ljudskih resursa"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.stat,sum_amount_real:0
#: field:report_account_analytic.planning.stat.account,sum_amount_real:0
#: field:report_account_analytic.planning.stat.user,sum_amount_real:0
msgid "Timesheet"
-msgstr ""
+msgstr "Raspored"
#. module: report_analytic_planning
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_line
#: view:report_account_analytic.planning:0
msgid "Planning Line"
-msgstr ""
+msgstr "Linija Planiranja"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Responsible:"
-msgstr ""
+msgstr "Odgovoran :"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.line,amount:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Quantities by Account"
-msgstr ""
+msgstr "Količine po Kontu"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "From:"
-msgstr ""
+msgstr "Od:"
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Time by Account"
-msgstr ""
+msgstr "Vrijeme po Kontu"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,date_to:0
msgid "End Date"
-msgstr ""
+msgstr "Datum završetka"
#. module: report_analytic_planning
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Time by User"
-msgstr ""
+msgstr "Vrijem po Korisniku"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_stat_my_manager_form
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_stat_my_manager
msgid "Planning Statistics of My Projects"
-msgstr ""
+msgstr "Dtatistike Planiranja za moje Projekte"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_current
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_current
msgid "Current Planning"
-msgstr ""
+msgstr "Tekuće Planiranje"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Summary by user"
-msgstr ""
+msgstr "Sižetak prema Korisniku"
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Analysis"
-msgstr ""
+msgstr "Analiza"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.line,user_id:0
@@ -195,7 +197,7 @@ msgstr ""
#: field:report_account_analytic.planning.stat,user_id:0
#: field:report_account_analytic.planning.stat.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
@@ -205,97 +207,97 @@ msgstr ""
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Total Timesheet"
-msgstr ""
+msgstr "Zbirni Raspored"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "Details of user's time by projects"
-msgstr ""
+msgstr "Detalji Vremena Korisnika po Projektima"
#. module: report_analytic_planning
#: model:ir.model,name:report_analytic_planning.model_report_account_analytic_planning_stat_user
msgid "Planning user stat"
-msgstr ""
+msgstr "Stat Planiranja Korisnika"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
#: field:report_account_analytic.planning.stat.account,quantity:0
#: field:report_account_analytic.planning.stat.user,quantity:0
msgid "Planned"
-msgstr ""
+msgstr "Planiran"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,stat_ids:0
msgid "Planning analysis"
-msgstr ""
+msgstr "Analiza Planiranja"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "["
-msgstr ""
+msgstr "["
#. module: report_analytic_planning
#: field:report_account_analytic.planning,line_ids:0
msgid "Planning lines"
-msgstr ""
+msgstr "Linija Planiranja"
#. module: report_analytic_planning
#: model:ir.module.module,shortdesc:report_analytic_planning.module_meta_information
msgid "Analytic planning - Reporting"
-msgstr ""
+msgstr "Analitičko Planiranje - Izvještavanje"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
msgid "]"
-msgstr ""
+msgstr "]"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_my
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_my2
msgid "My Planning"
-msgstr ""
+msgstr "Moje Planiranje"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,stat_user_ids:0
msgid "Planning by user"
-msgstr ""
+msgstr "Planiranje prema Korisniku"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.line,note:0
msgid "Note"
-msgstr ""
+msgstr "Bilješka"
#. module: report_analytic_planning
#: rml:report_account_analytic.planning.print:0
#: field:report_account_analytic.planning.stat,sum_amount_tasks:0
msgid "Tasks"
-msgstr ""
+msgstr "Zadaci"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,stat_account_ids:0
msgid "Planning by account"
-msgstr ""
+msgstr "Planiranje po Kontu"
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Quantities by User"
-msgstr ""
+msgstr "Količine prema Korisniku"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_current_my
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_current_my
msgid "My Current Planning"
-msgstr ""
+msgstr "Moje Tekuće Planiranje"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.stat.account,account_id:0
msgid "Analytic Account"
-msgstr ""
+msgstr "Analitički konto"
#. module: report_analytic_planning
#: field:report_account_analytic.planning.stat,manager_id:0
msgid "Manager"
-msgstr ""
+msgstr "Upravitelj"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form
@@ -310,7 +312,7 @@ msgstr ""
#: field:report_account_analytic.planning.stat.account,planning_id:0
#: field:report_account_analytic.planning.stat.user,planning_id:0
msgid "Planning"
-msgstr ""
+msgstr "Planiranje"
#. module: report_analytic_planning
#: selection:report_account_analytic.planning,state:0
@@ -320,25 +322,25 @@ msgstr ""
#. module: report_analytic_planning
#: view:report_account_analytic.planning:0
msgid "Total Planned"
-msgstr ""
+msgstr "Ukupno planirano"
#. module: report_analytic_planning
#: field:report_account_analytic.planning,date_from:0
msgid "Start Date"
-msgstr ""
+msgstr "Datum početka"
#. module: report_analytic_planning
#: view:report_account_analytic.planning.stat:0
msgid "Planning statistics"
-msgstr ""
+msgstr "Statistike Planiranja"
#. module: report_analytic_planning
#: selection:report_account_analytic.planning,state:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: report_analytic_planning
#: model:ir.actions.act_window,name:report_analytic_planning.action_account_analytic_planning_form_new
#: model:ir.ui.menu,name:report_analytic_planning.menu_report_account_analytic_planning_new
msgid "New Planning"
-msgstr ""
+msgstr "Novo Planiranje"
diff --git a/addons/report_crm/i18n/hr.po b/addons/report_crm/i18n/hr.po
index 41e8fa1f6be..ee93cce3848 100644
--- a/addons/report_crm/i18n/hr.po
+++ b/addons/report_crm/i18n/hr.po
@@ -1,225 +1,228 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_crm
-#
+# * report_crm
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:55+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:47+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_crm
#: field:report.crm.case.categ,categ_id:0
msgid "Category"
-msgstr ""
+msgstr "Kategorija"
#. module: report_crm
#: field:report.crm.case.categ,probability:0
#: field:report.crm.case.user,probability:0
msgid "Avg. Probability"
-msgstr ""
+msgstr "Prosječna Vjerojatnost"
#. module: report_crm
#: field:report.crm.case.service.dashboard,planned_revenue:0
msgid "Planned Revenue"
-msgstr ""
+msgstr "Planirani prihod"
#. module: report_crm
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_crm
#: model:ir.model,name:report_crm.model_report_crm_case_categ
msgid "Cases by section and category"
-msgstr ""
+msgstr "Slučajevi po Grupi i Kategoriji"
#. module: report_crm
#: field:report.crm.case.categ,section_id:0
#: field:report.crm.case.section,section_id:0
#: field:report.crm.case.user,section_id:0
msgid "Section"
-msgstr ""
+msgstr "Grupa"
#. module: report_crm
#: field:report.crm.case.service.dashboard,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Odgovoran"
#. module: report_crm
#: field:report.crm.case.section,perc_done:0
msgid "%Done"
-msgstr ""
+msgstr "%Done"
#. module: report_crm
#: field:report.crm.case.service.dashboard,planned_cost:0
msgid "Planned Costs"
-msgstr ""
+msgstr "Planirani troškovi"
#. module: report_crm
#: field:report.crm.case.section,nbr_cases:0
#: field:report.crm.case.user,nbr:0
msgid "# of Cases"
-msgstr ""
+msgstr "# SLučaja"
#. module: report_crm
#: model:ir.module.module,shortdesc:report_crm.module_meta_information
msgid "CRM Management - Reporting"
-msgstr ""
+msgstr "Upravljanje CRM-om - Izvještavanje"
#. module: report_crm
#: field:report.crm.case.categ,delay_close:0
msgid "Delay Close"
-msgstr ""
+msgstr "Odgodi zaključivanje"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_section_tree
#: model:ir.model,name:report_crm.model_report_crm_case_section
#: view:report.crm.case.section:0
msgid "Cases by Section"
-msgstr ""
+msgstr "Sučajevi po grupi"
#. module: report_crm
#: selection:report.crm.case.categ,state:0
#: selection:report.crm.case.service.dashboard,state:0
#: selection:report.crm.case.user,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: report_crm
#: selection:report.crm.case.categ,state:0
#: selection:report.crm.case.service.dashboard,state:0
#: selection:report.crm.case.user,state:0
msgid "Closed"
-msgstr ""
+msgstr "Zaključen"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_categ_tree_month
#: model:ir.ui.menu,name:report_crm.menu_crm_case_categ_tree_month
msgid "Cases by categories and section (this month)"
-msgstr ""
+msgstr "Slučajevi po Kategorijama i Grupi (Ovaj mjesec)"
#. module: report_crm
#: model:ir.ui.menu,name:report_crm.next_id_66
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: report_crm
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_crm
#: field:report.crm.case.categ,amount_revenue_prob:0
#: field:report.crm.case.user,amount_revenue_prob:0
msgid "Est. Rev*Prob."
-msgstr ""
+msgstr "Est. Rev*Prob."
#. module: report_crm
#: selection:report.crm.case.categ,state:0
#: selection:report.crm.case.service.dashboard,state:0
#: selection:report.crm.case.user,state:0
msgid "Pending"
-msgstr ""
+msgstr "U toku"
#. module: report_crm
#: field:report.crm.case.section,avg_answers:0
msgid "Avg. Answers"
-msgstr ""
+msgstr "Prosječni odgovori"
#. module: report_crm
#: field:report.crm.case.categ,state:0
#: field:report.crm.case.service.dashboard,state:0
#: field:report.crm.case.user,state:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: report_crm
#: field:report.crm.case.service.dashboard,name:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_user_tree_month
#: model:ir.ui.menu,name:report_crm.menu_crm_case_user_tree_month
msgid "Cases by user and section (this month)"
-msgstr ""
+msgstr "Slučajevi po Korisniku i Grupi (Ovaj mjesec)"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.act_crm_case_section_2_report_crm_case_user
msgid "Monthly cases by user"
-msgstr ""
+msgstr "Mjesečni Slučajevi po korisniku"
#. module: report_crm
#: model:ir.ui.menu,name:report_crm.next_id_64
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: report_crm
#: view:report.crm.case.service.dashboard:0
msgid "Planned costs"
-msgstr ""
+msgstr "Planirani troškovi"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_view_closed_crm_case_dashboard
msgid "Closed CRM Cases Within Past 15 Days"
-msgstr ""
+msgstr "CRM Slučajevi zaključeni u proteklih 15 dana"
#. module: report_crm
#: field:report.crm.case.categ,amount_costs:0
#: field:report.crm.case.user,amount_costs:0
msgid "Est.Cost"
-msgstr ""
+msgstr "Procijenjeni trošak"
#. module: report_crm
#: field:report.crm.case.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.act_crm_case_section_2_report_crm_case_categ
msgid "Monthly cases by section"
-msgstr ""
+msgstr "Mjesečni Slučajevi po grupi"
#. module: report_crm
#: field:report.crm.case.service.dashboard,date:0
msgid "Date"
-msgstr ""
+msgstr "Datum"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_user_tree_month_my
#: model:ir.ui.menu,name:report_crm.menu_crm_case_user_tree_month_my
msgid "My cases by section (this month)"
-msgstr ""
+msgstr "Moji SLučajevi po Grupi (Ovaj mjesec)"
#. module: report_crm
#: model:ir.ui.menu,name:report_crm.next_id_65
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_view_open_crm_case_dashboard
msgid "Open CRM Cases Within Past 15 Days"
-msgstr ""
+msgstr "CRM Slučajevi otvoreni u proteklih 15 dana"
#. module: report_crm
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: report_crm
#: model:ir.model,name:report_crm.model_report_crm_case_service_dashboard
msgid "Report of Closed and Open CRM Cases within past 15 days"
msgstr ""
+"Izvještaj o zaključenim i otvorenim CRM Slučajevima u proteklih 15 dana"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_user_tree
@@ -227,91 +230,91 @@ msgstr ""
#: view:report.crm.case.categ:0
#: view:report.crm.case.user:0
msgid "Cases by User and Section"
-msgstr ""
+msgstr "Slučajevi po Korisniku i Grupi"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.act_crm_case_categ_2_report_crm_case_categ
#: model:ir.actions.act_window,name:report_crm.act_res_users_2_report_crm_case_user
msgid "Monthly cases"
-msgstr ""
+msgstr "Mjesečni Slučajevi"
#. module: report_crm
#: field:report.crm.case.categ,amount_revenue:0
#: field:report.crm.case.user,amount_revenue:0
msgid "Est.Revenue"
-msgstr ""
+msgstr "Procijenjeni prihod"
#. module: report_crm
#: field:report.crm.case.service.dashboard,date_closed:0
msgid "Date Closed"
-msgstr ""
+msgstr "Datum zaključenja"
#. module: report_crm
#: field:report.crm.case.service.dashboard,priority:0
msgid "Priority"
-msgstr ""
+msgstr "Prioritet"
#. module: report_crm
#: field:report.crm.case.section,perc_cancel:0
msgid "%Cancel"
-msgstr ""
+msgstr "%Cancel"
#. module: report_crm
#: field:report.crm.case.section,delay_close:0
#: field:report.crm.case.user,delay_close:0
msgid "Delay to close"
-msgstr ""
+msgstr "Odgodi zaključivanje"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_categ_tree
#: model:ir.ui.menu,name:report_crm.menu_crm_case_categ_tree
msgid "Cases by Categories and Section"
-msgstr ""
+msgstr "Slučajevi po Kategorijama i Grupi"
#. module: report_crm
#: view:report.crm.case.service.dashboard:0
msgid "CRM Cases"
-msgstr ""
+msgstr "CRM Slučajevi"
#. module: report_crm
#: model:ir.actions.act_window,name:report_crm.action_report_crm_case_user_tree_my
#: model:ir.ui.menu,name:report_crm.menu_crm_case_user_tree_my
msgid "My cases by section"
-msgstr ""
+msgstr "Moji Slučajevi po grupi"
#. module: report_crm
#: field:report.crm.case.categ,name:0
#: field:report.crm.case.section,name:0
#: field:report.crm.case.user,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_crm
#: selection:report.crm.case.categ,state:0
#: selection:report.crm.case.service.dashboard,state:0
#: selection:report.crm.case.user,state:0
msgid "Canceled"
-msgstr ""
+msgstr "Otkazan"
#. module: report_crm
#: field:report.crm.case.service.dashboard,create_date:0
msgid "Create Date"
-msgstr ""
+msgstr "Datum stvaranja"
#. module: report_crm
#: field:report.crm.case.service.dashboard,date_deadline:0
msgid "Deadline"
-msgstr ""
+msgstr "Rok"
#. module: report_crm
#: model:ir.model,name:report_crm.model_report_crm_case_user
msgid "Cases by user and section"
-msgstr ""
+msgstr "Slučajevi po Korisniku i Grupi"
#. module: report_crm
#: field:report.crm.case.service.dashboard,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: report_crm
#: model:ir.module.module,description:report_crm.module_meta_information
@@ -319,15 +322,17 @@ msgid ""
"A module that adds new reports based on CRM cases.\n"
" Case By section, Case By category"
msgstr ""
+"Modul koji dodaje nove izvještaje na temelju CRM SLučajeva. Slučaj po Grupi, "
+"Slučaj po Kategoriji"
#. module: report_crm
#: selection:report.crm.case.categ,state:0
#: selection:report.crm.case.service.dashboard,state:0
#: selection:report.crm.case.user,state:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: report_crm
#: view:report.crm.case.service.dashboard:0
msgid "Planned revenue"
-msgstr ""
+msgstr "Planirani prihod"
diff --git a/addons/report_designer/__terp__.py b/addons/report_designer/__terp__.py
index 866eb535b72..f36973f740b 100644
--- a/addons/report_designer/__terp__.py
+++ b/addons/report_designer/__terp__.py
@@ -25,6 +25,7 @@
"version" : "1.0",
"depends" : ["base"],
"author" : "Tiny",
+ "category": "Tools",
"description": """Installer for reporting tools selection
""",
'website': 'http://www.openerp.com',
diff --git a/addons/report_document/i18n/hr.po b/addons/report_document/i18n/hr.po
index 0cea7c6d5b7..1c0de4d901d 100644
--- a/addons/report_document/i18n/hr.po
+++ b/addons/report_document/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_document
-#
+# * report_document
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-10-01 07:47+0000\n"
-"Last-Translator: Miro Glavić \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_document
#: field:report.document.user,create_date:0
@@ -25,188 +26,189 @@ msgstr ""
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_files_by_partner
msgid "Files Per Month"
-msgstr ""
+msgstr "Spisi po Mjesecu"
#. module: report_document
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_wall
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_shame
#: view:report.document.wall:0
msgid "Wall of Shame"
-msgstr ""
+msgstr "Zid Srama"
#. module: report_document
#: model:ir.model,name:report_document.model_report_files_partner
msgid "Files details by Partners"
-msgstr ""
+msgstr "Detalji Spisa po Partneru"
#. module: report_document
#: field:report.document.file,file_size:0
#: field:report.document.user,file_size:0
#: field:report.files.partner,file_size:0
msgid "File Size"
-msgstr ""
+msgstr "Veličina Spisa"
#. module: report_document
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_myfile
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_myfile
msgid "My files"
-msgstr ""
+msgstr "Moji Spisi"
#. module: report_document
#: view:report.document.user:0
msgid "Files by users"
-msgstr ""
+msgstr "Spisi po Korisniku"
#. module: report_document
#: view:report.document.user:0
msgid "Files"
-msgstr ""
+msgstr "Spisi"
#. module: report_document
#: view:report.files.partner:0
msgid "Files per Month"
-msgstr ""
+msgstr "Spisi po Mjesecu"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree1
msgid "My files (All months)"
-msgstr ""
+msgstr "Moji Spisi (Svi mjeseci)"
#. module: report_document
#: field:report.document.wall,file_name:0
msgid "Last Posted File Name"
-msgstr ""
+msgstr "Zadnje postavljeno Ime Spisa"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_wall
msgid "Users that did not inserted documents since one month"
-msgstr ""
+msgstr "Korisnici koji jedan mjesec nisu unijeli Dokument"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document
msgid "Document Management"
-msgstr ""
+msgstr "Upravljanje Dokumentima"
#. module: report_document
#: field:report.document.user,type:0
#: field:report.files.partner,type:0
msgid "Directory Type"
-msgstr ""
+msgstr "Tip Direktorija"
#. module: report_document
#: view:report.files.partner:0
msgid "Files By Partner"
-msgstr ""
+msgstr "Spisi po Partneru"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_document
#: field:report.document.user,user:0
#: field:report.document.wall,user:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: report_document
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_userfile
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_userfile
msgid "All Users files"
-msgstr ""
+msgstr "Svi Spisi Korisnika"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree
msgid "My files (This months)"
-msgstr ""
+msgstr "Moji Spisi (Ovaj mjesec)"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_user
msgid "Files details by Users"
-msgstr ""
+msgstr "Detalji Spisa prema Korisnicima"
#. module: report_document
#: field:report.document.user,user_id:0
#: field:report.document.wall,user_id:0
msgid "Owner"
-msgstr ""
+msgstr "Vlasnik"
#. module: report_document
#: field:report.document.file,nbr:0
#: field:report.document.user,nbr:0
#: field:report.files.partner,nbr:0
msgid "# of Files"
-msgstr ""
+msgstr "# Spisa"
#. module: report_document
#: field:report.document.user,directory:0
#: field:report.files.partner,directory:0
msgid "Directory"
-msgstr ""
+msgstr "Direktorij"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_user_graph
msgid "Files By Users"
-msgstr ""
+msgstr "Spisi prema Korisnicima"
#. module: report_document
#: model:ir.module.module,shortdesc:report_document.module_meta_information
msgid "Document Management - Reporting"
-msgstr ""
+msgstr "Upravljanje Dokumentima - Izvještavanje"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree1
msgid "All Users files (All months)"
-msgstr ""
+msgstr "Spisi svih Korisnika (Svi mjeseci)"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_file
msgid "Files details by Directory"
-msgstr ""
+msgstr "Detalji Spisa prema Direktoriju"
#. module: report_document
#: field:report.document.user,change_date:0
#: field:report.files.partner,change_date:0
msgid "Modified Date"
-msgstr ""
+msgstr "Izmjenjen Datum"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_size_month
#: view:report.document.file:0
msgid "File Size by Month"
-msgstr ""
+msgstr "Veličina spisa po Mjesecu"
#. module: report_document
#: field:report.document.user,file_title:0
#: field:report.files.partner,file_title:0
msgid "File Name"
-msgstr ""
+msgstr "Ime Spisa"
#. module: report_document
#: field:report.document.file,month:0
@@ -216,32 +218,32 @@ msgstr ""
#: field:report.document.wall,name:0
#: field:report.files.partner,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_files_by_month_graph
#: view:report.document.user:0
msgid "Files by Month"
-msgstr ""
+msgstr "Spisi po Mjesecu"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_document_by_resourcetype_graph
#: view:report.document.user:0
msgid "Files by Resource Type"
-msgstr ""
+msgstr "Spisi po tipu Izvora"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree
msgid "All Users files (This month)"
-msgstr ""
+msgstr "Spisi svih Korisnika (Ovaj mjesec)"
#. module: report_document
#: field:report.document.wall,last:0
msgid "Last Posted Time"
-msgstr ""
+msgstr "Zadnje postavljeno Vrijeme"
#. module: report_document
#: field:report.document.user,partner:0
#: field:report.files.partner,partner:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
diff --git a/addons/report_intrastat/__terp__.py b/addons/report_intrastat/__terp__.py
index 4f2366dfe81..5fb8f7e564c 100644
--- a/addons/report_intrastat/__terp__.py
+++ b/addons/report_intrastat/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -24,7 +24,9 @@
'name': 'Intrastat Reporting - Reporting',
'version': '1.0',
'category': 'Generic Modules/Inventory Control',
- 'description': """A module that adds intrastat reports.""",
+ 'description': """
+ A module that adds intrastat reports.
+ This module gives the details of the goods traded between the countries of Europan Union """,
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['base', 'product', 'stock', 'sale', 'purchase'],
diff --git a/addons/report_intrastat/i18n/hr.po b/addons/report_intrastat/i18n/hr.po
index 7a38f85adfd..cdcc128a069 100644
--- a/addons/report_intrastat/i18n/hr.po
+++ b/addons/report_intrastat/i18n/hr.po
@@ -1,173 +1,175 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_intrastat
-#
+# * report_intrastat
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:53+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_intrastat
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Canceled Invoice"
-msgstr ""
+msgstr "Poništen Račun"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Disc. (%)"
-msgstr ""
+msgstr "Popust (%)"
#. module: report_intrastat
#: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_tree
#: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat
msgid "Intrastat (this month)"
-msgstr ""
+msgstr "Intrastat (Ovaj mjesec)"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Supplier Invoice"
-msgstr ""
+msgstr "Račun Dobavljača"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Unit Price"
-msgstr ""
+msgstr "Jedinična cijena"
#. module: report_intrastat
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_intrastat
#: field:report.intrastat,name:0
msgid "Period"
-msgstr ""
+msgstr "Razdoblje"
#. module: report_intrastat
#: model:ir.ui.menu,name:report_intrastat.next_id_90
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: report_intrastat
#: selection:report.intrastat,type:0
msgid "Import"
-msgstr ""
+msgstr "Uvoz"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "VAT :"
-msgstr ""
+msgstr "PDV :"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Document"
-msgstr ""
+msgstr "Dokument"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "PRO-FORMA"
-msgstr ""
+msgstr "PRO-FORMA"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Taxes:"
-msgstr ""
+msgstr "Porezi:"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
#: field:report.intrastat.code,description:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: report_intrastat
#: field:report.intrastat,type:0
msgid "Type"
-msgstr ""
+msgstr "Tip"
#. module: report_intrastat
#: model:ir.actions.report.xml,name:report_intrastat.invoice_intrastat_id
msgid "Invoice Intrastat"
-msgstr ""
+msgstr "Intrastat Račun"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Invoice Date"
-msgstr ""
+msgstr "Datum Računa"
#. module: report_intrastat
#: model:ir.module.module,shortdesc:report_intrastat.module_meta_information
msgid "Intrastat Reporting - Reporting"
-msgstr ""
+msgstr "Intrastat Izvještavanje - Izvještavanje"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel:"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Base"
-msgstr ""
+msgstr "Osnova"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: report_intrastat
#: model:ir.ui.menu,name:report_intrastat.next_id_89
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Partner Ref."
-msgstr ""
+msgstr "Referenca Partnera"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Total (inclu. taxes):"
-msgstr ""
+msgstr "Ukupno (uklj. poreze)"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Refund"
-msgstr ""
+msgstr "Povrat novca"
#. module: report_intrastat
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_intrastat
#: model:ir.model,name:report_intrastat.model_report_intrastat
msgid "Intrastat report"
-msgstr ""
+msgstr "Intrastat Izvještaj"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Taxes"
-msgstr ""
+msgstr "Porezi"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
@@ -177,29 +179,29 @@ msgstr ""
#. module: report_intrastat
#: view:report.intrastat:0
msgid "Intrastat Data"
-msgstr ""
+msgstr "Intrastat Podaci"
#. module: report_intrastat
#: field:report.intrastat,value:0
msgid "Value"
-msgstr ""
+msgstr "Vrijednost"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
#: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_tree_all
#: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat_all
msgid "Intrastat"
-msgstr ""
+msgstr "Intrastat"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Draft Invoice"
-msgstr ""
+msgstr "Nacrt računa"
#. module: report_intrastat
#: field:report.intrastat,supply_units:0
msgid "Supply Units"
-msgstr ""
+msgstr "Jedinice Dobave"
#. module: report_intrastat
#: model:ir.model,name:report_intrastat.model_report_intrastat_code
@@ -207,67 +209,67 @@ msgstr ""
#: field:report.intrastat,intrastat_id:0
#: view:report.intrastat.code:0
msgid "Intrastat code"
-msgstr ""
+msgstr "Intrastat Kod"
#. module: report_intrastat
#: field:report.intrastat,ref:0
msgid "Origin"
-msgstr ""
+msgstr "Porijeklo"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
#: field:report.intrastat,weight:0
msgid "Weight"
-msgstr ""
+msgstr "Težina"
#. module: report_intrastat
#: field:res.country,intrastat:0
msgid "Intrastat member"
-msgstr ""
+msgstr "Intarstat Član"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Tax"
-msgstr ""
+msgstr "Porez"
#. module: report_intrastat
#: field:report.intrastat,code:0
msgid "Country code"
-msgstr ""
+msgstr "Kod Zemlje"
#. module: report_intrastat
#: field:report.intrastat,currency_id:0
msgid "Currency"
-msgstr ""
+msgstr "Valuta"
#. module: report_intrastat
#: selection:report.intrastat,type:0
msgid "Export"
-msgstr ""
+msgstr "Izvezi"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Fax :"
-msgstr ""
+msgstr "Fax :"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Supplier Refund"
-msgstr ""
+msgstr "Povrat Dobavljaču"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Total (excl. taxes):"
-msgstr ""
+msgstr "Ukupno (isklj. poreze)"
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: report_intrastat
#: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_code_tree
#: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat_code
#: field:report.intrastat.code,name:0
msgid "Intrastat Code"
-msgstr ""
+msgstr "Intrastat Kod"
diff --git a/addons/report_mrp/i18n/hr.po b/addons/report_mrp/i18n/hr.po
index 8f25955e687..43b0e877a21 100644
--- a/addons/report_mrp/i18n/hr.po
+++ b/addons/report_mrp/i18n/hr.po
@@ -1,83 +1,85 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_mrp
-#
+# * report_mrp
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:24+0000\n"
-"Last-Translator: nafterburner \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-25 10:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_mrp
#: field:report.mrp.inout,date:0
#: field:report.workcenter.load,name:0
msgid "Week"
-msgstr ""
+msgstr "Tjedni"
#. module: report_mrp
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_mrp
#: model:ir.ui.menu,name:report_mrp.next_id_77
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: report_mrp
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_mrp
#: view:report.workcenter.load:0
msgid "Workcenters load"
-msgstr ""
+msgstr "Teret Radnih Centara"
#. module: report_mrp
#: model:ir.model,name:report_mrp.model_report_workcenter_load
msgid "Workcenter Load"
-msgstr ""
+msgstr "Teret Radnog Centra"
#. module: report_mrp
#: model:ir.module.module,shortdesc:report_mrp.module_meta_information
msgid "MRP Management - Reporting"
-msgstr ""
+msgstr "Upravljanje Proizvodnjom - Izvještavanje"
#. module: report_mrp
#: field:report.mrp.inout,value:0
msgid "Stock value"
-msgstr ""
+msgstr "Vrijednost Zalihe"
#. module: report_mrp
#: field:report.workcenter.load,cycle:0
msgid "Nbr of cycle"
-msgstr ""
+msgstr "Broj Ciklusa"
#. module: report_mrp
#: field:report.workcenter.load,hour:0
msgid "Nbr of hour"
-msgstr ""
+msgstr "Broj Sati"
#. module: report_mrp
#: field:report.workcenter.load,workcenter_id:0
msgid "Workcenter"
-msgstr ""
+msgstr "Radni Centar"
#. module: report_mrp
#: model:ir.actions.act_window,name:report_mrp.action_report_workcenter_load_tree
#: model:ir.ui.menu,name:report_mrp.menu_report_workcenter_load
msgid "Workcenter Loads"
-msgstr ""
+msgstr "Tereti Radnog Centra"
#. module: report_mrp
#: model:ir.actions.act_window,name:report_mrp.action_report_in_out_picking_tree
@@ -88,15 +90,15 @@ msgstr "Tjedna Varijacija Vrijednosti Zalihe"
#. module: report_mrp
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "Pogrešno ime modela u definiciji akcije."
+msgstr "Pogrešno ime modela u definiciji Radnje."
#. module: report_mrp
#: model:ir.model,name:report_mrp.model_report_mrp_inout
#: view:report.mrp.inout:0
msgid "Stock value variation"
-msgstr ""
+msgstr "Varijacija vrijednosti Zalihe"
#. module: report_mrp
#: view:report.workcenter.load:0
msgid "Workcenter load"
-msgstr ""
+msgstr "Teret Radnog Centra"
diff --git a/addons/report_project/i18n/hr.po b/addons/report_project/i18n/hr.po
index 23bcf965374..df3f837ddfa 100644
--- a/addons/report_project/i18n/hr.po
+++ b/addons/report_project/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_project
-#
+# * report_project
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 19:24+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:43+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_project
#: model:ir.actions.act_window,name:report_project.action_project_task_tree_month
@@ -27,114 +28,115 @@ msgstr ""
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_project
#: model:ir.actions.act_window,name:report_project.action_project_task_user_tree
#: model:ir.ui.menu,name:report_project.menu_project_task_user_tree
msgid "Tasks Closed by Project and User"
-msgstr ""
+msgstr "Zadatak zaključen prema Projektu i Korisniku"
#. module: report_project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_project
#: model:ir.actions.act_window,name:report_project.action_project_task_user_tree_month
#: model:ir.ui.menu,name:report_project.menu_project_task_user_tree_month
msgid "Tasks finished by project and user (this month)"
-msgstr ""
+msgstr "Izvršeni Zadaci prema Projektu i Korisniku (Ovaj mjesec)"
#. module: report_project
#: field:report.project.task,hours_effective:0
#: field:report.project.task.user,hours_effective:0
msgid "Effective Hours"
-msgstr ""
+msgstr "Efektivni sati"
#. module: report_project
#: model:ir.model,name:report_project.model_report_project_task_user
msgid "Tasks by user and project"
-msgstr ""
+msgstr "Zadaci prema Korisniku i Projektu"
#. module: report_project
#: field:report.project.task,task_closed:0
#: field:report.project.task.user,task_closed:0
msgid "Task Closed"
-msgstr ""
+msgstr "Zadatak zaključen"
#. module: report_project
#: view:report.project.task:0
msgid "Tasks by Project"
-msgstr ""
+msgstr "Zadaci prema Projektu"
#. module: report_project
#: model:ir.module.module,shortdesc:report_project.module_meta_information
msgid "Sales Management - Reporting"
-msgstr ""
+msgstr "Upravljanje Prodajom - Izvještavanje"
#. module: report_project
#: field:report.project.task.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: report_project
#: view:report.project.task.user:0
msgid "Tasks by Project and User"
-msgstr ""
+msgstr "Zadaci prema Projektu i Korisniku"
#. module: report_project
#: model:ir.ui.menu,name:report_project.next_id_63
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_project
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_project
#: view:report.project.task.user:0
msgid "Tasks by projects and users"
-msgstr ""
+msgstr "Zadaci prema Projektima i Korisnicima"
#. module: report_project
#: field:report.project.task,project_id:0
#: field:report.project.task.user,project_id:0
msgid "Project"
-msgstr ""
+msgstr "Projekt"
#. module: report_project
#: field:report.project.task,closing_days:0
#: field:report.project.task.user,closing_days:0
msgid "Avg Closing Delay"
-msgstr ""
+msgstr "Prosječno kašnjenje zaključivanja"
#. module: report_project
#: model:ir.model,name:report_project.model_report_project_task
#: view:report.project.task:0
msgid "Tasks by project"
-msgstr ""
+msgstr "Zadaci prema Projektu"
#. module: report_project
#: field:report.project.task,hours_delay:0
#: field:report.project.task.user,hours_delay:0
msgid "Avg. Plan.-Eff."
-msgstr ""
+msgstr "Prosj. Plan.- Efekt."
#. module: report_project
#: field:report.project.task,name:0
#: field:report.project.task.user,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_project
#: model:ir.actions.act_window,name:report_project.action_project_task_tree
#: model:ir.ui.menu,name:report_project.menu_project_task_tree
msgid "Tasks Closed by Project"
-msgstr ""
+msgstr "Zadaci zaključeni prema Projektu"
#. module: report_project
#: field:report.project.task,hours_planned:0
#: field:report.project.task.user,hours_planned:0
msgid "Planned Hours"
-msgstr ""
+msgstr "Planirani Sati"
diff --git a/addons/report_purchase/i18n/hr.po b/addons/report_purchase/i18n/hr.po
index ddf7bfaded3..c91a5ce5b65 100644
--- a/addons/report_purchase/i18n/hr.po
+++ b/addons/report_purchase/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_purchase
-#
+# * report_purchase
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 21:23+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:38+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_purchase
#: field:report.purchase.order.category,price_average:0
@@ -26,107 +27,108 @@ msgstr ""
#: field:report.purchase.order.category,state:0
#: field:report.purchase.order.product,state:0
msgid "Order State"
-msgstr ""
+msgstr "Stanje Narudžbe"
#. module: report_purchase
#: model:ir.actions.act_window,name:report_purchase.action_order_category_tree_all
#: model:ir.ui.menu,name:report_purchase.menu_report_order_category_all
#: view:report.purchase.order.category:0
msgid "Purchases by Category of Products"
-msgstr ""
+msgstr "Kupnje po Kategoriji i Proizvodu"
#. module: report_purchase
#: model:ir.model,name:report_purchase.model_report_purchase_order_product
msgid "Purchases Orders by Products"
-msgstr ""
+msgstr "Kupovne narudžbe prema Proizvodima"
#. module: report_purchase
#: model:ir.actions.act_window,name:report_purchase.action_order_product_tree_all
#: model:ir.ui.menu,name:report_purchase.menu_report_order_product_all
msgid "Purchases by Products"
-msgstr ""
+msgstr "Kupnje prema Proizvodima"
#. module: report_purchase
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_purchase
#: model:ir.ui.menu,name:report_purchase.next_id_75
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: report_purchase
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Raspored čekanja"
#. module: report_purchase
#: model:ir.actions.act_window,name:report_purchase.action_order_product_tree
#: model:ir.ui.menu,name:report_purchase.menu_report_order_product
msgid "Purchases by Products (this month)"
-msgstr ""
+msgstr "Kupnje prem Proizvodima (Ovaj mjesec)"
#. module: report_purchase
#: model:ir.model,name:report_purchase.model_report_purchase_order_category
msgid "Purchases Orders by Categories"
-msgstr ""
+msgstr "Kupovne narudžbe prema Kategorijama"
#. module: report_purchase
#: field:report.purchase.order.product,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: report_purchase
#: model:ir.ui.menu,name:report_purchase.next_id_73
msgid "Reporting"
-msgstr ""
+msgstr "izvještavanje"
#. module: report_purchase
#: model:ir.module.module,shortdesc:report_purchase.module_meta_information
msgid "Purchase Management - Reporting"
-msgstr ""
+msgstr "Upravljanje Nabavom - Izvještavanje"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Invoice Exception"
-msgstr ""
+msgstr "Izuzetak kod Računa"
#. module: report_purchase
#: field:report.purchase.order.category,price_total:0
#: field:report.purchase.order.product,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Ukupna cijena"
#. module: report_purchase
#: field:report.purchase.order.category,quantity:0
#: field:report.purchase.order.product,quantity:0
msgid "# of Products"
-msgstr ""
+msgstr "# Proizvoda"
#. module: report_purchase
#: view:report.purchase.order.product:0
msgid "Purchases by products"
-msgstr ""
+msgstr "Kupnje prema Proizvodima"
#. module: report_purchase
#: model:ir.actions.act_window,name:report_purchase.act_product_category_2_report_purchase_order_category
#: model:ir.actions.act_window,name:report_purchase.act_product_product_2_report_purchases_order_product
msgid "Monthly purchases"
-msgstr ""
+msgstr "Mjesečne Kupnje"
#. module: report_purchase
#: model:ir.ui.menu,name:report_purchase.next_id_74
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_purchase
#: model:ir.module.module,description:report_purchase.module_meta_information
@@ -135,66 +137,68 @@ msgid ""
" Purchase By Product, Purchase By Category of Product, All Months, "
"Current Month."
msgstr ""
+"Modul koji dodaje prikaze poput: Kupnje prema proizvodima, Kupnje prema "
+"Kategorijama Proizvoda, Svi mjeseci, Tekući mjesec."
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Ponuda"
#. module: report_purchase
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Priručnik u tijeku"
#. module: report_purchase
#: model:ir.actions.act_window,name:report_purchase.action_order_category_tree
#: model:ir.ui.menu,name:report_purchase.menu_report_order_category
msgid "Purchases by Category of Product (this month)"
-msgstr ""
+msgstr "Kupnje po Kategoriji Proizvoda (Ovaj mjesec)"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Shipping Exception"
-msgstr ""
+msgstr "Izuzetak kod Otpreme"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "In progress"
-msgstr ""
+msgstr "U razvoju"
#. module: report_purchase
#: field:report.purchase.order.category,name:0
#: field:report.purchase.order.product,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_purchase
#: field:report.purchase.order.product,count:0
msgid "# of Lines"
-msgstr ""
+msgstr "# Linija"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: report_purchase
#: field:report.purchase.order.category,category_id:0
msgid "Categories"
-msgstr ""
+msgstr "Kategorije"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
diff --git a/addons/report_sale/i18n/hr.po b/addons/report_sale/i18n/hr.po
index 5ff5fb8f654..edf1fdf591c 100644
--- a/addons/report_sale/i18n/hr.po
+++ b/addons/report_sale/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_sale
-#
+# * report_sale
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 21:28+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:57+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_sale
#: selection:report.sale.order.created,state:0
@@ -37,296 +38,297 @@ msgstr ""
#. module: report_sale
#: model:ir.model,name:report_sale.model_report_sale_order_created
msgid "Report of Created Sale Order"
-msgstr ""
+msgstr "Izvještaj o kreiranoj Prodajnoj narudžbi"
#. module: report_sale
#: view:report.sale.order.category:0
msgid "Sales Orders by category"
-msgstr ""
+msgstr "Prodajne narudžbe prema Kategoriji"
#. module: report_sale
#: model:ir.report.custom,name:report_sale.ir_report_custom_6
#: model:ir.report.custom,title:report_sale.ir_report_custom_6
msgid "Monthly cumulated sales turnover over one year"
-msgstr ""
+msgstr "Kumulativni promet prodaje po mjesecima u godini"
#. module: report_sale
#: model:ir.model,name:report_sale.model_report_sale_order_product
msgid "Sales Orders by Products"
-msgstr ""
+msgstr "Prodajne narudžbe prema Proizvodima"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.ir_ui_menu1
msgid "Monthly Sales Turnover Over One Year"
-msgstr ""
+msgstr "Mjesečni promet prodaje tijekom jedne godine"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_turnover_product_tree
#: model:ir.model,name:report_sale.model_report_turnover_per_product
#: view:report.turnover.per.product:0
msgid "Turnover Per Product"
-msgstr ""
+msgstr "Promet po Proizvodu"
#. module: report_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_82
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: report_sale
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Raspored čekanja"
#. module: report_sale
#: field:report.sale.order.category,price_total:0
#: field:report.sale.order.product,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Ukupna cijena"
#. module: report_sale
#: field:report.sale.order.product,product_id:0
#: field:report.turnover.per.product,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: report_sale
#: model:ir.model,name:report_sale.model_report_sale_order_category
msgid "Sales Orders by Categories"
-msgstr ""
+msgstr "Prodajne narudžbe prema Kategorijama"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_sale_list
#: model:ir.ui.menu,name:report_sale.menu_report_order_sale_list
msgid "Sales of the Month"
-msgstr ""
+msgstr "Prodaje u mjesecu"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_product_tree
#: model:ir.ui.menu,name:report_sale.menu_report_order_product
msgid "Sales by Product (this month)"
-msgstr ""
+msgstr "Prodaje prema Proizvodima (Ovaj mjesec)"
#. module: report_sale
#: field:report.sale.order.created,partner_shipping_id:0
msgid "Shipping Address"
-msgstr ""
+msgstr "Adresa otpreme"
#. module: report_sale
#: model:ir.report.custom,name:report_sale.ir_report_custom_4
#: model:ir.report.custom,title:report_sale.ir_report_custom_4
msgid "Monthly sales turnover over one year"
-msgstr ""
+msgstr "Mjesečni promet prodaje tijekom jedne godine"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Invoice Exception"
-msgstr ""
+msgstr "Izuzetak u izdavanju Računa"
#. module: report_sale
#: model:ir.module.module,shortdesc:report_sale.module_meta_information
msgid "Sales Management - Reporting"
-msgstr ""
+msgstr "Upravljanje prodajom - Izvještavanje"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_category_tree_all
#: model:ir.ui.menu,name:report_sale.menu_report_order_category_all
#: view:report.sale.order.category:0
msgid "Sales by Category of Products"
-msgstr ""
+msgstr "Prodaje prema Kategorijama Proizvoda"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.ir_ui_menu3
msgid "Monthly Cumulated Sales Turnover Over One Year"
-msgstr ""
+msgstr "Kumulativni promet prodaje po mjesecima u godini"
#. module: report_sale
#: field:report.sale.order.category,quantity:0
#: field:report.sale.order.product,quantity:0
msgid "# of Products"
-msgstr ""
+msgstr "# Proizvoda"
#. module: report_sale
#: field:report.sale.order.created,name:0
msgid "Order Reference"
-msgstr ""
+msgstr "Referenca Narudžbe"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_product_tree_all
#: model:ir.ui.menu,name:report_sale.menu_report_order_product_all
#: view:report.sale.order.product:0
msgid "Sales by Product"
-msgstr ""
+msgstr "prodaja prema Proizvodu"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_81
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: report_sale
#: field:report.sale.order.category,category_id:0
msgid "Categories"
-msgstr ""
+msgstr "kategorije"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Quotation"
-msgstr ""
+msgstr "ponuda"
#. module: report_sale
#: field:report.sale.order.created,partner_id:0
msgid "Customer"
-msgstr ""
+msgstr "Stranka"
#. module: report_sale
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_view_created_sale_order_dashboard
msgid "Created Sale Orders"
-msgstr ""
+msgstr "Kreirane Prodajne Narudžbe"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_80
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_turnover_month_tree
#: model:ir.model,name:report_sale.model_report_turnover_per_month
#: view:report.turnover.per.month:0
msgid "Turnover Per Month"
-msgstr ""
+msgstr "Promet po mjesecu"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.ir_ui_menu2
msgid "Daily Sales Turnover Over One Year"
-msgstr ""
+msgstr "Dnevni promet prodaje tijekom jedne godine"
#. module: report_sale
#: field:report.sale.order.created,date_order:0
msgid "Date Ordered"
-msgstr ""
+msgstr "datum narudžbe"
#. module: report_sale
#: view:sale.order:0
msgid "Sales orders"
-msgstr ""
+msgstr "Prodajne Narudžbe"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_83
msgid "Graphs"
-msgstr ""
+msgstr "Grafikoni"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.product,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Priručnik u tijeku"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Shipping Exception"
-msgstr ""
+msgstr "Izuzetak kod Otpreme"
#. module: report_sale
#: field:report.turnover.per.month,turnover:0
#: field:report.turnover.per.product,turnover:0
msgid "Total Turnover"
-msgstr ""
+msgstr "Ukupni promet"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.product,state:0
msgid "In progress"
-msgstr ""
+msgstr "U Tijeku"
#. module: report_sale
#: view:report.sale.order.created:0
msgid "Reference"
-msgstr ""
+msgstr "Referenca"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_category_tree
#: model:ir.ui.menu,name:report_sale.menu_report_order_category
msgid "Sales by Category of Product (this month)"
-msgstr ""
+msgstr "Prodaje prema Kategoriji Proizvoda (Ovaj mjesec)"
#. module: report_sale
#: model:ir.report.custom,name:report_sale.ir_report_custom_5
#: model:ir.report.custom,title:report_sale.ir_report_custom_5
msgid "Daily sales turnover over one year"
-msgstr ""
+msgstr "Dnevni promet prodaje tijekom jedne godine"
#. module: report_sale
#: selection:report.sale.order.created,state:0
msgid "Manual In Progress"
-msgstr ""
+msgstr "Priručnik u tijeku"
#. module: report_sale
#: field:report.sale.order.category,name:0
#: field:report.sale.order.product,name:0
#: field:report.turnover.per.month,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_sale
#: field:report.sale.order.category,count:0
#: field:report.sale.order.product,count:0
msgid "# of Lines"
-msgstr ""
+msgstr "# Linija"
#. module: report_sale
#: field:report.sale.order.created,create_date:0
msgid "Create Date"
-msgstr ""
+msgstr "Kreiraj datum"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: report_sale
#: view:report.sale.order.created:0
msgid "Created Sales orders"
-msgstr ""
+msgstr "Kreirane Prodajne Narudžbe"
#. module: report_sale
#: selection:report.sale.order.category,state:0
#: selection:report.sale.order.created,state:0
#: selection:report.sale.order.product,state:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_so_pipeline
#: view:sale.order:0
msgid "Sales by State"
-msgstr ""
+msgstr "Prodaje prema Stanju"
#. module: report_sale
#: field:report.sale.order.created,amount_untaxed:0
msgid "Untaxed Amount"
-msgstr ""
+msgstr "Iznos bez Poreza"
diff --git a/addons/report_task/i18n/hr.po b/addons/report_task/i18n/hr.po
index 8662fc5fe6b..73219840384 100644
--- a/addons/report_task/i18n/hr.po
+++ b/addons/report_task/i18n/hr.po
@@ -1,264 +1,268 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_task
-#
+# * report_task
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-16 11:14+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 21:37+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_task
#: selection:report.closed.task,state:0
msgid "In Progress"
-msgstr ""
+msgstr "U razvoju"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_project_task
#: model:ir.ui.menu,name:report_task.menu_project_task_user_tree
#: view:report.task.user.pipeline.open:0
msgid "Tasks by User"
-msgstr ""
+msgstr "Zadaci prema Korisniku"
#. module: report_task
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: report_task
#: field:report.closed.task,remaining_hours:0
msgid "Remaining Hours"
-msgstr ""
+msgstr "Preostali Sati"
#. module: report_task
#: selection:report.task.user.pipeline.open,task_state:0
msgid "No Task"
-msgstr ""
+msgstr "Nema Zadatka"
#. module: report_task
#: model:ir.module.module,shortdesc:report_task.module_meta_information
msgid "Report on tasks by user for projects"
-msgstr ""
+msgstr "Izvještaj o Zadacima prema korisniku za projekte"
#. module: report_task
#: view:report.closed.task:0
msgid "Delay"
-msgstr ""
+msgstr "Odgoda"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Very Low"
-msgstr ""
+msgstr "Vrlo Nisko"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Low"
-msgstr ""
+msgstr "Nizak"
#. module: report_task
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_task
#: field:report.closed.task,name:0
msgid "Task summary"
-msgstr ""
+msgstr "Sižetak Zadatka"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Pending"
-msgstr ""
+msgstr "U tijeku"
#. module: report_task
#: field:report.closed.task,state:0
#: field:report.task.user.pipeline.open,task_state:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Medium"
-msgstr ""
+msgstr "Srednji"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_report_timesheet_task_user
#: model:ir.ui.menu,name:report_task.menu_timesheet_task_user
msgid "Timesheet / Task Hours Per Month"
-msgstr ""
+msgstr "Raspored / Zadaci u satima po mjesecu"
#. module: report_task
#: field:report.closed.task,progress:0
msgid "Progress (%)"
-msgstr ""
+msgstr "Progres (%)"
#. module: report_task
#: field:report.closed.task,priority:0
msgid "Importance"
-msgstr ""
+msgstr "Važnost"
#. module: report_task
#: field:report.task.user.pipeline.open,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Tvrtka"
#. module: report_task
#: model:ir.ui.menu,name:report_task.next_id_57
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: report_task
#: model:ir.module.module,description:report_task.module_meta_information
msgid ""
"Gives statistics on tasks by user on projects to check the pipeline of users."
msgstr ""
+"Daje statistike o Zadacima prema Korisniku na projektima radi provjere "
+"slijeda zadataka korisnika."
#. module: report_task
#: field:report.task.user.pipeline.open,user_id:0
#: field:report.timesheet.task.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Korisnik"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_closed_task_board
msgid "Task Closed Within Past 15 Days"
-msgstr ""
+msgstr "Zadaci zaključeni u proteklih 15 dana"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Very urgent"
-msgstr ""
+msgstr "Vrlo hitno"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: report_task
#: field:report.task.user.pipeline.open,task_hrs:0
#: field:report.timesheet.task.user,task_hrs:0
msgid "Task Hours"
-msgstr ""
+msgstr "Zadatak u satima"
#. module: report_task
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: report_task
#: field:report.closed.task,delay_hours:0
msgid "Delay Hours"
-msgstr ""
+msgstr "Odgoda u satima"
#. module: report_task
#: field:report.closed.task,project_id:0
msgid "Project"
-msgstr ""
+msgstr "Projekt"
#. module: report_task
#: field:report.task.user.pipeline.open,task_nbr:0
msgid "Task Number"
-msgstr ""
+msgstr "Broj Zadatka"
#. module: report_task
#: model:ir.model,name:report_task.model_report_timesheet_task_user
msgid "report.timesheet.task.user"
-msgstr ""
+msgstr "report.timesheet.task.user"
#. module: report_task
#: model:ir.model,name:report_task.model_report_task_user_pipeline_open
msgid "Tasks by user and project"
-msgstr ""
+msgstr "Zadatak prema Korisniku i Projektu"
#. module: report_task
#: view:report.closed.task:0
msgid "Planned"
-msgstr ""
+msgstr "Planiran"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazan"
#. module: report_task
#: view:report.timesheet.task.user:0
msgid "Timesheet/Task hours Report Per Month"
-msgstr ""
+msgstr "Raspored / Zadaci u satima po mjesecu"
#. module: report_task
#: field:report.task.user.pipeline.open,task_progress:0
msgid "Task Progress"
-msgstr ""
+msgstr "Progres Zadatka"
#. module: report_task
#: field:report.closed.task,date_close:0
msgid "Date Closed"
-msgstr ""
+msgstr "Datum zaključenja"
#. module: report_task
#: field:report.closed.task,user_id:0
msgid "Assigned to"
-msgstr ""
+msgstr "Dodijeljeno"
#. module: report_task
#: field:report.closed.task,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Slijed"
#. module: report_task
#: model:ir.model,name:report_task.model_report_closed_task
msgid "Closed Task Report"
-msgstr ""
+msgstr "Izvještaj o zaključenju Zadatka"
#. module: report_task
#: field:report.timesheet.task.user,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Urgent"
-msgstr ""
+msgstr "Hitno"
#. module: report_task
#: field:report.closed.task,date_deadline:0
msgid "Deadline"
-msgstr ""
+msgstr "Rok"
#. module: report_task
#: field:report.timesheet.task.user,timesheet_hrs:0
msgid "Timesheet Hours"
-msgstr ""
+msgstr "Sati Rasporeda"
#. module: report_task
#: view:report.closed.task:0
msgid "Closed Tasks"
-msgstr ""
+msgstr "Zaključeni Zadaci"
#. module: report_task
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: report_task
#: field:report.closed.task,planned_hours:0
msgid "Planned Hours"
-msgstr ""
+msgstr "Planirani Sati"
diff --git a/addons/report_timesheet/i18n/hr.po b/addons/report_timesheet/i18n/hr.po
index d052b76ffa9..df9f24dff98 100644
--- a/addons/report_timesheet/i18n/hr.po
+++ b/addons/report_timesheet/i18n/hr.po
@@ -1,37 +1,38 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * report_timesheet
-#
+# * report_timesheet
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:29+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 21:39+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:57+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_date_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_date_my
msgid "My daily timesheets by account"
-msgstr ""
+msgstr "Moji dnevni Rasporedi po Kupcu"
#. module: report_timesheet
#: view:report_timesheet.user:0
msgid "Timesheet by user"
-msgstr ""
+msgstr "Raspored po Korisniku"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_all
msgid "Timesheet by Account"
-msgstr ""
+msgstr "Raspored po Kupcu"
#. module: report_timesheet
#: constraint:ir.model:0
@@ -43,7 +44,7 @@ msgstr ""
#. module: report_timesheet
#: view:report_timesheet.account:0
msgid "Timesheet by account"
-msgstr ""
+msgstr "Raspored po Stranki"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timesheet_invoice
@@ -55,44 +56,44 @@ msgstr "Troškovi za fakturiranje"
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user_my
msgid "My Timesheet of the Month"
-msgstr ""
+msgstr "Moj raspored u mjesecu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_random_timesheet_lines_board
#: model:ir.model,name:report_timesheet.model_random_timesheet_lines
msgid "Random Timesheet Lines"
-msgstr ""
+msgstr "Nasumični tokovi Rasporeda"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_account_analytic_account_2_report_timehsheet_account
msgid "Timesheets"
-msgstr ""
+msgstr "Rasporedi"
#. module: report_timesheet
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timehsheet_account
msgid "Timesheets per account"
-msgstr ""
+msgstr "Rasporedi po Stranki"
#. module: report_timesheet
#: view:report_timesheet.invoice:0
msgid "Timesheets to invoice"
-msgstr ""
+msgstr "Rasporedi za obračun"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timesheet_user
msgid "Timesheets per day"
-msgstr ""
+msgstr "Rasporedi po danu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_date_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_date_all
msgid "Daily Timesheet by Account"
-msgstr ""
+msgstr "Dnevni Rasporedi po Kupcu"
#. module: report_timesheet
#: field:random.timesheet.lines,product_id:0
@@ -109,12 +110,12 @@ msgstr "Opis"
#: model:ir.model,name:report_timesheet.model_report_timesheet_account
#: view:report_timesheet.account:0
msgid "Timesheet per account"
-msgstr ""
+msgstr "Raspored po Kupcu"
#. module: report_timesheet
#: model:ir.module.module,shortdesc:report_timesheet.module_meta_information
msgid "Timesheet - Reporting"
-msgstr ""
+msgstr "Raspored - Izvještavanje"
#. module: report_timesheet
#: field:random.timesheet.lines,date:0
@@ -127,7 +128,7 @@ msgstr "Datum"
#. module: report_timesheet
#: view:report_timesheet.invoice:0
msgid "Timesheet by invoice"
-msgstr ""
+msgstr "Raspored za obračun"
#. module: report_timesheet
#: field:random.timesheet.lines,quantity:0
@@ -148,12 +149,12 @@ msgstr "Ovaj Mjesec"
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_my
msgid "My timesheets by account"
-msgstr ""
+msgstr "Moji rasporedi prema Kupcu"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_random_timesheet
msgid "Random Timesheet Report"
-msgstr ""
+msgstr "Nasumičan izvještaj Rasporeda"
#. module: report_timesheet
#: field:random.timesheet.lines,user_id:0
@@ -173,17 +174,17 @@ msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: report_timesheet
#: view:report.random.timesheet:0
msgid "Random Timesheets"
-msgstr ""
+msgstr "Nasumični Rasporedi"
#. module: report_timesheet
#: view:report_timesheet.account.date:0
msgid "Daily timesheet by account"
-msgstr ""
+msgstr "Dnevni Raspored po Kupcu"
#. module: report_timesheet
#: view:random.timesheet.lines:0
msgid "Random Timesheets Lines"
-msgstr ""
+msgstr "Nasumični tokovi Rasporeda"
#. module: report_timesheet
#: field:report_timesheet.invoice,account_id:0
@@ -204,18 +205,18 @@ msgstr "Za fakturiranje"
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user_all
msgid "Timesheet by User"
-msgstr ""
+msgstr "Raspored po Korisniku"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_invoice_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_invoice_all
msgid "Timesheet by Invoice"
-msgstr ""
+msgstr "Raspored prema Računu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_random_timesheet_board
msgid "Random Timesheet"
-msgstr ""
+msgstr "Nasumičan Raspored"
#. module: report_timesheet
#: field:random.timesheet.lines,to_invoice:0
@@ -225,24 +226,24 @@ msgstr "Fakturiranje"
#. module: report_timesheet
#: field:random.timesheet.lines,general_account_id:0
msgid "General Account"
-msgstr "Opći Račun"
+msgstr "Opći Račun Kupca"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_timesheet_user
msgid "Timesheet per day"
-msgstr ""
+msgstr "Raspored po danu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_invoice_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_invoice_my
msgid "My timesheets to invoice"
-msgstr ""
+msgstr "Moji rasporedi za obračun"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_timesheet_account_date
#: view:report_timesheet.account.date:0
msgid "Daily timesheet per account"
-msgstr ""
+msgstr "Dnevni Raspored po Kupcu"
#. module: report_timesheet
#: model:ir.module.module,description:report_timesheet.module_meta_information
@@ -250,6 +251,8 @@ msgid ""
"Module to add timesheet views like\n"
" All Month, Timesheet By User, Timesheet Of Month, Timesheet By Account"
msgstr ""
+"Modul koji dodaje poglede Rasporeda poput: Čitav Mjesec, Raspored prema "
+"Korisniku, Raspored Mjeseca, Raspored prema Kupcu"
#. module: report_timesheet
#: field:report_timesheet.account,name:0
@@ -262,7 +265,7 @@ msgstr "Mjesec"
#: field:report_timesheet.account,account_id:0
#: field:report_timesheet.account.date,account_id:0
msgid "Analytic Account"
-msgstr "Analitički Račun"
+msgstr "Analitički konto"
#. module: report_timesheet
#: field:report_timesheet.invoice,manager_id:0
@@ -283,4 +286,4 @@ msgstr "UoM"
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user
msgid "Timesheet by user (this month)"
-msgstr ""
+msgstr "Raspored prema Korisniku (Ovaj mjesec)"
diff --git a/addons/resource/__terp__.py b/addons/resource/__terp__.py
index fb2a0f5899c..41872ca22a7 100755
--- a/addons/resource/__terp__.py
+++ b/addons/resource/__terp__.py
@@ -24,11 +24,14 @@
"name" : "Resource",
"version" : "1.1",
"author" : "Tiny",
- "category" : "Generic Modules/Projects",
+ "category" : "Generic Modules/Projects & Services",
"website" : "http://www.openerp.com",
"description": """
- Module for resource management. You can manage:
- * Leave/Holidays or Days off of the company
+ Module for resource management
+ A resource represent something that can be scheduled
+ (a developer on a task or a workcenter on manufacturing orders).
+ This module manages a resource calendar associated to every resource.
+ It also manages the leaves of every resource.
""",
'author': 'Tiny',
diff --git a/addons/resource/resource.py b/addons/resource/resource.py
index 09a752850c9..38ba539c912 100755
--- a/addons/resource/resource.py
+++ b/addons/resource/resource.py
@@ -21,6 +21,7 @@
import mx.DateTime
import time
import math
+
from osv import fields, osv
from tools.translate import _
@@ -34,7 +35,7 @@ class resource_calendar(osv.osv):
'manager' : fields.many2one('res.users', 'Workgroup manager'),
}
_defaults = {
- 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.calendar', c)
+ 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.calendar', c)
}
def interval_min_get(self, cr, uid, id, dt_from, hours, resource=False):
@@ -152,9 +153,9 @@ class resource_resource(osv.osv):
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the resource record without removing it."),
'company_id' : fields.many2one('res.company', 'Company', required=True),
'resource_type': fields.selection([('user','Human'),('material','Material')], 'Resource Type', required=True),
- 'user_id' : fields.many2one('res.users', 'User',help='Related user name for the resource to manage its access.'),
- 'time_efficiency' : fields.float('Efficiency factor', size=8, required=True,help="This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."),
- 'calendar_id' : fields.many2one("resource.calendar", "Working time",help="Define the schedule of resource"),
+ 'user_id' : fields.many2one('res.users', 'User', help='Related user name for the resource to manage its access.'),
+ 'time_efficiency' : fields.float('Efficiency factor', size=8, required=True, help="This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."),
+ 'calendar_id' : fields.many2one("resource.calendar", "Working time", help="Define the schedule of resource"),
}
_defaults = {
'resource_type' : lambda *a: 'user',
@@ -187,7 +188,7 @@ class resource_calendar_leaves(osv.osv):
'date_to' : fields.datetime('End Date', required=True),
'resource_id' : fields.many2one("resource.resource", "Resource", help="If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"),
}
- def check_dates(self, cr, uid, ids):
+ def check_dates(self, cr, uid, ids, context={}):
leave = self.read(cr, uid, ids[0], ['date_from', 'date_to'])
if leave['date_from'] and leave['date_to']:
if leave['date_from'] > leave['date_to']:
@@ -198,7 +199,7 @@ class resource_calendar_leaves(osv.osv):
(check_dates, 'Error! leave start-date must be lower then leave end-date.', ['date_from', 'date_to'])
]
- def onchange_resource(self,cr,uid,ids,resource):
+ def onchange_resource(self,cr, uid, ids, resource, context={}):
result = {}
if resource:
resource_pool = self.pool.get('resource.resource')
diff --git a/addons/resource/resource_view.xml b/addons/resource/resource_view.xml
index 97cdfdc6c7c..f08b03600f8 100755
--- a/addons/resource/resource_view.xml
+++ b/addons/resource/resource_view.xml
@@ -4,7 +4,7 @@
-
+ resource.resource.searchresource.resourcesearch
@@ -13,23 +13,32 @@
-
+
+
+
+
+
+
+
+
+
resource.calendar.searchresource.calendarsearch
-
+
-
+
+
@@ -42,23 +51,27 @@
resource.calendar.leavessearch
-
+
+
+
+
+
-
+
resource.calendar.formresource.calendarform
-
- Resource Calendar
+ Working Periodresource.calendarformtree,form
@@ -169,10 +182,10 @@
-
-
+
+
diff --git a/addons/sale/__terp__.py b/addons/sale/__terp__.py
index 51ddf03fe55..a6ff79b38cd 100644
--- a/addons/sale/__terp__.py
+++ b/addons/sale/__terp__.py
@@ -45,16 +45,16 @@
'depends': ['product', 'stock', 'mrp', 'process'],
'init_xml': [],
'update_xml': [
+ 'wizard/sale_make_invoice_advance.xml',
+ 'wizard/sale_line_invoice.xml',
'security/sale_security.xml',
'security/ir.model.access.csv',
'sale_workflow.xml',
'sale_sequence.xml',
'sale_data.xml',
- 'sale_wizard.xml',
'sale_view.xml',
'report/sale_report_view.xml',
'sale_report.xml',
- 'sale_wizard.xml',
'stock_view.xml',
'process/sale_process.xml',
],
diff --git a/addons/sale/i18n/hr.po b/addons/sale/i18n/hr.po
index 42f6b560db5..2dfc21f0d54 100644
--- a/addons/sale/i18n/hr.po
+++ b/addons/sale/i18n/hr.po
@@ -1,55 +1,56 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * sale
-#
+# * sale
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 00:11+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:53+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Partial Delivery"
-msgstr ""
+msgstr "Djelomična isporuka"
#. module: sale
#: view:sale.order:0
msgid "Recreate Procurement"
-msgstr ""
+msgstr "Postavite Dobavu"
#. module: sale
#: model:process.transition,name:sale.process_transition_confirmquotation0
msgid "Confirm Quotation"
-msgstr ""
+msgstr "Potvrdite Ponudu"
#. module: sale
#: model:process.node,name:sale.process_node_deliveryorder0
msgid "Delivery Order"
-msgstr ""
+msgstr "Isporuka narudžbe"
#. module: sale
#: field:sale.order.line,address_allotment_id:0
msgid "Allotment Partner"
-msgstr ""
+msgstr "Dodjeljeni Partner"
#. module: sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: sale
#: selection:sale.order,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Raspored čekanja"
#. module: sale
#: help:sale.order,picking_policy:0
@@ -57,80 +58,82 @@ msgid ""
"If you don't have enough stock available to deliver all at once, do you "
"accept partial shipments or not?"
msgstr ""
+"Prihvaćate li djelomičnu isporuku ako nematu na raspolaganju dovoljno robe "
+"na zalihi?"
#. module: sale
#: selection:sale.order.line,type:0
msgid "from stock"
-msgstr ""
+msgstr "Iz zalihe"
#. module: sale
#: field:sale.config.picking_policy,step:0
msgid "Steps To Deliver a Sale Order"
-msgstr ""
+msgstr "Koraci do isporuke Prodajne Narudžbe"
#. module: sale
#: wizard_field:sale.advance_payment_inv,init,qtty:0
#: rml:sale.order:0
msgid "Quantity"
-msgstr ""
+msgstr "Količina"
#. module: sale
#: wizard_view:sale.advance_payment_inv,create:0
msgid "You invoice has been successfully created !"
-msgstr ""
+msgstr "Vaš je račun uspješno kreiran!"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Automatic Declaration"
-msgstr ""
+msgstr "Automatska Deklaracija"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree3
#: model:ir.ui.menu,name:sale.menu_action_order_line_tree3
msgid "Uninvoiced and Delivered Lines"
-msgstr ""
+msgstr "Neobračunate i isporučene linije"
#. module: sale
#: view:sale.order:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Postavi na Nacrt"
#. module: sale
#: selection:sale.order,state:0
msgid "Invoice Exception"
-msgstr ""
+msgstr "Izuzetak u izdavanju Računa"
#. module: sale
#: help:sale.order,picking_ids:0
msgid ""
"This is the list of picking list that have been generated for this invoice"
-msgstr ""
+msgstr "Ovo je ispis liste odabira robe koja je generirana ovim računom"
#. module: sale
#: model:process.node,note:sale.process_node_deliveryorder0
msgid "Delivery, from the warehouse to the customer."
-msgstr ""
+msgstr "Isporuka, sa skladišta kupcu."
#. module: sale
#: model:ir.model,name:sale.model_sale_config_picking_policy
msgid "sale.config.picking_policy"
-msgstr ""
+msgstr "sale.config.picking_policy"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_validate0
msgid "Validate"
-msgstr ""
+msgstr "Ovjeri"
#. module: sale
#: view:sale.order:0
msgid "Make Invoice"
-msgstr ""
+msgstr "Napravi račun"
#. module: sale
#: field:sale.order.line,price_subtotal:0
msgid "Subtotal"
-msgstr ""
+msgstr "Međuzbroj"
#. module: sale
#: model:process.transition,note:sale.process_transition_confirmquotation0
@@ -138,22 +141,24 @@ msgid ""
"Whenever confirm button is clicked, the draft state is moved to manual. that "
"is, quotation is moved to sale order."
msgstr ""
+"Kad god se klikne mišem na ikonu Potvrdi, stanje Nacrt prelazi u Ručno "
+"(Manual). To znači da Ponuda postaje Prodajna Narudžba."
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancelorder0
#: view:sale.order:0
msgid "Cancel Order"
-msgstr ""
+msgstr "Otkaži Narudžbu"
#. module: sale
#: field:sale.order.line,move_ids:0
msgid "Inventory Moves"
-msgstr ""
+msgstr "Premještanje Zaliha"
#. module: sale
#: view:sale.order.line:0
msgid "Manual Designation"
-msgstr ""
+msgstr "Ručno Doznačivanje"
#. module: sale
#: view:sale.order:0
@@ -161,115 +166,115 @@ msgstr ""
#: view:sale.order.line:0
#: field:sale.order.line,notes:0
msgid "Notes"
-msgstr ""
+msgstr "Bilješke"
#. module: sale
#: model:process.transition,name:sale.process_transition_invoiceafterdelivery0
msgid "Invoice after delivery"
-msgstr ""
+msgstr "Račun nakon isporuke"
#. module: sale
#: field:sale.order,amount_tax:0
#: field:sale.order.line,tax_id:0
msgid "Taxes"
-msgstr ""
+msgstr "Porezi"
#. module: sale
#: rml:sale.order:0
msgid "Net Total :"
-msgstr ""
+msgstr "Netto zbroj:"
#. module: sale
#: field:sale.order,order_policy:0
msgid "Shipping Policy"
-msgstr ""
+msgstr "Pravila otpreme"
#. module: sale
#: selection:sale.order,state:0 selection:sale.order.line,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Otkazano"
#. module: sale
#: selection:sale.order,state:0
msgid "Shipping Exception"
-msgstr ""
+msgstr "Izuzetak kod Otpreme"
#. module: sale
#: field:sale.order,amount_total:0
msgid "Total"
-msgstr ""
+msgstr "Ukupno"
#. module: sale
#: field:sale.order,origin:0
msgid "Origin"
-msgstr ""
+msgstr "Porijeklo"
#. module: sale
#: field:sale.order,partner_invoice_id:0
msgid "Invoice Address"
-msgstr ""
+msgstr "Adresa Računa"
#. module: sale
#: model:process.node,name:sale.process_node_packinglist0
msgid "Outgoing Products"
-msgstr ""
+msgstr "Izlazni proizvodi"
#. module: sale
#: view:sale.order:0
msgid "Reference"
-msgstr ""
+msgstr "Referenca"
#. module: sale
#: selection:sale.config.picking_policy,picking_policy:0
msgid "All at Once"
-msgstr ""
+msgstr "Sve od jednom"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleprocurement0
msgid "Procurement is created after confirmation of sale order."
-msgstr ""
+msgstr "Nabava je kreirana po potvrdi Prodajne Narudžbe"
#. module: sale
#: field:sale.order,project_id:0
#: field:sale.shop,project_id:0
msgid "Analytic Account"
-msgstr ""
+msgstr "Analitički konto"
#. module: sale
#: rml:sale.order:0
msgid "TVA :"
-msgstr ""
+msgstr "TVA :"
#. module: sale
#: field:sale.order.line,type:0
msgid "Procure Method"
-msgstr ""
+msgstr "Metod Nabave"
#. module: sale
#: view:sale.order:0
msgid "Extra Info"
-msgstr ""
+msgstr "Dodatne informacije"
#. module: sale
#: rml:sale.order:0
msgid "Fax :"
-msgstr ""
+msgstr "Fax:"
#. module: sale
#: field:sale.order.line,price_net:0
msgid "Net Price"
-msgstr ""
+msgstr "Netto cijena"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree9
#: model:ir.ui.menu,name:sale.menu_action_order_tree9
msgid "My sales order in progress"
-msgstr ""
+msgstr "Moja Prodajna Narudžba u tijeku"
#. module: sale
#: field:sale.order.line,product_uos_qty:0
msgid "Quantity (UoS)"
-msgstr ""
+msgstr "Količina (Uos)"
#. module: sale
#: help:sale.order,invoice_quantity:0
@@ -279,86 +284,90 @@ msgid ""
"choose if you invoice based on ordered or shipped quantities. If the product "
"is a service, shipped quantities means hours spent on the associated tasks."
msgstr ""
+"Prodajna Narudžba automatski će kreirati prijedlog računa (Nacrt računa). "
+"Naručene i isporučene količine mogu biti različite. Trebate odlučiti želite "
+"li temeljiti račun na naručenoj ili otpremljenoj količini. Ako jese radi o "
+"usluzi, isporučena količina znači sate utrošene na pridružene zadatke."
#. module: sale
#: selection:sale.order.line,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Potvrđen"
#. module: sale
#: field:sale.shop,payment_default_id:0
msgid "Default Payment Term"
-msgstr ""
+msgstr "Standardan uvjet plaćanja"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree_all
#: model:ir.ui.menu,name:sale.menu_action_order_tree_all
msgid "All Sales Order"
-msgstr ""
+msgstr "Sva Prodajne Narudžbe"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_confirm0
msgid "Confirm"
-msgstr ""
+msgstr "Potvrdite"
#. module: sale
#: field:sale.order,partner_shipping_id:0
msgid "Shipping Address"
-msgstr ""
+msgstr "Adresa otpreme"
#. module: sale
#: selection:sale.order,invoice_quantity:0
msgid "Shipped Quantities"
-msgstr ""
+msgstr "Količine Otpreme"
#. module: sale
#: selection:sale.config.picking_policy,order_policy:0
msgid "Invoice Based on Sales Orders"
-msgstr ""
+msgstr "Račun temeljen na Prodajnim Narudžbama"
#. module: sale
#: model:ir.model,name:sale.model_sale_shop
#: view:sale.shop:0
msgid "Sale Shop"
-msgstr ""
+msgstr "Dućan prodaje"
#. module: sale
#: field:sale.shop,warehouse_id:0
msgid "Warehouse"
-msgstr ""
+msgstr "Skladište"
#. module: sale
#: rml:sale.order:0
msgid "Order N°"
-msgstr ""
+msgstr "Narudžba broj"
#. module: sale
#: field:sale.order,order_line:0
#: view:sale.order.line:0
msgid "Order Lines"
-msgstr ""
+msgstr "Vezane Prodajne Narudžbe"
#. module: sale
#: rml:sale.order:0
msgid "Disc.(%)"
-msgstr ""
+msgstr "Popust (%)"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
#: field:sale.order.line,invoice_lines:0
msgid "Invoice Lines"
-msgstr ""
+msgstr "Vezani Računi"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_forceassignation0
msgid "Force Assignation"
-msgstr ""
+msgstr "Prisilno dodijeljivanje"
#. module: sale
#: view:sale.order:0
msgid "Untaxed amount"
-msgstr ""
+msgstr "Neoporeziv iznos"
#. module: sale
#: model:process.transition,note:sale.process_transition_packing0
@@ -366,17 +375,19 @@ msgid ""
"Packing list is created when 'Assign' is being clicked after confirming the "
"sale order. This transaction moves the sale order to packing list."
msgstr ""
+"Tovarni list kreira se kada se klikom miša odabere \"Dodijeli\" po potvrdi "
+"Prodajne Narudžbe. Ta transakcija prenosi Prodajnu Narudžbu na Tovarni list."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree8
#: model:ir.ui.menu,name:sale.menu_action_order_tree8
msgid "My sales order waiting Invoice"
-msgstr ""
+msgstr "Moja Prodajna Narudžba koja čeka izdavanje Računa"
#. module: sale
#: rml:sale.order:0
msgid "Shipping address :"
-msgstr ""
+msgstr "Adresa Otpreme"
#. module: sale
#: model:process.transition,note:sale.process_transition_invoiceafterdelivery0
@@ -384,223 +395,225 @@ msgid ""
"When you select Shipping Ploicy = 'Automatic Invoice after delivery' , it "
"will automatic create after delivery."
msgstr ""
+"Kada odlučite da je Politika Otpreme = \"Račun automatski po Isporuci\", "
+"Račun će se automatski kreirati nakon Isporuke."
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Complete Delivery"
-msgstr ""
+msgstr "Zaključite Isporuku"
#. module: sale
#: view:sale.order:0
msgid "Manual Description"
-msgstr ""
+msgstr "Ručno opisivanje"
#. module: sale
#: field:sale.order.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr ""
+msgstr "Količina (UoM)"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree1
#: model:ir.ui.menu,name:sale.menu_action_order_line_tree1
#: view:sale.order.line:0
msgid "Sales Order Lines"
-msgstr ""
+msgstr "vezane Prodajne Narudžbe"
#. module: sale
#: selection:sale.order,invoice_quantity:0
msgid "Ordered Quantities"
-msgstr ""
+msgstr "Količine Narudžbe"
#. module: sale
#: model:process.node,name:sale.process_node_saleorderprocurement0
msgid "Sale Order Procurement"
-msgstr ""
+msgstr "Pribavljanje Prodajne Narudžbe"
#. module: sale
#: model:process.transition,name:sale.process_transition_packing0
msgid "Packing"
-msgstr ""
+msgstr "Pakiranje"
#. module: sale
#: rml:sale.order:0
msgid "Total :"
-msgstr ""
+msgstr "Ukupno :"
#. module: sale
#: view:sale.order:0
msgid "Confirm Order"
-msgstr ""
+msgstr "Potvrdite Narudžbu"
#. module: sale
#: field:sale.order,name:0
msgid "Order Reference"
-msgstr ""
+msgstr "Referenca Narudžbe"
#. module: sale
#: selection:sale.order,state:0
#: view:sale.order.line:0
#: selection:sale.order.line,state:0
msgid "Done"
-msgstr ""
+msgstr "Gotovo"
#. module: sale
#: field:sale.order,pricelist_id:0
#: field:sale.shop,pricelist_id:0
msgid "Pricelist"
-msgstr ""
+msgstr "Cjenik"
#. module: sale
#: model:ir.ui.menu,name:sale.menu_shop_configuration
msgid "Configuration"
-msgstr ""
+msgstr "Konfiguracija"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice on Order After Delivery"
-msgstr ""
+msgstr "Račun po Naudžbi nakon Isporuke"
#. module: sale
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Neispravan XML za Arhitekturu Prikaza!"
#. module: sale
#: field:sale.order,picking_ids:0
msgid "Related Packing"
-msgstr ""
+msgstr "Odgovarajuće Pakiranje"
#. module: sale
#: field:sale.shop,payment_account_id:0
msgid "Payment Accounts"
-msgstr ""
+msgstr "Račun Plaćanja"
#. module: sale
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
-msgstr ""
+msgstr "Greška: UOS mora biti u kategoriji drogačijoj od one u kojoj je UOM"
#. module: sale
#: field:sale.order,client_order_ref:0
msgid "Customer Ref"
-msgstr ""
+msgstr "Referenca Stranke"
#. module: sale
#: view:sale.order:0
msgid "Sales orders"
-msgstr ""
+msgstr "Prodajne Narudžbe"
#. module: sale
#: model:process.node,name:sale.process_node_saleprocurement0
#: field:sale.order.line,procurement_id:0
msgid "Procurement"
-msgstr ""
+msgstr "Nabava"
#. module: sale
#: view:sale.shop:0
msgid "Payment accounts"
-msgstr ""
+msgstr "Računi Plaćanja"
#. module: sale
#: wizard_button:sale.advance_payment_inv,create,end:0
msgid "Close"
-msgstr ""
+msgstr "Zaključi"
#. module: sale
#: model:process.node,name:sale.process_node_invoice0
#: model:process.node,name:sale.process_node_invoiceafterdelivery0
msgid "Draft Invoice"
-msgstr ""
+msgstr "Nacrt računa"
#. module: sale
#: wizard_field:sale.order.line.make_invoice,init,grouped:0
#: wizard_field:sale.order.make_invoice,init,grouped:0
msgid "Group the invoices"
-msgstr ""
+msgstr "Grupa računa"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree5
#: model:ir.ui.menu,name:sale.menu_action_order_tree5
msgid "All Quotations"
-msgstr ""
+msgstr "Sve Ponude"
#. module: sale
#: field:sale.order.line,discount:0
msgid "Discount (%)"
-msgstr ""
+msgstr "Popust (%)"
#. module: sale
#: model:process.node,note:sale.process_node_invoice0
msgid "Draft customer invoice, to be reviewed by accountant."
-msgstr ""
+msgstr "Nacrt računa Stranki, koji mora pregledati Knjigovođa."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree3
#: model:ir.ui.menu,name:sale.menu_action_order_tree3
msgid "Sales Order To Be Invoiced"
-msgstr ""
+msgstr "Prodajne Narudžbe na osnovi kojih treba izdati račune"
#. module: sale
#: model:process.node,note:sale.process_node_saleorderprocurement0
msgid "Procurement for each line"
-msgstr ""
+msgstr "Nabava za svaki liniju"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree10
#: model:ir.ui.menu,name:sale.menu_action_order_tree10
msgid "My Quotations"
-msgstr ""
+msgstr "Moje Ponude"
#. module: sale
#: wizard_view:sale.advance_payment_inv,create:0
msgid "Invoices"
-msgstr ""
+msgstr "Računi"
#. module: sale
#: view:sale.order:0
msgid "Order Line"
-msgstr ""
+msgstr "Linija Narudžbe"
#. module: sale
#: field:sale.config.picking_policy,picking_policy:0
msgid "Packing Default Policy"
-msgstr ""
+msgstr "Uobičajena politika Pakiranja"
#. module: sale
#: model:process.node,note:sale.process_node_saleorder0
msgid "Manages the delivery and invoicing progress"
-msgstr ""
+msgstr "Upravlja napredovanjem postupka Isporučivanja i izdavanja Računa"
#. module: sale
#: field:sale.config.picking_policy,order_policy:0
msgid "Shipping Default Policy"
-msgstr ""
+msgstr "Uobičajena politika Pakiranja"
#. module: sale
#: field:sale.order.line,product_packaging:0
msgid "Packaging"
-msgstr ""
+msgstr "Pakiranje"
#. module: sale
#: model:ir.module.module,shortdesc:sale.module_meta_information
#: model:ir.ui.menu,name:sale.menu_sale_root
msgid "Sales Management"
-msgstr ""
+msgstr "Upravljanje Prodajom"
#. module: sale
#: field:sale.order.line,order_id:0
msgid "Order Ref"
-msgstr ""
+msgstr "Referenca Narudžbe"
#. module: sale
#: view:sale.order:0
msgid "Recreate Invoice"
-msgstr ""
+msgstr "Ponovo izradi Račun"
#. module: sale
#: field:sale.order,user_id:0
msgid "Salesman"
-msgstr ""
+msgstr "Prodavač"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleorderprocurement0
@@ -608,45 +621,46 @@ msgid ""
"In sale order , procuerement for each line and it comes into the procurement "
"order"
msgstr ""
+"U Prodajnoj narudžbi, Nabava svake linije koja dolazi u Narudžbi Nabave"
#. module: sale
#: rml:sale.order:0
msgid "Taxes :"
-msgstr ""
+msgstr "Porezi :"
#. module: sale
#: field:sale.order,invoiced_rate:0
#: field:sale.order.line,invoiced:0
msgid "Invoiced"
-msgstr ""
+msgstr "Izdan Račun"
#. module: sale
#: model:ir.actions.wizard,name:sale.advance_payment
msgid "Advance Invoice"
-msgstr ""
+msgstr "Račun predujma"
#. module: sale
#: field:sale.order,state:0
msgid "Order State"
-msgstr ""
+msgstr "Stanje Narudžbe"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree2
#: model:ir.ui.menu,name:sale.menu_action_order_line_tree2
msgid "Uninvoiced Lines"
-msgstr ""
+msgstr "Nefakturirani vezani Računi"
#. module: sale
#: model:ir.actions.todo,note:sale.config_wizard_step_sale_picking_policy
msgid ""
"This Configuration step use to set default picking policy when make sale "
"order"
-msgstr ""
+msgstr "Ova se korak konfiguracije koristi kod izrade Prodajne Narudžbe"
#. module: sale
#: model:process.process,name:sale.process_process_salesprocess0
msgid "Sales Process"
-msgstr ""
+msgstr "Prodajni Proces"
#. module: sale
#: wizard_view:sale.order.line.make_invoice,init:0
@@ -654,130 +668,131 @@ msgstr ""
#: wizard_view:sale.order.make_invoice,init:0
#: wizard_button:sale.order.make_invoice,init,invoice:0
msgid "Create invoices"
-msgstr ""
+msgstr "Napravi Račune"
#. module: sale
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
+"Greška: Predefinirani UOM i UOM kupnje moraju biti u istoj kategoriji."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree7
#: model:ir.ui.menu,name:sale.menu_action_order_tree7
msgid "My sales in shipping exception"
-msgstr ""
+msgstr "Moje prodaje kod Iznimke Otpreme"
#. module: sale
#: view:sale.config.picking_policy:0
msgid "Sales Configuration"
-msgstr ""
+msgstr "Konfiguracija Prodaje"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree2
#: model:ir.ui.menu,name:sale.menu_action_order_tree2
msgid "Sales in Exception"
-msgstr ""
+msgstr "Prodaje u Iznimki"
#. module: sale
#: selection:sale.order.line,type:0
msgid "on order"
-msgstr ""
+msgstr "Po Narudžbi"
#. module: sale
#: selection:sale.order.line,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: sale
#: field:sale.order,invoiced:0
msgid "Paid"
-msgstr ""
+msgstr "Plaćeno"
#. module: sale
#: view:sale.order:0
msgid "Procurement Corrected"
-msgstr ""
+msgstr "Ispravljena Narudžba"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Shipping & Manual Invoice"
-msgstr ""
+msgstr "Otprema i ručno izdan Račun"
#. module: sale
#: model:process.transition,name:sale.process_transition_saleorderprocurement0
#: model:process.transition,name:sale.process_transition_saleprocurement0
msgid "Sale Procurement"
-msgstr ""
+msgstr "Pribavljanje za Prodaju"
#. module: sale
#: view:sale.config.picking_policy:0
msgid "Configure Sale Order Logistic"
-msgstr ""
+msgstr "Konfiguriraj logistiku Prodajne Narudžbe"
#. module: sale
#: field:sale.order,amount_untaxed:0
msgid "Untaxed Amount"
-msgstr ""
+msgstr "Iznos bez Poreza"
#. module: sale
#: field:sale.order.line,state:0
msgid "Status"
-msgstr ""
+msgstr "Status"
#. module: sale
#: field:sale.order,picking_policy:0
msgid "Packing Policy"
-msgstr ""
+msgstr "Politika Pakiranja"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_product_tree
msgid "Product sales"
-msgstr ""
+msgstr "Prodaje Proizvoda"
#. module: sale
#: rml:sale.order:0
msgid "Our Salesman"
-msgstr ""
+msgstr "Naš Prodavač"
#. module: sale
#: wizard_button:sale.advance_payment_inv,init,create:0
msgid "Create Advance Invoice"
-msgstr ""
+msgstr "Napravi Račun Predujma"
#. module: sale
#: model:process.node,note:sale.process_node_saleprocurement0
msgid "One procurement for each product."
-msgstr ""
+msgstr "Jedna Nabava za svaki Proizvod"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_form
#: model:ir.ui.menu,name:sale.menu_sale_order
msgid "Sales Orders"
-msgstr ""
+msgstr "Prodajne Narudžbe"
#. module: sale
#: field:product.product,pricelist_sale:0
msgid "Sale Pricelists"
-msgstr ""
+msgstr "Prodajni Cjenici"
#. module: sale
#: selection:sale.config.picking_policy,picking_policy:0
msgid "Direct Delivery"
-msgstr ""
+msgstr "Izravna Isporuka"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
#: field:sale.order.line,property_ids:0
msgid "Properties"
-msgstr ""
+msgstr "Svojstva"
#. module: sale
#: model:process.node,name:sale.process_node_quotation0
#: selection:sale.order,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Ponuda"
#. module: sale
#: model:product.template,name:sale.advance_product_0_product_template
@@ -790,39 +805,41 @@ msgid ""
"Invoice is created when 'Create Invoice' is being clicked after confirming "
"the sale order. This transaction moves the sale order to invoices."
msgstr ""
+"Račun se kreira kada se klikne na 'Kriraj Račun' nakon potvrde Prodajne "
+"Narudžbe. Ova transakcija prenosi podatke Prodajne Narudžbe u Račune."
#. module: sale
#: view:sale.order:0
msgid "Compute"
-msgstr ""
+msgstr "Izračunaj"
#. 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
msgid "Shop"
-msgstr ""
+msgstr "Dućan"
#. module: sale
#: rml:sale.order:0
msgid "VAT"
-msgstr ""
+msgstr "PDV"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree4
#: model:ir.ui.menu,name:sale.menu_action_order_tree4
msgid "Sales Order in Progress"
-msgstr ""
+msgstr "Prodajne Narudžbe u tijeku"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_assign0
msgid "Assign"
-msgstr ""
+msgstr "Dodijeli"
#. module: sale
#: view:sale.order:0
msgid "History"
-msgstr ""
+msgstr "Povijest"
#. module: sale
#: help:sale.order,order_policy:0
@@ -838,71 +855,82 @@ msgid ""
" - The 'Invoice from the packing' choice is used to create an invoice "
"during the packing process."
msgstr ""
+"Politika pakiranja koristi se kod usklađivanja operacija izdavanja računa i "
+"Isporučivanja.\n"
+" - Izbor \"Platite prije isporuke\" prvo će generirati Račun i pa tek onda "
+"nalog za pakiranje kada je Račun plaćen.\n"
+" - \"Isporuka i ručno izdan Račun\" kreirat će izravno nalog za isporuku te "
+"čekati da korisnik ručno klikne na ikonu \"Račun\" kako bi se generirao "
+"Nacrt Računa.\n"
+" - Račun po Nalogu nakon Isporuke\" generirat će Nacrt Računa na osnovi "
+"prodajne Narudžbe nakon što su svi Tovarni Listovi dovršeni.\n"
+" - Opcija \"Račun na osnovi Pakiranja\" koristi se za izdavanje računa "
+"tijekom postupka pakiranja."
#. module: sale
#: rml:sale.order:0
msgid "Your Reference"
-msgstr ""
+msgstr "Vaša Referenca"
#. module: sale
#: selection:sale.config.picking_policy,step:0
msgid "Delivery Order Only"
-msgstr ""
+msgstr "Samo Nalog za Isporuku"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Sales order lines"
-msgstr ""
+msgstr "Vezane Prodajne Narudžbe"
#. module: sale
#: field:sale.order.line,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Redoslijed"
#. module: sale
#: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order
msgid "Sales"
-msgstr ""
+msgstr "Prodaje"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Qty"
-msgstr ""
+msgstr "Količina"
#. module: sale
#: model:process.node,note:sale.process_node_packinglist0
msgid "Packing OUT is created for stockable products."
-msgstr ""
+msgstr "Pakiranje VAN kreira se za proizvode na zalihi."
#. module: sale
#: view:sale.order:0
msgid "Other data"
-msgstr ""
+msgstr "Drugi podaci"
#. module: sale
#: wizard_field:sale.advance_payment_inv,init,amount:0
#: rml:sale.order:0
#: field:sale.order.line,price_unit:0
msgid "Unit Price"
-msgstr ""
+msgstr "Jedinična cijena"
#. module: sale
#: field:sale.order,fiscal_position:0
msgid "Fiscal Position"
-msgstr ""
+msgstr "Porezna Pozicija"
#. module: sale
#: rml:sale.order:0
msgid "Invoice address :"
-msgstr ""
+msgstr "Adresa Računa :"
#. module: sale
#: model:process.transition,name:sale.process_transition_invoice0
#: field:sale.order,invoice_ids:0
msgid "Invoice"
-msgstr ""
+msgstr "Račun"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancel0
@@ -914,7 +942,7 @@ msgstr ""
#: wizard_button:sale.order.line.make_invoice,init,end:0
#: wizard_button:sale.order.make_invoice,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Odustani"
#. module: sale
#: help:sale.order,state:0
@@ -925,17 +953,22 @@ msgid ""
"'Waiting Schedule' state is set when the invoice is confirmed but waiting "
"for the scheduler to run on the date 'Date Ordered'."
msgstr ""
+"Daje stanje Ponude ili Prodajne Narudžbe. Stanje Iznimke automatski se "
+"postavlja kada se dogodi Otkaz tijekom provjere Računa (Iznimka kod Računa) "
+"ili u postupku izrade Tovarnog Lista (Iznimka kod Otpreme). Stanje "
+"\"Raspored Čekanja\" postavlja se kada je račun potvrđen ali se čeka da se "
+"na Rsporedniku pojavi \" Datum Narudžbe\"."
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
msgid "UoM"
-msgstr ""
+msgstr "UoM"
#. module: sale
#: field:sale.order.line,number_packages:0
msgid "Number Packages"
-msgstr ""
+msgstr "Broj Paketa"
#. module: sale
#: model:process.transition,note:sale.process_transition_deliver0
@@ -943,54 +976,57 @@ msgid ""
"Confirming the packing list moves them to delivery order. This can be done "
"by clicking on 'Validate' button."
msgstr ""
+"Potvrda Tovarnog Lista prenosi stavke u Nalog za Isporuku. To se može "
+"učiniti klikom na ikonu \"Ovjeri\"."
#. module: sale
#: selection:sale.order,state:0
msgid "In Progress"
-msgstr ""
+msgstr "U razvoju"
#. module: sale
#: wizard_view:sale.advance_payment_inv,init:0
msgid "Advance Payment"
-msgstr ""
+msgstr "Predujam"
#. module: sale
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleinvoice0
msgid "Confirm sale order and Create invoice."
-msgstr ""
+msgstr "Potvrdi Prodajnu Narudžbu i kreiraj Račun"
#. module: sale
#: selection:sale.config.picking_policy,step:0
msgid "Packing List & Delivery Order"
-msgstr ""
+msgstr "Tovarni List i Nalog za Otpremu"
#. module: sale
#: selection:sale.order.line,state:0
msgid "Exception"
-msgstr ""
+msgstr "Iznimka"
#. module: sale
#: view:sale.order:0
msgid "Sale Order Lines"
-msgstr ""
+msgstr "Vezane Prodajne Narudžbe"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_createinvoice0
#: view:sale.order:0
msgid "Create Invoice"
-msgstr ""
+msgstr "Napravi Račun"
#. module: sale
#: wizard_view:sale.order.line.make_invoice,init:0
#: wizard_view:sale.order.make_invoice,init:0
msgid "Do you really want to create the invoices ?"
-msgstr ""
+msgstr "Želite li zaista kreirati Račune?"
#. module: sale
#: model:process.node,note:sale.process_node_invoiceafterdelivery0
@@ -1000,112 +1036,112 @@ msgstr ""
#. module: sale
#: view:sale.config.picking_policy:0
msgid "Set Default"
-msgstr ""
+msgstr "Postavi kao predefinirano"
#. module: sale
#: view:sale.order:0
msgid "Sales order"
-msgstr ""
+msgstr "Prodajna narudžba"
#. module: sale
#: model:process.node,note:sale.process_node_quotation0
msgid "Quotation (A sale order in draft state)"
-msgstr ""
+msgstr "Ponuda (Prodajna Narudžba kao Nacrt)"
#. module: sale
#: model:process.transition,name:sale.process_transition_saleinvoice0
msgid "Sale Invoice"
-msgstr ""
+msgstr "Prodajni Račun"
#. module: sale
#: field:sale.order,incoterm:0
msgid "Incoterm"
-msgstr ""
+msgstr "Inkoterm"
#. module: sale
#: wizard_field:sale.advance_payment_inv,init,product_id:0
#: field:sale.order.line,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Proizvod"
#. module: sale
#: wizard_button:sale.advance_payment_inv,create,open:0
msgid "Open Advance Invoice"
-msgstr ""
+msgstr "Otvori Račun Predujma"
#. module: sale
#: field:sale.order,partner_order_id:0
msgid "Ordering Contact"
-msgstr ""
+msgstr "Osoba za kontakt kod naručivanja"
#. module: sale
#: rml:sale.order:0
#: field:sale.order.line,name:0
msgid "Description"
-msgstr ""
+msgstr "Opis"
#. module: sale
#: rml:sale.order:0
msgid "Price"
-msgstr ""
+msgstr "Cijena"
#. module: sale
#: model:process.transition,name:sale.process_transition_deliver0
msgid "Deliver"
-msgstr ""
+msgstr "Isporuči"
#. module: sale
#: model:ir.actions.report.xml,name:sale.report_sale_order
msgid "Quotation / Order"
-msgstr ""
+msgstr "Ponuda / Narudžba"
#. module: sale
#: rml:sale.order:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel:"
#. module: sale
#: rml:sale.order:0
msgid "Quotation N°"
-msgstr ""
+msgstr "Ponuda Broj"
#. module: sale
#: field:stock.move,sale_line_id:0
msgid "Sale Order Line"
-msgstr ""
+msgstr "Vezana Zaključnica"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancelassignation0
msgid "Cancel Assignation"
-msgstr ""
+msgstr "Otkaži dodjelu"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice from the Packing"
-msgstr ""
+msgstr "Račun na osnovi pakiranja"
#. module: sale
#: model:ir.actions.wizard,name:sale.wizard_sale_order_line_invoice
#: model:ir.actions.wizard,name:sale.wizard_sale_order_make_invoice
msgid "Make invoices"
-msgstr ""
+msgstr "Napravi Račune"
#. module: sale
#: help:sale.order,partner_order_id:0
msgid ""
"The name and address of the contact that requested the order or quotation."
-msgstr ""
+msgstr "Ime i adresa kontakta koji je zatražio Prodajnu Narudžnu ili Ponudu."
#. module: sale
#: field:sale.order,partner_id:0
#: field:sale.order.line,order_partner_id:0
msgid "Customer"
-msgstr ""
+msgstr "Stranka"
#. module: sale
#: field:product.product,pricelist_purchase:0
msgid "Purchase Pricelists"
-msgstr ""
+msgstr "Kupovni cjenici"
#. module: sale
#: model:ir.model,name:sale.model_sale_order
@@ -1114,49 +1150,49 @@ msgstr ""
#: view:sale.order:0
#: field:stock.picking,sale_id:0
msgid "Sale Order"
-msgstr ""
+msgstr "Prodajna narudžba"
#. module: sale
#: field:sale.config.picking_policy,name:0
msgid "Name"
-msgstr ""
+msgstr "Ime"
#. module: sale
#: field:sale.order,invoice_quantity:0
msgid "Invoice on"
-msgstr ""
+msgstr "Račun za"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree_new
#: model:ir.ui.menu,name:sale.menu_action_order_tree_new
msgid "New Quotation"
-msgstr ""
+msgstr "Nova Ponuda"
#. module: sale
#: view:sale.order:0
msgid "Total amount"
-msgstr ""
+msgstr "Ukupni iznos"
#. module: sale
#: rml:sale.order:0
#: field:sale.order,date_order:0
msgid "Date Ordered"
-msgstr ""
+msgstr "Datum narudžbe"
#. module: sale
#: field:sale.order.line,product_uos:0
msgid "Product UoS"
-msgstr ""
+msgstr "Proizvod UoS"
#. module: sale
#: selection:sale.order,state:0
msgid "Manual In Progress"
-msgstr ""
+msgstr "Ručni postupak u tijeku"
#. module: sale
#: field:sale.order.line,product_uom:0
msgid "Product UoM"
-msgstr ""
+msgstr "Proizvod UoM"
#. module: sale
#: help:sale.config.picking_policy,step:0
@@ -1166,51 +1202,54 @@ msgid ""
"and simple methods to deliver products to the customer in one or two "
"operations by the worker."
msgstr ""
+"Standardno, Open ERP može upravljati kompleksnim tokovima robe u Skladištu "
+"ili lokacijama Partnera. Tako će se odrediti najčešći i jednostavni načini "
+"za isporuku proizvoda kupcu kroz jednu do dvije operacije djelatnika."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_config_picking_policy
msgid "Configure Picking Policy for Sale Order"
-msgstr ""
+msgstr "Konfiguriraj Politiku Odabira robe za Prodajnu Narudžbu"
#. module: sale
#: model:process.node,name:sale.process_node_order0
msgid "Order"
-msgstr ""
+msgstr "Narudžba"
#. module: sale
#: rml:sale.order:0
msgid "Payment Terms"
-msgstr ""
+msgstr "Uvjeti plaćanja"
#. module: sale
#: view:sale.order:0
msgid "Invoice Corrected"
-msgstr ""
+msgstr "Račun Ispravljen"
#. module: sale
#: field:sale.order.line,delay:0
msgid "Delivery Delay"
-msgstr ""
+msgstr "Kašnjenje s Isporukom"
#. module: sale
#: view:sale.order:0
msgid "Related invoices"
-msgstr ""
+msgstr "Srodni Računi"
#. module: sale
#: field:sale.shop,name:0
msgid "Shop Name"
-msgstr ""
+msgstr "Ime dućana"
#. module: sale
#: field:sale.order,payment_term:0
msgid "Payment Term"
-msgstr ""
+msgstr "Uvjet plaćanja"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Payment Before Delivery"
-msgstr ""
+msgstr "Plaćanje prije isporuke"
#. module: sale
#: help:sale.order,invoice_ids:0
@@ -1219,56 +1258,59 @@ msgid ""
"The same sale order may have been invoiced in several times (by line for "
"example)."
msgstr ""
+"Ovo je spisak Računa koji su rađeni na osnovi ove Prodajne Narudžbe. Po "
+"jednoj Prodajnoj Narudžbi možda je bilo potrebno izdati više računa (Po "
+"linijama, na primjer)"
#. module: sale
#: view:sale.order:0
#: view:sale.order.line:0
msgid "States"
-msgstr ""
+msgstr "Stanja"
#. module: sale
#: field:sale.order.line,th_weight:0
msgid "Weight"
-msgstr ""
+msgstr "Težina"
#. module: sale
#: model:process.node,note:sale.process_node_order0
msgid "After confirming order, Create the invoice."
-msgstr ""
+msgstr "Po potvrdi Narudžbe, napravi"
#. module: sale
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "Greška: Nepravilan ean kod"
#. module: sale
#: field:sale.order,picked_rate:0
#: field:sale.order,shipped:0
msgid "Picked"
-msgstr ""
+msgstr "Odabran"
#. module: sale
#: view:sale.shop:0
msgid "Accounting"
-msgstr ""
+msgstr "Računovodstvo"
#. module: sale
#: selection:sale.config.picking_policy,order_policy:0
msgid "Invoice Based on Deliveries"
-msgstr ""
+msgstr "Račun na temelju dostava"
#. module: sale
#: view:sale.order:0
msgid "Stock Moves"
-msgstr ""
+msgstr "Premiještanje zaliha"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree
#: model:ir.ui.menu,name:sale.menu_action_order_tree
msgid "My Sales Order"
-msgstr ""
+msgstr "Moja Prodajna narudžba"
#. module: sale
#: model:ir.model,name:sale.model_sale_order_line
msgid "Sale Order line"
-msgstr ""
+msgstr "Vezane Prodajne Narudžbe"
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 501d9ac1ea7..8b77719171a 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -593,7 +593,9 @@ class sale_order(osv.osv):
location_id = order.shop_id.warehouse_id.lot_stock_id.id
if not picking_id:
loc_dest_id = order.partner_id.property_stock_customer.id
+ pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out')
picking_id = self.pool.get('stock.picking').create(cr, uid, {
+ 'name': pick_name,
'origin': order.name,
'type': 'out',
'state': 'auto',
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 7fa61108e4f..c62487cfe1e 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -85,6 +85,7 @@
+
@@ -150,7 +151,12 @@
-
+
@@ -262,6 +268,7 @@
+
@@ -380,8 +387,14 @@
-
-
+
+
diff --git a/addons/sale/sale_wizard.xml b/addons/sale/sale_wizard.xml
deleted file mode 100644
index 9df05e8e5dd..00000000000
--- a/addons/sale/sale_wizard.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv
index 937322578cd..44ce9f7d1fa 100644
--- a/addons/sale/security/ir.model.access.csv
+++ b/addons/sale/security/ir.model.access.csv
@@ -21,3 +21,10 @@
"access_sale_order_line_manager","sale.order.line.manager","model_sale_order_line","group_sale_manager",1,1,1,1
"access_sale_report","sale.report","model_sale_report","group_sale_user",1,1,1,0
"access_sale_report_manager","sale.report","model_sale_report","group_sale_manager",1,1,1,1
+"access_sale_order_line_make_invoice","sale.order.line.make.invoice","model_sale_order_line_make_invoice","group_sale_user",1,1,1,0
+"access_sale_order_line_make_invoice_manager","sale.order.line.make.invoice","model_sale_order_line_make_invoice","group_sale_manager",1,1,1,1
+"access_sale_advance_payment_inv","sale.advance.payment.inv","model_sale_advance_payment_inv","group_sale_user",1,1,1,0
+"access_sale_advance_payment_inv_manager","sale.advance.payment.inv","model_sale_advance_payment_inv","group_sale_manager",1,1,1,1
+"access_sale_open_invoice","sale.open.invoice","model_sale_open_invoice","group_sale_user",1,1,1,0
+"access_sale_open_invoice_manager","sale.open.invoice","model_sale_open_invoice","group_sale_manager",1,1,1,1
+
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 6f9bcc52bb1..590a849ab9a 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -9,7 +9,6 @@
Sale / Salesman
-
@@ -22,7 +21,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
@@ -33,7 +32,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
diff --git a/addons/sale/wizard/__init__.py b/addons/sale/wizard/__init__.py
index 6141e90b83b..07c5ceea83d 100644
--- a/addons/sale/wizard/__init__.py
+++ b/addons/sale/wizard/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,13 +15,12 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
-from make_invoice import make_invoice
+#remaining make_invoice
+import sale_line_invoice
+import sale_make_invoice_advance
-import wizard_sale_line_invoice
-import make_invoice_advance
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/sale/wizard/make_invoice_advance.py b/addons/sale/wizard/make_invoice_advance.py
deleted file mode 100644
index eaa1fc4a14b..00000000000
--- a/addons/sale/wizard/make_invoice_advance.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-from osv import fields, osv
-from tools.translate import _
-
-form = """
-
-"""
-fields = {
- 'product_id': {'string':'Product', 'type':'many2one','relation':'product.product','required':True},
- 'amount': {'string':'Unit Price', 'type':'float', 'size':(16,2),'required':True},
- 'qtty': {'string':'Quantity', 'type':'float', 'size':(16,2),'required':True, 'default': lambda *a: 1},
-}
-
-form_msg = """
-
-"""
-fields_msg = {}
-
-def _createInvoices(self, cr, uid, data, context={}):
- list_inv = []
- pool_obj = pooler.get_pool(cr.dbname)
- obj_sale = pool_obj.get('sale.order')
- data_sale = obj_sale.browse(cr,uid,data['ids'])
- obj_lines = pool_obj.get('account.invoice.line')
- for sale in data_sale:
- address_contact = False
- address_invoice = False
- create_ids = []
- ids_inv = []
- if sale.order_policy == 'postpaid':
- raise osv.except_osv(
- _('Error'),
- _("You cannot make an advance on a sale order that is defined as 'Automatic Invoice after delivery'."))
- val = obj_lines.product_id_change(cr, uid, [], data['form']['product_id'],uom = False, partner_id = sale.partner_id.id, fposition_id=sale.fiscal_position.id)
- line_id =obj_lines.create(cr, uid, {
- 'name': val['value']['name'],
- 'account_id':val['value']['account_id'],
- 'price_unit': data['form']['amount'],
- 'quantity': data['form']['qtty'],
- 'discount': False,
- 'uos_id': val['value']['uos_id'],
- 'product_id':data['form']['product_id'],
- 'invoice_line_tax_id': [(6,0,val['value']['invoice_line_tax_id'])],
- 'account_analytic_id': sale.project_id and sale.project_id.id or False,
- 'note':'',
- })
- create_ids.append(line_id)
- inv = {
- 'name': sale.name,
- 'origin': sale.name,
- 'type': 'out_invoice',
- 'reference': False,
- 'account_id': sale.partner_id.property_account_receivable.id,
- 'partner_id': sale.partner_id.id,
- 'address_invoice_id':sale.partner_invoice_id.id,
- 'address_contact_id':sale.partner_order_id.id,
- 'invoice_line': [(6,0,create_ids)],
- 'currency_id' :sale.pricelist_id.currency_id.id,
- 'comment': '',
- 'payment_term':sale.payment_term.id,
- 'fiscal_position': sale.partner_id.property_account_position.id
- }
- inv_obj = pool_obj.get('account.invoice')
- inv_id = inv_obj.create(cr, uid, inv)
-
- for inv in sale.invoice_ids:
- ids_inv.append(inv.id)
- ids_inv.append(inv_id)
- obj_sale.write(cr,uid,sale.id,{'invoice_ids':[(6,0,ids_inv)]})
- list_inv.append(inv_id)
-#
-# If invoice on picking: add the cost on the SO
-# If not, the advance will be deduced when generating the final invoice
-#
- if sale.order_policy=='picking':
- pool_obj.get('sale.order.line').create(cr, uid, {
- 'order_id': sale.id,
- 'name': val['value']['name'],
- 'price_unit': -data['form']['amount'],
- 'product_uom_qty': data['form']['qtty'],
- 'product_uos_qty': data['form']['qtty'],
- 'product_uos': val['value']['uos_id'],
- 'product_uom': val['value']['uos_id'],
- 'product_id':data['form']['product_id'],
- 'discount': False,
- 'tax_id': [(6,0,val['value']['invoice_line_tax_id'])],
- }, context)
- return {'invoice_ids':list_inv}
-
-class sale_advance_payment(wizard.interface):
- def _open_invoice(self, cr, uid, data, context):
- pool_obj = pooler.get_pool(cr.dbname)
- mod_obj = pool_obj.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- model_data_ids = pool_obj.get('ir.model.data').search(cr,uid,[('model','=','ir.ui.view'),('name','=','invoice_form')])
- resource_id = pool_obj.get('ir.model.data').read(cr,uid,model_data_ids,fields=['res_id'])[0]['res_id']
- return {
- 'domain': "[('id','in', ["+','.join(map(str,data['form']['invoice_ids']))+"])]",
- 'name': 'Invoices',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'views': [(False,'tree'),(resource_id,'form')],
- 'context': "{'type':'out_invoice'}",
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
- }
-
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form' , 'arch' : form,'fields' : fields,'state' : [('end','Cancel','gtk-cancel'),('create','Create Advance Invoice','gtk-ok')]}
- },
- 'create': {
- 'actions': [_createInvoices],
- 'result': {'type' : 'form' ,'arch' : form_msg,'fields' : fields_msg, 'state':[('end','Close','gtk-close'),('open','Open Advance Invoice','gtk-open')]}
- },
- 'open': {
- 'actions': [],
- 'result': {'type':'action', 'action':_open_invoice, 'state':'end'}
- }
- }
-
-sale_advance_payment("sale.advance_payment_inv")
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py
new file mode 100644
index 00000000000..4bf3074db54
--- /dev/null
+++ b/addons/sale/wizard/sale_line_invoice.py
@@ -0,0 +1,124 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+import wizard
+import netsvc
+import ir
+import pooler
+
+class sale_order_line_make_invoice(osv.osv_memory):
+ _name = "sale.order.line.make.invoice"
+ _description = "Sale OrderLine Make_invoice"
+ _columns = {
+ 'grouped': fields.boolean('Group the invoices'),
+ }
+ _default = {
+ 'grouped' : lambda *a: False
+ }
+
+ def make_invoices(self, cr, uid, ids, context):
+ """
+ To make invoices.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+
+ res = False
+ invoices = {}
+
+ #TODO: merge with sale.py/make_invoice
+ def make_invoice(order, lines):
+ """
+ To make invoices.
+
+ @param order:
+ @param lines:
+
+ @return:
+
+ """
+ a = order.partner_id.property_account_receivable.id
+ if order.partner_id and order.partner_id.property_payment_term.id:
+ pay_term = order.partner_id.property_payment_term.id
+ else:
+ pay_term = False
+ inv = {
+ 'name': order.name,
+ 'origin': order.name,
+ 'type': 'out_invoice',
+ 'reference': "P%dSO%d" % (order.partner_id.id, order.id),
+ 'account_id': a,
+ 'partner_id': order.partner_id.id,
+ 'address_invoice_id': order.partner_invoice_id.id,
+ 'address_contact_id': order.partner_invoice_id.id,
+ 'invoice_line': [(6,0,lines)],
+ 'currency_id' : order.pricelist_id.currency_id.id,
+ 'comment': order.note,
+ 'payment_term': pay_term,
+ 'fiscal_position': order.partner_id.property_account_position.id
+ }
+ inv_id = self.pool.get('account.invoice').create(cr, uid, inv)
+ return inv_id
+
+ sales_order_line_obj = self.pool.get('sale.order.line')
+ sales_order_obj = self.pool.get('sale.order')
+ wf_service = netsvc.LocalService('workflow')
+ for line in sales_order_line_obj.browse(cr,uid,context['active_ids']):
+ if (not line.invoiced) and (line.state not in ('draft','cancel')):
+ if not line.order_id.id in invoices:
+ invoices[line.order_id.id] = []
+ line_id = sales_order_line_obj.invoice_line_create(cr, uid,
+ [line.id])
+ for lid in line_id:
+ invoices[line.order_id.id].append((line, lid))
+ sales_order_line_obj.write(cr, uid, [line.id],
+ {'invoiced': True})
+ flag = True
+ data_sale = sales_order_obj.browse(cr,uid,line.order_id.id)
+ for line in data_sale.order_line:
+ if not line.invoiced:
+ flag = False
+ break
+ if flag:
+ wf_service.trg_validate(uid, 'sale.order', line.order_id.id, 'all_lines', cr)
+ sales_order_obj.write(cr,uid,[line.order_id.id],{'state' : 'progress'})
+
+ for result in invoices.values():
+ order = result[0][0].order_id
+ il = map(lambda x: x[1], result)
+ res = make_invoice(order, il)
+ cr.execute('INSERT INTO sale_order_invoice_rel \
+ (order_id,invoice_id) values (%s,%s)', (order.id, res))
+ return {}
+
+
+sale_order_line_make_invoice()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/wizard/sale_line_invoice.xml b/addons/sale/wizard/sale_line_invoice.xml
new file mode 100644
index 00000000000..a9ea13ea900
--- /dev/null
+++ b/addons/sale/wizard/sale_line_invoice.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ Sale OrderLine Make Invoice
+ sale.order.line.make.invoice
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py
new file mode 100644
index 00000000000..6c9ca17b836
--- /dev/null
+++ b/addons/sale/wizard/sale_make_invoice_advance.py
@@ -0,0 +1,180 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.translate import _
+import ir
+import netsvc
+import pooler
+import wizard
+
+
+class sale_advance_payment_inv(osv.osv_memory):
+ _name = "sale.advance.payment.inv"
+ _description = "Sale Advance Payment Invoice"
+ _columns = {
+ 'product_id': fields.many2one('product.product', 'Product', required=True),
+ 'amount': fields.float('Unit Price', size=(16, 2), required=True),
+ 'qtty': fields.float('Quantity', size=(16, 2), required=True),
+ }
+ _default = {
+ 'qtty' : lambda *a: 1
+ }
+ def create_invoices(self, cr, uid, ids, context={}):
+ """
+ To create invoices.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ list_inv = []
+ obj_sale = self.pool.get('sale.order')
+ obj_lines = self.pool.get('account.invoice.line')
+ inv_obj = self.pool.get('account.invoice')
+
+ for sale_adv_obj in self.browse(cr, uid, ids):
+ for sale in obj_sale.browse(cr, uid, context['active_ids']):
+ address_contact = False
+ address_invoice = False
+ create_ids = []
+ ids_inv = []
+ if sale.order_policy == 'postpaid':
+ raise osv.except_osv(
+ _('Error'),
+ _("You cannot make an advance on a sale order \
+ that is defined as 'Automatic Invoice after delivery'."))
+ val = obj_lines.product_id_change(cr, uid, [], sale_adv_obj.product_id.id,
+ uom = False, partner_id = sale.partner_id.id, fposition_id=sale.fiscal_position.id)
+ line_id =obj_lines.create(cr, uid, {
+ 'name': val['value']['name'],
+ 'account_id': val['value']['account_id'],
+ 'price_unit': sale_adv_obj.amount,
+ 'quantity': sale_adv_obj.qtty,
+ 'discount': False,
+ 'uos_id': val['value']['uos_id'],
+ 'product_id': sale_adv_obj.product_id.id,
+ 'invoice_line_tax_id': [(6, 0, val['value']['invoice_line_tax_id'])],
+ 'account_analytic_id': sale.project_id.id or False,
+ #'note':'',
+ })
+ create_ids.append(line_id)
+ inv = {
+ 'name': sale.name,
+ 'origin': sale.name,
+ 'type': 'out_invoice',
+ 'reference': False,
+ 'account_id': sale.partner_id.property_account_receivable.id,
+ 'partner_id': sale.partner_id.id,
+ 'address_invoice_id':sale.partner_invoice_id.id,
+ 'address_contact_id':sale.partner_order_id.id,
+ 'invoice_line': [(6, 0, create_ids)],
+ 'currency_id' :sale.pricelist_id.currency_id.id,
+ 'comment': '',
+ 'payment_term':sale.payment_term.id,
+ 'fiscal_position': sale.partner_id.property_account_position.id
+ }
+
+ inv_id = inv_obj.create(cr, uid, inv)
+
+ for inv in sale.invoice_ids:
+ ids_inv.append(inv.id)
+ ids_inv.append(inv_id)
+ obj_sale.write(cr, uid, sale.id, {'invoice_ids':[(6, 0, ids_inv)]})
+ list_inv.append(inv_id)
+ #
+ # If invoice on picking: add the cost on the SO
+ # If not, the advance will be deduced when generating the final invoice
+ #
+ if sale.order_policy=='picking':
+ self.pool.get('sale.order.line').create(cr, uid, {
+ 'order_id': sale.id,
+ 'name': val['value']['name'],
+ 'price_unit': -sale_adv_obj.amount,
+ 'product_uom_qty': sale_adv_obj.qtty,
+ 'product_uos_qty': sale_adv_obj.qtty,
+ 'product_uos': val['value']['uos_id'],
+ 'product_uom': val['value']['uos_id'],
+ 'product_id': sale_adv_obj.product_id.id,
+ 'discount': False,
+ 'tax_id': [(6, 0, val['value']['invoice_line_tax_id'])],
+ }, context)
+
+ return {#'invoice_ids':list_inv,
+ 'name': 'Open Invoice',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.open.invoice',
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context': "{'invoice_ids'=%s}" % (list_inv)
+ }
+
+sale_advance_payment_inv()
+
+class sale_open_invoice(osv.osv_memory):
+ _name = "sale.open.invoice"
+ _description = "Sale Open Invoice"
+ _columns = {
+ }
+
+ def open_invoice(self, cr, uid, ids, context):
+ """
+ To open invoice.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ mod_obj = self.pool.get('ir.model.data')
+ invoices = []
+ #TODO: Can not get invoice ids here
+ for advance_pay in self.browse(cr, uid, ids):
+ result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+ model_data_ids = mod_obj.search(cr, uid,
+ [('model', '=', 'ir.ui.view'), ('name', '=', 'invoice_form')])
+ resource_id = mod_obj.read(cr, uid, model_data_ids,
+ fields=['res_id'])[0]['res_id']
+ return {
+# 'domain': "[('id','in', ["+','.join(map(str, invoices))+"])]", # TODO
+ 'name': 'Invoices',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'views': [(False, 'tree'), (resource_id, 'form')],
+ 'context': "{'type':'out_invoice'}",
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
+ }
+sale_open_invoice()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/wizard/sale_make_invoice_advance.xml b/addons/sale/wizard/sale_make_invoice_advance.xml
new file mode 100644
index 00000000000..5fc8b993921
--- /dev/null
+++ b/addons/sale/wizard/sale_make_invoice_advance.xml
@@ -0,0 +1,59 @@
+
+
+
+
+ Sale Advance Payment Invoive
+ sale.advance.payment.inv
+ form
+
+
+
+
+
+
+
+
+
+
+ Open Invoice
+ sale.open.invoice
+ form
+
+
+
+
+
+
+ Open Invoice
+ ir.actions.act_window
+ sale.open.invoice
+ form
+ form
+ new
+
+
+
diff --git a/addons/sale/wizard/wizard_sale_line_invoice.py b/addons/sale/wizard/wizard_sale_line_invoice.py
deleted file mode 100644
index 8e1e49ab22d..00000000000
--- a/addons/sale/wizard/wizard_sale_line_invoice.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import netsvc
-import ir
-import pooler
-
-invoice_form = """
-
-"""
-
-invoice_fields = {
- 'grouped' : {'string':'Group the invoices', 'type':'boolean', 'default': lambda *a: False}
-}
-
-def _makeInvoices(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- res = False
- invoices = {}
-
- #TODO: merge with sale.py/make_invoice
- def make_invoice(order, lines):
- a = order.partner_id.property_account_receivable.id
- if order.partner_id and order.partner_id.property_payment_term.id:
- pay_term = order.partner_id.property_payment_term.id
- else:
- pay_term = False
- inv = {
- 'name': order.name,
- 'origin': order.name,
- 'type': 'out_invoice',
- 'reference': "P%dSO%d" % (order.partner_id.id, order.id),
- 'account_id': a,
- 'partner_id': order.partner_id.id,
- 'address_invoice_id': order.partner_invoice_id.id,
- 'address_contact_id': order.partner_invoice_id.id,
- 'invoice_line': [(6,0,lines)],
- 'currency_id' : order.pricelist_id.currency_id.id,
- 'comment': order.note,
- 'payment_term': pay_term,
- 'fiscal_position': order.partner_id.property_account_position.id
- }
- inv_id = pool.get('account.invoice').create(cr, uid, inv)
- return inv_id
-
- for line in pool.get('sale.order.line').browse(cr,uid,data['ids']):
- if (not line.invoiced) and (line.state not in ('draft','cancel')):
- if not line.order_id.id in invoices:
- invoices[line.order_id.id] = []
- line_id = pool.get('sale.order.line').invoice_line_create(cr, uid,
- [line.id])
- for lid in line_id:
- invoices[line.order_id.id].append((line, lid))
- pool.get('sale.order.line').write(cr, uid, [line.id],
- {'invoiced': True})
- flag = True
- data_sale = pool.get('sale.order').browse(cr,uid,line.order_id.id)
- for line in data_sale.order_line:
- if not line.invoiced:
- flag = False
- break
- if flag:
- wf_service = netsvc.LocalService('workflow')
- wf_service.trg_validate(uid, 'sale.order', line.order_id.id, 'all_lines', cr)
- pool.get('sale.order').write(cr,uid,[line.order_id.id],{'state' : 'progress'})
-
- for result in invoices.values():
- order = result[0][0].order_id
- il = map(lambda x: x[1], result)
- res = make_invoice(order, il)
- cr.execute('INSERT INTO sale_order_invoice_rel \
- (order_id,invoice_id) values (%s,%s)', (order.id, res))
- return {}
-
-
-class line_make_invoice(wizard.interface):
- states = {
- 'init' : {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': invoice_form,
- 'fields': invoice_fields,
- 'state': [
- ('end', 'Cancel'),
- ('invoice', 'Create invoices')
- ]
- }
- },
- 'invoice' : {
- 'actions' : [_makeInvoices],
- 'result' : {'type': 'state', 'state': 'end'}
- },
- }
-
-line_make_invoice("sale.order.line.make_invoice")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/sale_analytic_plans/__terp__.py b/addons/sale_analytic_plans/__terp__.py
index ef89b5743c3..c3e803fd4f6 100644
--- a/addons/sale_analytic_plans/__terp__.py
+++ b/addons/sale_analytic_plans/__terp__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
diff --git a/addons/sale_analytic_plans/i18n/hr.po b/addons/sale_analytic_plans/i18n/hr.po
index 6475f30efc1..a126a2fc3c2 100644
--- a/addons/sale_analytic_plans/i18n/hr.po
+++ b/addons/sale_analytic_plans/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * sale_analytic_plans
-#
+# * sale_analytic_plans
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-22 12:24+0000\n"
-"Last-Translator: Jožek Prikratki \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 00:13+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: sale_analytic_plans
#: field:sale.order.line,analytics_id:0
@@ -29,4 +30,4 @@ msgstr "Nevažeći XML za arhitekturu prikaza!"
#. module: sale_analytic_plans
#: model:ir.module.module,shortdesc:sale_analytic_plans.module_meta_information
msgid "Sales Analytic Distribution Management"
-msgstr "Upravljanje distribucijom prodajne analize"
+msgstr "Prodajna Analitika Upravljanja Distribucijom"
diff --git a/addons/sale_crm/i18n/hr.po b/addons/sale_crm/i18n/hr.po
index 9d36c0b449f..179ae06d2cf 100644
--- a/addons/sale_crm/i18n/hr.po
+++ b/addons/sale_crm/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * sale_crm
-#
+# * sale_crm
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-22 00:56+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:47+0000\n"
+"X-Launchpad-Export-Date: 2010-03-24 04:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: sale_crm
#: model:process.transition,name:sale_crm.process_transition_crmopportunityquotation
@@ -24,183 +25,185 @@ msgstr ""
#. module: sale_crm
#: model:process.transition,name:sale_crm.process_transition_opportunityanalytic0
msgid "Opportunity Analytic"
-msgstr ""
+msgstr "Analitika prilike"
#. module: sale_crm
#: help:crm.case.make_order,init,partner_id:0
msgid "Use this partner if there is no partner on the case"
-msgstr ""
+msgstr "Koristi ovog partnera ako nema Partnera na ovom Slučaju"
#. module: sale_crm
#: wizard_button:sale_crm.make_case,init,create:0
msgid "Create"
-msgstr ""
+msgstr "Stvori"
#. module: sale_crm
#: selection:crm.case.make_order,init,picking_policy:0
msgid "All at once"
-msgstr ""
+msgstr "Sve od jednom"
#. module: sale_crm
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nepravilan XML format za View Architecture!"
#. module: sale_crm
#: model:process.transition,note:sale_crm.process_transition_crmopportunityquotation
msgid "Opportunity goes into the quotation"
-msgstr ""
+msgstr "Prilika ide prema Ponudi"
#. module: sale_crm
#: model:process.node,name:sale_crm.process_node_contractanalytic0
msgid "Analytic account"
-msgstr ""
+msgstr "Analitic account"
#. module: sale_crm
#: model:process.node,note:sale_crm.process_node_crmquotation0
msgid "Convert opportunity to quotation"
-msgstr ""
+msgstr "Pretvori Priliku u Ponudu"
#. module: sale_crm
#: wizard_field:sale_crm.make_case,init,description:0
msgid "Your action"
-msgstr ""
+msgstr "Vaša radnja"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,picking_policy:0
msgid "Packing Policy"
-msgstr ""
+msgstr "Načela Pakiranja"
#. module: sale_crm
#: wizard_button:crm.case.make_order,init,order:0
msgid "Create Quote"
-msgstr ""
+msgstr "Kreiraj Ponudu"
#. module: sale_crm
#: model:process.node,note:sale_crm.process_node_contractpricelist0
msgid "Contract Volume (pricelist)"
-msgstr ""
+msgstr "Ukupan iznos Ugovora (Cjenik)"
#. module: sale_crm
#: model:process.node,name:sale_crm.process_node_crmopportunity0
msgid "CRM Opportunity"
-msgstr ""
+msgstr "CRM Prilika"
#. module: sale_crm
#: model:ir.module.module,shortdesc:sale_crm.module_meta_information
msgid "Sale CRM Stuff"
-msgstr ""
+msgstr "sa"
#. module: sale_crm
#: model:process.transition,note:sale_crm.process_transition_opportunityquotation0
msgid "Opportunity convert into quotation"
-msgstr ""
+msgstr "Sale CRM Stuff"
#. module: sale_crm
#: selection:crm.case.make_order,init,picking_policy:0
msgid "Direct Delivery"
-msgstr ""
+msgstr "Direktna isporuka"
#. module: sale_crm
#: model:process.transition,name:sale_crm.process_transition_opportunityquotation0
msgid "Opportunity Quotation"
-msgstr ""
+msgstr "Ponuda Prilici"
#. module: sale_crm
#: model:process.node,name:sale_crm.process_node_crmquotation0
msgid "Quotation"
-msgstr ""
+msgstr "Ponuda"
#. module: sale_crm
#: view:crm.case:0
#: wizard_view:crm.case.make_order,init:0
msgid "Convert to Quote"
-msgstr ""
+msgstr "Pretvori u Ponudu"
#. module: sale_crm
#: help:crm.case.make_order,init,close:0
msgid "Check this to close the case after having created the sale order."
msgstr ""
+"Označite kako biste zaključili Slučaj nakon što je kreirana "
+"zaključnica/narudžba"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,partner_id:0
msgid "Customer"
-msgstr ""
+msgstr "Stranka"
#. module: sale_crm
#: model:process.transition,note:sale_crm.process_transition_opportunitypricelist0
msgid "Opporunity convert to the Pricelist"
-msgstr ""
+msgstr "Opportunity convert to the Pricelist"
#. module: sale_crm
#: wizard_field:sale_crm.make_case,init,user:0
msgid "User Responsible"
-msgstr ""
+msgstr "Odgovorni korisnik"
#. module: sale_crm
#: model:process.node,note:sale_crm.process_node_contractanalytic0
msgid "Reflect the contract made with customer"
-msgstr ""
+msgstr "Razmotrite ugovor sa strankom"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,products:0
msgid "Products"
-msgstr ""
+msgstr "Proizvodi"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,close:0
msgid "Close Case"
-msgstr ""
+msgstr "Zaključi SLučaj"
#. module: sale_crm
#: model:ir.actions.wizard,name:sale_crm.sale_crm_make_case_wizard
#: wizard_view:sale_crm.make_case,init:0
msgid "Make Case"
-msgstr ""
+msgstr "Kreiraj Slučaj"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,shop_id:0
msgid "Shop"
-msgstr ""
+msgstr "Shop"
#. module: sale_crm
#: model:process.node,note:sale_crm.process_node_crmopportunity0
msgid "The CRM Opportunity can lead to a quotation."
-msgstr ""
+msgstr "Ova CRM Prilika može dovesti do Ponude."
#. module: sale_crm
#: model:process.transition,name:sale_crm.process_transition_opportunitypricelist0
msgid "Opportunity Pricelist"
-msgstr ""
+msgstr "Cjenik za priliku"
#. module: sale_crm
#: model:process.node,name:sale_crm.process_node_contractpricelist0
msgid "Contract Pricelist"
-msgstr ""
+msgstr "Cjenik za Ugovor"
#. module: sale_crm
#: wizard_field:sale_crm.make_case,init,name:0
msgid "Case Description"
-msgstr ""
+msgstr "Opis Slučaja"
#. module: sale_crm
#: wizard_field:crm.case.make_order,init,analytic_account:0
#: model:process.transition,note:sale_crm.process_transition_opportunityanalytic0
msgid "Analytic Account"
-msgstr ""
+msgstr "Analitic account"
#. module: sale_crm
#: model:ir.actions.wizard,name:sale_crm.sale_crm_wizard
msgid "Make Quotation"
-msgstr ""
+msgstr "Napravi ponudu"
#. module: sale_crm
#: wizard_button:crm.case.make_order,init,end:0
#: wizard_button:sale_crm.make_case,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Otkaži"
#. module: sale_crm
#: wizard_field:sale_crm.make_case,init,section:0
msgid "Case Section"
-msgstr ""
+msgstr "Grupa Slučaja"
diff --git a/addons/sale_delivery_report/i18n/sv.po b/addons/sale_delivery_report/i18n/sv.po
index a57144ab3ad..f196cf650d3 100644
--- a/addons/sale_delivery_report/i18n/sv.po
+++ b/addons/sale_delivery_report/i18n/sv.po
@@ -7,29 +7,29 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-03-24 14:36+0000\n"
+"Last-Translator: Jeanette \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:04+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Order Date"
-msgstr ""
+msgstr "Orderdatum"
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Order Ref."
-msgstr ""
+msgstr "Order Ref."
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Weight"
-msgstr ""
+msgstr "Vikt"
#. module: sale_delivery_report
#: rml:sale.shipping:0
@@ -39,17 +39,17 @@ msgstr ""
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Delivery Order :"
-msgstr ""
+msgstr "Leveransorder:"
#. module: sale_delivery_report
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
msgid "Delivery order"
-msgstr ""
+msgstr "Leveransorder"
#. module: sale_delivery_report
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
msgid "Print Delivery Order"
-msgstr ""
+msgstr "Skriv ut leveransorder"
#. module: sale_delivery_report
#: rml:sale.shipping:0
@@ -59,7 +59,7 @@ msgstr ""
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Invoiced to"
-msgstr ""
+msgstr "Fakturamottagare"
#. module: sale_delivery_report
#: rml:sale.shipping:0
@@ -74,4 +74,4 @@ msgstr ""
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Quantity"
-msgstr ""
+msgstr "Antal"
diff --git a/addons/sale_journal/i18n/hr.po b/addons/sale_journal/i18n/hr.po
index f1268bfc055..3f8e5efd873 100644
--- a/addons/sale_journal/i18n/hr.po
+++ b/addons/sale_journal/i18n/hr.po
@@ -1,20 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * sale_journal
-#
+# * sale_journal
+# Drazen Bosak , 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:25+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
+"PO-Revision-Date: 2010-03-24 00:49+0000\n"
+"Last-Translator: Drazen Bosak \n"
+"Language-Team: Vinteh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:56+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
+"Language: hr\n"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_sale_journal_sale_stats
@@ -25,192 +26,192 @@ msgstr ""
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_picking_journal_2_stock_picking_assigned
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_stock_picking_assigned
msgid "Assigned packing"
-msgstr ""
+msgstr "Dodijeljeno pakiranje"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "assigned"
-msgstr ""
+msgstr "Dodijeljen"
#. module: sale_journal
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nepravilno ime modela u definiciji radnje."
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Raspored čekanja"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,invoice_state:0
msgid "to be invoiced"
-msgstr ""
+msgstr "Treba izdati račun"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_sale_journal
#: view:sale_journal.sale.journal:0
#: field:stock.picking,sale_journal_id:0
msgid "Sale Journal"
-msgstr ""
+msgstr "Prodajni Pregled"
#. module: sale_journal
#: field:sale_journal.sale.journal,sale_stats_ids:0
msgid "Sale Stats"
-msgstr ""
+msgstr "Prodajne statistike"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "waiting"
-msgstr ""
+msgstr "Čekanje"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Postavi na Nacrt"
#. module: sale_journal
#: field:sale_journal.picking.journal,date:0
#: field:sale_journal.sale.journal,date:0
msgid "Journal date"
-msgstr ""
+msgstr "Datum Pregleda"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking_invoice_method
#: model:ir.ui.menu,name:sale_journal.menu_invoice_type_picking_stats_open_all
#: model:ir.ui.menu,name:sale_journal.menu_invoice_type_picking_stats_open_menu
msgid "Packing by Invoice Method"
-msgstr ""
+msgstr "Pakiranje prema načinu izrade Računa"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking
msgid "Packing Journals"
-msgstr ""
+msgstr "Pregledi Pakiranja"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "Notes"
-msgstr ""
+msgstr "Bilješke"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_tree_my
msgid "My open journals"
-msgstr ""
+msgstr "Moji otvoreni Pregledi"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,count:0
#: field:sale_journal.picking.stats,count:0
#: field:sale_journal.sale.stats,count:0
msgid "# of Lines"
-msgstr ""
+msgstr "# Linija"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking_byjournal_all
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_sales_all_open
msgid "All Open Journals"
-msgstr ""
+msgstr "Svi otvoreni Pregledi"
#. module: sale_journal
#: model:ir.module.module,shortdesc:sale_journal.module_meta_information
msgid "Managing sales and deliveries by journal"
-msgstr ""
+msgstr "Upravljanje prodajom i narudžbama prema Pregledu"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "done"
-msgstr ""
+msgstr "Gotovo"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,price_average:0
#: field:sale_journal.picking.stats,price_average:0
#: field:sale_journal.sale.stats,price_average:0
msgid "Average Price"
-msgstr ""
+msgstr "Prosječna cijena"
#. module: sale_journal
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Nevažeći XML za Arhitekturu Prikaza!"
#. module: sale_journal
#: selection:sale_journal.invoice.type,invoicing_method:0
msgid "Grouped"
-msgstr ""
+msgstr "Grupirano"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,state:0
#: field:sale_journal.picking.stats,state:0
#: field:sale_journal.sale.journal,state:0
msgid "State"
-msgstr ""
+msgstr "Stanje"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_reporting_all
#: model:ir.ui.menu,name:sale_journal.menu_definition_report_sales_all_month
msgid "All Months"
-msgstr ""
+msgstr "Svi mjeseci"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,price_total:0
#: field:sale_journal.picking.stats,price_total:0
#: field:sale_journal.sale.stats,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Ukupna cijena"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_picking_journal
msgid "Packing journals"
-msgstr ""
+msgstr "Pregledi Pakiranja"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_report_sales
msgid "Reporting"
-msgstr ""
+msgstr "Izvještavanje"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_picking_journal_tree_my
msgid "My open packing journals"
-msgstr ""
+msgstr "Moji otvoreni Pregledi pakiranja"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_sale_stats
msgid "Sales Orders by Journal"
-msgstr ""
+msgstr "Prodajne narudžbe prema Pregledu"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_tree_all
msgid "Open journals"
-msgstr ""
+msgstr "Otvoreni Pregledi"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
msgid "Packing"
-msgstr ""
+msgstr "Pakiranje"
#. module: sale_journal
#: help:res.partner,property_invoice_type:0
msgid "The type of journal used for sales and packing."
-msgstr ""
+msgstr "Tip Pregleda koji se koristi za prodaju i pakiranje."
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,invoice_state:0
msgid "None"
-msgstr ""
+msgstr "Nijedan"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_sale_sale_stats_open_menu_month
msgid "Sales by journal (this month)"
-msgstr ""
+msgstr "Prodaje prema Pregledu (Ovaj mjesec)"
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Ručni postupak u tijeku"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_picking_journal_tree
@@ -218,159 +219,159 @@ msgstr ""
#: model:ir.actions.act_window,name:sale_journal.action_picking_picking_stats_open_menu_all
#: model:ir.actions.act_window,name:sale_journal.action_picking_picking_stats_open_menu_month
msgid "Packing by journal"
-msgstr ""
+msgstr "Pakiranje prema Pregledu"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
msgid "Cancel Packing"
-msgstr ""
+msgstr "Otkaži Pakiranje"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_picking_journal_2_stock_picking_confirmed
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_stock_picking_confirmed
msgid "Confirmed packing"
-msgstr ""
+msgstr "Potvrđeno Pakiranje"
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "In progress"
-msgstr ""
+msgstr "U Tijeku"
#. module: sale_journal
#: view:sale_journal.picking.stats:0
msgid "Packing by journals"
-msgstr ""
+msgstr "Pakiranje prema Pregledima"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,name:0
#: field:sale_journal.picking.stats,name:0
#: field:sale_journal.sale.stats,name:0
msgid "Month"
-msgstr ""
+msgstr "Mjesec"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,invoice_state:0
msgid "Invoice state"
-msgstr ""
+msgstr "Stanje računa"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_invoice_type_picking_stats_open_menu_all
#: model:ir.actions.act_window,name:sale_journal.action_invoice_type_picking_stats_open_menu_month
#: view:sale_journal.invoice.type.stats:0
msgid "Packing by invoice method"
-msgstr ""
+msgstr "Pakiranje prema načinu izrade Računa"
#. module: sale_journal
#: field:sale_journal.sale.stats,state:0
msgid "Order State"
-msgstr ""
+msgstr "Stanje Narudžbe"
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Shipping Exception"
-msgstr ""
+msgstr "Izuzetak kod Otpreme"
#. module: sale_journal
#: field:sale_journal.invoice.type,note:0
#: field:sale_journal.picking.journal,note:0
#: field:sale_journal.sale.journal,note:0
msgid "Note"
-msgstr ""
+msgstr "Bilješka"
#. module: sale_journal
#: selection:sale_journal.picking.journal,state:0
#: selection:sale_journal.sale.journal,state:0
msgid "Draft"
-msgstr ""
+msgstr "Nacrt"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "cancel"
-msgstr ""
+msgstr "Odustani"
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Invoice Exception"
-msgstr ""
+msgstr "Izuzetak u izdavanju Računa"
#. module: sale_journal
#: field:sale_journal.picking.journal,date_validation:0
#: field:sale_journal.sale.journal,date_validation:0
msgid "Validation date"
-msgstr ""
+msgstr "Datum Vrednovanja"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "draft"
-msgstr ""
+msgstr "Nacrt"
#. module: sale_journal
#: field:sale_journal.invoice.type,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktivan"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_sale_order_draft
msgid "Draft sales"
-msgstr ""
+msgstr "Skiciraj prodaje"
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Ponuda"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal
msgid "Sales Journals"
-msgstr ""
+msgstr "Prodajni Pregledi"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_invoice_type_tree
msgid "sale_journal.invoice.type.tree"
-msgstr ""
+msgstr "sale_journal.invoice.type.tree"
#. module: sale_journal
#: view:sale_journal.sale.journal:0
msgid "Confirm Sales"
-msgstr ""
+msgstr "Potvrdi prodaje"
#. module: sale_journal
#: field:sale_journal.picking.journal,date_created:0
#: field:sale_journal.picking.journal,state:0
#: field:sale_journal.sale.journal,date_created:0
msgid "Creation date"
-msgstr ""
+msgstr "Datum stvaranja"
#. module: sale_journal
#: field:res.partner,property_invoice_type:0
msgid "Invoicing Method"
-msgstr ""
+msgstr "Način Izrade Računa"
#. module: sale_journal
#: field:sale_journal.picking.journal,code:0
#: field:sale_journal.sale.journal,code:0
msgid "Code"
-msgstr ""
+msgstr "Kod"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "Open Journal"
-msgstr ""
+msgstr "Otvoreni Pregled"
#. module: sale_journal
#: view:sale_journal.sale.journal:0
msgid "Sales"
-msgstr ""
+msgstr "Prodaje"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_picking_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_reporting
#: view:sale_journal.picking.journal:0
msgid "Packing Journal"
-msgstr ""
+msgstr "Pregled Pakiranja"
#. module: sale_journal
#: selection:sale_journal.picking.journal,state:0
@@ -382,51 +383,52 @@ msgstr ""
#. module: sale_journal
#: selection:sale_journal.sale.stats,state:0
msgid "Cancel"
-msgstr ""
+msgstr "Poništi"
#. module: sale_journal
#: field:sale_journal.picking.journal,picking_stats_ids:0
msgid "Journal Stats"
-msgstr ""
+msgstr "Statistike Pregleda"
#. module: sale_journal
#: selection:sale_journal.picking.journal,state:0
#: selection:sale_journal.sale.journal,state:0
msgid "Open"
-msgstr ""
+msgstr "Otvori"
#. module: sale_journal
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Naziv Objekta mora početi s x_ i ne smije sadržavati bilo koji posebni znak !"
#. module: sale_journal
#: view:res.partner:0
msgid "Sales & Purchases"
-msgstr ""
+msgstr "Prodaje i Kupnje"
#. module: sale_journal
#: field:sale_journal.picking.journal,user_id:0
#: field:sale_journal.sale.journal,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Odgovoran"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking_byjournal_my
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_sales_my_open
msgid "My Open Journals"
-msgstr ""
+msgstr "Moji otvoreni Pregledi"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_invoice_type_picking_stats_open
msgid "Statistics on packing to invoice"
-msgstr ""
+msgstr "Statistike vezane uz postupak od pakiranja do izdavanja Računa"
#. module: sale_journal
#: view:sale_journal.sale.journal:0
msgid "Cancel Sales"
-msgstr ""
+msgstr "Otkaži Prodaje"
#. module: sale_journal
#: field:sale.order,invoice_type_id:0
@@ -434,7 +436,7 @@ msgstr ""
#: field:sale_journal.invoice.type,name:0
#: field:stock.picking,invoice_type_id:0
msgid "Invoice Type"
-msgstr ""
+msgstr "Tip Računa"
#. module: sale_journal
#: selection:sale_journal.invoice.type.stats,invoice_state:0
@@ -445,19 +447,19 @@ msgstr ""
#: selection:sale_journal.invoice.type.stats,state:0
#: selection:sale_journal.picking.stats,state:0
msgid "confirmed"
-msgstr ""
+msgstr "Potvrđen"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_picking_stats
msgid "Packing lists by Journal"
-msgstr ""
+msgstr "Tovarne liste prema Pregledu"
#. module: sale_journal
#: field:sale_journal.invoice.type.stats,quantity:0
#: field:sale_journal.picking.stats,quantity:0
#: field:sale_journal.sale.stats,quantity:0
msgid "Quantities"
-msgstr ""
+msgstr "Količine"
#. module: sale_journal
#: field:sale.order,journal_id:0
@@ -469,19 +471,19 @@ msgstr ""
#: field:sale_journal.sale.stats,journal_id:0
#: field:stock.picking,journal_id:0
msgid "Journal"
-msgstr ""
+msgstr "Pregled"
#. module: sale_journal
#: field:sale_journal.invoice.type,invoicing_method:0
#: field:sale_journal.invoice.type.stats,invoice_type_id:0
msgid "Invoicing method"
-msgstr ""
+msgstr "Način Izrade Računa"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_reporting_this
#: model:ir.ui.menu,name:sale_journal.menu_definition_report_sales_this_month
msgid "This Month"
-msgstr ""
+msgstr "Ovaj mjesec"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_sales
@@ -489,64 +491,64 @@ msgstr ""
#: model:ir.ui.menu,name:sale_journal.menu_sale_sale_stats_open_menu
#: view:sale_journal.sale.stats:0
msgid "Sales by Journal"
-msgstr ""
+msgstr "Prodaje po Pregledu"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_invoice_type
msgid "Invoicing Methods"
-msgstr ""
+msgstr "Načini Izrade Računa"
#. module: sale_journal
#: selection:sale_journal.invoice.type,invoicing_method:0
msgid "Non grouped"
-msgstr ""
+msgstr "Nije grupirano"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_invoice_type_picking_open
msgid "Packing to invoice"
-msgstr ""
+msgstr "Od pakiranja do izrade Računa"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "Journal Information"
-msgstr ""
+msgstr "Obavjest o Pregledu"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type_stats
msgid "Stats on packing by invoice method"
-msgstr ""
+msgstr "Statistike o Pakiranju prema načinu izrade Računa"
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type
msgid "Invoice Types"
-msgstr ""
+msgstr "Tipovi Računa"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "States"
-msgstr ""
+msgstr "Stanja"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking_byjournal
#: model:ir.ui.menu,name:sale_journal.menu_picking_picking_stats_open_all
#: model:ir.ui.menu,name:sale_journal.menu_picking_picking_stats_open_menu
msgid "Packing by Journal"
-msgstr ""
+msgstr "Pakiranje prema Pregledu"
#. module: sale_journal
#: view:sale_journal.picking.journal:0
#: view:sale_journal.sale.journal:0
msgid "Close Journal"
-msgstr ""
+msgstr "Zatvori Pregled"
#. module: sale_journal
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_picking_invoice
msgid "Packing to Invoice"
-msgstr ""
+msgstr "Od pakiranja do izrade Računa"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_sale_order_approved
msgid "Approved sales"
-msgstr ""
+msgstr "Dozvoljene prodaje"
diff --git a/addons/scrum/wizard/assign_backlog_to_sprint.py b/addons/scrum/wizard/assign_backlog_to_sprint.py
index 35c2852325b..d9805f374e9 100644
--- a/addons/scrum/wizard/assign_backlog_to_sprint.py
+++ b/addons/scrum/wizard/assign_backlog_to_sprint.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -48,21 +48,20 @@ bts_fields = {
def _assign_sprint(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
backlog_obj = pool.get('scrum.product.backlog')
- task = pool.get('project.task')
-
- state_open=data['form']['state_open']
+ task = pool.get('project.task')
+ state_open = data['form']['state_open']
convert_to_task = data['form']['convert_to_task']
-
- for backlog in backlog_obj.browse(cr, uid, data['ids']):
- backlog_obj.write(cr, uid, backlog.id, {'sprint_id':data['form']['sprint_id']})
+ for backlog in backlog_obj.browse(cr, uid, data['ids'], context=context):
+ backlog_obj.write(cr, uid, backlog.id, {'sprint_id':data['form']['sprint_id']}, context=context)
if convert_to_task:
task.create(cr, uid, {
'product_backlog_id': backlog.id,
'name': backlog.name,
'description': backlog.note,
'project_id': backlog.project_id.id,
- 'user_id': (backlog.user_id and backlog.user_id.id) or uid,
- 'planned_hours': backlog.planned_hours
+ 'user_id': False,
+ 'planned_hours':backlog.planned_hours,
+ 'remaining_hours':backlog.expected_hours,
})
if state_open:
if backlog.state == "draft":
diff --git a/addons/scrum/wizard/backlog_to_task.py b/addons/scrum/wizard/backlog_to_task.py
index 65795906765..631fed686b8 100644
--- a/addons/scrum/wizard/backlog_to_task.py
+++ b/addons/scrum/wizard/backlog_to_task.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
@@ -34,10 +34,10 @@ btt_fields = {
'user_id' : {'string':'Assign To', 'type':'many2one', 'relation':'res.users'},
}
-def _do_create(self, cr, uid, data, context):
+def _do_create(self, cr, uid, data, context={}):
pool = pooler.get_pool(cr.dbname)
- backlogs = pool.get('scrum.product.backlog').browse(cr, uid, data['ids'])
- mod_obj = pool.get('ir.model.data')
+ backlogs = pool.get('scrum.product.backlog').browse(cr, uid, data['ids'], context=context)
+ mod_obj = pool.get('ir.model.data')
result = mod_obj._get_id(cr, uid, 'project', 'view_task_search_form')
id = mod_obj.read(cr, uid, result, ['res_id'])
ids = []
@@ -48,19 +48,20 @@ def _do_create(self, cr, uid, data, context):
'name': backlog.name,
'description': backlog.note,
'project_id': backlog.project_id.id,
- 'user_id': data['form']['user_id'] or (backlog.user_id and backlog.user_id.id) or uid,
- 'planned_hours': backlog.planned_hours
+ 'user_id': data['form']['user_id'] or False,
+ 'planned_hours': backlog.planned_hours,
+ 'remaining_hours':backlog.expected_hours,
}))
-
value = {
'domain': "[('product_backlog_id','in',["+','.join(map(str,data['ids']))+"])]",
'name': 'Open Backlog Tasks',
+ 'res_id': ids,
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'project.task',
'view_id': False,
'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
+ 'search_view_id': id['res_id'],
}
return value
diff --git a/addons/stock/__init__.py b/addons/stock/__init__.py
index a2df9bdd809..9cc33351689 100644
--- a/addons/stock/__init__.py
+++ b/addons/stock/__init__.py
@@ -24,8 +24,6 @@ import partner
import product
import report
import wizard
-import stock_wizard
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/__terp__.py b/addons/stock/__terp__.py
index 7a03b225dc2..5fa272238d5 100644
--- a/addons/stock/__terp__.py
+++ b/addons/stock/__terp__.py
@@ -41,11 +41,21 @@ Thanks to the double entry management, the inventory controlling is powerful and
"init_xml" : [],
"demo_xml" : ["stock_demo.xml"],
"update_xml" : [
- "stock_workflow.xml",
"stock_data.xml",
+ "wizard/stock_move_view.xml",
+ "wizard/stock_partial_picking_view.xml",
+ "wizard/stock_partial_move_view.xml",
+ "wizard/stock_inventory_set_stock_zero_view.xml",
+ "wizard/stock_fill_inventory_view.xml",
+ "wizard/stock_invoice_onshipping_view.xml",
+ "wizard/stock_location_product_view.xml",
+ "wizard/stock_inventory_line_split_view.xml",
+ "wizard/stock_change_standard_price_view.xml",
+
+ "wizard/stock_traceability_view.xml",
+ "stock_workflow.xml",
"stock_incoterms.xml",
- "stock_wizard.xml",
- "stock_wizard_view.xml",
+ "stock_wizard.xml",
"stock_view.xml",
"stock_report.xml",
"stock_sequence.xml",
diff --git a/addons/stock/i18n/fr.po b/addons/stock/i18n/fr.po
index a8230d8bcfb..52ff32ffb02 100644
--- a/addons/stock/i18n/fr.po
+++ b/addons/stock/i18n/fr.po
@@ -7,20 +7,15 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:46+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-03-25 14:13+0000\n"
+"Last-Translator: Numérigraphe \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 04:40+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 04:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#. module: stock
-#: model:ir.actions.wizard,name:stock.return_picking
-msgid "Return packing"
-msgstr "Retour de livraison"
-
#. module: stock
#: field:stock.move,product_uos_qty:0
msgid "Quantity (UOS)"
@@ -104,6 +99,11 @@ msgstr "STOCK_ZOOM_100"
msgid "UoM"
msgstr "UdM"
+#. module: stock
+#: model:ir.actions.wizard,name:stock.return_picking
+msgid "Return packing"
+msgstr "Colisage en retour"
+
#. module: stock
#: field:product.category,property_stock_journal:0
msgid "Stock journal"
@@ -682,7 +682,7 @@ msgstr ""
#. module: stock
#: view:stock.tracking:0
msgid "Tracking/Serial"
-msgstr "Tracer N° Série"
+msgstr "Suivi/N° de série"
#. module: stock
#: selection:stock.location,icon:0
@@ -1094,7 +1094,7 @@ msgstr "STOCK_SPELL_CHECK"
#. module: stock
#: model:ir.model,name:stock.model_stock_tracking
msgid "Stock Tracking Lots"
-msgstr "Stock suivi par lot"
+msgstr "Lot de suivi de stock"
#. module: stock
#: rml:lot.stock.overview:0
@@ -1251,7 +1251,7 @@ msgstr "STOCK_STOP"
#. module: stock
#: wizard_view:stock.move.track,init:0
msgid "Tracking a move"
-msgstr "Tracer un mouvement"
+msgstr "Suivi de mouvement"
#. module: stock
#: selection:stock.location,icon:0
@@ -1525,7 +1525,7 @@ msgstr "STOCK_SORT_DESCENDING"
#: model:ir.actions.act_window,name:stock.action_tracking_form
#: model:ir.ui.menu,name:stock.menu_action_tracking_form
msgid "Tracking Lots"
-msgstr "Tracer les lots"
+msgstr "Lots de suivi"
#. module: stock
#: wizard_button:inventory.merge,init,merge:0
@@ -1656,7 +1656,7 @@ msgstr "STOCK_ZOOM_OUT"
#. module: stock
#: wizard_field:stock.move.track,init,tracking_prefix:0
msgid "Tracking prefix"
-msgstr "Préfix du Suivi"
+msgstr "Préfix du suivi"
#. module: stock
#: selection:stock.location,allocation_method:0
diff --git a/addons/stock/i18n/zh_CN.po b/addons/stock/i18n/zh_CN.po
index d046f9c0519..efb18200eb8 100644
--- a/addons/stock/i18n/zh_CN.po
+++ b/addons/stock/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-03-20 10:28+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2010-03-29 01:06+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-21 04:42+0000\n"
+"X-Launchpad-Export-Date: 2010-03-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
@@ -24,12 +24,12 @@ msgstr "后进先出"
#. module: stock
#: field:stock.location,chained_location_id:0
msgid "Chained Location If Fixed"
-msgstr "如果固定连锁库位"
+msgstr "固定连锁库位"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_SAVE"
-msgstr "保存"
+msgstr "STOCK_SAVE"
#. module: stock
#: model:stock.location,name:stock.stock_location_15
@@ -39,12 +39,12 @@ msgstr "子产品"
#. module: stock
#: selection:stock.location,icon:0
msgid "terp-account"
-msgstr "会计"
+msgstr "terp-account"
#. module: stock
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr "在这动作定义中有无效的模块名"
+msgstr "在动作定义使用了无效的模型名称。"
#. module: stock
#: model:ir.module.module,shortdesc:stock.module_meta_information
@@ -55,17 +55,17 @@ msgstr "库存管理"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_SORT_ASCENDING"
-msgstr "升序"
+msgstr "STOCK_SORT_ASCENDING"
#. module: stock
#: field:stock.production.lot.revision,indice:0
msgid "Revision"
-msgstr "修改"
+msgstr "修订版"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_MEDIA_FORWARD"
-msgstr "向前"
+msgstr "STOCK_MEDIA_FORWARD"
#. module: stock
#: rml:lot.location:0
@@ -75,7 +75,7 @@ msgstr "合计:"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_ZOOM_100"
-msgstr "放大100"
+msgstr "STOCK_ZOOM_100"
#. module: stock
#: rml:lot.stock.overview:0
@@ -86,7 +86,7 @@ msgstr "计量单位"
#. module: stock
#: model:ir.actions.wizard,name:stock.return_picking
msgid "Return packing"
-msgstr "退回包装"
+msgstr "退货"
#. module: stock
#: field:product.category,property_stock_journal:0
@@ -103,7 +103,7 @@ msgstr "填写具体库位盘存"
#: view:stock.picking:0
#: field:stock.picking.move.wizard,picking_id:0
msgid "Packing list"
-msgstr "包装单"
+msgstr "分拣单"
#. module: stock
#: rml:lot.stock.overview:0
@@ -114,13 +114,13 @@ msgstr "金额"
#. module: stock
#: view:stock.picking:0
msgid "Products Received"
-msgstr "产品接收"
+msgstr "已收到的货品"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_picking_tree4
#: model:ir.ui.menu,name:stock.menu_action_picking_tree4
msgid "Incoming Products"
-msgstr "接收产品"
+msgstr "入库货品"
#. module: stock
#: field:stock.picking,name:0
@@ -147,7 +147,7 @@ msgstr "接收强制的生产批次"
#: field:stock.move,move_history_ids:0
#: field:stock.move,move_history_ids2:0
msgid "Move History"
-msgstr "移动历史记录"
+msgstr "库存移动记录"
#. module: stock
#: model:ir.model,name:stock.model_stock_production_lot
@@ -159,12 +159,12 @@ msgstr "生产批次"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_NEW"
-msgstr "新"
+msgstr "STOCK_NEW"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_CANCEL"
-msgstr "取消"
+msgstr "STOCK_CANCEL"
#. module: stock
#: selection:stock.location,usage:0
@@ -174,7 +174,7 @@ msgstr "内部库位"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_PRINT"
-msgstr "打印"
+msgstr "STOCK_PRINT"
#. module: stock
#: rml:stock.picking.list:0
@@ -654,7 +654,7 @@ msgstr "预计运送日期"
#. module: stock
#: rml:stock.picking.list:0
msgid "Shipping Address :"
-msgstr ""
+msgstr "运输地址"
#. module: stock
#: view:stock.tracking:0
diff --git a/addons/stock/product.py b/addons/stock/product.py
index 3e789fa7ecd..d771815a4d4 100644
--- a/addons/stock/product.py
+++ b/addons/stock/product.py
@@ -24,7 +24,127 @@ from tools.translate import _
class product_product(osv.osv):
- _inherit = "product.product"
+ _inherit = "product.product"
+
+ def do_change_standard_price(self, cr, uid, ids, datas, context={}):
+ """
+ Changes the Standard Price of Product.
+ And creates an account move accordingly.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param datas : dict. contain default datas like new_price, stock_output_account, stock_input_account, stock_journal
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ location_obj = self.pool.get('stock.location')
+ move_obj = self.pool.get('account.move')
+ move_line_obj = self.pool.get('account.move.line')
+
+ new_price = datas.get('new_price', 0.0)
+ stock_output_acc = datas.get('stock_output_account', False)
+ stock_input_acc = datas.get('stock_input_account', False)
+ journal_id = datas.get('stock_journal', False)
+
+ move_ids = []
+ for rec_id in ids:
+ loc_ids = location_obj.search(cr, uid, [('account_id','<>',False),('usage','=','internal')])
+ for location in location_obj.browse(cr, uid, loc_ids):
+ c = context.copy()
+ c.update({
+ 'location': location.id,
+ 'compute_child': False
+ })
+
+ product = self.browse(cr, uid, rec_id, context=c)
+ qty = product.qty_available
+ diff = product.standard_price - new_price
+ assert diff, _("Could not find any difference between standard price and new price!")
+ if qty:
+ location_account = location.account_id and location.account_id.id or False
+ company_id = location.company_id and location.company_id.id or False
+ assert location_account, _('Inventory Account is not specified for Location: %s' % (location.name))
+ assert company_id, _('Company is not specified in Location')
+ #
+ # Accounting Entries
+ #
+ if not journal_id:
+ journal_id = product.categ_id.property_stock_journal and product.categ_id.property_stock_journal.id or False
+ if not journal_id:
+ raise osv.except_osv(_('Error!'),
+ _('There is no journal defined '\
+ 'on the product category: "%s" (id: %d)') % \
+ (product.categ_id.name,
+ product.categ_id.id,))
+ move_id = move_obj.create(cr, uid, {
+ 'journal_id': journal_id,
+ 'company_id': company_id
+ })
+
+ move_ids.append(move_id)
+
+
+ if diff > 0:
+ if not stock_input_acc:
+ stock_input_acc = product.product_tmpl_id.\
+ property_stock_account_input.id
+ if not stock_input_acc:
+ stock_input_acc = product.categ_id.\
+ property_stock_account_input_categ.id
+ if not stock_input_acc:
+ raise osv.except_osv(_('Error!'),
+ _('There is no stock input account defined ' \
+ 'for this product: "%s" (id: %d)') % \
+ (product.name,
+ product.id,))
+ amount_diff = qty * diff
+ move_line_obj.create(cr, uid, {
+ 'name': product.name,
+ 'account_id': stock_input_acc,
+ 'debit': amount_diff,
+ 'move_id': move_id,
+ })
+ move_line_obj.create(cr, uid, {
+ 'name': location.name,
+ 'account_id': location_account,
+ 'credit': amount_diff,
+ 'move_id': move_id
+ })
+ elif diff < 0:
+ if not stock_output_acc:
+ stock_output_acc = product.product_tmpl_id.\
+ property_stock_account_output.id
+ if not stock_output_acc:
+ stock_output_acc = product.categ_id.\
+ property_stock_account_output_categ.id
+ if not stock_output_acc:
+ raise osv.except_osv(_('Error!'),
+ _('There is no stock output account defined ' \
+ 'for this product: "%s" (id: %d)') % \
+ (product.name,
+ product.id,))
+ amount_diff = qty * -diff
+ move_line_obj.create(cr, uid, {
+ 'name': product.name,
+ 'account_id': stock_output_acc,
+ 'credit': amount_diff,
+ 'move_id': move_id
+ })
+ move_line_obj.create(cr, uid, {
+ 'name': location.name,
+ 'account_id': location_account,
+ 'debit': amount_diff,
+ 'move_id': move_id
+ })
+
+ self.write(cr, uid, rec_id, {'standard_price': new_price})
+
+ return move_ids
+
def view_header_get(self, cr, user, view_id, view_type, context):
res = super(product_product, self).view_header_get(cr, user, view_id, view_type, context)
if res: return res
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 9f9dd4b6ec2..d027465c34d 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -54,6 +54,20 @@
+
+ product.product.standard.price.form.inherit
+ product.product
+ form
+
+
+
+
+
+
+
+
+
+ product.normal.stock.acc.property.form.inherit
diff --git a/addons/stock/report/report_stock_view.xml b/addons/stock/report/report_stock_view.xml
index 21f7d91a806..21b8a0a2f4e 100644
--- a/addons/stock/report/report_stock_view.xml
+++ b/addons/stock/report/report_stock_view.xml
@@ -12,10 +12,12 @@
+
+
@@ -152,7 +154,7 @@
- Latest Inventory Date by Product
+ Latest Inventories Dates by Productreport.stock.lines.dateformtree,form
diff --git a/addons/stock/security/ir.model.access.csv b/addons/stock/security/ir.model.access.csv
index d00a55b0b9f..8e7db1c068b 100644
--- a/addons/stock/security/ir.model.access.csv
+++ b/addons/stock/security/ir.model.access.csv
@@ -22,5 +22,16 @@
"access_stock_move_consume","stock.move.consume","model_stock_move_consume","stock.group_stock_user",1,0,0,0
"access_stock_move_scrap","stock.move.scrap","model_stock_move_scrap","stock.group_stock_user",1,0,0,0
"access_stock_move_split","stock.move.split","model_stock_move_split","stock.group_stock_user",1,0,0,0
+"access_stock_move_split_lines","stock.move.split.lines","model_stock_move_split_lines","stock.group_stock_user",1,0,0,0"access_report_products_to_received_planned","report.products.to.received.planned","model_report_products_to_received_planned","stock.group_stock_user",1,0,0,0
+"access_report_delivery_products_planned","report.delivery.products.planned","model_report_delivery_products_planned","stock.group_stock_user",1,0,0,0
+"access_stock_move_track","stock.move.track","model_stock_move_track","stock.group_stock_user",1,0,0,0
+"access_stock_move_consume","stock.move.consume","model_stock_move_consume","stock.group_stock_user",1,0,0,0
+"access_stock_move_scrap","stock.move.scrap","model_stock_move_scrap","stock.group_stock_user",1,0,0,0
+"access_stock_move_split","stock.move.split","model_stock_move_split","stock.group_stock_user",1,0,0,0
"access_stock_move_split_lines","stock.move.split.lines","model_stock_move_split_lines","stock.group_stock_user",1,0,0,0
+"access_stock_inventory_set_stock_zero","stock.inventory.set.stock.zero","model_stock_inventory_set_stock_zero","stock.group_stock_user",1,0,0,0
+"access_stock_fill_inventory","stock.fill.inventory","model_stock_fill_inventory","stock.group_stock_user",1,0,0,0
+"access_stock_inventory_line_split","stock.inventory.line.split","model_stock_inventory_line_split","stock.group_stock_user",1,0,0,0
+"access_stock_invoice_onshipping","stock.invoice.onshipping","model_stock_invoice_onshipping","stock.group_stock_user",1,0,0,0
+"access_stock_location_product","stock.location.product","model_stock_location_product","stock.group_stock_user",1,0,0,0
"access_report_stock_picking","report.stock.picking","model_report_stock_picking","stock.group_stock_user",1,0,0,0
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index 2d91d958957..e1e412690fc 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -25,14 +25,14 @@
-
- ['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
- child_of
- user.company_id.id
+
+ ['|',('company_id','=',False),,('company_id','=',False)]
+ child_of
+ user.company_id.id
-
+ Warehouse multi-company
@@ -41,7 +41,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),,('company_id','child_of',[user.company_id.id])]
@@ -52,7 +52,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),,('company_id','child_of',[user.company_id.id])]
@@ -61,10 +61,10 @@
-
- ['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]
- child_of
- user.company_id.id
+
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+ child_of
+ user.company_id.id
@@ -76,7 +76,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),,('company_id','child_of',[user.company_id.id])]
@@ -87,7 +87,7 @@
- ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+ [('company_id','=',False),('company_id','child_of',[user.company_id.id])]
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 37a66466b6c..68450edd6d0 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -122,8 +122,13 @@ class stock_location(osv.osv):
for r in result:
c = (context or {}).copy()
c['location'] = id
- product = self.pool.get('product.product').read(cr, uid, r['product_id'], [field_to_read, pricetype.field], context=c)
- final_value += (product[field_to_read] * product[pricetype.field])
+ product = self.pool.get('product.product').read(cr, uid, r['product_id'], [field_to_read], context=c)
+ # Compute the amount_unit in right currency
+
+ context['currency_id']=self.pool.get('res.users').browse(cr,uid,uid).company_id.currency_id.id
+ amount_unit=self.pool.get('product.product').browse(cr,uid,r['product_id']).price_get(pricetype.field, context)[r['product_id']]
+
+ final_value += (product[field_to_read] * amount_unit)
return final_value
def _product_value(self, cr, uid, ids, field_names, arg, context={}):
@@ -223,6 +228,7 @@ class stock_location(osv.osv):
# Take the user company and pricetype
price_type_id=self.pool.get('res.users').browse(cr,uid,uid).company_id.property_valuation_price_type.id
pricetype=self.pool.get('product.price.type').browse(cr,uid,price_type_id)
+ context['currency_id']=self.pool.get('res.users').browse(cr,uid,uid).company_id.currency_id.id
if not product_ids:
product_ids = product_obj.search(cr, uid, [])
@@ -486,6 +492,7 @@ class stock_picking(osv.osv):
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
method=True, store=True, type='datetime', string='Max. Expected Date', select=2),
'move_lines': fields.one2many('stock.move', 'picking_id', 'Entry lines', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
+ 'delivery_line':fields.one2many('stock.delivery', 'picking_id', 'Delivery lines', readonly=True),
'auto_picking': fields.boolean('Auto-Picking'),
'address_id': fields.many2one('res.partner.address', 'Partner', help="Address of partner"),
'invoice_state': fields.selection([
@@ -546,6 +553,8 @@ class stock_picking(osv.osv):
def action_assign(self, cr, uid, ids, *args):
for pick in self.browse(cr, uid, ids):
move_ids = [x.id for x in pick.move_lines if x.state == 'confirmed']
+ if not move_ids:
+ raise osv.except_osv(_('Warning !'),_('Not Available. Moves are not confirmed.'))
self.pool.get('stock.move').action_assign(cr, uid, move_ids)
return True
@@ -666,7 +675,9 @@ class stock_picking(osv.osv):
if type in ('in_invoice', 'in_refund'):
# Take the user company and pricetype
price_type_id=self.pool.get('res.users').browse(cr,users,users).company_id.property_valuation_price_type.id
- pricetype=self.pool.get('product.price.type').browse(cr,uid,price_type_id)
+ pricetype=self.pool.get('product.price.type').browse(cr,uid,price_type_id)
+ context['currency_id']=move_line.company_id.currency_id.id
+
amount_unit=move_line.product_id.price_get(pricetype.field, context)[move_line.product_id.id]
return amount_unit
else:
@@ -854,6 +865,150 @@ class stock_picking(osv.osv):
continue
return super(stock_picking, self).unlink(cr, uid, ids, context=context)
+ def do_partial(self, cr, uid, ids, partial_datas, context={}):
+ """
+ @ partial_datas : dict. contain details of partial picking
+ like partner_id, address_id, delivery_date, delivery moves with product_id, product_qty, uom
+ """
+ res = {}
+ move_obj = self.pool.get('stock.move')
+ delivery_obj = self.pool.get('stock.delivery')
+ product_obj = self.pool.get('product.product')
+ currency_obj = self.pool.get('res.currency')
+ users_obj = self.pool.get('res.users')
+ uom_obj = self.pool.get('product.uom')
+ price_type_obj = self.pool.get('product.price.type')
+ sequence_obj = self.pool.get('ir.sequence')
+ wf_service = netsvc.LocalService("workflow")
+ partner_id = partial_datas.get('partner_id', False)
+ address_id = partial_datas.get('address_id', False)
+ delivery_date = partial_datas.get('delivery_date', False)
+ for pick in self.browse(cr, uid, ids, context=context):
+ new_picking = None
+ new_moves = []
+
+ complete, too_many, too_few = [], [], []
+ move_product_qty = {}
+ for move in pick.move_lines:
+ if move.state in ('done', 'cancel'):
+ continue
+ partial_data = partial_datas.get('move%s'%(move.id), False)
+ assert partial_data, _('Do not Found Partial data of Stock Move Line :%s' %(move.id))
+ product_qty = partial_data.get('product_qty',0.0)
+ move_product_qty[move.id] = product_qty
+ product_uom = partial_data.get('product_uom',False)
+ product_price = partial_data.get('product_price',0.0)
+ product_currency = partial_data.get('product_currency',False)
+ if move.product_qty == product_qty:
+ complete.append(move)
+ elif move.product_qty > product_qty:
+ too_few.append(move)
+ else:
+ too_many.append(move)
+
+ # Average price computation
+ if (pick.type == 'in') and (move.product_id.cost_method == 'average'):
+ product = product_obj.browse(cr, uid, move.product_id.id)
+ user = users_obj.browse(cr, uid, uid)
+ context['currency_id'] = move.company_id.currency_id.id
+ qty = uom_obj._compute_qty(cr, uid, product_uom, product_qty, product.uom_id.id)
+ pricetype = False
+ if user.company_id.property_valuation_price_type:
+ pricetype = price_type_obj.browse(cr, uid, user.company_id.property_valuation_price_type.id)
+ if pricetype and qty > 0:
+ new_price = currency_obj.compute(cr, uid, product_currency,
+ user.company_id.currency_id.id, product_price)
+ new_price = uom_obj._compute_price(cr, uid, product_uom, new_price,
+ product.uom_id.id)
+ if product.qty_available <= 0:
+ new_std_price = new_price
+ else:
+ # Get the standard price
+ amount_unit = product.price_get(pricetype.field, context)[product.id]
+ new_std_price = ((amount_unit * product.qty_available)\
+ + (new_price * qty))/(product.qty_available + qty)
+
+ # Write the field according to price type field
+ product_obj.write(cr, uid, [product.id],
+ {pricetype.field: new_std_price})
+ move_obj.write(cr, uid, [move.id], {'price_unit': new_price})
+
+
+ for move in too_few:
+ product_qty = move_product_qty[move.id]
+ if not new_picking:
+
+ new_picking = self.copy(cr, uid, pick.id,
+ {
+ 'name': sequence_obj.get(cr, uid, 'stock.picking.%s'%(pick.type)),
+ 'move_lines' : [],
+ 'state':'draft',
+ })
+ if product_qty != 0:
+
+ new_obj = move_obj.copy(cr, uid, move.id,
+ {
+ 'product_qty' : product_qty,
+ 'product_uos_qty': product_qty, #TODO: put correct uos_qty
+ 'picking_id' : new_picking,
+ 'state': 'assigned',
+ 'move_dest_id': False,
+ 'price_unit': move.price_unit,
+ })
+
+ move_obj.write(cr, uid, [move.id],
+ {
+ 'product_qty' : move.product_qty - product_qty,
+ 'product_uos_qty':move.product_qty - product_qty, #TODO: put correct uos_qty
+
+ })
+
+ if new_picking:
+ move_obj.write(cr, uid, [c.id for c in complete], {'picking_id': new_picking})
+ for move in too_many:
+ product_qty = move_product_qty[move.id]
+ move_obj.write(cr, uid, [move.id],
+ {
+ 'product_qty' : product_qty,
+ 'product_uos_qty': product_qty, #TODO: put correct uos_qty
+ 'picking_id': new_picking,
+ })
+ else:
+ for move in too_many:
+ product_qty = move_product_qty[move.id]
+ move_obj.write(cr, uid, [move.id],
+ {
+ 'product_qty': product_qty,
+ 'product_uos_qty': product_qty #TODO: put correct uos_qty
+ })
+
+ # At first we confirm the new picking (if necessary)
+ if new_picking:
+ wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
+ # Then we finish the good picking
+ if new_picking:
+ self.write(cr, uid, [pick.id], {'backorder_id': new_picking})
+ self.action_move(cr, uid, [new_picking])
+ wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_done', cr)
+ wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
+ delivered_pack_id = new_picking
+ else:
+ self.action_move(cr, uid, [pick.id])
+ wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_done', cr)
+ delivered_pack_id = pick.id
+
+ delivered_pack = self.browse(cr, uid, delivered_pack_id, context=context)
+ delivery_id = delivery_obj.create(cr, uid, {
+ 'name': delivered_pack.name,
+ 'partner_id': partner_id,
+ 'address_id': address_id,
+ 'date': delivery_date,
+ 'picking_id' : pick.id,
+ 'move_delivered' : [(6,0, map(lambda x:x.id, delivered_pack.move_lines))]
+ }, context=context)
+ res[pick.id] = {'delivered_picking': delivered_pack.id or False}
+ return res
+
stock_picking()
@@ -951,7 +1106,23 @@ class stock_production_lot_revision(osv.osv):
}
stock_production_lot_revision()
-
+
+class stock_delivery(osv.osv):
+
+ """ Tracability of partialdeliveries """
+
+ _name = "stock.delivery"
+ _description = "Delivery"
+ _columns = {
+ 'name': fields.char('Name', size=60, required=True),
+ 'date': fields.datetime('Date', required=True),
+ 'partner_id': fields.many2one('res.partner', 'Partner', required=True),
+ 'address_id': fields.many2one('res.partner.address', 'Address', required=True),
+ 'move_delivered':fields.one2many('stock.move', 'delivered_id', 'Move Delivered'),
+ 'picking_id': fields.many2one('stock.picking', 'Picking list'),
+
+ }
+stock_delivery()
# ----------------------------------------------------
# Move
# ----------------------------------------------------
@@ -1035,6 +1206,7 @@ class stock_move(osv.osv):
'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Orders"),
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Origin"),
'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True),
+ 'delivered_id': fields.many2one('stock.delivery', 'Product delivered'),
'scraped': fields.boolean('Scraped'),
}
_constraints = [
@@ -1148,13 +1320,13 @@ class stock_move(osv.osv):
product = self.pool.get('product.product').browse(cr, uid, [prod_id], context=ctx)[0]
uos_id = product.uos_id and product.uos_id.id or False
result = {
- 'name': product.partner_ref,
'product_uom': product.uom_id.id,
'product_uos': uos_id,
'product_qty': 1.00,
'product_uos_qty' : self.pool.get('stock.move').onchange_quantity(cr, uid, ids, prod_id, 1.00, product.uom_id.id, uos_id)['value']['product_uos_qty']
}
-
+ if not ids:
+ result['name'] = product.partner_ref
if loc_id:
result['location_id'] = loc_id
if loc_dest_id:
@@ -1277,7 +1449,7 @@ class stock_move(osv.osv):
if done:
count += len(done)
self.write(cr, uid, done, {'state': 'assigned'})
-
+
if count:
for pick_id in pickings:
wf_service = netsvc.LocalService("workflow")
@@ -1310,8 +1482,8 @@ class stock_move(osv.osv):
for id in ids:
wf_service.trg_trigger(uid, 'stock.move', id, cr)
#self.action_cancel(cr,uid, ids2, context)
- return True
-
+ return True
+
def action_done(self, cr, uid, ids, context=None):
track_flag = False
picking_ids = []
@@ -1385,7 +1557,7 @@ class stock_move(osv.osv):
# Base computation on valuation price type
else:
company_id=move.company_id.id
-
+ context['currency_id']=move.company_id.currency_id.id
pricetype=self.pool.get('product.price.type').browse(cr,uid,move.company_id.property_valuation_price_type.id)
amount_unit=move.product_id.price_get(pricetype.field, context)[move.product_id.id]
amount=amount_unit * q or 1.0
@@ -1443,7 +1615,7 @@ class stock_move(osv.osv):
ir_sequence_obj = self.pool.get('ir.sequence')
sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
if not sequence:
- raise wizard.except_wizard(_('Error!'), _('No production sequence defined'))
+ raise osv.except_osv(_('Error!'), _('No production sequence defined'))
prodlot_id = prodlot_obj.create(cr, uid, {'name': sequence, 'prefix': prefix}, {'product_id': product_id})
prodlot = prodlot_obj.browse(cr, uid, prodlot_id)
ref = ','.join(map(lambda x:str(x),ids))
@@ -1452,6 +1624,7 @@ class stock_move(osv.osv):
prodlot_obj.write(cr, uid, [prodlot_id], {'ref': ref})
return prodlot_id
+
def action_scrap(self, cr, uid, ids, quantity, location_id, context=None):
'''
Move the scrap/damaged product into scrap location
@@ -1481,7 +1654,7 @@ class stock_move(osv.osv):
new_move = self.copy(cr, uid, move.id, default_val)
#self.write(cr, uid, [new_move], {'move_history_ids':[(4,move.id)]}) #TODO : to track scrap moves
res += [new_move]
- self.action_done(cr, uid, res)
+ self.action_done(cr, uid, res)
return res
def action_split(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, with_lot=True, context=None):
@@ -1616,7 +1789,134 @@ class stock_move(osv.osv):
self.write(cr, uid, [move.id], update_val)
self.action_done(cr, uid, res)
- return res
+ return res
+
+ def do_partial(self, cr, uid, ids, partial_datas, context={}):
+ """
+ @ partial_datas : dict. contain details of partial picking
+ like partner_id, address_id, delivery_date, delivery moves with product_id, product_qty, uom
+ """
+ res = {}
+ picking_obj = self.pool.get('stock.picking')
+ delivery_obj = self.pool.get('stock.delivery')
+ product_obj = self.pool.get('product.product')
+ currency_obj = self.pool.get('res.currency')
+ users_obj = self.pool.get('res.users')
+ uom_obj = self.pool.get('product.uom')
+ price_type_obj = self.pool.get('product.price.type')
+ sequence_obj = self.pool.get('ir.sequence')
+ wf_service = netsvc.LocalService("workflow")
+ partner_id = partial_datas.get('partner_id', False)
+ address_id = partial_datas.get('address_id', False)
+ delivery_date = partial_datas.get('delivery_date', False)
+
+ new_moves = []
+
+ complete, too_many, too_few = [], [], []
+ move_product_qty = {}
+ for move in self.browse(cr, uid, ids, context=context):
+ if move.state in ('done', 'cancel'):
+ continue
+ partial_data = partial_datas.get('move%s'%(move.id), False)
+ assert partial_data, _('Do not Found Partial data of Stock Move Line :%s' %(move.id))
+ product_qty = partial_data.get('product_qty',0.0)
+ move_product_qty[move.id] = product_qty
+ product_uom = partial_data.get('product_uom',False)
+ product_price = partial_data.get('product_price',0.0)
+ product_currency = partial_data.get('product_currency',False)
+ if move.product_qty == product_qty:
+ complete.append(move)
+ elif move.product_qty > product_qty:
+ too_few.append(move)
+ else:
+ too_many.append(move)
+
+ # Average price computation
+ if (move.picking_id.type == 'in') and (move.product_id.cost_method == 'average'):
+ product = product_obj.browse(cr, uid, move.product_id.id)
+ user = users_obj.browse(cr, uid, uid)
+ context['currency_id'] = move.company_id.currency_id.id
+ qty = uom_obj._compute_qty(cr, uid, product_uom, product_qty, product.uom_id.id)
+ pricetype = False
+ if user.company_id.property_valuation_price_type:
+ pricetype = price_type_obj.browse(cr, uid, user.company_id.property_valuation_price_type.id)
+ if pricetype and qty > 0:
+ new_price = currency_obj.compute(cr, uid, product_currency,
+ user.company_id.currency_id.id, product_price)
+ new_price = uom_obj._compute_price(cr, uid, product_uom, new_price,
+ product.uom_id.id)
+ if product.qty_available <= 0:
+ new_std_price = new_price
+ else:
+ # Get the standard price
+ amount_unit = product.price_get(pricetype.field, context)[product.id]
+ new_std_price = ((amount_unit * product.qty_available)\
+ + (new_price * qty))/(product.qty_available + qty)
+
+ # Write the field according to price type field
+ product_obj.write(cr, uid, [product.id],
+ {pricetype.field: new_std_price})
+ self.write(cr, uid, [move.id], {'price_unit': new_price})
+
+ for move in too_few:
+ product_qty = move_product_qty[move.id]
+ if product_qty != 0:
+ new_move = self.copy(cr, uid, move.id,
+ {
+ 'product_qty' : product_qty,
+ 'product_uos_qty': product_qty,
+ 'picking_id' : move.picking_id.id,
+ 'state': 'assigned',
+ 'move_dest_id': False,
+ 'price_unit': move.price_unit,
+ })
+ complete.append(self.browse(cr, uid, new_move))
+ self.write(cr, uid, move.id,
+ {
+ 'product_qty' : move.product_qty - product_qty,
+ 'product_uos_qty':move.product_qty - product_qty,
+ })
+
+
+ for move in too_many:
+ self.write(cr, uid, move.id,
+ {
+ 'product_qty': product_qty,
+ 'product_uos_qty': product_qty
+ })
+ complete.append(move)
+
+ for move in complete:
+ self.action_done(cr, uid, [move.id])
+
+ # TOCHECK : Done picking if all moves are done
+ cr.execute("""
+ SELECT move.id FROM stock_picking pick
+ RIGHT JOIN stock_move move ON move.picking_id = pick.id AND move.state = %s
+ WHERE pick.id = %s""",
+ ('done', move.picking_id.id))
+ res = cr.fetchall()
+ if len(res) == len(move.picking_id.move_lines):
+ picking_obj.action_move(cr, uid, [move.picking_id.id])
+ wf_service.trg_validate(uid, 'stock.picking', move.picking_id.id, 'button_done', cr)
+
+ ref = {}
+ done_move_ids = []
+ for move in complete:
+ done_move_ids.append(move.id)
+ if move.picking_id.id not in ref:
+ delivery_id = delivery_obj.create(cr, uid, {
+ 'partner_id': partner_id,
+ 'address_id': address_id,
+ 'date': delivery_date,
+ 'name' : move.picking_id.name,
+ 'picking_id': move.picking_id.id
+ }, context=context)
+ ref[move.picking_id.id] = delivery_id
+ delivery_obj.write(cr, uid, ref[move.picking_id.id], {
+ 'move_delivered' : [(4,move.id)]
+ })
+ return done_move_ids
stock_move()
@@ -1638,10 +1938,12 @@ class stock_inventory(osv.osv):
'state': lambda *a: 'draft',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', context=c)
}
+
+
+ def _inventory_line_hook(self, cr, uid, inventory_line, move_vals):
+ '''Creates a stock move from an inventory line'''
+ return self.pool.get('stock.move').create(cr, uid, move_vals)
- #
- # Update to support tracking
- #
def action_done(self, cr, uid, ids, context=None):
for inv in self.browse(cr, uid, ids):
move_ids = []
@@ -1681,7 +1983,7 @@ class stock_inventory(osv.osv):
'prodlot_id': lot_id,
'product_qty': line.product_qty
})
- move_ids.append(self.pool.get('stock.move').create(cr, uid, value))
+ move_ids.append(self._inventory_line_hook(cr, uid, line, value))
if len(move_ids):
self.pool.get('stock.move').action_done(cr, uid, move_ids,
context=context)
@@ -1713,8 +2015,10 @@ class stock_inventory_line(osv.osv):
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
'product_qty': fields.float('Quantity'),
'company_id': fields.related('inventory_id','company_id',type='many2one',relation='res.company',string='Company',store=True),
- 'prod_lot_id': fields.many2one('stock.production.lot', 'Production Lot', domain="[('product_id','=',product_id)]")
+ 'prod_lot_id': fields.many2one('stock.production.lot', 'Production Lot', domain="[('product_id','=',product_id)]"),
+ 'state': fields.related('inventory_id','state',type='char',string='State',readonly=True),
}
+
def on_change_product_id(self, cr, uid, ids, location_id, product, uom=False):
if not product:
return {}
@@ -1746,7 +2050,7 @@ class stock_warehouse(osv.osv):
_defaults = {
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', context=c),
}
-stock_warehouse()
+stock_warehouse()
# Move wizard :
diff --git a/addons/stock/stock_report.xml b/addons/stock/stock_report.xml
index d72106eead6..7b8d9eb13b3 100644
--- a/addons/stock/stock_report.xml
+++ b/addons/stock/stock_report.xml
@@ -1,19 +1,11 @@
-
-
-
-
-
-
-
-
diff --git a/addons/stock/stock_sequence.xml b/addons/stock/stock_sequence.xml
index d002b62ae83..9c5083d13b4 100644
--- a/addons/stock/stock_sequence.xml
+++ b/addons/stock/stock_sequence.xml
@@ -2,18 +2,59 @@
-
- Picking
- stock.picking
+
+ Picking IN
+ stock.picking.in
+
+
+
+ Picking OUT
+ stock.picking.out
+
+
+
+ Picking INT
+ stock.picking.internal
-
- Picking
- stock.picking
- PACK
+
+ Picking Delivery
+ stock.picking.delivery
+
+
+
+
+
+ Picking IN
+ stock.picking.in
+ IN/
+ 5
+
+
+
+ Picking OUT
+ stock.picking.out
+ OUT/
+ 5
+
+
+
+ Picking INT
+ stock.picking.internal
+ INT/
+ 5
+
+
+
+ Picking DLV
+ stock.picking.delivery
+ DLV/
+ 5
-
+ string="Downstream traceability"/-->
-
+ string="Upstream traceability"/-->
-
+ string="Downstream traceability"/-->
-
+
stock.location.form
@@ -413,6 +426,7 @@
+
stock.location.treestock.location
@@ -524,7 +538,7 @@
new{'action_id': active_id}
-
+ stock.picking.calendar
@@ -551,7 +565,7 @@
-
+
@@ -571,6 +585,18 @@
+
+
@@ -585,55 +611,55 @@
-
+
-
+ name="%(stock.track_line)d"
+ string="Split in production lots"
+ type="action" icon="gtk-justify-fill"
+ states="draft,waiting,confirmed,assigned" />
+
+
@@ -646,7 +672,7 @@
-
+
@@ -661,12 +687,11 @@
-
+
-
stock.picking.list.selectstock.picking
@@ -683,7 +708,8 @@
-
+
+
@@ -706,7 +732,7 @@
-
+
@@ -726,6 +752,18 @@
+
+
@@ -740,50 +778,49 @@
-
+
-
+ name="%(stock.track_line)d"
+ string="Split in production lots"
+ type="action" icon="gtk-justify-fill"
+ states="draft,waiting,confirmed,assigned" />
+
@@ -796,7 +833,7 @@
-
+
@@ -811,7 +848,7 @@
-
+
@@ -831,7 +868,8 @@
-
+
+
@@ -888,11 +926,8 @@
-
+
-
@@ -911,6 +946,18 @@
+
+
@@ -925,53 +972,53 @@
-
+
-
+ name="%(stock.track_line)d"
+ string="Split in production lots"
+ type="action" icon="gtk-justify-fill"
+ states="draft,waiting,confirmed,assigned" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -983,10 +1030,13 @@
-
+
+
+
+
@@ -1003,25 +1053,26 @@
-
+ stock.picking.out.searchstock.pickingsearch
-
+
-
-
+
+
+
-
-
+
+
@@ -1053,7 +1104,7 @@
calendar
-
+
stock.picking.in.tree
@@ -1069,7 +1120,7 @@
-
+
@@ -1090,6 +1141,18 @@
+
+
@@ -1102,50 +1165,49 @@
-
-
+ name="%(stock.track_line)d"
+ string="Split in production lots"
+ type="action" icon="gtk-justify-fill"
+ states="draft,waiting,confirmed,assigned" />
+
+
@@ -1297,6 +1364,7 @@
+
@@ -1317,17 +1385,17 @@
-
+
-
+
-
+
@@ -1359,7 +1427,8 @@
-
+
+
@@ -1398,11 +1467,11 @@
- ====================================
+ ====================================
Reception Picking (By Stock Move)
====================================
-
+ stock.move.tree2stock.movetree
@@ -1410,7 +1479,7 @@
-
+
@@ -1419,89 +1488,91 @@
-
+
-
+ stock.move.form2stock.moveform
-
+ stock.move.search2stock.movesearch
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
-
+ Incoming Productsstock.moveir.actions.act_window
@@ -1513,17 +1584,17 @@
-
- tree
-
-
-
+
+ tree
+
+
+
-
- form
-
-
-
+
+ form
+
+
+
@@ -1606,82 +1677,132 @@
tree_but_openstock.locationOpen Products
-
+
-
-
-
- Products To Received
- report.products.to.received.planned
- tree
-
-
-
-
-
-
-
-
+
+
+
+ Products To Received
+ report.products.to.received.planned
+ tree
+
+
+
+
+
+
+
+
-
- Products To Received
- report.products.to.received.planned
- graph
-
-
-
-
-
-
-
-
+
+ Products To Received
+ report.products.to.received.planned
+ graph
+
+
+
+
+
+
+
+
-
- Number of Products to receive Vs planned
- report.products.to.received.planned
- ir.actions.act_window
- form
- graph,tree
-
-
+
+ Number of Products to receive Vs planned
+ report.products.to.received.planned
+ ir.actions.act_window
+ form
+ graph,tree
+
+
-
-
- Delivery Products
- report.delivery.products.planned
- tree
-
-
-
-
-
-
-
-
+
+
+ Delivery Products
+ report.delivery.products.planned
+ tree
+
+
+
+
+
+
+
+
-
- Delivery Products
- report.delivery.products.planned
- graph
-
-
-
-
-
-
-
-
-
-
- Delivery Products Vs Planned
- report.delivery.products.planned
- ir.actions.act_window
- form
- graph,tree
-
-
+
+ Delivery Products
+ report.delivery.products.planned
+ graph
+
+
+
+
+
+
+
+
+
+ Delivery Products Vs Planned
+ report.delivery.products.planned
+ ir.actions.act_window
+ form
+ graph,tree
+
+
+
+
+ stock.delivery.from
+ stock.delivery
+ form
+
+
+
+
+
+ stock.delivery.tree
+ stock.delivery
+ tree
+
+
+
+
+
+
+
+
+
+
+
+ Delivered Products
+ stock.delivery
+ ir.actions.act_window
+ form
+ form,tree
+
+
+
+
diff --git a/addons/stock/stock_wizard.xml b/addons/stock/stock_wizard.xml
index 5db1269d42c..f9a2dfc93b0 100644
--- a/addons/stock/stock_wizard.xml
+++ b/addons/stock/stock_wizard.xml
@@ -13,20 +13,23 @@
multi="True"
name="stock.move.split"
string="Split move line"/>
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+ id="wizard_merge_inventory"/-->
-
-
-
-
-
+
diff --git a/addons/stock/wizard/__init__.py b/addons/stock/wizard/__init__.py
index 6a15449a151..6f5a83a07b3 100644
--- a/addons/stock/wizard/__init__.py
+++ b/addons/stock/wizard/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,24 +15,26 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
import stock_traceability
-import wizard_partial_picking
-import wizard_partial_move
+import stock_move
+import stock_partial_picking
+import stock_partial_move
import wizard_picking_make
import wizard_replacement
import wizard_return
import wizard_split_lot_line
import wizard_ups
-import wizard_invoice_onshipping
-import wizard_location_product
-import wizard_inventory
-import wizard_split_inventory_lots
-import inventory_merge_zero
import inventory_merge
+import stock_inventory_set_stock_zero
+import stock_fill_inventory
+import stock_inventory_line_split
+import stock_invoice_onshipping
+import stock_location_product
+import stock_change_standard_price
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/inventory_merge.py b/addons/stock/wizard/inventory_merge.py
deleted file mode 100644
index 7be8eb2b3e3..00000000000
--- a/addons/stock/wizard/inventory_merge.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-import wizard
-import pooler
-from tools.translate import _
-
-
-_form = """
-
-"""
-
-
-def do_merge(self, cr, uid, data, context):
-
- invent_obj = pooler.get_pool(cr.dbname).get('stock.inventory')
- invent_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line')
-
- invent_lines = {}
-
- if len(data['ids']) < 2:
- raise wizard.except_wizard(_('Warning'),
- _('Please select at least two inventories.'))
-
-
-
- for inventory in invent_obj.browse(cr, uid, data['ids'], context=context):
- if inventory.state == "done":
- raise wizard.except_wizard(_('Warning'),
- _('Merging is only allowed on draft inventories.'))
-
- for line in inventory.inventory_line_id:
- key = (line.location_id.id, line.product_id.id, line.product_uom.id)
- if key in invent_lines:
- invent_lines[key] += line.product_qty
- else:
- invent_lines[key] = line.product_qty
-
-
- new_invent = invent_obj.create(cr, uid, {
- 'name': 'Merged inventory'
- }, context=context)
-
- for key, quantity in invent_lines.items():
- invent_line_obj.create(cr, uid, {
- 'inventory_id': new_invent,
- 'location_id': key[0],
- 'product_id': key[1],
- 'product_uom': key[2],
- 'product_qty': quantity,
- })
-
- return {}
-
-
-class merge_inventory(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : _form,
- 'fields' : {},
- 'state' : [('end', 'Cancel', 'gtk-cancel'),
- ('merge', 'Yes', 'gtk-apply', True) ]}
- },
- 'merge' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action': do_merge,
- 'state' : 'end'}
- },
- }
-merge_inventory("inventory.merge")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/stock/wizard/inventory_merge_zero.py b/addons/stock/wizard/inventory_merge_zero.py
deleted file mode 100644
index 3aa2b1e9fd9..00000000000
--- a/addons/stock/wizard/inventory_merge_zero.py
+++ /dev/null
@@ -1,94 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-
-import wizard
-import pooler
-from tools.translate import _
-
-
-_form = """
-
-"""
-_inventory_fields = {
- 'location_id' : {
- 'string':'Location',
- 'type':'many2one',
- 'relation':'stock.location',
- 'required':True
- }
-}
-
-
-def do_merge(self, cr, uid, data, context):
- invent_obj = pooler.get_pool(cr.dbname).get('stock.inventory')
- invent_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line')
- prod_obj = pooler.get_pool(cr.dbname).get('product.product')
-
- if len(data['ids']) <> 1:
- raise wizard.except_wizard(_('Warning'),
- _('Please select one and only one inventory !'))
-
- loc = str(data['form']['location_id'])
-
- cr.execute('select distinct location_id,product_id from stock_inventory_line where inventory_id=%s', (data['ids'][0],))
- inv = cr.fetchall()
- cr.execute('select distinct product_id from stock_move where location_dest_id=%s or location_id=%s',(loc,loc,))
- stock = cr.fetchall()
- for s in stock:
- if (loc,s[0]) not in inv:
- p = prod_obj.browse(cr, uid, s[0])
- invent_line_obj.create(cr, uid, {
- 'inventory_id': data['ids'][0],
- 'location_id': loc,
- 'product_id': s[0],
- 'product_uom': p.uom_id.id,
- 'product_qty': 0.0,
- })
- return {}
-
-
-class merge_inventory(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : _form,
- 'fields' : _inventory_fields,
- 'state' : [('end', 'Cancel', 'gtk-cancel'),
- ('merge', 'Set to Zero', 'gtk-apply', True) ]}
- },
- 'merge' : {
- 'actions' : [],
- 'result' : {'type' : 'action',
- 'action': do_merge,
- 'state' : 'end'}
- },
- }
-merge_inventory("inventory.merge.stock.zero")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/stock/wizard/stock_change_standard_price.py b/addons/stock/wizard/stock_change_standard_price.py
new file mode 100644
index 00000000000..8e2ec5f555e
--- /dev/null
+++ b/addons/stock/wizard/stock_change_standard_price.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+
+class change_standard_price(osv.osv_memory):
+ _name = "stock.change.standard.price"
+ _description = "Change Standard Price"
+ _columns = {
+ 'new_price': fields.float('Price', required=True),
+ 'stock_account_input':fields.many2one('account.account', 'Stock Input Account'),
+ 'stock_account_output':fields.many2one('account.account', 'Stock Output Account'),
+ 'stock_journal':fields.many2one('account.journal', 'Stock journal', required=True),
+ 'enable_stock_in_out_acc':fields.boolean('Enable Related Account',),
+ }
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ product_obj = self.pool.get('product.product').browse(cr, uid, context.get('active_id', False))
+ res = super(change_standard_price, self).default_get(cr, uid, fields, context=context)
+
+ stock_input_acc = product_obj.property_stock_account_input and product_obj.property_stock_account_input.id or False
+ if not stock_input_acc:
+ stock_input_acc = product_obj.categ_id.property_stock_account_input_categ and product_obj.categ_id.property_stock_account_input_categ.id or False
+
+ stock_output_acc = product_obj.property_stock_account_output and product_obj.property_stock_account_output.id or False
+ if not stock_output_acc:
+ stock_output_acc = product_obj.categ_id.property_stock_account_output_categ and product_obj.categ_id.property_stock_account_output_categ.id or False
+
+ price = product_obj.standard_price
+ journal_id = product_obj.categ_id.property_stock_journal and product_obj.categ_id.property_stock_journal.id or False
+
+ if 'new_price' in fields:
+ res.update({'new_price': price})
+ if 'stock_account_input' in fields:
+ res.update({'stock_account_input': stock_input_acc})
+ if 'stock_account_output' in fields:
+ res.update({'stock_account_output': stock_output_acc})
+ if 'stock_journal' in fields:
+ res.update({'stock_journal': journal_id})
+ if 'enable_stock_in_out_acc' in fields:
+ res.update({'enable_stock_in_out_acc': True})
+
+
+ return res
+
+ def onchange_price(self, cr, uid, ids, new_price, context = {}):
+ product_obj = self.pool.get('product.product').browse(cr, uid, context.get('active_id', False))
+ price = product_obj.standard_price
+ diff = price - new_price
+ if diff > 0 :
+ return {'value' : {'enable_stock_in_out_acc':True}}
+ else :
+ return {'value' : {'enable_stock_in_out_acc':False}}
+
+ def change_price(self, cr, uid, ids, context):
+ """
+ Changes the Standard Price of Product.
+ And creates an account move accordingly.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ rec_id = context and context.get('active_id', False)
+ assert rec_id, _('Active ID is not set in Context')
+ prod_obj = self.pool.get('product.product')
+ res = self.browse(cr, uid, ids)
+ datas = {
+ 'new_price' : res[0].new_price,
+ 'stock_output_account' : res[0].stock_account_output.id,
+ 'stock_input_account' : res[0].stock_account_input.id,
+ 'stock_journal' : res[0].stock_journal.id
+ }
+ prod_obj.do_change_standard_price(cr, uid, [rec_id], datas, context)
+ return {}
+
+change_standard_price()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_change_standard_price_view.xml b/addons/stock/wizard/stock_change_standard_price_view.xml
new file mode 100644
index 00000000000..ffca108390d
--- /dev/null
+++ b/addons/stock/wizard/stock_change_standard_price_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ Change Standard Price
+ stock.change.standard.price
+ form
+
+
+
+
+
+
+ Change Standard Price
+ ir.actions.act_window
+ stock.change.standard.price
+ form
+ form
+
+ new
+
+
+
+
diff --git a/addons/stock/wizard/stock_fill_inventory.py b/addons/stock/wizard/stock_fill_inventory.py
new file mode 100644
index 00000000000..c96638c8d52
--- /dev/null
+++ b/addons/stock/wizard/stock_fill_inventory.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.misc import UpdateableStr, UpdateableDict
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import wizard
+
+
+class stock_fill_inventory(osv.osv_memory):
+ _name = "stock.fill.inventory"
+ _description = "Fill Inventory"
+ _columns = {
+ 'location_id': fields.many2one('stock.location', 'Location', required=True),
+ 'recursive': fields.boolean("Include all childs for the location"),
+ }
+
+ def fill_inventory(self, cr, uid, ids, context):
+ """
+ To fill stock inventory according to products available in the selected locations..
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ inventory_line_obj = self.pool.get('stock.inventory.line')
+ location_obj = self.pool.get('stock.location')
+ product_obj = self.pool.get('product.product')
+ stock_location_obj = self.pool.get('stock.location')
+ for fill_inventory in self.browse(cr, uid, ids):
+ res = {}
+ res_location = {}
+ if fill_inventory.recursive :
+ location_ids = location_obj.search(cr, uid, [('location_id',
+ 'child_of', fill_inventory.location_id.id)])
+ for location in location_ids :
+ res = location_obj._product_get(cr, uid, location)
+ res_location[location] = res
+ else:
+ context.update({'compute_child': False})
+ res = location_obj._product_get(cr, uid,
+ fill_inventory.location_id.id, context=context)
+ res_location[fill_inventory.location_id.id] = res
+
+ product_ids = []
+ for location in res_location.keys():
+ res = res_location[location]
+ for product_id in res.keys():
+ prod = product_obj.browse(cr, uid, [product_id])[0]
+ uom = prod.uom_id.id
+ context.update({'uom': uom})
+ amount = stock_location_obj._product_get(cr, uid,
+ location, [product_id], context=context)[product_id]
+
+ if(amount):
+ line_ids=inventory_line_obj.search(cr, uid,
+ [('inventory_id', '=', context['active_ids']),
+ ('location_id', '=', location),
+ ('product_id', '=', product_id),
+ ('product_uom', '=', uom),
+ ('product_qty', '=', amount)])
+ if not len(line_ids):
+ inventory_line = {'inventory_id': context['active_ids'][0],
+ 'location_id': location,
+ 'product_id': product_id,
+ 'product_uom': uom,
+ 'product_qty': amount}
+ inventory_line_obj.create(cr, uid, inventory_line)
+ product_ids.append(product_id)
+
+ if(len(product_ids) == 0):
+ raise osv.except_osv(_('Message !'), _('No product in this location.'))
+ return {}
+
+stock_fill_inventory()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_fill_inventory_view.xml b/addons/stock/wizard/stock_fill_inventory_view.xml
new file mode 100644
index 00000000000..ef95a3bf447
--- /dev/null
+++ b/addons/stock/wizard/stock_fill_inventory_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ Fill Inventory
+ stock.fill.inventory
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_inventory_line_split.py b/addons/stock/wizard/stock_inventory_line_split.py
new file mode 100644
index 00000000000..9fe71582c7f
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_line_split.py
@@ -0,0 +1,117 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.misc import UpdateableStr, UpdateableDict
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import wizard
+
+class stock_inventory_line_split(osv.osv_memory):
+ _inherit = "stock.move.split"
+ _name = "stock.inventory.line.split"
+ _description = "Split inventory lines"
+
+
+ def default_get(self, cr, uid, fields, context):
+ """
+ To check the availability of production lot.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+ record_id = context and context.get('active_id',False)
+ res = super(stock_inventory_line_split, self).default_get(cr, uid, fields, context=context)
+ line= self.pool.get('stock.inventory.line').browse(cr, uid, record_id)
+ if 'product_id' in fields:
+ res.update({'product_id':line.product_id.id})
+ return res
+
+ def split(self, cr, uid, ids, line_ids, context=None):
+ """
+ To split stock inventory lines according to production lot
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param line_ids: the ID or list of IDs of inventory lines we want to split
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ prodlot_obj = self.pool.get('stock.production.lot')
+ ir_sequence_obj = self.pool.get('ir.sequence')
+ line_obj = self.pool.get('stock.inventory.line')
+ new_line = []
+ for data in self.browse(cr, uid, ids):
+ for inv_line in line_obj.browse(cr, uid, line_ids):
+ line_qty = inv_line.product_qty
+ quantity_rest = inv_line.product_qty
+ new_line = []
+ for line in data.line_ids:
+ quantity = line.quantity
+
+
+ if quantity <= 0 or line_qty == 0:
+ continue
+ quantity_rest -= quantity
+ if quantity_rest <= 0:
+ quantity_rest = quantity
+ break
+ default_val = {
+ 'product_qty': quantity,
+ }
+ current_line = line_obj.copy(cr, uid, inv_line.id, default_val)
+ new_line.append(current_line)
+ prodlot_id = False
+ if line.use_exist and line.name:
+ prodlot_id = prodlot_obj.search(cr, uid, [('prefix','=',line.name),('product_id','=',data.product_id.id)])
+ if prodlot_id:
+ prodlot_id = prodlot_id[0]
+ if not prodlot_id:
+ sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
+ prodlot_id = prodlot_obj.create(cr, uid, {'name': sequence, 'prefix' : line.name},
+ {'product_id': data.product_id.id})
+ line_obj.write(cr, uid, [current_line], {'prod_lot_id': prodlot_id})
+ prodlot = prodlot_obj.browse(cr, uid, prodlot_id)
+
+ update_val = {}
+ if quantity_rest > 0:
+ update_val['product_qty'] = quantity_rest
+ line_obj.write(cr, uid, [inv_line.id], update_val)
+
+
+ return new_line
+stock_inventory_line_split()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock/wizard/stock_inventory_line_split_view.xml b/addons/stock/wizard/stock_inventory_line_split_view.xml
new file mode 100644
index 00000000000..42b8a4648da
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_line_split_view.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+ Split inventory lines
+ stock.inventory.line.split
+ form
+
+
+
+
+
+
+
+ Split inventory lines
+ ir.actions.act_window
+ stock.inventory.line.split
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/stock/wizard/stock_inventory_merge.py b/addons/stock/wizard/stock_inventory_merge.py
new file mode 100644
index 00000000000..64620054ff8
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_merge.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.misc import UpdateableStr, UpdateableDict
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import wizard
+
+class stock_inventory_merge(osv.osv_memory):
+ _name = "stock.inventory.merge"
+ _description = "Merge Inventory"
+ _columns = {
+
+ }
+
+ def do_merge(self, cr, uid, ids, context):
+
+ invent_obj = self.pool.get('stock.inventory')
+ invent_line_obj = self.pool.get('stock.inventory.line')
+
+ invent_lines = {}
+
+ if len(context['active_ids']) < 2:
+ raise osv.except_osv(_('Warning'),
+ _('Please select at least two inventories.'))
+
+
+
+ for inventory in invent_obj.browse(cr, uid, context['active_ids'], context=context):
+ print"-------active-ids----",context['active_ids']
+ if inventory.state == "done":
+ raise osv.except_osv(_('Warning'),
+ _('Merging is only allowed on draft inventories.'))
+
+ for line in inventory.inventory_line_id:
+ key = (line.location_id.id, line.product_id.id, line.product_uom.id)
+ if key in invent_lines:
+ invent_lines[key] += line.product_qty
+ else:
+ invent_lines[key] = line.product_qty
+
+
+ new_invent = invent_obj.create(cr, uid, {
+ 'name': 'Merged inventory'
+ }, context=context)
+
+ for key, quantity in invent_lines.items():
+ invent_line_obj.create(cr, uid, {
+ 'inventory_id': new_invent,
+ 'location_id': key[0],
+ 'product_id': key[1],
+ 'product_uom': key[2],
+ 'product_qty': quantity,
+ })
+
+ return {}
+
+stock_inventory_merge()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock/wizard/stock_inventory_set_stock_zero.py b/addons/stock/wizard/stock_inventory_set_stock_zero.py
new file mode 100644
index 00000000000..63296b69875
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_set_stock_zero.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.misc import UpdateableStr, UpdateableDict
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import wizard
+
+
+class inventory_set_stock_zero(osv.osv_memory):
+ _name = "stock.inventory.set.stock.zero"
+ _description = "Set Stock to 0"
+ _columns = {
+ 'location_id': fields.many2one('stock.location', 'Location', required=True),
+ }
+
+ def do_merge(self, cr, uid, ids, context):
+ """
+ To set stock to Zero
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
+ invent_obj = pooler.get_pool(cr.dbname).get('stock.inventory')
+ invent_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line')
+ prod_obj = pooler.get_pool(cr.dbname).get('product.product')
+
+ if len(context['active_ids']) <> 1:
+ raise osv.except_osv(_('Warning'),
+ _('Please select one and only one inventory !'))
+ for id in ids:
+ datas = self.read(cr, uid, id)
+ loc = str(datas['location_id'])
+
+ cr.execute('select distinct location_id,product_id \
+ from stock_inventory_line \
+ where inventory_id=%s', (context['active_id'],))
+ inv = cr.fetchall()
+ cr.execute('select distinct product_id from stock_move where \
+ location_dest_id=%s or location_id=%s', (loc, loc,))
+ stock = cr.fetchall()
+ for s in stock:
+ if (loc, s[0]) not in inv:
+ p = prod_obj.browse(cr, uid, s[0])
+ invent_line_obj.create(cr, uid, {
+ 'inventory_id': context['active_id'],
+ 'location_id': loc,
+ 'product_id': s[0],
+ 'product_uom': p.uom_id.id,
+ 'product_qty': 0.0,
+ })
+ return {}
+
+inventory_set_stock_zero()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_inventory_set_stock_zero_view.xml b/addons/stock/wizard/stock_inventory_set_stock_zero_view.xml
new file mode 100644
index 00000000000..0ee84d2045d
--- /dev/null
+++ b/addons/stock/wizard/stock_inventory_set_stock_zero_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Set Stock to Zero
+ stock.inventory.set.stock.zero
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_invoice_onshipping.py b/addons/stock/wizard/stock_invoice_onshipping.py
new file mode 100644
index 00000000000..22e48631f8b
--- /dev/null
+++ b/addons/stock/wizard/stock_invoice_onshipping.py
@@ -0,0 +1,135 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.misc import UpdateableStr, UpdateableDict
+from tools.translate import _
+import netsvc
+import pooler
+import time
+import wizard
+
+class stock_invoice_onshipping(osv.osv_memory):
+ _name = "stock.invoice.onshipping"
+ _description = "Stock Invoice Onshipping"
+ _columns = {
+ 'journal_id': fields.many2one('account.journal', 'Destination Journal', required=True),
+ 'group': fields.boolean("Group by partner"),
+ 'type': fields.selection([('out_invoice', 'Customer Invoice'),
+ ('in_invoice', 'Supplier Invoice'),
+ ('out_refund', 'Customer Refund'),
+ ('in_refund', 'Supplier Refund')] , 'Type', required=True),
+ 'invoice_date': fields.date('Invoiced date'),
+ }
+
+ def _get_type(self, cr, uid, context):
+ """
+ To get invoice type
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return: invoice type
+
+ """
+ picking_obj = self.pool.get('stock.picking')
+ usage = 'customer'
+ pick = picking_obj.browse(cr, uid, context['active_id'])
+ if pick.invoice_state == 'invoiced':
+ raise osv.except_osv(_('UserError'), _('Invoice is already created.'))
+ if pick.invoice_state == 'none':
+ raise osv.except_osv(_('UserError'), _('Invoice cannot be created from Picking.'))
+ if pick.move_lines:
+ usage = pick.move_lines[0].location_id.usage
+
+ if pick.type == 'out' and usage == 'supplier':
+ type = 'in_refund'
+ elif pick.type == 'out' and usage == 'customer':
+ type = 'out_invoice'
+ elif pick.type == 'in' and usage == 'supplier':
+ type = 'in_invoice'
+ elif pick.type == 'in' and usage == 'customer':
+ type = 'out_refund'
+ else:
+ type = 'out_invoice'
+ return type
+
+ _defaults = {
+ 'type': _get_type,
+ }
+
+ def create_invoice(self, cr, uid, ids, context):
+ """
+ To create invoice
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return: invoice ids
+
+ """
+ result = []
+ picking_obj = self.pool.get('stock.picking')
+ mod_obj = self.pool.get('ir.model.data')
+ act_obj = self.pool.get('ir.actions.act_window')
+
+ for onshipdata_obj in self.read(cr, uid, ids, ['journal_id', 'group', 'type', 'invoice_date']):
+ if context.get('new_picking', False):
+ onshipdata_obj[id] = onshipdata_obj.new_picking
+ onshipdata_obj[ids] = onshipdata_obj.new_picking
+
+ type = onshipdata_obj['type']
+ context['date_inv'] = onshipdata_obj['invoice_date']
+ res = picking_obj.action_invoice_create(cr, uid,context['active_ids'],
+ journal_id = onshipdata_obj['journal_id'],
+ group=onshipdata_obj['group'],
+ type=type,
+ context=context)
+ invoice_ids = res.values()
+ if not invoice_ids:
+ raise osv.except_osv(_('Error'), _('Invoice is not created'))
+
+ if type == 'out_invoice':
+ xml_id = 'action_invoice_tree1'
+ elif type == 'in_invoice':
+ xml_id = 'action_invoice_tree2'
+ elif type == 'out_refund':
+ xml_id = 'action_invoice_tree3'
+ else:
+ xml_id = 'action_invoice_tree4'
+
+ result = mod_obj._get_id(cr, uid, 'account', xml_id)
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+ result = act_obj.read(cr, uid, id['res_id'])
+ result['res_id'] = invoice_ids
+ return result
+
+stock_invoice_onshipping()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock/wizard/stock_invoice_onshipping_view.xml b/addons/stock/wizard/stock_invoice_onshipping_view.xml
new file mode 100644
index 00000000000..62689019af0
--- /dev/null
+++ b/addons/stock/wizard/stock_invoice_onshipping_view.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ Stock Invoice Onshipping
+ stock.invoice.onshipping
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_location_product.py b/addons/stock/wizard/stock_location_product.py
new file mode 100755
index 00000000000..d3ee334bac0
--- /dev/null
+++ b/addons/stock/wizard/stock_location_product.py
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+
+class stock_location_product(osv.osv_memory):
+ _name = "stock.location.product"
+ _description = "Products by Location"
+ _columns = {
+ 'from_date': fields.datetime('From'),
+ 'to_date': fields.datetime('To'),
+ }
+
+ def action_open_window(self, cr, uid, ids, context):
+ """
+ To open location wise product information specific to given duration
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return: invoice type
+
+ """
+ mod_obj = self.pool.get('ir.model.data')
+ for location_obj in self.read(cr, uid, ids, ['from_date', 'to_date']):
+ return {
+ 'name': False,
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'product.product',
+ 'type': 'ir.actions.act_window',
+ 'context': {'location': context['active_id'],
+ 'from_date': location_obj['from_date'],
+ 'to_date': location_obj['to_date']},
+ 'domain': [('type', '<>', 'service')],
+ }
+
+stock_location_product()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_location_product_view.xml b/addons/stock/wizard/stock_location_product_view.xml
new file mode 100644
index 00000000000..518bc6eab35
--- /dev/null
+++ b/addons/stock/wizard/stock_location_product_view.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ Products by Location
+ stock.location.product
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/stock_wizard.py b/addons/stock/wizard/stock_move.py
similarity index 65%
rename from addons/stock/stock_wizard.py
rename to addons/stock/wizard/stock_move.py
index eb522c2e2fe..500b0bdc372 100644
--- a/addons/stock/stock_wizard.py
+++ b/addons/stock/wizard/stock_move.py
@@ -36,6 +36,18 @@ class stock_move_track(osv.osv_memory):
}
def track_lines(self, cr, uid, ids, context={}):
+ """
+ To track stock moves lines
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
datas = self.read(cr, uid, ids)[0]
move_obj = self.pool.get('stock.move')
move_obj._track_lines(cr, uid, context['active_id'], datas, context=context)
@@ -52,32 +64,46 @@ class stock_move_consume(osv.osv_memory):
'product_qty': fields.float('Quantity', required=True),
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
'location_id': fields.many2one('stock.location', 'Location', required=True)
- }
+ }
- def _get_product_id(self, cr, uid, context):
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ Get default values
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for default value
+ @param context: A standard dictionary
+
+ @return: default values of fields
+
+ """
+ res = super(stock_move_consume, self).default_get(cr, uid, fields, context=context)
move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
- return move.product_id.id
-
- def _get_product_qty(self, cr, uid, context):
- move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
- return move.product_qty
-
- def _get_product_uom(self, cr, uid, context):
- move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
- return move.product_uom.id
-
- def _get_location_id(self, cr, uid, context):
- move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
- return move.location_id.id
-
- _defaults = {
- 'product_id': _get_product_id,
- 'product_qty': _get_product_qty,
- 'product_uom': _get_product_uom,
- 'location_id': _get_location_id
- }
-
+ if 'product_id' in fields:
+ res.update({'product_id': move.product_id.id})
+ if 'product_uom' in fields:
+ res.update({'product_uom': move.product_uom.id})
+ if 'product_qty' in fields:
+ res.update({'product_qty': move.product_qty})
+ if 'location_id' in fields:
+ res.update({'location_id': move.location_id.id})
+ return res
+
def do_move_consume(self, cr, uid, ids, context={}):
+ """
+ To move consumed products
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
move_obj = self.pool.get('stock.move')
move_ids = context['active_ids']
for data in self.read(cr, uid, ids):
@@ -99,6 +125,18 @@ class stock_move_scrap(osv.osv_memory):
}
def move_scrap(self, cr, uid, ids, context={}):
+ """
+ To move scraped products
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
move_obj = self.pool.get('stock.move')
move_ids = context['active_ids']
for data in self.read(cr, uid, ids):
@@ -114,24 +152,60 @@ class split_in_production_lot(osv.osv_memory):
_name = "stock.move.split"
_description = "Split in Production lots"
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ Get default values
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for default value
+ @param context: A standard dictionary
+
+ @return: default values of fields
+
+ """
+
+ res = super(split_in_production_lot, self).default_get(cr, uid, fields, context=context)
+ move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
+ if 'product_id' in fields:
+ res.update({'product_id': move.product_id.id})
+ return res
+
_columns = {
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
'line_ids': fields.one2many('stock.move.split.lines', 'lot_id', 'Lots Number')
}
-
- def _get_product_id(self, cr, uid, context):
- move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
- return move.product_id.id
-
- _defaults = {
- 'product_id': _get_product_id,
- }
-
def split_lot(self, cr, uid, ids, context=None):
+ """
+ To split a lot
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+
+ @return:
+
+ """
self.split(cr, uid, ids, context.get('active_ids'), context=context)
return {}
def split(self, cr, uid, ids, move_ids, context=None):
+ """
+ To split stock moves into production lot
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: the ID or list of IDs if we want more than one
+ @param move_ids: the ID or list of IDs of stock move we want to split
+ @param context: A standard dictionary
+
+ @return:
+
+ """
prodlot_obj = self.pool.get('stock.production.lot')
ir_sequence_obj = self.pool.get('ir.sequence')
move_obj = self.pool.get('stock.move')
@@ -182,8 +256,6 @@ class split_in_production_lot(osv.osv_memory):
update_val['product_qty'] = quantity_rest
update_val['product_uos_qty'] = uos_qty_rest
move_obj.write(cr, uid, [move.id], update_val)
-
-
return new_move
split_in_production_lot()
diff --git a/addons/stock/stock_wizard_view.xml b/addons/stock/wizard/stock_move_view.xml
similarity index 100%
rename from addons/stock/stock_wizard_view.xml
rename to addons/stock/wizard/stock_move_view.xml
diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py
new file mode 100644
index 00000000000..bf8d1058aa2
--- /dev/null
+++ b/addons/stock/wizard/stock_partial_move.py
@@ -0,0 +1,217 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from service import web_services
+from tools.translate import _
+import netsvc
+import pooler
+import time
+
+class stock_partial_move(osv.osv_memory):
+ _name = "stock.partial.move"
+ _description = "Partial Move"
+ _columns = {
+ 'date': fields.datetime('Date', required=True),
+ 'partner_id': fields.many2one('res.partner',string="Partner", required=True),
+ 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True),
+
+ }
+
+ def view_init(self, cr, uid, fields_list, context=None):
+ res = super(stock_partial_move, self).view_init(cr, uid, fields_list, context=context)
+ move_obj = self.pool.get('stock.move')
+ if not context:
+ context={}
+ moveids = []
+ for m in move_obj.browse(cr, uid, context.get('active_ids', [])):
+ if m.state in ('done', 'cancel'):
+ continue
+ if 'move%s_product_id'%(m.id) not in self._columns:
+ self._columns['move%s_product_id'%(m.id)] = fields.many2one('product.product',string="Product")
+ if 'move%s_product_qty'%(m.id) not in self._columns:
+ self._columns['move%s_product_qty'%(m.id)] = fields.float("Quantity")
+ if 'move%s_product_uom'%(m.id) not in self._columns:
+ self._columns['move%s_product_uom'%(m.id)] = fields.many2one('product.uom',string="Product UOM")
+
+ if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
+ if 'move%s_product_price'%(m.id) not in self._columns:
+ self._columns['move%s_product_price'%(m.id)] = fields.float("Price")
+ if 'move%s_product_currency'%(m.id) not in self._columns:
+ self._columns['move%s_product_currency'%(m.id)] = fields.many2one('res.currency',string="Currency")
+ return res
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
+ result = super(stock_partial_move, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
+ move_obj = self.pool.get('stock.move')
+ move_ids = context.get('active_ids', False)
+ move_ids = move_obj.search(cr, uid, [('id','in',move_ids)])
+ _moves_arch_lst = """
"""
+ result['arch'] = _moves_arch_lst
+ result['fields'] = _moves_fields
+ return result
+
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ To get default values for the object.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
+
+ res = super(stock_partial_move, self).default_get(cr, uid, fields, context=context)
+ move_obj = self.pool.get('stock.move')
+ if not context:
+ context={}
+ moveids = []
+ if 'date' in fields:
+ res.update({'date': time.strftime('%Y-%m-%d %H:%M:%S')})
+ for m in move_obj.browse(cr, uid, context.get('active_ids', [])):
+ if m.state in ('done', 'cancel'):
+ continue
+ if 'move%s_product_id'%(m.id) in fields:
+ res['move%s_product_id'%(m.id)] = m.product_id.id
+ if 'move%s_product_qty'%(m.id) in fields:
+ res['move%s_product_qty'%(m.id)] = m.product_qty
+ if 'move%s_product_uom'%(m.id) in fields:
+ res['move%s_product_uom'%(m.id)] = m.product_uom.id
+
+ if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
+ price = 0
+ if hasattr(m, 'purchase_line_id') and m.purchase_line_id:
+ price = m.purchase_line_id.price_unit
+
+ currency = False
+ if hasattr(m.picking_id, 'purchase_id') and m.picking_id.purchase_id:
+ currency = m.picking_id.purchase_id.pricelist_id.currency_id.id
+
+ if 'move%s_product_price'%(m.id) in fields:
+ res['move%s_product_price'%(m.id)] = price
+ if 'move%s_product_currency'%(m.id) in fields:
+ res['move%s_product_currency'%(m.id)] = currency
+ return res
+
+ def do_partial(self, cr, uid, ids, context):
+ move_obj = self.pool.get('stock.move')
+ move_ids = context.get('active_ids', False)
+ partial = self.browse(cr, uid, ids[0], context)
+ partial_datas = {
+ 'partner_id' : partial.partner_id and partial.partner_id.id or False,
+ 'address_id' : partial.address_id and partial.address_id.id or False,
+ 'delivery_date' : partial.date
+ }
+ for m in move_obj.browse(cr, uid, move_ids):
+ if m.state in ('done', 'cancel'):
+ continue
+ partial_datas['move%s'%(m.id)] = {
+ 'product_id' : getattr(partial, 'move%s_product_id'%(m.id)).id,
+ 'product_qty' : getattr(partial, 'move%s_product_qty'%(m.id)),
+ 'product_uom' : getattr(partial, 'move%s_product_uom'%(m.id)).id
+ }
+
+ if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
+ partial_datas['move%s'%(m.id)].update({
+ 'product_price' : getattr(partial, 'move%s_product_price'%(m.id)),
+ 'product_currency': getattr(partial, 'move%s_product_currency'%(m.id)).id
+ })
+
+ res = move_obj.do_partial(cr, uid, move_ids, partial_datas, context=context)
+ return {}
+
+stock_partial_move()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock/wizard/stock_partial_move_view.xml b/addons/stock/wizard/stock_partial_move_view.xml
new file mode 100644
index 00000000000..30b7f3fca0e
--- /dev/null
+++ b/addons/stock/wizard/stock_partial_move_view.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ Delivery Product
+ stock.partial.move
+ form
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
new file mode 100644
index 00000000000..eba095718cd
--- /dev/null
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -0,0 +1,235 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+from service import web_services
+from tools.translate import _
+import netsvc
+import pooler
+import time
+
+class stock_partial_picking(osv.osv_memory):
+ _name = "stock.partial.picking"
+ _description = "Partial Picking"
+ _columns = {
+ 'date': fields.datetime('Date', required=True),
+ 'partner_id': fields.many2one('res.partner',string="Partner", required=True),
+ 'address_id': fields.many2one('res.partner.address', 'Delivery Address', help="Address where goods are to be delivered", required=True),
+
+ }
+
+ def view_init(self, cr, uid, fields_list, context=None):
+ res = super(stock_partial_picking, self).view_init(cr, uid, fields_list, context=context)
+ pick_obj = self.pool.get('stock.picking')
+ if not context:
+ context={}
+ moveids = []
+ for pick in pick_obj.browse(cr, uid, context.get('active_ids', [])):
+ for m in pick.move_lines:
+ if m.state in ('done', 'cancel'):
+ continue
+ if 'move%s_product_id'%(m.id) not in self._columns:
+ self._columns['move%s_product_id'%(m.id)] = fields.many2one('product.product',string="Product")
+ if 'move%s_product_qty'%(m.id) not in self._columns:
+ self._columns['move%s_product_qty'%(m.id)] = fields.float("Quantity")
+ if 'move%s_product_uom'%(m.id) not in self._columns:
+ self._columns['move%s_product_uom'%(m.id)] = fields.many2one('product.uom',string="Product UOM")
+
+ if (pick.type == 'in') and (m.product_id.cost_method == 'average'):
+ if 'move%s_product_price'%(m.id) not in self._columns:
+ self._columns['move%s_product_price'%(m.id)] = fields.float("Price")
+ if 'move%s_product_currency'%(m.id) not in self._columns:
+ self._columns['move%s_product_currency'%(m.id)] = fields.many2one('res.currency',string="Currency")
+ return res
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
+ result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
+ pick_obj = self.pool.get('stock.picking')
+ picking_ids = context.get('active_ids', False)
+ picking_ids = pick_obj.search(cr, uid, [('id', 'in', picking_ids)])
+ _moves_arch_lst = """
+
+
+
+
+
+
+
+
+ Stock traceability lot upstream
+ stock.traceability.lot.upstream
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stock traceability lot downstream
+ stock.traceability.lot.downstream
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/wizard_inventory.py b/addons/stock/wizard/wizard_inventory.py
deleted file mode 100644
index 42345353866..00000000000
--- a/addons/stock/wizard/wizard_inventory.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import time
-import wizard
-import ir
-import pooler
-from osv.osv import except_osv
-from osv import fields,osv
-import netsvc
-from tools.translate import _
-
-inventory_form = """
-
-
-
-
-
-
-
-
-"""
-
-inventory_fields = {
- 'location_id' : {
- 'string':'Location',
- 'type':'many2one',
- 'relation':'stock.location',
- 'required':True
- },
- 'recursive' : {'string':'Include all childs for the location', 'type':'boolean'}
-}
-
-
-
-def _fill_inventory(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- inventory_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line')
- location_obj = pooler.get_pool(cr.dbname).get('stock.location')
- res={}
- res_location={}
- if data['form']['recursive'] :
- location_ids = location_obj.search(cr, uid, [('location_id', 'child_of', [data['form']['location_id']])])
- for location in location_ids :
- res=location_obj._product_get(cr, uid, location)
- res_location[location]=res
- else:
- context.update({'compute_child':False})
- res=location_obj._product_get(cr, uid, data['form']['location_id'],context=context)
- res_location[data['form']['location_id']]=res
-
- product_ids=[]
- for location in res_location.keys():
- res=res_location[location]
- for product_id in res.keys():
- #product_ids.append(product_id)
- prod = pool.get('product.product').browse(cr, uid, [product_id])[0]
- uom = prod.uom_id.id
- context.update({'uom': uom})
- amount=pool.get('stock.location')._product_get(cr, uid, location, [product_id], context=context)[product_id]
-
- if(amount):
- line_ids=inventory_line_obj.search(cr,uid,[('inventory_id','=',data['id']),('location_id','=',location),('product_id','=',product_id),('product_uom','=',uom),('product_qty','=',amount)])
- if not len(line_ids):
- inventory_line={'inventory_id':data['id'],'location_id':location,'product_id':product_id,'product_uom':uom,'product_qty':amount}
- inventory_line_obj.create(cr, uid, inventory_line)
- product_ids.append(product_id)
-
- if(len(product_ids)==0):
- raise wizard.except_wizard(_('Message !'), _('No product in this location.'))
- return {}
-
-
-
-class fill_inventory(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [],
- 'result' : {'type' : 'form',
- 'arch' : inventory_form,
- 'fields' : inventory_fields,
- 'state' : [('end', 'Cancel', 'gtk-cancel'),('fill_inventory', 'Fill Inventory', 'gtk-apply', True) ]}
- },
- 'fill_inventory' : {
- 'actions' : [],
- 'result' : {'type' : 'action', 'action': _fill_inventory, 'state' : 'end'}
- },
- }
-fill_inventory("stock.fill_inventory")
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/wizard_invoice_onshipping.py b/addons/stock/wizard/wizard_invoice_onshipping.py
deleted file mode 100644
index 22cdbc97e70..00000000000
--- a/addons/stock/wizard/wizard_invoice_onshipping.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-from tools.translate import _
-
-invoice_form = """
-
-
-
-
-
-
-
-
-
-
-"""
-
-invoice_fields = {
- 'journal_id': {
- 'string': 'Destination Journal',
- 'type': 'many2one',
- 'relation': 'account.journal',
- 'required': True
- },
- 'group': {
- 'string': 'Group by partner',
- 'type': 'boolean'
- },
- 'type': {
- 'string': 'Type',
- 'type': 'selection',
- 'selection': [],
- 'required': True
- },
- 'invoice_date': {'string': 'Invoiced date', 'type':'date' }
-}
-
-
-def _get_type(obj, cr, uid, data, context):
- picking_obj = pooler.get_pool(cr.dbname).get('stock.picking')
- usage = 'customer'
- pick = picking_obj.browse(cr, uid, data['id'], context)
- if pick.invoice_state == 'invoiced':
- raise wizard.except_wizard(_('UserError'), _('Invoice is already created.'))
- if pick.invoice_state == 'none':
- raise wizard.except_wizard(_('UserError'), _('Invoice cannot be created from Picking.'))
-
- if pick.move_lines:
- usage = pick.move_lines[0].location_id.usage
-
- if pick.type =='out':
- invoice_fields['type']['selection'] = [
- ('out_invoice', 'Customer Invoice'),
- ('in_refund', 'Supplier Refund'),
- ]
- elif pick.type =='in':
- invoice_fields['type']['selection'] = [
- ('in_invoice', 'Supplier Invoice'),
- ('out_refund', 'Customer Refund'),
- ]
- else:
- invoice_fields['type']['selection']=[
- ('out_invoice', 'Customer Invoice'),
- ('in_invoice', 'Supplier Invoice'),
- ('out_refund', 'Customer Refund'),
- ('in_refund', 'Supplier Refund'),
- ]
-
- if pick.type == 'out' and usage == 'supplier':
- type = 'in_refund'
- elif pick.type == 'out' and usage == 'customer':
- type = 'out_invoice'
- elif pick.type == 'in' and usage == 'supplier':
- type = 'in_invoice'
- elif pick.type == 'in' and usage == 'customer':
- type = 'out_refund'
- else:
- type = 'out_invoice'
- return {'type': type}
-
-
-def _create_invoice(obj, cr, uid, data, context):
- if data['form'].get('new_picking', False):
- data['id'] = data['form']['new_picking']
- data['ids'] = [data['form']['new_picking']]
- pool = pooler.get_pool(cr.dbname)
- picking_obj = pooler.get_pool(cr.dbname).get('stock.picking')
- mod_obj = pool.get('ir.model.data')
- act_obj = pool.get('ir.actions.act_window')
-
- type = data['form']['type']
-
- context['date_inv'] = data['form']['invoice_date']
- res = picking_obj.action_invoice_create(cr, uid, data['ids'],
- journal_id = data['form']['journal_id'], group=data['form']['group'],
- type=type, context= context)
-
- invoice_ids = res.values()
- if not invoice_ids:
- raise wizard.except_wizard(_('Error'), _('Invoice is not created'))
-
- if type == 'out_invoice':
- xml_id = 'action_invoice_tree1'
- elif type == 'in_invoice':
- xml_id = 'action_invoice_tree2'
- elif type == 'out_refund':
- xml_id = 'action_invoice_tree3'
- else:
- xml_id = 'action_invoice_tree4'
-
- result = mod_obj._get_id(cr, uid, 'account', xml_id)
- id = mod_obj.read(cr, uid, result, ['res_id'])
- result = act_obj.read(cr, uid, id['res_id'])
- result['res_id'] = invoice_ids
- return result
-
-
-class make_invoice_onshipping(wizard.interface):
- states = {
- 'init': {
- 'actions': [_get_type],
- 'result': {
- 'type': 'form',
- 'arch': invoice_form,
- 'fields': invoice_fields,
- 'state': [
- ('end', 'Cancel', 'gtk-cancel'),
- ('create_invoice', 'Create invoice', 'gtk-apply', True)
- ]
- }
- },
- 'create_invoice': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _create_invoice,
- 'state': 'end'
- }
- },
- }
-
-make_invoice_onshipping("stock.invoice_onshipping")
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/stock/wizard/wizard_location_product.py b/addons/stock/wizard/wizard_location_product.py
deleted file mode 100755
index c423c426832..00000000000
--- a/addons/stock/wizard/wizard_location_product.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import pooler
-import time
-
-def _action_open_window(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'product', 'product_search_form_view')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- return {
- 'name': False,
- 'view_type': 'form',
- "view_mode": 'tree,form',
- 'res_model': 'product.product',
- 'type': 'ir.actions.act_window',
- 'context':{'location': data['ids'][0],'from_date':data['form']['from_date'],'to_date':data['form']['to_date']},
- 'domain':[('type','<>','service')],
- 'search_view_id': id['res_id']
- }
-
-
-class product_by_location(wizard.interface):
- form1 = '''
-
-
-
-
-
-
-
-
-
'''
- form1_fields = {
- 'from_date': {
- 'string': 'From',
- 'type': 'datetime',
- },
- 'to_date': {
- 'string': 'To',
- 'type': 'datetime',
- },
- }
-
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'form', 'arch':form1, 'fields':form1_fields, 'state': [('end', 'Cancel', 'gtk-cancel'),('open', 'Open Products', 'gtk-apply', True)]}
- },
- 'open': {
- 'actions': [],
- 'result': {'type': 'action', 'action': _action_open_window, 'state':'end'}
- }
- }
-product_by_location('stock.location.products')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/wizard_partial_move.py b/addons/stock/wizard/wizard_partial_move.py
deleted file mode 100644
index 928d96461c8..00000000000
--- a/addons/stock/wizard/wizard_partial_move.py
+++ /dev/null
@@ -1,220 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import time
-import netsvc
-from tools.misc import UpdateableStr, UpdateableDict
-import pooler
-
-import wizard
-from osv import osv
-import tools
-from tools.translate import _
-
-_moves_arch = UpdateableStr()
-_moves_fields = UpdateableDict()
-
-_moves_arch_end = '''
-
-'''
-inv_fields = {
- 'prefix': {
- 'string': 'Prefix',
- 'type': 'char',
- 'size': 64,
- },
- 'quantity': {
- 'string': 'Quantity per lot',
- 'type': 'float',
- 'default': 1,
- }
-}
-
-def _check_production_lot(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- inv_obj = pool.get('stock.inventory.line').browse(cr, uid, data['id'])
- if not inv_obj.prod_lot_id:
- raise wizard.except_wizard(_('Caution!'), _('Before splitting the inventory lines, make sure the production lot is assigned to this product.'))
- return data['form']
-
-def _split_lines(self, cr, uid, data, context):
- inv_id = data['id']
-
- pool = pooler.get_pool(cr.dbname)
- inv_line_obj = pool.get('stock.inventory.line')
- prodlot_obj = pool.get('stock.production.lot')
-
- ir_sequence_obj = pool.get('ir.sequence')
-
- sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
- if not sequence:
- raise wizard.except_wizard(_('Error!'), _('No production sequence defined'))
- if data['form']['prefix']:
- sequence=data['form']['prefix']+'/'+(sequence or '')
-
- inv = inv_line_obj.browse(cr, uid, [inv_id])[0]
- quantity=data['form']['quantity']
- prodlot_obj.write(cr, uid, inv.prod_lot_id.id, {'name':sequence})
-
- if quantity <= 0 or inv.product_qty == 0:
- return {}
-
- quantity_rest = inv.product_qty%quantity
-
- update_val = {
- 'product_qty': quantity,
- }
-
- new_line = []
- for idx in range(int(inv.product_qty//quantity)):
- if idx:
- current_line = inv_line_obj.copy(cr, uid, inv.id, {'prod_lot_id': inv.prod_lot_id.id})
- new_line.append(current_line)
- else:
- current_line = inv.id
- inv_line_obj.write(cr, uid, [current_line], update_val)
-
- if quantity_rest > 0:
- idx = int(inv.product_qty//quantity)
- update_val['product_qty']=quantity_rest
-
- if idx:
- current_line = inv_line_obj.copy(cr, uid, inv.id, {'prod_lot_id': inv.prod_lot_id.id})
- new_line.append(current_line)
- else:
- current_line = inv.id
- inv_line_obj.write(cr, uid, [current_line], update_val)
-
- return {}
-
-class wizard_split_inventory_lots(wizard.interface):
- states = {
- 'init': {
- 'actions': [_check_production_lot],
- 'result': {'type': 'form', 'arch': inv_form, 'fields': inv_fields, 'state': [('end', 'Cancel', 'gtk-cancel'), ('split', 'Ok', 'gtk-apply', True)]},
- },
- 'split': {
- 'actions': [_split_lines],
- 'result': {'type':'state', 'state':'end'}
- }
- }
-
-wizard_split_inventory_lots('stock.inventory.line.split')
\ No newline at end of file
diff --git a/addons/stock_invoice_directly/i18n/pt_BR.po b/addons/stock_invoice_directly/i18n/pt_BR.po
index 055da60cd64..34ca6b82f62 100644
--- a/addons/stock_invoice_directly/i18n/pt_BR.po
+++ b/addons/stock_invoice_directly/i18n/pt_BR.po
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 12:46+0000\n"
-"Last-Translator: Aldo Giovani \n"
+"PO-Revision-Date: 2010-03-24 01:13+0000\n"
+"Last-Translator: Pedro_Maschio \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-03-11 05:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-27 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_invoice_directly
#: model:ir.module.module,shortdesc:stock_invoice_directly.module_meta_information
msgid "Invoice Picking Directly"
-msgstr ""
+msgstr "Composição direta da Fatura"
diff --git a/addons/stock_planning/__init__.py b/addons/stock_planning/__init__.py
new file mode 100644
index 00000000000..f0fea471a21
--- /dev/null
+++ b/addons/stock_planning/__init__.py
@@ -0,0 +1,24 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import stock_planning
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock_planning/__terp__.py b/addons/stock_planning/__terp__.py
new file mode 100644
index 00000000000..1ff4e8d0b10
--- /dev/null
+++ b/addons/stock_planning/__terp__.py
@@ -0,0 +1,146 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ "name":"Master Procurement Schedule",
+ "version":"1.1",
+ "author":"Tiny and Grzegorz Grzelak (Cirrus)",
+ "category":"Custom",
+ "depends":["hr","stock","sale"],
+ "description": """
+This module is based on original Tiny module stock_planning version 1.0 of the same name Master Procurement Schedule.
+
+Purpose of MPS is to allow create a manual procurement (requisition) apart of MRP scheduler (which works automatically on minimum stock rules).
+
+Terms used in the module:
+- Stock and Sales Period - is the time (between Start Date and End Date) for which you plan Stock and Sales Forecast and make Procurement Planning.
+- Stock and Sales Forecast - is the quantity of products you plan to sell in the Period.
+- Stock Planning - is the quantity of products you plan to purchase or produce for the Period.
+
+Because we have another module sale_forecast which uses terms "Sales Forecast" and "Planning" as amount values we will use terms "Stock and Sales Forecast" and "Stock Planning" to emphasize that we use quantity values.
+
+Activity with this module is divided to three steps:
+- Creating Periods. Mandatory step.
+- Creating Sale Forecasts and entering quantities to them. Optional step but useful for farther planning.
+- Creating Planning lines, entering quantities to them and making Procurement. Making procurement is the final step for the Period.
+
+Periods
+=======
+You have two menu items for Periods in "Sales Management - Configuration". There are:
+- "Create Sales Periods" - Which automates creating daily, weekly or monthly periods.
+- "Stock and sales Periods" - Which allows to create any type of periods, change the dates and change the State of period.
+
+Creating periods is the first step you have to do to use modules features. You can create custom periods using "New" button in "Stock and Sales Periods" form or view but it is recommended to use automating tool.
+
+Remarks:
+- These periods (officially Stock and Sales Periods) are separated of Financial or other periods in the system.
+- Periods are not assigned to companies (when you use multicompany feature at all). Module suppose that you use the same periods across companies. If you wish to use different periods for different companies define them as you wish (they can overlap). Later on in this text will be indications how to use such periods.
+- When periods are created automatically their start and finish dates are with with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock.
+- If you use overlapping periods for the same product, warehouse and company results can be unpredictable.
+- If current date doesn't belong to any period or you have holes between periods results can be unpredictable.
+
+Sales Forecasts
+===============
+You have few menus for Sales forecast in "Sales Management - Sales Forecasts".
+- "Create Sales Forecasts for Sales Periods" - which automates creating forecasts lines according to some parameters.
+- "Sales Forecasts" - few menus for working with forecasts lists and forms.
+
+Menu "Create Sales Forecasts for Sales Periods" creates Forecasts for products from selected Category, for selected Period and for selected Warehouse. It is an option "Copy Last Forecast" to copy forecast and other settings of period before this one to created one.
+
+Remarks:
+- This tool doesn't create lines if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast if relevant lines exists you have to do it manually using menus described bellow.
+- When created lines are validated by someone else you can use this tool to create another lines for the same Period, Product and Warehouse.
+- When you choose "Copy Last Forecast" created line takes quantity and some settings from your (validated by you or created by you if not validated yet) forecast which is for last period before period of created forecast. If there are few your forecasts for period before this one (it is possible) system takes one of them (no rule which of them).
+
+
+Menus "Sales Forecasts"
+On "Sales Forecast" form mainly you have to enter a forecast quantity in "Product Quantity". Farther calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click "Validate" button but it is not mandatory.
+
+Instead of forecast quantity you can enter amount of forecast sales in field "Product Amount". System will count quantity from amount according to Sale price of the Product.
+
+All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of "Calculate Planning" button.
+
+To find proper value for Sale Forecast you can use "Sales History" table for this product. You have to enter parameters to the top and left of this table and system will count sale quantities according to these parameters. So you can select fe. your department (at the top) then (to the left): last period, period before last and period year ago.
+
+Remarks:
+
+
+Procurement Planning
+====================
+Menu for Planning you can find in "Warehouse - Stock Planning".
+- "Create Stock Planning Lines" - allows you to automate creating planning lines according to some parameters.
+- "Master Procurement Scheduler" - is the most important menu of the module which allows to create procurement.
+
+As Sales forecast is phase of planning sales. The Procurement Planning (Planning) is the phase of scheduling Purchasing or Producing. You can create Procurement Planning quickly using tool from menu "Create Stock Planning Lines", then you can review created planning and make procurement using menu "Master Procurement Schedule".
+
+Menu "Create Stock Planning Lines" allows you to create quickly Planning lines for products from selected Category, for selected Period, and for selected Warehouse. When you check option "All Products with Forecast" system creates lines for all products having forecast for selected Period and Warehouse. Selected Category will be ignored in this case.
+
+Under menu "Master Procurement Scheduler" you can generally change the values "Planned Out" and "Planned In" to observe the field "Stock Simulation" and decide if this value would be accurate for end of the Period.
+"Planned Out" can be based on "Warehouse Forecast" which is the sum of all forecasts for Period and Warehouse. But your planning can be based on any other information you have. It is not necessary to have any forecast.
+"Planned In" quantity is used to calculate field "Incoming Left" which is the quantity to be procured to make stock as indicated in "Stock Simulation" at the and of Period. You can compare "Stock Simulation" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box "Stock Location Only".
+
+If after few tries you decide that you found correct quantities for "Planned Out" and "Planned In" and you are satisfied with end of period stock calculated in "Stock Simulation" you can click "Procure Incoming Left" button to procure quantity of field "Incoming Left" into the Warehouse. System creates appropriate Procurement Order. You can decide if procurement will be made to Stock or Input location of calculated Warehouse.
+
+If you don't want to Produce or Buy the product but just pick calculated quantity from another warehouse you can click "Supply from Another Warehouse" (instead of "Procure Incoming Left"). System creates pick list with move from selected source Warehouse to calculated Warehouse (as destination). You can also decide if this pick should be done from Stock or Output location of source warehouse. Destination location (Stock or Input) of destination warehouse will be used as set for "Procure Incoming Left".
+
+To see proper quantities in fields "Confirmed In", "Confirmed Out", "Confirmed In Before", "Planned Out Before" and "Stock Simulation" you have to click button "Calculate Planning".
+
+All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of "Calculate Planning" button.
+
+How Stock Simulation field is calculated:
+Generally Stock Simulation shows the stock for end of the calculated period according to some planned or confirmed stock moves. Calculation always starts with quantity of real stock of beginning of current period. Then calculation adds or subtracts quantities of calculated period or periods before calculated.
+When you are in the same period (current period is the same as calculated) Stock Simulation is calculated as follows:
+Stock Simulation =
+ Stock of beginning of current Period
+ - Planned Out
+ + Planned In
+
+When you calculate period next to current:
+Stock Simulation =
+ Stock of beginning of current Period
+ - Planned Out of current Period
+ + Confirmed In of current Period (incl. Already In)
+ - Planned Out of calculated Period
+ + Planned In of calculated Period .
+
+As you see calculated Period is taken the same way like in case above. But calculation of current Period are made a little bit different. First you should note that system takes for current Period only Confirmed In moves. It means that you have to make planning and procurement for current Period before this calculation (for Period next to current).
+
+When you calculate Period ahead:
+Stock Simulation =
+ Stock of beginning of current Period
+ - Sum of Planned Out of Periods before calculated
+ + Sum of Confirmed In of Periods before calculated (incl. Already In)
+ - Planned Out of calculated Period
+ + Planned In of calculated Period.
+
+Periods before calculated means periods starting from current till period before calculated.
+
+Remarks:
+- Remember to make planning for all periods before calculated because omitting these quantities and procurements can cause wrong suggestions for procurements few periods ahead.
+- If you made planning few periods ahead and you find that real Confirmed Out is bigger than Planned Out in some periods before you can repeat Planning and make another procurement. You should do it in the same planning line. If you create another planning line the suggestions can be wrong.
+- When you wish to work with different periods for some part of products define two kinds of periods (fe. Weekly and Monthly) and use them for different products. Example: If you use always Weekly periods for Products A, and Monthly periods for Products B your all calculations will work correctly. You can also use different kind of periods for the same products from different warehouse or companies. But you cannot use overlapping periods for the same product, warehouse and company because results can be unpredictable. The same apply to Forecasts lines.
+""",
+ "demo_xml":[],
+ "update_xml":["security/ir.model.access.csv","stock_planning_view.xml"],
+ "active": False,
+ "installable": True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/stock_planning/security/ir.model.access.csv b/addons/stock_planning/security/ir.model.access.csv
new file mode 100644
index 00000000000..b0ee2853b87
--- /dev/null
+++ b/addons/stock_planning/security/ir.model.access.csv
@@ -0,0 +1,7 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_stock_planning","stock.planning","model_stock_planning","stock.group_stock_user",1,1,1,1
+"access_stock_period_create_lines","stock.period.createlines","model_stock_period_createlines","stock.group_stock_user",1,1,1,1
+"access_stock_period","stock.period","model_stock_period","stock.group_stock_user",1,1,1,1
+"access_stock_sale_forecast_createlines","stock.sale.forecast.createlines","model_stock_sale_forecast_createlines","stock.group_stock_user",1,1,1,1
+"access_stock_sale_forecast","stock.sale.forecast","model_stock_sale_forecast","stock.group_stock_user",1,1,1,1
+"access_stock_planning_createlines","stock.planning.createlines","model_stock_planning_createlines","stock.group_stock_user",1,1,1,1
diff --git a/addons/stock_planning/stock_planning.py b/addons/stock_planning/stock_planning.py
new file mode 100644
index 00000000000..fa0bec2f5b1
--- /dev/null
+++ b/addons/stock_planning/stock_planning.py
@@ -0,0 +1,1009 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields,osv
+import pooler
+from tools import config
+import time
+import netsvc
+import math
+import mx.DateTime
+from mx.DateTime import RelativeDateTime, now, DateTime, localtime
+from tools.translate import _
+
+def rounding(fl, round_value):
+ if not round_value:
+ return fl
+ return round(fl / round_value) * round_value
+
+
+# Object creating periods quickly
+# changed that stop_date is created with hour 23:59:00 when it was 00:00:00 stop date was excluded from period
+class stock_period_createlines(osv.osv_memory):
+ _name = "stock.period.createlines"
+
+ def _get_new_period_start(self,cr,uid,context={}):
+ cr.execute("select max(date_stop) from stock_period")
+ result=cr.fetchone()
+ last_date = result and result[0] or False
+ if last_date:
+ period_start = mx.DateTime.strptime(last_date,"%Y-%m-%d %H:%M:%S")+ RelativeDateTime(days=1)
+ period_start = period_start - RelativeDateTime(hours=period_start.hour, minutes=period_start.minute, seconds=period_start.second)
+ else:
+ period_start = mx.DateTime.today()
+ return period_start.strftime('%Y-%m-%d')
+
+
+ _columns = {
+ 'name': fields.char('Period Name', size=64),
+ 'date_start': fields.date('Start Date', required=True),
+ 'date_stop': fields.date('End Date', required=True),
+ 'period_ids': fields.one2many('stock.period', 'planning_id', 'Periods'),
+ }
+ _defaults={
+ 'date_start':_get_new_period_start,
+ }
+
+ def create_period_weekly(self,cr, uid, ids, context={}):
+ res=self.create_period(cr, uid, ids, context, 6, 'Weekly')
+ return {
+ 'view_type': 'form',
+ "view_mode": 'tree',
+ 'res_model': 'stock.period',
+ 'type': 'ir.actions.act_window',
+ }
+
+ def create_period_monthly(self,cr, uid, ids, context={},interval=1):
+ for p in self.browse(cr, uid, ids, context):
+ dt = p.date_start
+ ds = mx.DateTime.strptime(p.date_start, '%Y-%m-%d')
+ while ds.strftime('%Y-%m-%d') val.product_id.uom_id.category_id.id:
+ coef = coef / val.product_id.uos_coeff
+ return val.product_id.uom_id.factor / coef
+
+ def _from_default_uom_factor(self, cr, uid, val, uom_id, context):
+ uom_obj = self.pool.get('product.uom')
+ uom = uom_obj.browse(cr, uid, uom_id, context=context)
+ res = uom.factor
+ if uom.category_id.id <> val.product_id.uom_id.category_id.id:
+ res = res / val.product_id.uos_coeff
+ return res / val.product_id.uom_id.factor, uom.rounding
+
+ def _sales_per_users(self, cr, uid, so, so_line, company, users):
+ cr.execute("SELECT sum(sol.product_uom_qty) FROM sale_order_line AS sol LEFT JOIN sale_order AS s ON (s.id = sol.order_id) " \
+ "WHERE (sol.id IN (%s)) AND (s.state NOT IN (\'draft\',\'cancel\')) AND (s.id IN (%s)) AND (s.company_id=%s) " \
+ "AND (s.user_id IN (%s)) " %(so_line, so, company, users))
+ ret = cr.fetchone()[0] or 0.0
+ return ret
+
+ def _sales_per_warehouse(self, cr, uid, so, so_line, company, shops):
+ cr.execute("SELECT sum(sol.product_uom_qty) FROM sale_order_line AS sol LEFT JOIN sale_order AS s ON (s.id = sol.order_id) " \
+ "WHERE (sol.id IN (%s)) AND (s.state NOT IN (\'draft\',\'cancel\')) AND (s.id IN (%s))AND (s.company_id=%s) " \
+ "AND (s.shop_id IN (%s))" %(so_line, so, company, shops))
+ ret = cr.fetchone()[0] or 0.0
+ return ret
+
+ def _sales_per_company(self, cr, uid, so, so_line, company, ):
+ cr.execute("SELECT sum(sol.product_uom_qty) FROM sale_order_line AS sol LEFT JOIN sale_order AS s ON (s.id = sol.order_id) " \
+ "WHERE (sol.id IN (%s)) AND (s.state NOT IN (\'draft\',\'cancel\')) AND (s.id IN (%s)) AND (s.company_id=%s)"%(so_line, so, company))
+ ret = cr.fetchone()[0] or 0.0
+ return ret
+
+ def calculate_sales_history(self, cr, uid, ids, context, *args):
+ sales=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],]
+ for obj in self.browse(cr, uid, ids):
+ periods =obj.analyzed_period1_id, obj.analyzed_period2_id, obj.analyzed_period3_id, obj.analyzed_period4_id, obj.analyzed_period5_id
+ so_obj = self.pool.get('sale.order')
+ so_line_obj= self.pool.get('sale.order.line')
+ so_line_product_ids = so_line_obj.search(cr, uid, [('product_id','=', obj.product_id.id)], context = context)
+ if so_line_product_ids:
+ so_line_product_set = ','.join(map(str,so_line_product_ids))
+ if obj.analyzed_warehouse_id:
+ shops = self.pool.get('sale.shop').search(cr, uid,[('warehouse_id','=', obj.analyzed_warehouse_id.id)], context = context)
+ shops_set = ','.join(map(str,shops))
+ else:
+ shops = False
+ if obj.analyzed_dept_id:
+ dept_obj = self.pool.get('hr.department')
+ dept_id = obj.analyzed_dept_id.id and [obj.analyzed_dept_id.id] or []
+ dept_ids = dept_obj.search(cr,uid,[('parent_id','child_of',dept_id)])
+ dept_ids_set = ','.join(map(str,dept_ids))
+ cr.execute("SELECT user_id FROM hr_department_user_rel WHERE (department_id IN (%s))" %(dept_ids_set))
+ dept_users = [x for x, in cr.fetchall()]
+ dept_users_set = ','.join(map(str,dept_users))
+ else:
+ dept_users = False
+ factor, round_value = self._from_default_uom_factor(cr, uid, obj, obj.product_uom.id, context=context)
+ for i, period in enumerate(periods):
+ if period:
+ so_period_ids = so_obj.search(cr, uid, [('date_order','>=',period.date_start), ('date_order','<=',period.date_stop)], context = context)
+ if so_period_ids:
+ so_period_set = ','.join(map(str,so_period_ids))
+ if obj.analyzed_user_id:
+ user_set = str(obj.analyzed_user_id.id)
+ sales[i][0] =self._sales_per_users(cr, uid, so_period_set, so_line_product_set, obj.company_id.id, user_set)
+ sales[i][0] *=factor
+ if dept_users:
+ sales[i][1]= self._sales_per_users(cr, uid, so_period_set, so_line_product_set, obj.company_id.id, dept_users_set)
+ sales[i][1]*=factor
+ if shops:
+ sales[i][2]= self._sales_per_warehouse(cr, uid, so_period_set, so_line_product_set, obj.company_id.id, shops_set)
+ sales[i][2]*=factor
+ if obj.analyze_company:
+ sales[i][3]= self._sales_per_company(cr, uid, so_period_set, so_line_product_set, obj.company_id.id, )
+ sales[i][3]*=factor
+ self.write(cr, uid, ids, {
+ 'analyzed_period1_per_user':sales[0][0],
+ 'analyzed_period2_per_user':sales[1][0],
+ 'analyzed_period3_per_user':sales[2][0],
+ 'analyzed_period4_per_user':sales[3][0],
+ 'analyzed_period5_per_user':sales[4][0],
+ 'analyzed_period1_per_dept':sales[0][1],
+ 'analyzed_period2_per_dept':sales[1][1],
+ 'analyzed_period3_per_dept':sales[2][1],
+ 'analyzed_period4_per_dept':sales[3][1],
+ 'analyzed_period5_per_dept':sales[4][1],
+ 'analyzed_period1_per_warehouse':sales[0][2],
+ 'analyzed_period2_per_warehouse':sales[1][2],
+ 'analyzed_period3_per_warehouse':sales[2][2],
+ 'analyzed_period4_per_warehouse':sales[3][2],
+ 'analyzed_period5_per_warehouse':sales[4][2],
+ 'analyzed_period1_per_company':sales[0][3],
+ 'analyzed_period2_per_company':sales[1][3],
+ 'analyzed_period3_per_company':sales[2][3],
+ 'analyzed_period4_per_company':sales[3][3],
+ 'analyzed_period5_per_company':sales[4][3],
+ })
+ return True
+
+
+stock_sale_forecast()
+
+# Creates stock planning records for products from selected Product Category for selected 'Warehouse - Period'
+# Object added by contributor in ver 1.1
+class stock_planning_createlines(osv.osv_memory):
+ _name = "stock.planning.createlines"
+
+ def onchange_company(self, cr, uid, ids, company_id):
+ result = {}
+ if company_id:
+ result['warehouse_id2'] = False
+ return {'value': result}
+
+ _columns = {
+ 'company_id': fields.many2one('res.company', 'Company', required = True),
+ 'period_id2': fields.many2one('stock.period' , 'Period', required=True, help = 'Period which planning will concern.'),
+ 'warehouse_id2': fields.many2one('stock.warehouse' , 'Warehouse', required=True, help = 'Warehouse which planning will concern.'),
+ 'product_categ_id2': fields.many2one('product.category' , 'Product Category', \
+ help = 'Planning will be created for products from Product Category selected by this field. '\
+ 'This field is ignored when you check \"All Forecasted Product\" box.' ),
+ 'forecasted_products': fields.boolean('All Products with Forecast', \
+ help = "Check this box to create planning for all products having any forecast for selected Warehouse and Period. "\
+ "Product Category field will be ignored."),
+ }
+
+ _defaults = {
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.planning', context=c),
+ }
+
+ def create_planning(self,cr, uid, ids, context={}):
+ product_obj = self.pool.get('product.product')
+ planning_obj=self.pool.get('stock.planning')
+
+ for f in self.browse(cr, uid, ids, context=context):
+ if f.forecasted_products:
+ cr.execute("SELECT product_id \
+ FROM stock_sale_forecast \
+ WHERE (period_id = %s) AND (warehouse_id = %s)", (f.period_id2.id, f.warehouse_id2.id))
+ products_id1 = [x for x, in cr.fetchall()]
+ else:
+ prod_categ_obj=self.pool.get('product.category')
+ template_obj=self.pool.get('product.template')
+ categ_ids = f.product_categ_id2.id and [f.product_categ_id2.id] or []
+ prod_categ_ids=prod_categ_obj.search(cr,uid,[('parent_id','child_of',categ_ids)])
+ templates_ids = template_obj.search(cr,uid,[('categ_id','in',prod_categ_ids)])
+ products_id1 = product_obj.search(cr,uid,[('product_tmpl_id','in',templates_ids)])
+ if len(products_id1)==0:
+ raise osv.except_osv(_('Error !'), _('No forecasts for selected period or no products in selected category !'))
+
+ for p in product_obj.browse(cr, uid, products_id1,context=context):
+ if len(planning_obj.search(cr, uid, [('product_id','=',p.id),
+ ('period_id','=',f.period_id2.id),
+ ('warehouse_id','=',f.warehouse_id2.id)]))== 0:
+ cr.execute("SELECT period.date_stop, planning.product_uom, planning.planned_outgoing, planning.to_procure, \
+ planning.stock_only, planning.procure_to_stock, planning.confirmed_forecasts_only, \
+ planning.supply_warehouse_id, planning.stock_supply_location \
+ FROM stock_planning AS planning \
+ LEFT JOIN stock_period AS period \
+ ON planning.period_id = period.id \
+ WHERE (planning.create_uid = %s OR planning.write_uid = %s) \
+ AND planning.warehouse_id = %s AND planning.product_id = %s \
+ AND period.date_stop < %s \
+ ORDER BY period.date_stop DESC",
+ (uid, uid, f.warehouse_id2.id, p.id, f.period_id2.date_stop) )
+ ret=cr.fetchone()
+# forecast_qty = ret and ret[0] or 0.0
+ if ret:
+# raise osv.except_osv(_('Error !'), _('ret is %s %s %s %s %s %s')%(ret[0],ret[2],ret[3],ret[4],ret[5],ret[6],))
+ prod_uom = ret[1]
+ planned_out = ret[2]
+ to_procure = ret[3]
+ stock_only = ret[4]
+ procure_to_stock = ret[5]
+ confirmed_forecasts_only = ret[6]
+ supply_warehouse_id = ret[7]
+ stock_supply_location = ret[8]
+ else:
+ prod_uom = p.uom_id.id
+ planned_out = False
+ to_procure = False
+ stock_only = False
+ procure_to_stock = False
+ confirmed_forecasts_only = False
+ supply_warehouse_id = False
+ stock_supply_location = False
+ prod_uos_categ = False
+ if p.uos_id:
+ prod_uos_categ = p.uos_id.category_id.id
+ planning_obj.create(cr, uid, {
+ 'company_id' : f.warehouse_id2.company_id.id,
+ 'period_id': f.period_id2.id,
+ 'warehouse_id' : f.warehouse_id2.id,
+ 'product_id': p.id,
+ 'product_uom' : prod_uom,
+ 'product_uom_categ' : p.uom_id.category_id.id,
+ 'product_uos_categ' : prod_uos_categ,
+ 'active_uom' : prod_uom,
+ 'planned_outgoing': planned_out,
+ 'to_procure': to_procure,
+ 'stock_only': stock_only,
+ 'procure_to_stock': procure_to_stock,
+ 'confirmed_forecasts_only': confirmed_forecasts_only,
+ 'supply_warehouse_id': supply_warehouse_id,
+ 'stock_supply_location': stock_supply_location,
+
+ })
+ return {
+ 'view_type': 'form',
+ "view_mode": 'tree',
+ 'res_model': 'stock.planning',
+ 'type': 'ir.actions.act_window',
+ }
+stock_planning_createlines()
+
+
+# The main Stock Planning object
+# A lot of changes by contributor in ver 1.1
+class stock_planning(osv.osv):
+ _name = "stock.planning"
+
+ def _get_in_out(self, cr, uid, val, date_start, date_stop, direction, done, context):
+# res = {}
+# if not context:
+# context = {}
+ mapping = {'in': {
+ 'field': "incoming_qty",
+ 'adapter': lambda x: x,
+ },
+ 'out': {
+ 'field': "outgoing_qty",
+ 'adapter': lambda x: -x,
+ },
+ }
+ context['from_date'] = date_start
+ context['to_date'] = date_stop
+ locations = [val.warehouse_id.lot_stock_id.id,]
+ if not val.stock_only:
+ locations.extend([val.warehouse_id.lot_input_id.id, val.warehouse_id.lot_output_id.id])
+ context['location'] = locations
+ context['compute_child'] = True
+ product_obj = self.pool.get('product.product')
+ prod_id = val.product_id.id
+ if done:
+ c1=context.copy()
+ c1.update({ 'states':('done',), 'what':(direction,) })
+ prod_ids = [prod_id]
+ st = product_obj.get_product_available(cr,uid, prod_ids, context=c1)
+ res = mapping[direction]['adapter'](st.get(prod_id,0.0))
+ else:
+ product=product_obj.read(cr, uid, prod_id,[], context)
+ product_qty = product[mapping[direction]['field']]
+ res = mapping[direction]['adapter'](product_qty)
+# res[val.id] = product_obj['incoming_qty']
+ return res
+
+ def _get_outgoing_before(self, cr, uid, val, date_start, date_stop, context):
+ cr.execute("SELECT sum(planning.planned_outgoing), planning.product_uom \
+ FROM stock_planning AS planning \
+ LEFT JOIN stock_period AS period \
+ ON (planning.period_id = period.id) \
+ WHERE (period.date_stop >= %s) AND (period.date_stop <= %s) \
+ AND (planning.product_id = %s) AND (planning.company_id = %s) \
+ GROUP BY planning.product_uom", \
+ (date_start, date_stop, val.product_id.id, val.company_id.id,))
+ planning_qtys = cr.fetchall()
+ res = self._to_planning_uom(cr, uid, val, planning_qtys, context)
+ return res
+
+ def _to_planning_uom(self, cr, uid, val, qtys, context):
+ res_qty = 0
+ if qtys:
+ uom_obj = self.pool.get('product.uom')
+ for qty, prod_uom in qtys:
+ coef = self._to_default_uom_factor(cr, uid, val, prod_uom, context=context)
+ res_coef, round_value = self._from_default_uom_factor(cr, uid, val, val.product_uom.id, context=context)
+ coef = coef * res_coef
+ res_qty += rounding(qty * coef, round_value)
+ return res_qty
+
+
+ def _get_forecast(self, cr, uid, ids, field_names, arg, context):
+ res = {}
+ for val in self.browse(cr, uid, ids):
+ res[val.id]={}
+ valid_part = val.confirmed_forecasts_only and " AND state = 'validated'" or ""
+ cr.execute('SELECT sum(product_qty), product_uom \
+ FROM stock_sale_forecast \
+ WHERE product_id = %s AND period_id = %s AND company_id = %s '+valid_part+ \
+ 'GROUP BY product_uom', \
+ (val.product_id.id,val.period_id.id, val.company_id.id))
+ company_qtys = cr.fetchall()
+ res[val.id]['company_forecast'] = self._to_planning_uom(cr, uid, val, company_qtys, context)
+
+ cr.execute('SELECT sum(product_qty), product_uom \
+ FROM stock_sale_forecast \
+ WHERE product_id = %s and period_id = %s AND warehouse_id = %s ' + valid_part + \
+ 'GROUP BY product_uom', \
+ (val.product_id.id,val.period_id.id, val.warehouse_id.id))
+ warehouse_qtys = cr.fetchall()
+ res[val.id]['warehouse_forecast'] = self._to_planning_uom(cr, uid, val, warehouse_qtys, context)
+ res[val.id]['warehouse_forecast'] = rounding(res[val.id]['warehouse_forecast'], val.product_id.uom_id.rounding)
+ return res
+
+ def _get_stock_start(self, cr, uid, val, date, context):
+ context['from_date'] = None
+ context['to_date'] = date
+ locations = [val.warehouse_id.lot_stock_id.id,]
+ if not val.stock_only:
+ locations.extend([val.warehouse_id.lot_input_id.id, val.warehouse_id.lot_output_id.id])
+ context['location'] = locations
+ context['compute_child'] = True
+ product_obj = self.pool.get('product.product').read(cr, uid,val.product_id.id,[], context)
+ res = product_obj['qty_available'] # value for stock_start
+ return res
+
+ def _get_past_future(self, cr, uid, ids, field_names, arg, context):
+ res = {}
+ for val in self.browse(cr, uid, ids, context=context):
+ if val.period_id.date_stop < time.strftime('%Y-%m-%d'):
+ res[val.id] = 'Past'
+ else:
+ res[val.id] = 'Future'
+ return res
+
+ def _get_op(self, cr, uid, ids, field_names, arg, context): # op = OrderPoint
+ res = {}
+ for val in self.browse(cr, uid, ids, context=context):
+ res[val.id]={}
+ cr.execute("SELECT product_min_qty, product_max_qty, product_uom \
+ FROM stock_warehouse_orderpoint \
+ WHERE warehouse_id = %s AND product_id = %s AND active = 'TRUE'", (val.warehouse_id.id, val.product_id.id))
+ ret = cr.fetchone() or [0.0,0.0,False]
+ coef = 1
+ round_value = 1
+ if ret[2]:
+ coef = self._to_default_uom_factor(cr, uid, val, ret[2], context)
+ res_coef, round_value = self._from_default_uom_factor(cr, uid, val, val.product_uom.id, context=context)
+ coef = coef * res_coef
+ res[val.id]['minimum_op'] = rounding(ret[0]*coef, round_value)
+ res[val.id]['maximum_op'] = ret[1]*coef
+ return res
+
+ def onchange_company(self, cr, uid, ids, company_id):
+ result = {}
+ if company_id:
+ result['warehouse_id'] = False
+ return {'value': result}
+
+ def onchange_uom(self, cr, uid, ids, product_uom, ):
+ if not product_uom:
+ return {}
+ ret={}
+ val1 = self.browse(cr, uid, ids)
+ val = val1[0]
+ coeff_uom2def = self._to_default_uom_factor(cr, uid, val, val.active_uom.id, {})
+ coeff_def2uom, round_value = self._from_default_uom_factor( cr, uid, val, product_uom, {})
+ coeff = coeff_uom2def * coeff_def2uom
+ ret['planned_outgoing'] = rounding(coeff * val.planned_outgoing, round_value)
+ ret['to_procure'] = rounding(coeff * val.to_procure, round_value)
+ ret['active_uom'] = product_uom
+ return {'value': ret}
+
+ _columns = {
+ 'company_id': fields.many2one('res.company', 'Company', required = True),
+ 'history' : fields.text('Procurement History', readonly=True, help = "History of procurement or internal supply of this planning line."),
+ 'state' : fields.selection([('draft','Draft'),('done','Done')],'State',readonly=True),
+ 'period_id': fields.many2one('stock.period' , 'Period', required=True, \
+ help = 'Period for this planning. Requisition will be created for beginning of the period.'),
+ 'warehouse_id' : fields.many2one('stock.warehouse','Warehouse', required=True),
+ 'product_id': fields.many2one('product.product' , 'Product', required=True, help = 'Product which this planning is created for.'),
+ 'product_uom_categ' : fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uom domain
+ 'product_uom' : fields.many2one('product.uom', 'UoM', required=True, help = "Unit of Measure used to show the quanities of stock calculation." \
+ "You can use units form default category or from second category (UoS category)."),
+ 'product_uos_categ' : fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uos domain
+# Field used in onchange_uom to check what uom was before change to recalculate quantities acording to old uom (active_uom) and new uom.
+ 'active_uom' :fields.many2one('product.uom', string = "Active UoM"),
+ 'planned_outgoing' : fields.float('Planned Out', required=True, \
+ help = 'Enter planned outgoing quantity from selected Warehouse during the selected Period of selected Product. '\
+ 'To plan this value look at Confirmed Out or Sales Forecasts. This value should be equal or greater than Confirmed Out.'),
+ 'company_forecast': fields.function(_get_forecast, method=True, string ='Company Forecast', multi = 'company', \
+ help = 'All sales forecasts for whole company (for all Warehouses) of selected Product during selected Period.'),
+ 'warehouse_forecast': fields.function(_get_forecast, method=True, string ='Warehouse Forecast', multi = 'warehouse',\
+ help = 'All sales forecasts for selected Warehouse of selected Product during selected Period.'),
+ 'stock_simulation': fields.float('Stock Simulation', readonly =True, \
+ help = 'Stock simulation at the end of selected Period.\n For current period it is: \n' \
+ 'Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n' \
+ 'For periods ahead it is: \nInitial Stock - Planned Out Before + Incoming Before - Planned Out + Planned In.'),
+ 'incoming': fields.float('Confirmed In', readonly=True, \
+ help = 'Quantity of all confirmed incoming moves in calculated Period.'),
+ 'outgoing': fields.float('Confirmed Out', readonly=True, \
+ help = 'Quantity of all confirmed outgoing moves in calculated Period.'),
+ 'incoming_left': fields.float('Incoming Left', readonly=True, \
+ help = 'Quantity left to Planned incoming quantity. This is calculated difference between Planned In and Confirmed In. ' \
+ 'For current period Already In is also calculated. This value is used to create procurement for lacking quantity.'),
+ 'outgoing_left': fields.float('Expected Out', readonly=True, \
+ help = 'Quantity expected to go out in selected period. As a difference between Planned Out and Confirmed Out. ' \
+ 'For current period Already Out is also calculated'),
+ 'to_procure': fields.float(string='Planned In', required=True, \
+ help = 'Enter quantity which (by your plan) should come in. Change this value and observe Stock simulation. ' \
+ 'This value should be equal or greater than Confirmed In.'),
+ 'line_time' : fields.function(_get_past_future, method=True,type='char', string='Past/Future'),
+ 'minimum_op' : fields.function(_get_op, method=True, type='float', string = 'Minimum Rule', multi= 'minimum', \
+ help = 'Minimum quantity set in Minimum Stock Rules for this Warhouse'),
+ 'maximum_op' : fields.function(_get_op, method=True, type='float', string = 'Maximum Rule', multi= 'maximum', \
+ help = 'Maximum quantity set in Minimum Stock Rules for this Warhouse'),
+ 'outgoing_before' : fields.float('Planned Out Before', readonly=True, \
+ help= 'Planned Out in periods before calculated. '\
+ 'Between start date of current period and one day before start of calculated period.'),
+ 'incoming_before': fields.float('Incoming Before', readonly = True, \
+ help= 'Confirmed incoming in periods before calculated (Including Already In). '\
+ 'Between start date of current period and one day before start of calculated period.'),
+ 'stock_start' : fields.float('Initial Stock', readonly=True, \
+ help= 'Stock quantity one day before current period.'),
+ 'already_out' : fields.float('Already Out', readonly=True, \
+ help= 'Quantity which is already dispatched out of this warehouse in current period.'),
+ 'already_in' : fields.float('Already In', readonly=True, \
+ help= 'Quantity which is already picked up to this warehouse in current period.'),
+ 'stock_only' : fields.boolean("Stock Location Only", help = "Check to calculate stock location of selected warehouse only. " \
+ "If not selected calculation is made for input, stock and output location of warehouse."),
+ "procure_to_stock" : fields.boolean("Procure To Stock Location", help = "Chect to make procurement to stock location of selected warehouse. " \
+ "If not selected procurement will be made into input location of warehouse."),
+ "confirmed_forecasts_only" : fields.boolean("Validated Forecasts", help = "Check to take validated forecasts only. " \
+ "If not checked system takes validated and draft forecasts."),
+ 'supply_warehouse_id' : fields.many2one('stock.warehouse','Source Warehouse', help = "Warehouse used as source in supply pick move created by 'Supply from Another Warhouse'."),
+ "stock_supply_location" : fields.boolean("Stock Supply Location", help = "Check to supply from Stock location of Supply Warehouse. " \
+ "If not checked supply will be made from Output location of Supply Warehouse. Used in 'Supply from Another Warhouse' with Supply Warehouse."),
+
+ }
+
+ _defaults = {
+ 'state': lambda *args: 'draft' ,
+ 'to_procure' : 0.0,
+ 'planned_outgoing' : 0.0,
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.planning', context=c),
+ }
+
+ _order = 'period_id'
+
+ def _to_default_uom_factor(self, cr, uid, val, uom_id, context):
+ uom_obj = self.pool.get('product.uom')
+ uom = uom_obj.browse(cr, uid, uom_id, context=context)
+ coef = uom.factor
+ if uom.category_id.id != val.product_id.uom_id.category_id.id:
+ coef = coef / val.product_id.uos_coeff
+ return val.product_id.uom_id.factor / coef
+
+
+ def _from_default_uom_factor(self, cr, uid, val, uom_id, context):
+ uom_obj = self.pool.get('product.uom')
+ uom = uom_obj.browse(cr, uid, uom_id, context=context)
+ res = uom.factor
+ if uom.category_id.id != val.product_id.uom_id.category_id.id:
+ res = res / val.product_id.uos_coeff
+ return res / val.product_id.uom_id.factor, uom.rounding
+
+ def calculate_planning(self, cr, uid, ids, context, *args):
+ one_minute = RelativeDateTime(minutes=1)
+ current_date_beginning_c = mx.DateTime.today()
+ current_date_end_c = current_date_beginning_c + RelativeDateTime(days=1, minutes=-1) # to get hour 23:59:00
+ current_date_beginning = current_date_beginning_c.strftime('%Y-%m-%d %H:%M:%S')
+ current_date_end = current_date_end_c.strftime('%Y-%m-%d %H:%M:%S')
+ for val in self.browse(cr, uid, ids, context=context):
+ day = mx.DateTime.strptime(val.period_id.date_start, '%Y-%m-%d %H:%M:%S')
+ dbefore = mx.DateTime.DateTime(day.year, day.month, day.day) - one_minute
+ day_before_calculated_period = dbefore.strftime('%Y-%m-%d %H:%M:%S') # one day before start of calculated period
+ cr.execute("SELECT date_start \
+ FROM stock_period AS period \
+ LEFT JOIN stock_planning AS planning \
+ ON (planning.period_id = period.id) \
+ WHERE (period.date_stop >= %s) AND (period.date_start <= %s) AND \
+ planning.product_id = %s", (current_date_end, current_date_end, val.product_id.id,)) #
+ date = cr.fetchone()
+ start_date_current_period = date and date[0] or False
+ start_date_current_period = start_date_current_period or current_date_beginning
+ day = mx.DateTime.strptime(start_date_current_period, '%Y-%m-%d %H:%M:%S')
+ dbefore = mx.DateTime.DateTime(day.year, day.month, day.day) - one_minute
+ date_for_start = dbefore.strftime('%Y-%m-%d %H:%M:%S') # one day before current period
+ already_out = self._get_in_out(cr, uid, val, start_date_current_period, current_date_end, direction='out', done = True, context=context),
+ already_in = self._get_in_out(cr, uid, val, start_date_current_period, current_date_end, direction='in', done = True, context=context),
+ outgoing = self._get_in_out(cr, uid, val, val.period_id.date_start, val.period_id.date_stop, direction='out', done = False, context=context),
+ incoming = self._get_in_out(cr, uid, val, val.period_id.date_start, val.period_id.date_stop, direction='in', done = False, context=context),
+ outgoing_before = self._get_outgoing_before(cr, uid, val, start_date_current_period, day_before_calculated_period, context=context),
+ incoming_before = self._get_in_out(cr, uid, val, start_date_current_period, day_before_calculated_period, direction='in', done = False, context=context),
+ stock_start = self._get_stock_start(cr, uid, val, date_for_start, context=context),
+ if start_date_current_period == val.period_id.date_start: # current period is calculated
+ current=True
+ else:
+ current=False
+ factor, round_value = self._from_default_uom_factor(cr, uid, val, val.product_uom.id, context=context)
+ self.write(cr, uid, ids, {
+ 'already_out': rounding(already_out[0]*factor,round_value),
+ 'already_in': rounding(already_in[0]*factor,round_value),
+ 'outgoing': rounding(outgoing[0]*factor,round_value),
+ 'incoming': rounding(incoming[0]*factor,round_value),
+ 'outgoing_before' : rounding(outgoing_before[0]*factor,round_value),
+ 'incoming_before': rounding((incoming_before[0]+ (not current and already_in[0]))*factor,round_value),
+ 'outgoing_left': rounding(val.planned_outgoing - (outgoing[0] + (current and already_out[0]))*factor,round_value),
+ 'incoming_left': rounding(val.to_procure - (incoming[0] + (current and already_in[0]))*factor,round_value),
+ 'stock_start' : rounding(stock_start[0]*factor,round_value),
+ 'stock_simulation': rounding(val.to_procure - val.planned_outgoing + (stock_start[0]+ incoming_before[0] - outgoing_before[0] \
+ + (not current and already_in[0]))*factor,round_value),
+ })
+ return True
+
+# method below converts quantities and uoms to general OpenERP standard with UoM Qty, UoM, UoS Qty, UoS.
+# from stock_planning standard where you have one Qty and one UoM (any from UoM or UoS category)
+# so if UoM is from UoM category it is used as UoM in standard and if product has UoS the UoS will be calcualated.
+# If UoM is from UoS category it is recalculated to basic UoS from product (in planning you can use any UoS from UoS category)
+# and basic UoM is calculated.
+ def _qty_to_standard(self, cr, uid, val, context):
+ uos = False
+ uos_qty = 0.0
+ if val.product_uom.category_id.id == val.product_id.uom_id.category_id.id:
+ uom_qty = val.incoming_left
+ uom = val.product_uom.id
+ if val.product_id.uos_id:
+ uos = val.product_id.uos_id.id
+ coeff_uom2def = self._to_default_uom_factor(cr, uid, val, val.product_uom.id, {})
+ coeff_def2uom, round_value = self._from_default_uom_factor(cr, uid, val, uos, {})
+ uos_qty = rounding(val.incoming_left * coeff_uom2def * coeff_def2uom, round_value)
+ elif val.product_uom.category_id.id == val.product_id.uos_id.category_id.id:
+ coeff_uom2def = self._to_default_uom_factor(cr, uid, val, val.product_uom.id, {})
+ uos = val.product_id.uos_id.id
+ coeff_def2uom, round_value = self._from_default_uom_factor(cr, uid, val, uos, {})
+ uos_qty = rounding(val.incoming_left * coeff_uom2def * coeff_def2uom, round_value)
+ uom = val.product_id.uom_id.id
+ coeff_def2uom, round_value = self._from_default_uom_factor(cr, uid, val, uom, {})
+ uom_qty = rounding(val.incoming_left * coeff_uom2def * coeff_def2uom, round_value)
+ return uom_qty, uom, uos_qty, uos
+
+ def procure_incomming_left(self, cr, uid, ids, context, *args):
+ for obj in self.browse(cr, uid, ids):
+ if obj.incoming_left <= 0:
+ raise osv.except_osv(_('Error !'), _('Incoming Left must be greater than 0 !'))
+ uom_qty, uom, uos_qty, uos = self._qty_to_standard(cr, uid, obj, context)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context)
+ proc_id = self.pool.get('mrp.procurement').create(cr, uid, {
+ 'company_id' : obj.company_id.id,
+ 'name': _('Manual planning for ') + obj.period_id.name,
+ 'origin': _('MPS(') + str(user.login) +') '+ obj.period_id.name,
+ 'date_planned': obj.period_id.date_start,
+ 'product_id': obj.product_id.id,
+ 'product_qty': uom_qty,
+ 'product_uom': uom,
+ 'product_uos_qty': uos_qty,
+ 'product_uos': uos,
+ 'location_id': obj.procure_to_stock and obj.warehouse_id.lot_stock_id.id or obj.warehouse_id.lot_input_id.id,
+ 'procure_method': 'make_to_order',
+ 'note' : _("Procurement created in MPS by user: ") + str(user.login) + _(" Creation Date: ") + \
+ time.strftime('%Y-%m-%d %H:%M:%S') + \
+ _("\nFor period: ") + obj.period_id.name + _(" according to state:") + \
+ _("\n Warehouse Forecast: ") + str(obj.warehouse_forecast) + \
+ _("\n Initial Stock: ") + str(obj.stock_start) + \
+ _("\n Planned Out: ") + str(obj.planned_outgoing) + _(" Planned In: ") + str(obj.to_procure) + \
+ _("\n Already Out: ") + str(obj.already_out) + _(" Already In: ") + str(obj.already_in) + \
+ _("\n Confirmed Out: ") + str(obj.outgoing) + _(" Confirmed In: ") + str(obj.incoming) + \
+ _("\n Planned Out Before: ") + str(obj.outgoing_before) + _(" Confirmed In Before: ") + \
+ str(obj.incoming_before) + \
+ _("\n Expected Out: ") + str(obj.outgoing_left) + _(" Incoming Left: ") + str(obj.incoming_left) + \
+ _("\n Stock Simulation: ") + str(obj.stock_simulation) + _(" Minimum stock: ") + str(obj.minimum_op),
+
+ }, context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.procurement', proc_id, 'button_confirm', cr)
+ self.calculate_planning(cr, uid, ids, context)
+ prev_text = obj.history or ""
+ self.write(cr, uid, ids, {
+ 'history' : prev_text + _('Requisition (') + str(user.login) + ", " + time.strftime('%Y.%m.%d %H:%M) ') + str(obj.incoming_left) + \
+ " " + obj.product_uom.name + "\n",
+ })
+ return True
+
+ def internal_supply(self, cr, uid, ids, context, *args):
+ for obj in self.browse(cr, uid, ids):
+ if obj.incoming_left <= 0:
+ raise osv.except_osv(_('Error !'), _('Incoming Left must be greater than 0 !'))
+ if not obj.supply_warehouse_id:
+ raise osv.except_osv(_('Error !'), _('You must specify a Source Warehouse !'))
+ if obj.supply_warehouse_id.id == obj.warehouse_id.id:
+ raise osv.except_osv(_('Error !'), _('You must specify a Source Warehouse different than calculated (destination) Warehouse !'))
+ uom_qty, uom, uos_qty, uos = self._qty_to_standard(cr, uid, obj, context)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context)
+ picking_id = self.pool.get('stock.picking').create(cr, uid, {
+ 'origin': _('MPS(') + str(user.login) +') '+ obj.period_id.name,
+ 'type': 'internal',
+ 'state': 'auto',
+ 'date' : obj.period_id.date_start,
+ 'move_type': 'direct',
+ 'invoice_state': 'none',
+ 'company_id': obj.company_id.id,
+ 'note': _("Pick created from MPS by user: ") + str(user.login) + _(" Creation Date: ") + \
+ time.strftime('%Y-%m-%d %H:%M:%S') + \
+ _("\nFor period: ") + obj.period_id.name + _(" according to state:") + \
+ _("\n Warehouse Forecast: ") + str(obj.warehouse_forecast) + \
+ _("\n Initial Stock: ") + str(obj.stock_start) + \
+ _("\n Planned Out: ") + str(obj.planned_outgoing) + _(" Planned In: ") + str(obj.to_procure) + \
+ _("\n Already Out: ") + str(obj.already_out) + _(" Already In: ") + str(obj.already_in) + \
+ _("\n Confirmed Out: ") + str(obj.outgoing) + _(" Confirmed In: ") + str(obj.incoming) + \
+ _("\n Planned Out Before: ") + str(obj.outgoing_before) + _(" Confirmed In Before: ") + \
+ str(obj.incoming_before) + \
+ _("\n Expected Out: ") + str(obj.outgoing_left) + _(" Incoming Left: ") + str(obj.incoming_left) + \
+ _("\n Stock Simulation: ") + str(obj.stock_simulation) + _(" Minimum stock: ") + str(obj.minimum_op),
+ })
+
+ move_id = self.pool.get('stock.move').create(cr, uid, {
+ 'name': _('MPS(') + str(user.login) +') '+ obj.period_id.name,
+ 'picking_id': picking_id,
+ 'product_id': obj.product_id.id,
+ 'date_planned': obj.period_id.date_start,
+ 'product_qty': uom_qty,
+ 'product_uom': uom,
+ 'product_uos_qty': uos_qty,
+ 'product_uos': uos,
+ 'location_id': obj.stock_supply_location and obj.supply_warehouse_id.lot_stock_id.id or \
+ obj.supply_warehouse_id.lot_output_id.id,
+ 'location_dest_id': obj.procure_to_stock and obj.warehouse_id.lot_stock_id.id or \
+ obj.warehouse_id.lot_input_id.id,
+ 'tracking_id': False,
+ 'company_id': obj.company_id.id,
+ })
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
+
+ self.calculate_planning(cr, uid, ids, context)
+ prev_text = obj.history or ""
+ pick_name = self.pool.get('stock.picking').browse(cr, uid, picking_id).name
+ self.write(cr, uid, ids, {
+ 'history' : prev_text + _('Pick List ')+ pick_name + " (" + str(user.login) + ", " + time.strftime('%Y.%m.%d %H:%M) ') \
+ + str(obj.incoming_left) +" " + obj.product_uom.name + "\n",
+ })
+
+ return True
+
+ def product_id_change(self, cr, uid, ids, product_id):
+ ret={}
+ if product_id:
+ product_rec = self.pool.get('product.product').browse(cr, uid, product_id)
+ ret['product_uom'] = product_rec.uom_id.id
+ ret['active_uom'] = product_rec.uom_id.id
+ ret['product_uom_categ'] = product_rec.uom_id.category_id.id
+ ret['product_uos_categ'] = product_rec.uos_id and product_rec.uos_id.category_id.id or False
+ else:
+ ret['product_uom'] = False
+ ret['product_uom_categ'] = False
+ ret['product_uos_categ'] = False
+ res = {'value': ret}
+ return res
+
+stock_planning()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml
new file mode 100644
index 00000000000..e90d68cf855
--- /dev/null
+++ b/addons/stock_planning/stock_planning_view.xml
@@ -0,0 +1,432 @@
+
+
+
+
+
+
+
+
+ stock.period.createlines.form
+ stock.period.createlines
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stock and Sales Planning Periods
+ stock.period.createlines
+ form
+ form
+
+ new
+
+
+
+
+
+
+
+ stock.period.form
+ stock.period
+ form
+
+
+
+
+
+
+
+
+
+
+
+ stock.period.tree
+ stock.period
+ tree
+
+
+
+
+
+
+
+
+
+
+
+ Stock and Sales Periods
+ stock.period
+ form
+ tree,form
+
+
+
+
+
+
+
+
+ stock.sale.forecast.createlines
+ stock.sale.forecast.createlines
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create Stock and Sales Forecasts
+ stock.sale.forecast.createlines
+ form
+ form
+
+ new
+
+
+
+
+
+
+
+ stock.sale.forecast.form
+ stock.sale.forecast
+ form
+
+