[MERGE] branch merged with lp:~openerp-dev/openobject-addons/trunk-dev-addons1

bzr revid: mso@mso-20100412053153-7qqglpxpjjuz1yog
This commit is contained in:
mso
2010-04-12 11:01:53 +05:30
75 changed files with 2858 additions and 998 deletions
+3 -1
View File
@@ -79,13 +79,15 @@ module named account_voucherss
'report/account_report_view.xml',
],
'demo_xml': [
#'demo/price_accuracy00.yml',
'account_demo.xml',
'project/project_demo.xml',
'project/analytic_account_demo.xml',
'demo/account_minimal.xml',
'account_unit_test.xml',
],
'test': [
'test/price_accuracy00.yml',
],
'installable': True,
'active': False,
'certificate': '0080331923549',
+116 -116
View File
@@ -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-04-01 22:39+0000\n"
"PO-Revision-Date: 2010-04-08 18:06+0000\n"
"Last-Translator: mitev.dmitry <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-03 03:54+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -115,7 +115,7 @@ msgstr "Rodič"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr ""
msgstr "Rada"
#. module: account
#: field:account.invoice,residual:0
@@ -134,7 +134,7 @@ msgstr "Základní kódová značka"
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
#: model:ir.ui.menu,name:account.menu_unreconcile_select
msgid "Unreconcile entries"
msgstr ""
msgstr "Nepotvrzené záznamy"
#. module: account
#: constraint:account.period:0
@@ -159,7 +159,7 @@ msgstr "Debetní Centralizace"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_invoice_state_confirm
msgid "Confirm draft invoices"
msgstr ""
msgstr "Potvrdit návrh faktury"
#. module: account
#: help:account.payment.term.line,days2:0
@@ -182,7 +182,7 @@ msgstr "Grafy účtu"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
msgid "Move line select"
msgstr ""
msgstr "Přesun řádku vyberte"
#. module: account
#: rml:account.journal.period.print:0
@@ -310,7 +310,7 @@ msgstr "Původ"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Název Pohybu"
#. module: account
#: xsl:account.transfer:0
@@ -325,7 +325,7 @@ msgstr "Vypočítat předpaltné(Subscription Compute)"
#. module: account
#: rml:account.central.journal:0
msgid "Account Num."
msgstr ""
msgstr "Číslo účtu"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -337,12 +337,12 @@ msgstr ""
#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr ""
msgstr "Daň"
#. module: account
#: rml:account.general.journal:0
msgid "Debit Trans."
msgstr ""
msgstr "Debetní transakce"
#. module: account
#: field:account.analytic.line,account_id:0
@@ -356,24 +356,24 @@ msgstr "Analytický účet"
#: field:account.tax,child_depend:0
#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
msgstr "Daň z dětí"
#. module: account
#: rml:account.central.journal:0
#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
msgstr ""
msgstr "Název časopisu"
#. module: account
#: view:account.payment.term:0
msgid "Description on invoices"
msgstr ""
msgstr "Popis na fakturách"
#. module: account
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Chyba! Nemůžete vytvářet rekurzivní analytické účty."
#. module: account
#: field:account.bank.statement.reconcile,total_entry:0
@@ -389,13 +389,13 @@ msgstr "Zdroj účtu"
#. module: account
#: field:account.journal,update_posted:0
msgid "Allow Cancelling Entries"
msgstr ""
msgstr "Povolit Zrušení Příspěvky"
#. module: account
#: model:process.transition,name:account.process_transition_paymentorderbank0
#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
msgid "Payment Reconcilation"
msgstr ""
msgstr "Platba usmíření"
#. module: account
#: model:account.journal,name:account.expenses_journal
@@ -425,7 +425,7 @@ msgstr "(Účet / Partner) Název"
#. module: account
#: selection:account.move,type:0
msgid "Contra"
msgstr ""
msgstr "Kontraindikace"
#. module: account
#: field:account.analytic.account,state:0
@@ -447,7 +447,7 @@ msgstr ""
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Special Computation"
msgstr ""
msgstr "Speciální výpočetní"
#. module: account
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
@@ -506,7 +506,7 @@ msgstr ""
#. module: account
#: view:account.invoice:0
msgid "Supplier invoice"
msgstr ""
msgstr "Dodavatele uvedený na faktuře"
#. module: account
#: model:process.transition,name:account.process_transition_reconcilepaid0
@@ -533,7 +533,7 @@ msgstr ""
#. module: account
#: field:account.account.type,close_method:0
msgid "Deferral Method"
msgstr ""
msgstr "Metoda zpoždění"
#. module: account
#: field:account.tax.template,include_base_amount:0
@@ -560,7 +560,7 @@ msgstr ""
#: selection:account.tax,applicable_type:0
#: selection:account.tax.template,applicable_type:0
msgid "True"
msgstr ""
msgstr "Pravda"
#. module: account
#: help:account.payment.term.line,days:0
@@ -577,7 +577,7 @@ msgstr ""
#. module: account
#: rml:account.central.journal:0
msgid "Printing Date"
msgstr ""
msgstr "Datum vydání"
#. module: account
#: rml:account.general.ledger:0
@@ -593,7 +593,7 @@ msgstr ""
#. module: account
#: view:account.journal:0
msgid "Entry Controls"
msgstr ""
msgstr "Vstupní kontrolou"
#. module: account
#: help:account.model.line,sequence:0
@@ -616,13 +616,13 @@ msgstr ""
#. module: account
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr ""
msgstr "Kontakt"
#. module: account
#: selection:account.model.line,date:0
#: selection:account.model.line,date_maturity:0
msgid "Partner Payment Term"
msgstr ""
msgstr "Partner splatnosti"
#. module: account
#: view:account.move.reconcile:0
@@ -637,13 +637,13 @@ msgstr "Otevřeno pro bankovní vyrovnání(Open for bank reconciliation)"
#. module: account
#: field:account.invoice.line,discount:0
msgid "Discount (%)"
msgstr ""
msgstr "Sleva (%)"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,writeoff:0
#: wizard_field:account.move.line.reconcile,init_partial,writeoff:0
msgid "Write-Off amount"
msgstr ""
msgstr "Odpis části"
#. module: account
#: help:account.fiscalyear,company_id:0
@@ -653,7 +653,7 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
msgstr "Analytické účetnictví"
#. module: account
#: rml:account.overdue:0
@@ -666,22 +666,22 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.ui.menu,name:account.next_id_41
msgid "Analytic Entries"
msgstr ""
msgstr "Analytická Příspěvky"
#. module: account
#: selection:account.subscription,period_type:0
msgid "month"
msgstr ""
msgstr "měsíc"
#. module: account
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr ""
msgstr "Přidruženého partnera"
#. module: account
#: field:account.invoice,comment:0
msgid "Additional Information"
msgstr ""
msgstr "Další informace"
#. module: account
#: selection:account.invoice,type:0
@@ -719,18 +719,18 @@ msgstr ""
#. module: account
#: model:process.transition,name:account.process_transition_supplieranalyticcost0
msgid "Analytic Invoice"
msgstr ""
msgstr "Analytická faktury"
#. module: account
#: field:account.journal.column,field:0
msgid "Field Name"
msgstr ""
msgstr "Název pole"
#. module: account
#: field:account.tax.code,sign:0
#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
msgstr ""
msgstr "Přihlaste se na mateřské"
#. module: account
#: field:account.fiscalyear,end_journal_period_id:0
@@ -741,7 +741,7 @@ msgstr ""
#: view:product.product:0
#: view:product.template:0
msgid "Purchase Properties"
msgstr ""
msgstr "Nákup Nemovitosti"
#. module: account
#: model:process.node,note:account.process_node_paymententries0
@@ -751,12 +751,12 @@ msgstr ""
#. module: account
#: wizard_button:account.invoice.pay,init,reconcile:0
msgid "Partial Payment"
msgstr ""
msgstr "Částečná platba"
#. module: account
#: wizard_view:account_use_models,create:0
msgid "Move Lines Created."
msgstr ""
msgstr "Přesun vytvořených linek."
#. module: account
#: field:account.fiscalyear,state:0
@@ -766,18 +766,18 @@ msgstr ""
#: field:account.period,state:0
#: field:account.subscription,state:0
msgid "Status"
msgstr ""
msgstr "Stav"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "Period to"
msgstr ""
msgstr "Období do"
#. module: account
#: field:account.account.type,partner_account:0
msgid "Partner account"
msgstr ""
msgstr "Partner účet"
#. module: account
#: wizard_view:account.subscription.generate,init:0
@@ -803,7 +803,7 @@ msgstr ""
#. module: account
#: field:account.invoice,move_lines:0
msgid "Move Lines"
msgstr ""
msgstr "Přesun Linky"
#. module: account
#: model:ir.model,name:account.model_account_config_wizard
@@ -831,26 +831,26 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.next_id_30
msgid "Bank Reconciliation"
msgstr ""
msgstr "Bankovní usmíření"
#. module: account
#: model:ir.model,name:account.model_account_account_template
msgid "Templates for Accounts"
msgstr ""
msgstr "Šablony pro účty"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_form
#: model:ir.model,name:account.model_account_analytic_account
#: model:ir.ui.menu,name:account.account_analytic_def_account
msgid "Analytic Accounts"
msgstr ""
msgstr "Analytické účty"
#. module: account
#: wizard_view:account.print.journal.report,init:0
#: model:ir.actions.wizard,name:account.wizard_print_journal
#: model:ir.ui.menu,name:account.menu_print_journal
msgid "Print Journal"
msgstr ""
msgstr "Tisk věstníku"
#. module: account
#: model:ir.model,name:account.model_account_bank_accounts_wizard
@@ -861,39 +861,39 @@ msgstr ""
#: field:account.move.line,date_created:0
#: field:account.move.reconcile,create_date:0
msgid "Creation date"
msgstr ""
msgstr "Datum vytvoření"
#. module: account
#: wizard_button:account.invoice.refund,init,cancel_invoice:0
msgid "Cancel Invoice"
msgstr ""
msgstr "Zrušit účet"
#. module: account
#: field:account.journal.column,required:0
msgid "Required"
msgstr ""
msgstr "Požadované"
#. module: account
#: field:product.category,property_account_expense_categ:0
#: field:product.template,property_account_expense:0
msgid "Expense Account"
msgstr ""
msgstr "Cestovní účet"
#. module: account
#: wizard_field:account.move.line.reconcile,addendum,journal_id:0
msgid "Write-Off Journal"
msgstr ""
msgstr "Odpis věstníku"
#. module: account
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
msgid "Amount Currency"
msgstr ""
msgstr "Částka měny"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
msgid "Expense Category Account"
msgstr ""
msgstr "Kategorie výdajů účtu"
#. module: account
#: wizard_field:account.fiscalyear.close,init,fy2_id:0
@@ -910,7 +910,7 @@ msgstr ""
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
msgid "Fiscal Year to Open"
msgstr ""
msgstr "Fiskální rok otevřena"
#. module: account
#: view:account.config.wizard:0
@@ -928,7 +928,7 @@ msgstr ""
#: field:account.model.line,quantity:0
#: field:account.move.line,quantity:0
msgid "Quantity"
msgstr ""
msgstr "Množství"
#. module: account
#: wizard_field:account.account.balance.report,checktype,date_to:0
@@ -936,7 +936,7 @@ msgstr ""
#: wizard_field:account.partner.balance.report,init,date2:0
#: wizard_field:account.third_party_ledger.report,init,date2:0
msgid "End date"
msgstr ""
msgstr "Datum ukončení"
#. module: account
#: field:account.invoice.tax,base_amount:0
@@ -957,12 +957,12 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_bank_statement_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_tree
msgid "Entries by Statements"
msgstr ""
msgstr "Příspěvky výroky"
#. module: account
#: model:process.transition,name:account.process_transition_analyticinvoice0
msgid "analytic Invoice"
msgstr ""
msgstr "analytické faktury"
#. module: account
#: wizard_field:account.automatic.reconcile,init,period_id:0
@@ -981,22 +981,22 @@ msgstr ""
#: wizard_field:account.print.journal.report,init,period_id:0
#: field:account.subscription,period_nbr:0
msgid "Period"
msgstr ""
msgstr "Perioda"
#. module: account
#: rml:account.partner.balance:0
msgid "Grand total"
msgstr ""
msgstr "Úhrn"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_accounting
msgid "Financial Accounting"
msgstr ""
msgstr "Finanční účetnictví"
#. module: account
#: rml:account.invoice:0
msgid "Net Total:"
msgstr ""
msgstr "Čistá celkem:"
#. module: account
#: view:account.fiscal.position:0
@@ -1010,7 +1010,7 @@ msgstr ""
#: model:ir.model,name:account.model_account_fiscal_position
#: field:res.partner,property_account_position:0
msgid "Fiscal Position"
msgstr ""
msgstr "Fiskální pozice"
#. module: account
#: field:account.analytic.line,product_uom_id:0
@@ -1027,7 +1027,7 @@ msgstr ""
#: field:account.account,child_parent_ids:0
#: field:account.account.template,child_parent_ids:0
msgid "Children"
msgstr ""
msgstr "Děti"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax
@@ -1038,35 +1038,35 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_invoice_tree2_new
#: model:ir.ui.menu,name:account.menu_action_invoice_tree2_new
msgid "New Supplier Invoice"
msgstr ""
msgstr "Nového dodavatele faktury"
#. module: account
#: wizard_field:account.invoice.pay,init,amount:0
msgid "Amount paid"
msgstr ""
msgstr "Zaplacené částky"
#. module: account
#: selection:account.invoice,type:0
#: model:process.transition,name:account.process_transition_customerinvoice0
#: model:process.transition,name:account.process_transition_suppliercustomerinvoice0
msgid "Customer Invoice"
msgstr ""
msgstr "Zákazník faktury"
#. module: account
#: wizard_view:account.open_closed_fiscalyear,init:0
msgid "Choose Fiscal Year"
msgstr ""
msgstr "Vyberte si fiskální rok"
#. module: account
#: field:account.sequence.fiscalyear,sequence_main_id:0
msgid "Main Sequence"
msgstr ""
msgstr "Hlavní posloupnosti"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.account_analytic_journal_print
msgid "Print Analytic Journals"
msgstr ""
msgstr "Tisk Analytické Časopisy"
#. module: account
#: rml:account.tax.code.entries:0
@@ -1083,7 +1083,7 @@ msgstr ""
#. module: account
#: field:account.bank.statement.reconcile,total_new:0
msgid "Total write-off"
msgstr ""
msgstr "Celkem odpis"
#. module: account
#: view:account.tax.template:0
@@ -1095,14 +1095,14 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_tax_code_list
#: model:ir.ui.menu,name:account.menu_action_tax_code_list
msgid "Tax codes"
msgstr ""
msgstr "Daňové kódy"
#. module: account
#: field:account.fiscal.position.template,chart_template_id:0
#: field:account.tax.template,chart_template_id:0
#: field:wizard.multi.charts.accounts,chart_template_id:0
msgid "Chart Template"
msgstr ""
msgstr "Graf šablony"
#. module: account
#: field:account.chart.template,property_account_income_categ:0
@@ -1113,24 +1113,24 @@ msgstr ""
#: model:ir.actions.act_window,name:account.analytic_account_form
#: model:ir.ui.menu,name:account.account_analytic_form
msgid "New Analytic Account"
msgstr ""
msgstr "Nový analitickiý účet"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form
#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template
msgid "Fiscal Position Templates"
msgstr ""
msgstr "Fiskální pozice Šablony"
#. module: account
#: rml:account.invoice:0
#: field:account.invoice.line,price_unit:0
msgid "Unit Price"
msgstr ""
msgstr "Cena za kus"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Period from :"
msgstr ""
msgstr "Období od:"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@@ -1140,7 +1140,7 @@ msgstr ""
#. module: account
#: model:account.journal,name:account.sales_journal
msgid "Journal de vente"
msgstr ""
msgstr "Prodej věstníku"
#. module: account
#: help:account.model.line,amount_currency:0
@@ -1151,23 +1151,23 @@ msgstr ""
#: view:account.fiscal.position.template:0
#: field:account.fiscal.position.template,name:0
msgid "Fiscal Position Template"
msgstr ""
msgstr "Fiskální pozice šablony"
#. module: account
#: field:account.payment.term,line_ids:0
msgid "Terms"
msgstr ""
msgstr "Podmínky"
#. module: account
#: rml:account.vat.declaration:0
msgid "Tax Report"
msgstr ""
msgstr "Daňové Report"
#. module: account
#: wizard_button:account.analytic.account.chart,init,open:0
#: wizard_button:account.chart,init,open:0
msgid "Open Charts"
msgstr ""
msgstr "Zobrazit Grafy"
#. module: account
#: wizard_view:account.fiscalyear.close.state,init:0
@@ -1177,7 +1177,7 @@ msgstr ""
#. module: account
#: selection:account.move,type:0
msgid "Bank Receipt"
msgstr ""
msgstr "Bankovní Příjem"
#. module: account
#: view:res.partner:0
@@ -1187,17 +1187,17 @@ msgstr "Bankovní účet"
#. module: account
#: field:account.chart.template,tax_template_ids:0
msgid "Tax Template List"
msgstr ""
msgstr "Daňové seznamu šablon"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
msgid "Invoice import"
msgstr ""
msgstr "Faktura import"
#. module: account
#: model:ir.actions.wizard,name:account.action_move_journal_line_form_select
msgid "Standard entry"
msgstr ""
msgstr "Standardní vstupní"
#. module: account
#: help:account.account,currency_mode:0
@@ -1212,7 +1212,7 @@ msgstr ""
#. module: account
#: field:account.account,company_currency_id:0
msgid "Company Currency"
msgstr ""
msgstr "Společnost měny"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
@@ -1222,7 +1222,7 @@ msgstr ""
#. module: account
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr ""
msgstr "Parent Analytická účtu"
#. module: account
#: wizard_button:account.move.line.reconcile,init_partial,addendum:0
@@ -1242,22 +1242,22 @@ msgstr ""
#. module: account
#: field:account.bank.statement,balance_end_real:0
msgid "Ending Balance"
msgstr ""
msgstr "Konečný zůstatek"
#. module: account
#: view:product.product:0
msgid "Purchase Taxes"
msgstr ""
msgstr "Nákup Daně"
#. module: account
#: field:account.payment.term.line,name:0
msgid "Line Name"
msgstr ""
msgstr "Název řádku"
#. module: account
#: selection:account.payment.term.line,value:0
msgid "Fixed Amount"
msgstr ""
msgstr "Pevná částka"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@@ -1285,24 +1285,24 @@ msgstr ""
#. module: account
#: view:account.config.wizard:0
msgid "Continue"
msgstr ""
msgstr "Pokračovat"
#. module: account
#: field:account.payment.term.line,value:0
msgid "Value"
msgstr ""
msgstr "Hodnota"
#. module: account
#: wizard_field:account.invoice.pay,addendum,writeoff_acc_id:0
#: wizard_field:account.move.line.reconcile,addendum,writeoff_acc_id:0
msgid "Write-Off account"
msgstr ""
msgstr "Odpis účet"
#. module: account
#: field:account.model.line,model_id:0
#: field:account.subscription,model_id:0
msgid "Model"
msgstr ""
msgstr "Vzor"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_fiscalyear_close_state
@@ -1313,12 +1313,12 @@ msgstr ""
#. module: account
#: field:account.journal,centralisation:0
msgid "Centralised counterpart"
msgstr ""
msgstr "Centralizované protějšek"
#. module: account
#: view:wizard.company.setup:0
msgid "Message"
msgstr ""
msgstr "Zpráva"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
@@ -1332,7 +1332,7 @@ msgstr ""
#: selection:account.analytic.account,type:0
#: field:account.journal,view_id:0
msgid "View"
msgstr ""
msgstr "Pohled"
#. module: account
#: selection:account.account.balance.report,checktype,display_account:0
@@ -1340,13 +1340,13 @@ msgstr ""
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "All"
msgstr ""
msgstr "Vše"
#. module: account
#: field:account.move.line,analytic_lines:0
#: model:ir.model,name:account.model_account_analytic_line
msgid "Analytic lines"
msgstr ""
msgstr "Analytická linky"
#. module: account
#: help:account.tax,type:0
@@ -1370,28 +1370,28 @@ msgstr ""
#. module: account
#: model:process.node,name:account.process_node_electronicfile0
msgid "Electronic File"
msgstr ""
msgstr "Elektronický soubor"
#. module: account
#: view:res.partner:0
msgid "Customer Credit"
msgstr ""
msgstr "Odběratelský úvěr"
#. module: account
#: field:account.invoice,tax_line:0
msgid "Tax Lines"
msgstr ""
msgstr "Daňové Linky"
#. module: account
#: field:ir.sequence,fiscal_ids:0
msgid "Sequences"
msgstr ""
msgstr "Posloupnosti"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_type_form
#: model:ir.ui.menu,name:account.menu_action_account_type_form
msgid "Account Types"
msgstr ""
msgstr "Typy účtů"
#. module: account
#: wizard_field:account.automatic.reconcile,init,journal_id:0
@@ -1413,18 +1413,18 @@ msgstr ""
#: wizard_field:populate_statement_from_inv,init,journal_id:0
#: field:report.hr.timesheet.invoice.journal,journal_id:0
msgid "Journal"
msgstr ""
msgstr "Časopis"
#. module: account
#: field:account.account,child_id:0
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
msgstr "Dětská konta"
#. module: account
#: field:account.account,check_history:0
msgid "Display History"
msgstr ""
msgstr "Zobrazení historie"
#. module: account
#: wizard_field:account.third_party_ledger.report,init,date1:0
@@ -1454,7 +1454,7 @@ msgstr ""
#: wizard_view:account.move.line.reconcile,init_full:0
#: wizard_view:account.move.line.reconcile,init_partial:0
msgid "Write-Off"
msgstr ""
msgstr "Odpis"
#. module: account
#: help:account.invoice,partner_bank:0
@@ -1466,12 +1466,12 @@ msgstr ""
#. module: account
#: field:res.partner,debit:0
msgid "Total Payable"
msgstr ""
msgstr "Celkem za poplatek"
#. module: account
#: wizard_button:account.fiscalyear.close.state,init,close:0
msgid "Close states"
msgstr ""
msgstr "Zavřít státy"
#. module: account
#: model:ir.model,name:account.model_wizard_company_setup
@@ -1486,22 +1486,22 @@ msgstr ""
#. module: account
#: field:account.journal,refund_journal:0
msgid "Refund Journal"
msgstr ""
msgstr "Refundace věstníku"
#. module: account
#: model:account.account.type,name:account.account_type_income
msgid "Income"
msgstr ""
msgstr "Příjem"
#. module: account
#: selection:account.bank.statement.line,type:0
msgid "Supplier"
msgstr ""
msgstr "Dodavatel"
#. module: account
#: rml:account.invoice:0
msgid "Tel. :"
msgstr ""
msgstr "Telefonní číslo:"
#. module: account
#: field:account.invoice.tax,tax_amount:0
+4 -4
View File
@@ -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-02-08 18:04+0000\n"
"Last-Translator: Hilario J. Montoliu (hjmf) <Unknown>\n"
"PO-Revision-Date: 2010-04-11 21:46+0000\n"
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:03+0000\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -4531,7 +4531,7 @@ msgstr "¿Está seguro que desea abrir esta factura?"
#. module: account
#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
msgid "Partner Other Ledger"
msgstr ""
msgstr "Asociar Otro Libro Mayor"
#. module: account
#: view:res.partner:0
+23 -24
View File
@@ -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-02-20 16:07+0000\n"
"PO-Revision-Date: 2010-04-11 12:31+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\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-30 04:03+0000\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -187,7 +187,7 @@ msgstr "Plan kont"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
msgid "Move line select"
msgstr ""
msgstr "Wybór pozycji zapisów"
#. module: account
#: rml:account.journal.period.print:0
@@ -217,7 +217,7 @@ msgstr "Oblicz kod (jeśli typ = kod)"
#: view:account.move:0
#: view:account.move.line:0
msgid "Account Entry Line"
msgstr "Pozycja zapisu na koncie"
msgstr "Pozycje zapisów"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
@@ -533,7 +533,7 @@ msgstr "Uzgodnij zapłacone"
#. module: account
#: wizard_field:account.chart,init,target_move:0
msgid "Target Moves"
msgstr ""
msgstr "Zapisy docelowe"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@@ -776,7 +776,7 @@ msgstr "Płatność częściowa"
#. module: account
#: wizard_view:account_use_models,create:0
msgid "Move Lines Created."
msgstr "Utworzono pozycje zmian."
msgstr "Utworzono pozycje zapisów."
#. module: account
#: field:account.fiscalyear,state:0
@@ -823,7 +823,7 @@ msgstr "(Pozostaw puste dla wszystkich otwartych lat podatkowych)"
#. module: account
#: field:account.invoice,move_lines:0
msgid "Move Lines"
msgstr "Pozycje zmian"
msgstr "Pozycje zapisów"
#. module: account
#: model:ir.model,name:account.model_account_config_wizard
@@ -1562,7 +1562,7 @@ msgstr "Szablony planu kont"
#. module: account
#: field:account.invoice,move_id:0
msgid "Invoice Movement"
msgstr ""
msgstr "Zapisy faktury"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
@@ -1808,7 +1808,7 @@ msgstr "Procentowo"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_charts
msgid "Charts"
msgstr "Wykresy"
msgstr "Plany kont"
#. module: account
#: selection:account.analytic.journal,type:0
@@ -2051,9 +2051,9 @@ msgid ""
"'draft' state and instead goes directly to the 'posted state' without any "
"manual validation."
msgstr ""
"Zaznacz to pole, jeśli nie chcesz aby nowe zmiany stanu konta przechodziły "
"przez stan 'projekt' i zamiast tego od razu wchodziły w stan 'zaksięgowane' "
"bez żadnego ręcznego zatwierdzania."
"Zaznacz to pole, jeśli nie chcesz aby nowe zapisy konta przechodziły przez "
"stan 'projekt' i zamiast tego od razu wchodziły w stan 'zaksięgowane' bez "
"żadnego ręcznego zatwierdzania."
#. module: account
#: field:account.bank.statement.line,partner_id:0
@@ -2114,7 +2114,7 @@ msgstr ""
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves_line
#: model:ir.ui.menu,name:account.menu_validate_account_moves
msgid "Validate Account Moves"
msgstr "Zatwierdź zmiany konta"
msgstr "Zatwierdź zapisy konta"
#. module: account
#: selection:account.subscription,period_type:0
@@ -2415,7 +2415,7 @@ msgstr "Konto podatkowe"
#. module: account
#: field:account.analytic.line,move_id:0
msgid "Move Line"
msgstr "Przesuń pozycję"
msgstr "Pozycja zapisu"
#. module: account
#: field:account.bank.accounts.wizard,acc_no:0
@@ -2868,7 +2868,7 @@ msgstr "ID partnera"
#: wizard_view:account.invoice.pay,addendum:0
#: wizard_view:account.move.line.reconcile,addendum:0
msgid "Write-Off Move"
msgstr "Zmiana odpisu"
msgstr "Zapis odpisu"
#. module: account
#: view:account.move.line:0
@@ -3072,7 +3072,7 @@ msgstr "Dokument"
#. module: account
#: help:account.move.line,move_id:0
msgid "The move of this entry line."
msgstr "Zmiana tej pozycji zapisu"
msgstr "Zapis dla tej pozycji."
#. module: account
#: field:account.invoice.line,uos_id:0
@@ -3240,8 +3240,7 @@ msgstr "Uwagi"
msgid ""
"The account moves of the invoice have been reconciled with account moves of "
"the payment(s)."
msgstr ""
"Zmiany konta dla faktury zostały uzgodnione ze zmianami konta płatności."
msgstr "Zapisy konta dla faktury zostały uzgodnione ze zapisami płatności."
#. module: account
#: rml:account.invoice:0
@@ -3357,7 +3356,7 @@ msgstr "Nie drukowane na fakturze"
#. module: account
#: field:account.move.line,move_id:0
msgid "Move"
msgstr "Zmiana stanu"
msgstr "Zapis"
#. module: account
#: field:account.fiscal.position.tax,tax_src_id:0
@@ -4080,7 +4079,7 @@ msgstr "Kody podrzędne"
#. module: account
#: field:account.invoice,move_name:0
msgid "Account Move"
msgstr "Zmiana stanu konta"
msgstr "Zapis konta"
#. module: account
#: view:account.bank.statement:0
@@ -4650,7 +4649,7 @@ msgstr "Wyciąg"
#: model:ir.actions.act_window,name:account.action_move_line_form_encode_by_move
#: model:ir.ui.menu,name:account.menu_encode_entries_by_move
msgid "Entries Encoding by Move"
msgstr "Wprowadzanie zapisów przez zmianę stanu"
msgstr "Zapisy"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@@ -5042,7 +5041,7 @@ msgstr "Opis podatku"
#. module: account
#: help:account.invoice,move_id:0
msgid "Link to the automatically generated account moves."
msgstr "Łącznik do automatycznie wygenerowanych zmian stanu konta."
msgstr "Łącznik do automatycznie wygenerowanych zapisów konta."
#. module: account
#: wizard_field:account.automatic.reconcile,reconcile,reconciled:0
@@ -5111,7 +5110,7 @@ msgstr "Konto dochodu w szablonie produktu"
#: help:account.account,currency_id:0
#: help:account.account.template,currency_id:0
msgid "Force all moves for this account to have this secondary currency."
msgstr "Wymuś, aby wszystkie zmiany tego konta miały tę dodatkową walutę."
msgstr "Wymuś, aby wszystkie zapisy tego konta miały tę dodatkową walutę."
#. module: account
#: wizard_button:populate_statement_from_inv,go,end:0
@@ -5605,7 +5604,7 @@ msgstr "Zamknięte"
#. module: account
#: field:account.bank.statement.line,move_ids:0
msgid "Moves"
msgstr "Zmiany stanu"
msgstr "Zapisy"
#. module: account
#: selection:account.invoice,state:0
@@ -76,8 +76,7 @@
<group expand="1" string="Extended options..." >
<filter icon="terp-account"
string="Customer Invoices"
domain="[('type','=','out_invoice')]"
default="1"/>
domain="[('type','=','out_invoice')]"/>
<filter icon="terp-account"
string="Customer Refunds"
domain="[('type','=','out_refund')]"/>
@@ -1,54 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
#
# TODO: move this in a YAML test with !python tag
#
import xmlrpclib
DB = 'training3'
USERID = 1
USERPASS = 'admin'
sock = xmlrpclib.ServerProxy('http://%s:%s/xmlrpc/object' % ('localhost',8069))
ids = sock.execute(DB, USERID, USERPASS, 'account.account', 'search', [], {})
account_lists = sock.execute(DB, USERID, USERPASS, 'account.account', 'read', ids, ['parent_id','parent_left','parent_right'])
accounts = dict(map(lambda x: (x['id'],x), account_lists))
for a in account_lists:
if a['parent_id']:
assert a['parent_left'] > accounts[a['parent_id'][0]]['parent_left']
assert a['parent_right'] < accounts[a['parent_id'][0]]['parent_right']
assert a['parent_left'] < a['parent_right']
for a2 in account_lists:
assert not ((a2['parent_right']>a['parent_left']) and
(a2['parent_left']<a['parent_left']) and
(a2['parent_right']<a['parent_right']))
if a2['parent_id']==a['id']:
assert (a2['parent_left']>a['parent_left']) and (a2['parent_right']<a['parent_right'])
print 'Tests Ok'
@@ -1,5 +1,12 @@
-
We retrieve all accounts and test they are in a tree data structure.
- |
In order to test the Preorder Traversal Tree algorythm to organize tree
structure, we retrieve all accounts and test their parent_left and
parent_right values with the following assertions
. parent_left < parent_right
. parent_left < parent_left of all childs
. parent_right > parent_right of all childs
. if an account is a child it is included in parent_left-parent_right
. if an account is not a child it is not included in parent_left-parent_right
-
!python {model: account.account}: |
ids = self.search(cr, uid, [])
@@ -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-19 10:22+0000\n"
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
"PO-Revision-Date: 2010-04-10 04:39+0000\n"
"Last-Translator: digitalsatori <Unknown>\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-30 04:07+0000\n"
"X-Launchpad-Export-Date: 2010-04-11 04:14+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_analysis
@@ -52,12 +52,12 @@ msgstr "所有辅助核算项目"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_open
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_to_valid_open
msgid "My Current Accounts"
msgstr "我当前的项目"
msgstr "我的当前科目"
#. module: account_analytic_analysis
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "无效XML视图结构!"
msgstr "描述视图结构的XML文件无效"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
@@ -72,12 +72,12 @@ msgstr "理论收入"
#. module: account_analytic_analysis
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "在这动作定义中有无效的模块名"
msgstr "在动作定义中输入的对象名称错误"
#. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0
msgid "Computed using the formula: Theorial Revenue - Total Costs"
msgstr "计算公式为:收入 - 总成本"
msgstr "计算公式:理论收入 - 总费用"
#. module: account_analytic_analysis
#: constraint:ir.model:0
@@ -89,7 +89,7 @@ msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_new
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_new
msgid "New Analytic Account"
msgstr "新的辅助核算项目"
msgstr "新的分析科目"
#. module: account_analytic_analysis
#: field:account.analytic.account,theorical_margin:0
@@ -105,7 +105,7 @@ msgstr "实际利润(%)"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all_open
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all_open
msgid "Current Analytic Accounts"
msgstr "当前辅助核算项目"
msgstr "当前分析科目"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_date:0
+4 -4
View File
@@ -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-24 07:14+0000\n"
"Last-Translator: Paco Molinero <paco@byasl.com>\n"
"PO-Revision-Date: 2010-04-11 21:48+0000\n"
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:07+0000\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_plans
@@ -303,7 +303,7 @@ msgstr "Líneas de plan analítico"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
msgid "Crossovered Analytic -"
msgstr ""
msgstr "Analítico Entrecruzado -"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,plan_id:0
+4 -4
View File
@@ -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-11-17 09:23+0000\n"
"Last-Translator: Ferdinand-chricar <Unknown>\n"
"PO-Revision-Date: 2010-04-09 13:20+0000\n"
"Last-Translator: Ferdinand @ ChriCar <Unknown>\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-30 04:01+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_tax_include
@@ -49,4 +49,4 @@ msgstr "Berechnungsgrundlage (inkl. Steuer)"
#. module: account_tax_include
#: field:account.invoice.line,price_subtotal_incl:0
msgid "Subtotal"
msgstr "Zwischenbetrag"
msgstr "Zwischensumme"
+6 -4
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 16:43+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-04-09 18:42+0000\n"
"Last-Translator: Frankenstein <Unknown>\n"
"Language-Team: Italian <it@li.org>\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-30 04:15+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality
#: field:module.quality.check,final_score:0
msgid "Final Score (%)"
msgstr ""
msgstr "Punteggio Finale (%)"
#. module: base_module_quality
#: constraint:ir.model:0
@@ -71,6 +71,8 @@ msgid ""
"Some tests are more critical than others, so they have a bigger weight in "
"the computation of final rating"
msgstr ""
"Alcuni test sono più cruciali di altri, quindi avranno un peso maggiore nel "
"calcolo del punteggio finale"
#. module: base_module_quality
#: view:module.quality.check:0
+283
View File
@@ -0,0 +1,283 @@
# Persian 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-08 14:27+0000\n"
"Last-Translator: Sadegh Ismael Nattaj <nat@sethack.com>\n"
"Language-Team: Persian <fa@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-10 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,city:0
#: wizard_field:base_setup.base_setup,init,city:0
#: wizard_field:base_setup.base_setup,update,city:0
msgid "City"
msgstr "شهر"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid ""
"You can start configuring the system or connect directly to the database "
"using the default setup."
msgstr ""
"شما می‌توانید با بکارگیری از سوارسازی پیش‌فرض آغاز به پیکربندی سامانه کنید و "
"یا یک‌راست به دادگان متصل شوید."
#. 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 "کد پستی"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid "Select a Profile"
msgstr "یک پروفایل را برگزینید"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report header"
msgstr "سرنویس گزارش"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,config:0
msgid "Start Configuration"
msgstr "آغاز پیکربندی"
#. 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 ""
"شما می‌توانید از طریق منوی راهبری پیمانه‌های بیشتری را در آینده برپاسازی "
"نمایید."
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid ""
"A profile sets a pre-selection of modules for specific needs. These profiles "
"have been setup to help you discover the different aspects of OpenERP. This "
"is just an overview, we have 300+ available modules."
msgstr ""
"یک پروفایل دارای پیمانه‌های از پیش گزینش شده برای نیازهای خاص است. این "
"پروفایل‌ها برای این سوار می‌شوند تا به شما برای شناخت بیشتر جنبه‌های متفاوت "
"اپن ای‌آر‌پی کمک نماید. این تنها یک پیش‌نمایش است، ما بیش از ۳۰۰ پیمانه "
"آماده داریم."
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,update:0
#: wizard_button:base_setup.base_setup,init,company:0
msgid "Next"
msgstr "پس"
#. 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 "ایمیل"
#. 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 "استان"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Your new database is now fully installed."
msgstr "دادگان نو شما بطور کامل برپاسازی گردید."
#. 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 "پروفایل"
#. 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 "پانویس گزارش ۱"
#. 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 "پانویس گزارش ۲"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "General Information"
msgstr "آگهگان عمومی"
#. 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 "خیابان۲"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report Information"
msgstr "آگهگان گزارش"
#. 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 "تلفن"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Define Main Company"
msgstr "تعریف شرکت اصلی"
#. 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 "نام شرکت"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer2:0
#: help:base_setup.base_setup,init,rml_footer2:0
#: help:base_setup.base_setup,update,rml_footer2:0
msgid ""
"This sentence will appear at the bottom of your reports.\n"
"We suggest you to put bank information here:\n"
"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701"
msgstr ""
"این جمله در پایین گزارش‌های شما ظاهر خواهد شد.\n"
"پیشنهاد می‌کنیم آگهگان بانکی را اینجا وارد نمایید:\n"
"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: 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 "کشور"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
#: wizard_view:base_setup.base_setup,finish:0
#: wizard_view:base_setup.base_setup,init:0
#: wizard_view:base_setup.base_setup,update:0
#: model:ir.actions.wizard,name:base_setup.action_wizard_setup
#: model:ir.actions.wizard,name:base_setup.wizard_base_setup
msgid "Setup"
msgstr "سوارکردن"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer1:0
#: help:base_setup.base_setup,init,rml_footer1:0
#: help:base_setup.base_setup,update,rml_footer1:0
msgid ""
"This sentence will appear at the bottom of your reports.\n"
"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 ""
"این جمله در پایین گزارش‌های شما ظاهر خواهد شد.\n"
"پیشنهاد می‌کنیم تا از عبارات قانونی در اینجا بکار ببرید:\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 "چکیده"
#. module: base_setup
#: wizard_button:base_setup.base_setup,update,finish:0
msgid "Install"
msgstr "برپایی"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Installation Done"
msgstr "برپایی انجام شد"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_header1:0
#: help:base_setup.base_setup,init,rml_header1:0
#: help:base_setup.base_setup,update,rml_header1:0
msgid ""
"This sentence will appear at the top right corner of your reports.\n"
"We suggest you to put a slogan here:\n"
"\"Open Source Business Solutions\"."
msgstr ""
"این جمله در گوشه بالا سمت راست گزارش‌های شما ظاهر خواهد شد.\n"
"پیشنهاد می‌کنیم شعار خود را اینجا قرار دهید:\n"
"\"راهکارهای بازمتن برای تجارت\"."
#. 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 "سرنویس گزارش"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Your Logo - Use a size of about 450x150 pixels."
msgstr "نشان شما - اندازه تصویری ۱۵۰×۴۵۰ پیکسل را بکار برید."
#. 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 "ارز"
#. 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 "خیابان"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,menu:0
msgid "Use Directly"
msgstr "بکارگیری آنی"
#. module: base_setup
#: wizard_button:base_setup.base_setup,init,menu:0
msgid "Cancel"
msgstr "لغو"
#. 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 "نشان"
#. module: base_setup
#: model:ir.module.module,shortdesc:base_setup.module_meta_information
msgid "Base Setup"
msgstr "سوارکردن پایه"
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,init:0
#: wizard_button:base_setup.base_setup,update,company:0
msgid "Previous"
msgstr "پیش"
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
+1 -1
View File
@@ -183,7 +183,7 @@
<newline/>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
string="Reply to Email"
name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.claim'}"
icon="gtk-undo" type="action" />
+1 -1
View File
@@ -191,7 +191,7 @@
<newline/>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
string="Reply to Email"
name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.fundraising'}"
icon="gtk-undo" type="action" />
+1 -1
View File
@@ -126,7 +126,7 @@
<newline/>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
string="Reply to Email"
name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.helpdesk'}"
icon="gtk-undo" type="action" />
+1 -1
View File
@@ -166,7 +166,7 @@
<newline/>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
string="Reply to Email"
name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.lead'}"
icon="gtk-undo" type="action" />
+19 -18
View File
@@ -36,14 +36,14 @@
<field name="view_id" ref="crm_case_form_view_meet"/>
<field name="act_window_id" ref="crm_case_categ_meet_create_partner"/>
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_partner">
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_partner">
<field name="sequence" eval="3"/>
<field name="view_mode">gantt</field>
<field name="view_id" ref="crm_case_gantt_view_meet"/>
<field name="act_window_id" ref="crm_case_categ_meet_create_partner"/>
</record>
<act_window
<act_window
id="crm_case_categ_meet_case"
name="Schedule a Meeting"
res_model="crm.meeting"
@@ -74,7 +74,7 @@
<field name="view_id" ref="crm_case_form_view_meet"/>
<field name="act_window_id" ref="crm_case_categ_meet_case"/>
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_case">
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_case">
<field name="sequence" eval="3"/>
<field name="view_mode">gantt</field>
<field name="view_id" ref="crm_case_gantt_view_meet"/>
@@ -116,26 +116,27 @@
<!-- ALL MEETINGS -->
<menuitem name="Meetings" id="menu_meeting_sale"
parent="base.menu_base_partner" sequence="3" />
parent="base.menu_base_partner" sequence="3" />
<menuitem name="Meetings" id="menu_crm_case_categ_meet"
action="crm_case_categ_meet" parent="menu_meeting_sale"
sequence="1" />
action="crm_case_categ_meet" parent="menu_meeting_sale"
sequence="1" />
<record id="action_view_attendee_form" model="ir.actions.act_window">
<field name="name">Meeting Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
<field name="name">Meeting Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
<field name="domain">[('ref','like','crm.meeting,')]</field>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<menuitem id="menu_attendee_invitations"
name="Meeting Invitations" parent="crm.menu_meeting_sale"
sequence="10" action="action_view_attendee_form" />
name="Meeting Invitations" parent="crm.menu_meeting_sale"
groups="base.group_extended"
sequence="10" action="action_view_attendee_form" />
<record model="ir.actions.act_window" id="crm_case_category_act_meetall3">
@@ -145,7 +146,7 @@
<field name="view_mode">tree,calendar,form,gantt</field>
<field name="view_id" ref="crm_case_calendar_view_meet"/>
<field name="domain"
eval="[('state','in',('pending','draft','open')),('date','>=',time.strftime('%Y-%m-%d'))]" />
eval="[('state','in',('pending','draft','open')),('date','>=',time.strftime('%Y-%m-%d'))]" />
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_calendar_view_meetall3">
@@ -169,7 +170,7 @@
<field name="act_window_id" ref="crm_case_category_act_meetall3"/>
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_view_meetall3">
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_view_meetall3">
<field name="sequence" eval="2"/>
<field name="view_mode">gantt</field>
<field name="view_id" ref="crm_case_gantt_view_meet"/>
Executable → Regular
-3
View File
@@ -259,9 +259,6 @@
<filter icon="terp-crm" string="My Meetings"
domain="[('user_id','=',uid)]"
help="My Meetings" />
<filter icon="terp-crm" string="Current"
domain="[('state','in',('draft', 'open'))]"
default="1" help="Current Meetings" />
<filter icon="terp-crm" name="current" string="Current"
domain="[('state','in',('draft', 'open'))]"
help="Current Meetings"/>
+1 -1
View File
@@ -88,7 +88,7 @@ class crm_opportunity(osv.osv):
resource_id = False
if opportunity.user_id:
resource_ids = res_obj.search(cr, uid, [('user_id','=',opportunity.user_id.id)])
resource_id = len(resource_ids) or resource_ids[0]
resource_id = len(resource_ids) and resource_ids[0] or False
duration = float(ans.days)
if opportunity.section_id.resource_calendar_id:
+7 -9
View File
@@ -82,21 +82,19 @@
</group>
<notebook colspan="4">
<page string="Opportunity">
<group col="3" colspan="2">
<group col="4" colspan="2">
<separator colspan="4" string="Contacts"/>
<field name="partner_id" select="1"
on_change="onchange_partner_id(partner_id, email_from)"
colspan="2" />
on_change="onchange_partner_id(partner_id, email_from)" />
<field name="partner_address_id"
string="Contact"
on_change="onchange_partner_address_id(partner_address_id, email_from)"
colspan="1" />
on_change="onchange_partner_address_id(partner_address_id, email_from)"/>
<field name="email_from" string="Email" />
<field name="phone"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Categorization"/>
<field name="type_id" select="1" string="Campaign"/>
<field name="type_id" select="1" string="Campaign" groups="base.group_extended"/>
<field name="section_id" colspan="1" widget="selection"/>
<field name="priority" string="Priority"/>
<field name="categ_id" select="1"
@@ -104,7 +102,7 @@
domain="[('object_id.model', '=', 'crm.opportunity')]" />
</group>
<separator colspan="4" string="Details"/>
<separator colspan="4" string="Notes"/>
<field name="description" nolabel="1" colspan="4"/>
<separator colspan="4"/>
@@ -215,9 +213,9 @@
<button name="stage_next" string="Next"
states="open,pending" type="object"
icon="gtk-go-forward" />
<field name="planned_revenue" sum="Total of Planned Revenue"/>
<field name="planned_revenue" sum="Expected Revenue"/>
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
<field name="date_deadline" string="Excepted Closing"/>
<field name="date_deadline" string="Expected Closing"/>
<field name="section_id"/>
<field name="user_id"/>
<field name="priority"/>
+3 -3
View File
@@ -364,7 +364,7 @@
<separator colspan="4" string="Action Information"/>
<field colspan="4" name="name"/>
<field name="date" select="2"/>
<field name="user_id" select="2"/>
<field name="user_id" select="2"/>
</form>
</field>
</page>
@@ -377,7 +377,7 @@
<group col="7" colspan="4">
<field name="date"/>
<field name="email_to"/>
<field name="email_from"/>
<field name="email_from"/>
<button
string="Add a CC"
name="%(crm.action_view_crm_email_add_cc_wizard)d"
@@ -386,7 +386,7 @@
<newline/>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
string="Reply to Email"
name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.case'}"
icon="gtk-undo" type="action" />
+26 -14
View File
@@ -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: 2010-01-27 18:25+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"PO-Revision-Date: 2010-04-11 11:53+0000\n"
"Last-Translator: drygal <Unknown>\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-30 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
#: field:crm.email.add.cc,name:0
msgid "Send to"
msgstr ""
msgstr "Wyślij do"
#. module: crm
#: help:crm.meeting,exdate:0
@@ -27,12 +27,16 @@ msgid ""
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
"Ta cecha definiuje listę wyjątków daty/czasu dla powtarzanych elementów "
"kalendarza."
#. 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 ""
"Zaznacz to jeżeli chcesz aby przez regułę został wysłany email do "
"odpowiedzialnej osoby."
#. module: crm
#: view:crm.meeting:0
@@ -47,7 +51,7 @@ msgstr ""
#. module: crm
#: wizard_field:crm.lead.partner_create,init,close:0
msgid "Close Lead"
msgstr ""
msgstr "Zamknij ślad"
#. module: crm
#: view:crm.job:0
@@ -55,7 +59,7 @@ msgstr ""
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " 7 Days "
msgstr ""
msgstr " 7 Dni "
#. module: crm
#: help:crm.menu.config_wizard,helpdesk:0
@@ -65,7 +69,7 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Pending Jobs"
msgstr ""
msgstr "Zadania Oczekujące"
#. module: crm
#: field:crm.case.rule,trg_state_to:0
@@ -80,7 +84,7 @@ msgstr "Planowane koszty"
#. module: crm
#: wizard_field:crm.job.partner_create,init,close:0
msgid "Close job request"
msgstr ""
msgstr "Żądanie zakończenia zadania."
#. module: crm
#: field:crm.case.stage,name:0
@@ -103,6 +107,8 @@ msgid ""
"The partner category that will be added to partners that match the "
"segmentation criterions after computation."
msgstr ""
"Kategoria partnera, która zostanie dodana do partnerów spełniających "
"kryteria segmentacji po obliczeniach."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_hr
@@ -120,11 +126,13 @@ msgid ""
"Manages the supplier and customers claims, including your corrective or "
"preventive actions."
msgstr ""
"Zarządza skargami dostawców i klientów, wliczając twoje działania naprawcze "
"i prewencyjne."
#. module: crm
#: view:crm.fundraising:0
msgid "Amount"
msgstr ""
msgstr "Ilość"
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
@@ -150,29 +158,29 @@ msgstr "Ostrzeżenie !"
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
#, python-format
msgid "Please specify user's email address !"
msgstr ""
msgstr "Proszę podać adres email użytkownika!"
#. module: crm
#: model:crm.case.categ,name:crm.categ_oppor5
msgid "Campaign"
msgstr ""
msgstr "Kampania"
#. module: crm
#: view:crm.opportunity:0
msgid "Search Opportunities"
msgstr ""
msgstr "Szukaj w Okazjach"
#. 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 "Przypadki w Sekcjach i Etapach"
#. 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 "Długość trwania (godziny)"
#. module: crm
#: selection:crm.meeting,transparent:0
@@ -185,6 +193,8 @@ msgid ""
"Describes the action name.eg:on which object which ation to be taken on "
"basis of which condition"
msgstr ""
"Opisuje nazwę działania, np. na których obiektach jakie będzie działanie na "
"podstawie jakich warunków."
#. module: crm
#: help:crm.case,section_id:0
@@ -192,6 +202,8 @@ msgid ""
"Section to which Case belongs to. Define Responsible user and Email account "
"for mail gateway."
msgstr ""
"Sekcja do której należy Przypadek. Zdefiniuj odpowiedzialnego użytkownika "
"oraz konto Email dla bramy pocztowej."
#. module: crm
#: view:crm.case:0
@@ -71,7 +71,7 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
for url in [x[1] for x in link.attrs if x[0]=='href']:
urls.append(dict(url=url, tag=str(link), title=title))
html = soup.__str__()
html = unicode(soup)
url_index = []
i = 0
+1 -1
View File
@@ -146,7 +146,7 @@ class crm_send_new_email(osv.osv_memory):
if 'email_cc' in fields:
res.update({'email_cc': case.email_cc or ''})
if 'text' in fields:
res.update({'text': '\n\n'+(case.user_id.signature or '') + '\n\n' + (case.description or '')})
res.update({'text': '\n\n'+(case.user_id.signature or '')})
if 'state' in fields:
res.update({'state': 'pending'})
return res
@@ -15,6 +15,7 @@
<field name="subject" colspan="4"/>
<group colspan="4" string="Extended Options" expand="1">
<field name="email_from" />
<newline/>
<field name="doc1" filename="doc1_fname"/>
<field name="doc1_fname"/>
<field name="doc2" filename="doc2_fname" />
+18
View File
@@ -300,6 +300,24 @@ class hr_evaluation_interview(osv.osv):
self.write(cr, uid, ids, { 'state' : 'cancel'}, context=context)
return True
def action_print_survey(self, cr, uid, ids, context=None):
"""
If response is available then print this response otherwise print survey form(print template of the survey).
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Survey IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for print survey form.
"""
if not context:
context = {}
record = self.browse(cr, uid, ids, context)
record = record and record[0]
context.update({'survey_id': record.survey_id.id, 'response_id' : [record.response.id], 'response_no':0,})
value = self.pool.get("survey").action_print_survey(cr, uid, ids, context)
return value
hr_evaluation_interview()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:1
+7 -6
View File
@@ -261,8 +261,8 @@
<group colspan="1">
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel"
icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done"
icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" />
<button name="action_print_survey" string="Print Interview" type="object" states="waiting_answer,done,cancel"
icon="gtk-print" attrs="{'readonly':[('survey_id','=',False)]}" />
</group>
</group>
<group col="4" colspan="4">
@@ -297,8 +297,8 @@
<field name="response" readonly="1" invisible="True"/>
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel"
icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done"
icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0}" attrs="{'readonly':[('response','=',False)]}" />
<button name="action_print_survey" string="Print Interview" type="object" states="waiting_answer,done,cancel"
icon="gtk-print" attrs="{'readonly':[('survey_id','=',False)]}"/>
<field name="state"/>
</tree>
</field>
@@ -311,9 +311,9 @@
<field name="arch" type="xml">
<search string="Search Evaluation">
<group col='10' colspan='4'>
<filter icon="terp-crm" string="To Do" domain="[('state','=','waiting_answer')]" default="1"/>
<filter icon="terp-crm" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/>
<separator orientation="vertical"/>
<filter string="My" icon="terp-partner" domain="[('user_id','=',uid)]" default="1"/>
<filter string="My" icon="terp-partner" name="my" domain="[('user_id','=',uid)]"/>
<separator orientation="vertical"/>
<filter icon="terp-stock" string="Late" domain="[('date_deadline','&lt;',current_date)]"/>
<separator orientation="vertical"/>
@@ -329,6 +329,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_evaluation' ,'=', True)]</field>
<field name="context">{"search_default_todo":1,"search_default_my":1}</field>
<field name="search_view_id" ref="view_hr_evaluation_interview_search"/>
</record>
+4 -4
View File
@@ -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-11-22 19:07+0000\n"
"PO-Revision-Date: 2010-04-09 12:59+0000\n"
"Last-Translator: Ferdinand @ ChriCar <Unknown>\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-30 04:10+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense
@@ -508,7 +508,7 @@ msgstr "Der Vorgesetzte akzeptiert die Ausgabenliste"
#. module: hr_expense
#: field:hr.expense.line,sequence:0
msgid "Sequence"
msgstr "Sequenzer"
msgstr "Sequenz"
#. module: hr_expense
#: model:process.transition,note:hr_expense.process_transition_confirmexpense0
@@ -524,7 +524,7 @@ msgstr "Spesenerfassung"
#. module: hr_expense
#: field:hr.expense.line,total_amount:0
msgid "Total"
msgstr "Betrag gesammt"
msgstr "Betrag gesamt"
#. module: hr_expense
#: model:process.node,name:hr_expense.process_node_reinvoicing0
+3 -5
View File
@@ -10,10 +10,9 @@
<group col='8' colspan='4'>
<filter icon="terp-hr" domain="[('state','=','draft')]" string="To Confirm"/>
<filter icon="terp-hr" domain="[('state','=','confirm')]" string="To Validate"/>
<filter icon="terp-hr" domain="[('state','=','validate')]" string="Validated"
default="context.get('report', False)"/>
<filter icon="terp-hr" domain="[('state','=','validate')]" string="Validated"/>
<separator orientation="vertical"/>
<filter icon="terp-hr" help="My Leaves" domain="[('user_id','=',uid)]" string="My Leaves" default="1"/>
<filter icon="terp-hr" help="My Leaves" domain="[('user_id','=',uid)]" string="My Leaves"/>
<separator orientation="vertical"/>
<field name="user_id" widget="selection" />
<field name="department_id" widget="selection">
@@ -30,8 +29,7 @@
<filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'employee_id'}"/>
<separator orientation="vertical"/>
<filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
<filter string="Type" icon="terp-sale" domain="[]" context="{'group_by':'holiday_status_id'}"
default="context.get('report', False)"/>
<filter string="Type" icon="terp-sale" domain="[]" context="{'group_by':'holiday_status_id'}"/>
</group>
</search>
</field>
+112 -3
View File
@@ -20,6 +20,7 @@
##############################################################################
from osv import fields,osv,orm
from tools.translate import _
AVAILABLE_STATES = [
('draft','New'),
@@ -54,13 +55,121 @@ class hr_applicant(osv.osv):
'partner_name': fields.char("Applicant's Name", size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'hr.applicant')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('object_id.model', '=', 'hr.applicant')]"),
'department_id':fields.many2one('hr.department','Department'),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'survey' : fields.related('job_id', 'survey_id', type='many2one', relation='survey', string='Survey'),
'response' : fields.integer("Response"),
}
def stage_previous(self, cr, uid, ids, context=None):
"""This function computes previous stage for case from its current stage
using available stage for that case type
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of case IDs
@param context: A standard dictionary for contextual values"""
if not context:
context = {}
for case in self.browse(cr, uid, ids, context):
section = (case.section_id.id or False)
st = case.stage_id.id or False
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [])
if st and stage_ids.index(st):
self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)-1]})
return True
def stage_next(self, cr, uid, ids, context=None):
"""This function computes next stage for case from its current stage
using available stage for that case type
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of case IDs
@param context: A standard dictionary for contextual values"""
if not context:
context = {}
for case in self.browse(cr, uid, ids, context):
section = (case.section_id.id or False)
st = case.stage_id.id or False
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [])
if st and len(stage_ids) != stage_ids.index(st)+1:
self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)+1]})
return True
def action_makeMeeting(self, cr, uid, ids, context=None):
"""
This opens Meeting's calendar view to schedule meeting on current Opportunity
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Opportunity to Meeting IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for created Meeting view
"""
value = {}
for opp in self.browse(cr, uid, ids):
data_obj = self.pool.get('ir.model.data')
# Get meeting views
result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter')
res = data_obj.read(cr, uid, result, ['res_id'])
id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet')
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet')
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet')
if id1:
id1 = data_obj.browse(cr, uid, id1, context=context).res_id
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
context = {
'default_opportunity_id': opp.id,
'default_partner_id': opp.partner_id and opp.partner_id.id or False,
'default_section_id': opp.section_id and opp.section_id.id or False,
'default_email_from': opp.email_from,
'default_state': 'open',
'default_name': opp.name
}
value = {
'name': _('Meetings'),
'domain': "[('user_id','=',%s)]" % (uid),
'context': context,
'view_type': 'form',
'view_mode': 'calendar,form,tree',
'res_model': 'crm.meeting',
'view_id': False,
'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')],
'type': 'ir.actions.act_window',
'search_view_id': res['res_id'],
'nodestroy': True
}
return value
def action_print_survey(self, cr, uid, ids, context=None):
"""
If response is available then print this response otherwise print survey form(print template of the survey).
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Survey IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for print survey form.
"""
if not context:
context = {}
record = self.browse(cr, uid, ids, context)
record = record and record[0]
context.update({'survey_id': record.survey.id, 'response_id' : [record.response], 'response_no':0,})
value = self.pool.get("survey").action_print_survey(cr, uid, ids, context)
return value
hr_applicant()
class hr_job(osv.osv):
@@ -70,4 +179,4 @@ class hr_job(osv.osv):
'survey_id': fields.many2one('survey', 'Survey'),
}
hr_job()
hr_job()
@@ -43,8 +43,8 @@
<field name="partner_phone"/>
<field name="job_id"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/>
<button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/>
<button name="stage_previous" string="Previous" states="draft,open,cancel,done,pending" type="object" icon="gtk-go-back"/>
<button name="stage_next" string="Next" states="draft,open,cancel,done,pending" type="object" icon="gtk-go-forward"/>
<field name="survey" invisible="1"/>
<field name="response" invisible="1"/>
<field name="priority"/>
@@ -71,8 +71,9 @@
<group colspan="4" col="8">
<field name="name" string="Subject"/>
<label string="Stage: " align="1.0"/>
<group colspan="1" col="2">
<group colspan="1" col="3">
<field name="stage_id" nolabel="1"/>
<button name="stage_previous" string="" type="object" icon="gtk-go-back"/>
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
<field name="user_id"/>
@@ -84,10 +85,11 @@
<field name="partner_name"/>
<field name="job_id"/>
<field name="department_id" widget="selection"/>
<button name="%(wizard_hr_job_meeting_set)d" string="Schedule Meeting" icon="terp-hr" type="action"/>
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action"
icon="gtk-print" context="{'survey_id': survey, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" />
</group>
<button name="action_makeMeeting" type="object"
string="Schedule Meeting" icon="terp-hr" />
<button name="action_print_survey" string="Print Interview" type="object"
icon="gtk-print" attrs="{'readonly':[('survey','=',False)]}"/>
</group>
<notebook colspan="4">
<page string="Job Info">
<group col="2" colspan="2">
@@ -9,14 +9,6 @@
multi="True"
string="Schedule Phone Call" />
<wizard
id="wizard_hr_job_meeting_set"
keyword="client_action_multi"
model="hr.applicant"
name="hr.applicant.meeting_set"
multi="True"
string="Schedule Meeting"/>
<wizard
id="wizard_hr_job_partner_create"
keyword="client_action_multi"
@@ -132,61 +132,6 @@ class job2phonecall(wizard.interface):
job2phonecall('hr.applicant.reschedule_phone_call')
class job2meeting(wizard.interface):
def _makeMeeting(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
job_case_obj = pool.get('hr.applicant')
meeting_case_obj = pool.get('hr.meeting')
for job in job_case_obj.browse(cr, uid, data['ids']):
new_meeting_id = meeting_case_obj.create(cr, uid, {
'name': job.name,
'date': job.date,
'duration': job.duration,
})
new_meeting = meeting_case_obj.browse(cr, uid, new_meeting_id)
vals = {}
job_case_obj.write(cr, uid, [job.id], vals)
job_case_obj.case_cancel(cr, uid, [job.id])
meeting_case_obj.case_open(cr, uid, [new_meeting_id])
data_obj = pool.get('ir.model.data')
result = data_obj._get_id(cr, uid, 'hr', 'view_hr_case_meetings_filter')
id = data_obj.read(cr, uid, result, ['res_id'])
id1 = data_obj._get_id(cr, uid, 'hr', 'hr_case_calendar_view_meet')
id2 = data_obj._get_id(cr, uid, 'hr', 'hr_case_form_view_meet')
id3 = data_obj._get_id(cr, uid, 'hr', 'hr_case_tree_view_meet')
if id1:
id1 = data_obj.browse(cr, uid, id1, context=context).res_id
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 {
'name': _('Meetings'),
'view_type': 'form',
'view_mode': 'calendar,form,tree',
'res_model': 'hr.meeting',
'view_id': False,
'views': [(id1,'calendar'),(id2,'form'),(id3,'tree'),(False,'graph')],
'type': 'ir.actions.act_window',
'search_view_id': id['res_id']
}
states = {
'init': {
'actions': [],
'result': {'type': 'action', 'action': _makeMeeting, 'state': 'order'}
},
'order': {
'actions': [],
'result': {'type': 'state', 'state': 'end'}
}
}
job2meeting('hr.applicant.meeting_set')
class partner_create(wizard.interface):
case_form = """<?xml version="1.0"?>
@@ -181,7 +181,7 @@
<field name="arch" type="xml">
<search string="Search Timesheet">
<group col="10" colspan="4">
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My" default="1"/>
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My" />
<separator orientation="vertical"/>
<filter icon="terp-crm" string="In Progress" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
<filter icon="terp-crm" string="To Validate" domain="[('state','=','confirmed')]" help="Confirmed Timesheets"/>
+25 -3
View File
@@ -6466,9 +6466,20 @@
</record>
<record id="vat_code_a44" model="account.tax.code.template">
<field name="code">44</field>
<field name="name">Services intra-communautaires</field>
<field name="name">Services intra-communautaires et ABC</field>
<field name="parent_id" ref="vat_code_out"/>
</record>
<record id="vat_code_a44a" model="account.tax.code.template">
<field name="code">44a</field>
<field name="name">Services intra-communautaires</field>
<field name="parent_id" ref="vat_code_a44"/>
</record>
<record id="vat_code_a44b" model="account.tax.code.template">
<field name="code">44b</field>
<field name="name">ABC intra-communautaires</field>
<field name="parent_id" ref="vat_code_a44"/>
</record>
<record id="vat_code_a45" model="account.tax.code.template">
<field name="code">45</field>
<field name="name">Operations avec TVA due par le cocontractant</field>
@@ -7053,14 +7064,25 @@
</record>
<record id="vat_IO_S" model="account.tax.template">
<field name="chart_template_id" ref="l10nbe_chart_template"/>
<field name="name">TVA 0% Intracommunautaire (Services et ABC)</field>
<field name="name">TVA 0% Services Intracommunautaires</field>
<field name="description">V-INTRA-S 0</field>
<field eval="0.00" name="amount"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_a44"/>
<field name="base_code_id" ref="vat_code_a44a"/>
<field name="ref_base_code_id" ref="vat_code_a48"/>
<field name="type_tax_use">sale</field>
</record>
<record id="vat_IO_S" model="account.tax.template">
<field name="chart_template_id" ref="l10nbe_chart_template"/>
<field name="name">TVA 0% ABC Intracommunautaire</field>
<field name="description">V-INTRA-ABC 0</field>
<field eval="0.00" name="amount"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_a44b"/>
<field name="ref_base_code_id" ref="vat_code_a48"/>
<field name="type_tax_use">sale</field>
</record>
<!-- Purchases VAT -->
<record id="vat_IO_buy_21b" model="account.tax.template">
@@ -37,6 +37,18 @@ class vat_listing_clients(osv.osv_memory):
'amount': fields.float('Amount'),
'turnover': fields.float('Turnover'),
}
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
return [(r['id'], r['name'] + ' - ' + r['vat']) \
for r in self.read(cr, uid, ids, ['name', 'vat'],
context, load='_classic_write')]
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100):
client = self.search(cr, uid, [('vat', '=', name)]+args, limit=limit, context=context)
if not client:
client = self.search(cr, uid, [('name', 'ilike', '%%%s%%' % name)]+args, limit=limit, context=context)
return self.name_get(cr, uid, client, context=context)
vat_listing_clients()
@@ -225,4 +237,4 @@ class partner_vat_list(osv.osv_memory):
partner_vat_list()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -56,7 +56,9 @@ class l10n_be_vat_declaration(osv.osv_memory):
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!'))
# raise wizard.except_wizard(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
ctx = context.copy()
@@ -65,7 +67,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
address = post_code = city = country_code = ''
city, post_code, address, country_code = pooler.get_pool(cr.dbname).get('res.company')._get_default_ad(obj_company.partner_id.address)
city, post_code, address, country_code =self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
year_id = obj_fyear.find(cr, uid)
@@ -77,7 +79,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
data_of_file='<?xml version="1.0"?>\n<VATSENDING xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MultiDeclarationTVA-NoSignature-14.xml">'
data_of_file +='\n\t<DECLARER>\n\t\t<VATNUMBER>'+str(vat_no)+'</VATNUMBER>\n\t\t<NAME>'+str(obj_company.name)+'</NAME>\n\t\t<ADDRESS>'+address+'</ADDRESS>'
data_of_file +='\n\t\t<POSTCODE>'+post_code+'</POSTCODE>\n\t\t<CITY>'+city+'</CITY>\n\t\t<COUNTRY>'+country_code+'</COUNTRY>\n\t\t<SENDINGREFERENCE>'+send_ref+'</SENDINGREFERENCE>\n\t</DECLARER>'
data_of_file +='\n\t<VATRECORD>\n\t\t<RECNUM>1</RECNUM>\n\t\t<VATNUMBER>'+str(vat_no[2:])+'</VATNUMBER>\n\t\t<DPERIODE>\n\t\t\t'
data_of_file +='\n\t<VATRECORD>\n\t\t<RECNUM>1</RECNUM>\n\t\t<VATNUMBER>'+((vat_no and str(vat_no[2:])) or '')+'</VATNUMBER>\n\t\t<DPERIODE>\n\t\t\t'
starting_month = account_period.date_start[5:7]
ending_month = account_period.date_stop[5:7]
@@ -89,7 +91,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
else:
data_of_file += '<MONTH>'+starting_month+'</MONTH>\n\t\t\t'
data_of_file += '<YEAR>' + str(account_period.date_stop[:4]) + '</YEAR>\n\t\t</DPERIODE>\n\t\t<ASK RESTITUTION="NO" PAYMENT="NO"/>'
data_of_file += '\n\t\t<ClientListingNihil>'+ (data['form']['client_nihil'] and 'YES' or 'NO') +'</ClientListingNihil>'
data_of_file += '\n\t\t<ClientListingNihil>'+ (data['client_nihil'] and 'YES' or 'NO') +'</ClientListingNihil>'
data_of_file +='\n\t\t<DATA>\n\t\t\t<DATA_ELEM>'
for item in tax_info:
+31 -95
View File
@@ -20,6 +20,7 @@
##############################################################################
import time
import base64
from tools.translate import _
from osv import osv, fields
@@ -34,14 +35,18 @@ class partner_vat_intra(osv.osv_memory):
return obj_country.search(cursor, user, [('code', 'in', ['AT', 'BG', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'GB'])])
_columns = {
'trimester': fields.selection( [('1','Jan/Feb/Mar'),
('2','Apr/May/Jun'),
('3','Jul/Aug/Sep'),
('4','Oct/Nov/Dec')],
'Trimester Number', required=True, help="It will be the first digit of period"),
'period_code': fields.char('Period Code',size = 6,required = True, help = '''This is where you have to set the period code for the intracom declaration using the format: ppyyyy
PP can stand for a month: from '01' to '12'.
PP can stand for a trimester: '31','32','33','34'
The first figure means that it is a trimester,
The second figure identify the trimester.
PP can stand for a complete fiscal year: '00'.
YYYY stands for the year (4 positions).
'''
),
'period_ids': fields.many2many('account.period', 'account_period_rel', 'acc_id', 'period_id', 'Period (s)', help = 'Select here the period(s) you want to include in your intracom declaration'),
'test_xml': fields.boolean('Test XML file', help="Sets the XML output as test file"),
'mand_id' : fields.char('MandataireId', size=14, required=True, help="This identifies the representative of the sending company. This is a string of 14 characters"),
'fyear': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True),
'msg': fields.text('File created', size=64, readonly=True),
'file_save' : fields.binary('Save File', readonly=True),
'country_ids': fields.many2many('res.country', 'vat_country_rel', 'vat_id', 'country_id', 'European Countries'),
@@ -60,19 +65,16 @@ class partner_vat_intra(osv.osv_memory):
data_cmpny = obj_user.browse(cursor, user, user).company_id
data = self.read(cursor, user, ids)[0]
data_fiscal = obj_fyear.browse(cursor, user, data['fyear'], context=context)
company_vat = data_cmpny.partner_id.vat
if not company_vat:
raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
seq_controlref = obj_sequence.get(cursor, user, 'controlref')
seq_declarantnum = obj_sequence.get(cursor, user, 'declarantnum')
cref = company_vat + seq_controlref
dnum = cref + seq_declarantnum
if len(data_fiscal.date_start.split('-')[0]) < 4:
raise osv.except_osv(_('Data Insufficient'),_('Trimester year should be length of 4 digits!'))
period_trimester = data['trimester'] + data_fiscal.date_start.split('-')[0]
cref = company_vat[2:] + seq_controlref[-4:]
dnum = cref + seq_declarantnum[-5:]
if len(data['form']['period_code']) != 6:
raise wizard.except_wizard(_('Wrong Period Code'), _('The period code you entered is not valid.'))
street = zip_city = country = ''
addr = obj_partner.address_get(cursor, user, [data_cmpny.partner_id.id], ['invoice'])
@@ -92,15 +94,11 @@ class partner_vat_intra(osv.osv_memory):
sender_date = time.strftime('%Y-%m-%d')
data_file = '<?xml version="1.0"?>\n<VatIntra xmlns="http://www.minfin.fgov.be/VatIntra" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RecipientId="VAT-ADMIN" SenderId="' + str(company_vat) + '"'
data_file +=' ControlRef="' + cref + '" MandataireId="' + data['mand_id'] + '" SenderDate="'+ str(sender_date)+ '"'
if data['test_xml']:
data_file += ' Test="1"'
data_file += ' VersionTech="1.2">'
data_file += ' VersionTech="1.3">'
data_file +='\n\t<AgentRepr DecNumber="1">\n\t\t<CompanyInfo>\n\t\t\t<VATNum>' + str(company_vat)+'</VATNum>\n\t\t\t<Name>'+str(data_cmpny.name)+'</Name>\n\t\t\t<Street>'+ str(street) +'</Street>\n\t\t\t<CityAndZipCode>'+ str(zip_city) +'</CityAndZipCode>'
data_file +='\n\t\t\t<Country>' + str(country) +'</Country>\n\t\t</CompanyInfo>\n\t</AgentRepr>'
data_comp ='\n\t\t<CompanyInfo>\n\t\t\t<VATNum>'+str(company_vat)+'</VATNum>\n\t\t\t<Name>'+str(data_cmpny.name)+'</Name>\n\t\t\t<Street>'+ str(street) +'</Street>\n\t\t\t<CityAndZipCode>'+ str(zip_city) +'</CityAndZipCode>\n\t\t\t<Country>'+ str(country) +'</Country>\n\t\t</CompanyInfo>'
data_period = '\n\t\t<Period>'+ str(period_trimester) +'</Period>' #trimester
data_comp ='\n\t\t<CompanyInfo>\n\t\t\t<VATNum>'+str(company_vat[2:])+'</VATNum>\n\t\t\t<Name>'+str(data_cmpny.name)+'</Name>\n\t\t\t<Street>'+ str(street) +'</Street>\n\t\t\t<CityAndZipCode>'+ str(zip_city) +'</CityAndZipCode>\n\t\t\t<Country>'+ str(country) +'</Country>\n\t\t</CompanyInfo>'
data_period = '\n\t\t<Period>'+ data['period_code'] +'</Period>' #trimester
error_message = []
seq = 0
amount_sum = 0
@@ -110,85 +108,23 @@ class partner_vat_intra(osv.osv_memory):
nb_period = len(data_fiscal.period_ids)
fiscal_periods = data_fiscal.period_ids
if data['trimester'] == '1':
if nb_period == 12:
start_date = fiscal_periods[0].date_start
end_date = fiscal_periods[2].date_stop
elif nb_period == 4:
start_date = fiscal_periods[0].date_start
end_date = fiscal_periods[0].date_stop
elif data['trimester'] == '2':
if nb_period == 12:
start_date = fiscal_periods[3].date_start
end_date = fiscal_periods[5].date_stop
elif nb_period == 4:
start_date = fiscal_periods[1].date_start
end_date = fiscal_periods[1].date_stop
elif data['trimester'] == '3':
if nb_period == 12:
start_date = fiscal_periods[6].date_start
end_date = fiscal_periods[8].date_stop
elif nb_period == 4:
start_date = fiscal_periods[2].date_start
end_date = fiscal_periods[2].date_stop
elif data['trimester'] == '4':
if nb_period == 12:
start_date = fiscal_periods[9].date_start
end_date = fiscal_periods[11].date_stop
elif nb_period == 4:
start_date = fiscal_periods[3].date_start
end_date = fiscal_periods[3].date_stop
period = "to_date('" + str(start_date) + "','yyyy-mm-dd') and to_date('" + str(end_date) +"','yyyy-mm-dd')"
record = {}
for p_id in p_id_list:
list_partner = []
partner = obj_partner.browse(cursor, user, p_id, context=context)
go_ahead = False
country_code = ''
for ads in partner.address:
if ads.type == 'default' and (ads.country_id and ads.country_id.id in data['country_ids']):
go_ahead = True
country_code = ads.country_id.code
break
if not go_ahead:
continue
cursor.execute('select sum(debit)-sum(credit) as amount from account_move_line l left join account_account a on (l.account_id=a.id) where a.type in ('"'receivable'"') and l.partner_id=%%s and l.date between %s' % (period,), (p_id,))
res = cursor.dictfetchall()
list_partner.append(res[0]['amount'])
list_partner.append('T') #partner.ref ...should be check
list_partner.append(partner.vat)
list_partner.append(country_code)
#...deprecated...
# addr = pool.get('res.partner').address_get(cr, uid, [partner.id], ['invoice'])
# if addr.get('invoice',False):
# ads = pool.get('res.partner.address').browse(cr,uid,[addr['invoice']])[0]
#
# if ads.country_id:
# code_country = ads.country_id.code
# list_partner.append(code_country)
# else:
# error_message.append('Data Insufficient! : '+ 'The Partner "'+partner.name + '"'' has no country associated with its Invoice address!')
# if len(list_partner)<4:
# list_partner.append('')
# error_message.append('Data Insufficient! : '+ 'The Partner "'+partner.name + '"'' has no Invoice address!')
# list_partner.append(code_country or 'not avail')
record[p_id] = list_partner
if len(error_message):
data['msg'] = 'Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message)
return data['msg']
list_partner = []
data_clientinfo = ''
cr.execute('''SELECT l.partner_id AS partner_id, p.vat AS vat, t.code AS intra_code, SUM(l.tax_amount) AS amount
FROM account_move_line l
LEFT JOIN account_tax_code t ON (l.tax_code_id = t.id)
LEFT JOIN res_partner p ON (l.partner_id = p.id)
WHERE t.code IN ('44a','44b','88')
AND l.period_id IN %s
GROUP BY l.partner_id, p.vat, t.code''', (tuple(data['form']['period_ids'][0][2]), ))
for row in cr.dictfetchall():
for r in record:
seq += 1
amt = record[r][0] or 0
amt = row['amount'] or 0
amt = int(amt * 100)
amount_sum += amt
data_clientinfo +='\n\t\t<ClientList SequenceNum="'+str(seq)+'">\n\t\t\t<CompanyInfo>\n\t\t\t\t<VATNum>'+record[r][2] +'</VATNum>\n\t\t\t\t<Country>'+record[r][3] +'</Country>\n\t\t\t</CompanyInfo>\n\t\t\t<Amount>'+str(amt) +'</Amount>\n\t\t\t<Period>'+str(period_trimester) +'</Period>\n\t\t\t<Code>'+str(record[r][1]) +'</Code>\n\t\t</ClientList>'
intra_code = row['intra_code'] == '88' and 'L' or (row['intra_code'] == '44b' and 'T' or (row['intra_code'] == '44a' and 'S' or ''))
data_clientinfo +='\n\t\t<ClientList SequenceNum="'+str(seq)+'">\n\t\t\t<CompanyInfo>\n\t\t\t\t<VATNum>'+row['vat'][2:] +'</VATNum>\n\t\t\t\t<Country>'+row['vat'][:2] +'</Country>\n\t\t\t</CompanyInfo>\n\t\t\t<Amount>'+str(amt) +'</Amount>\n\t\t\t<Code>'+str(intra_code) +'</Code>\n\t\t</ClientList>'
amount_sum = int(amount_sum)
data_decl = '\n\t<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" AmountSum="'+ str(amount_sum) +'" >'
data_file += str(data_decl) + str(data_comp) + str(data_period) + str(data_clientinfo) + '\n\t</DeclarantList>\n</VatIntra>'
@@ -199,4 +135,4 @@ class partner_vat_intra(osv.osv_memory):
partner_vat_intra()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -18,12 +18,11 @@
<label string="This wizard will create an XML file for Vat Intra" colspan="4"/>
<newline/>
<field name="fyear" default_focus="1" />
<field name="period_code"/>
<newline/>
<field name="period_ids"/>
<newline/>
<field name="mand_id"/>
<newline/>
<field name="trimester"/>
<newline/>
<field name="test_xml"/>
<newline/>
<button colspan="4" name="create_xml" string="Create XML" type="object" icon="gtk-execute"/>
<separator colspan="4"/>
@@ -59,4 +58,4 @@
id="l10_be_vat_intra"/>
</data>
</openerp>
</openerp>
+2 -2
View File
@@ -808,7 +808,7 @@
<page string="Procurement Details">
<separator colspan="4" string="Product &amp; Location"/>
<field name="product_id" select="1" on_change="onchange_product_id(product_id)"/>
<field name="location_id" select="2"/>
<field name="location_id" select="2" domain="[('usage','=','internal')]"/>
<field name="product_qty"/>
<field name="product_uom"/>
@@ -897,7 +897,7 @@
</record>
<menuitem action="mrp_procurement_action3" id="menu_procurement_requisitions" parent="purchase.menu_procurement_management"
name="Requisitions" sequence="5" />
sequence="5" />
<record id="mrp_procurement_action5" model="ir.actions.act_window">
<field name="name">Procurement Exceptions</field>
+7 -17
View File
@@ -163,8 +163,7 @@
<record id="act_produce" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">produce</field>
<field name="kind">subflow</field>
<field name="subflow_id" search="[('osv','=','mrp.production')]"/>
<field name="kind">function</field>
<field name="action">action_produce_assign_product()</field>
</record>
<record id="act_produce_check" model="workflow.activity">
@@ -180,8 +179,7 @@
<record id="act_buy" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">buy</field>
<field name="kind">subflow</field>
<field name="subflow_id" search="[('osv','=','purchase.order')]"/>
<field name="kind">function</field>
<field name="action">action_po_assign()</field>
</record>
<record id="act_make_done" model="workflow.activity">
@@ -308,26 +306,16 @@
<field name="trigger_model" eval="False"/>
<field name="trigger_expr_id" eval="False"/>
</record>
<record id="trans_produce_cancel" model="workflow.transition">
<field name="act_from" ref="act_produce"/>
<field name="act_to" ref="act_cancel"/>
<field name="signal">subflow.cancel</field>
</record>
<record id="trans_produce_service_cancel" model="workflow.transition">
<field name="act_from" ref="act_produce_service"/>
<field name="act_to" ref="act_cancel"/>
<field name="signal">subflow.cancel</field>
</record>
<record id="trans_buy_cancel" model="workflow.transition">
<field name="act_from" ref="act_buy"/>
<field name="act_to" ref="act_cancel"/>
<field name="signal">subflow.cancel</field>
</record>
<record id="trans_produce_make_done" model="workflow.transition">
<field name="act_from" ref="act_produce"/>
<field name="act_to" ref="act_make_done"/>
<field name="signal">subflow.done</field>
<field name="signal" eval="False"/>
</record>
<record id="trans_produce_service_make_done" model="workflow.transition">
@@ -337,12 +325,14 @@
<record id="trans_buy_make_done" model="workflow.transition">
<field name="act_from" ref="act_buy"/>
<field name="act_to" ref="act_make_done"/>
<field name="signal">subflow.delivery_done</field>
<field name="signal" eval="False"/>
</record>
<record id="trans_make_done_done" model="workflow.transition">
<field name="act_from" ref="act_make_done"/>
<field name="act_to" ref="act_done"/>
<field name="condition">action_check_finnished()</field>
<field name="condition">action_check_finnished() or (not move_id)</field>
<field name="trigger_model">stock.move</field>
<field name="trigger_expr_id">[move_id.id]</field>
</record>
<record id="trans_make_done_confirm" model="workflow.transition">
<field name="act_from" ref="act_make_done"/>
+5 -5
View File
@@ -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-01-14 23:12+0000\n"
"Last-Translator: Daniel Brown <dbrown@tecnosconsultores.com>\n"
"PO-Revision-Date: 2010-04-11 21:57+0000\n"
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:12+0000\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
@@ -216,7 +216,7 @@ msgstr "Finalizada"
#. module: mrp_operations
#: field:mrp.production,allow_reorder:0
msgid "Free Serialisation"
msgstr ""
msgstr "Serializado Libre"
#. module: mrp_operations
#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_planning
@@ -413,7 +413,7 @@ msgstr "Realizado"
#. module: mrp_operations
#: selection:mrp.production.workcenter.line,production_state:0
msgid "Waiting Goods"
msgstr ""
msgstr "Esperando mercancía"
#. module: mrp_operations
#: view:mrp.production.workcenter.line:0
File diff suppressed because it is too large Load Diff
+34
View File
@@ -0,0 +1,34 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
"PO-Revision-Date: 2010-04-11 21:50+0000\n"
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+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 ventas cargara los datos en una tabla olap\n"
" "
#. module: olap_crm
#: model:ir.module.module,shortdesc:olap_crm.module_meta_information
msgid "olap_crm"
msgstr "olap_crm"
+56
View File
@@ -0,0 +1,56 @@
# 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 <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
"PO-Revision-Date: 2010-04-11 21:55+0000\n"
"Last-Translator: Juan Eduardo Riva <juaneduardoriva@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-12 03:53+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 "Aceptar"
#. module: olap_extract
#: model:ir.actions.wizard,name:olap_extract.bi_olap_extract_schema
msgid "Olap Extract"
msgstr "Estracto Olap"
#. module: olap_extract
#: model:ir.module.module,description:olap_extract.module_meta_information
msgid ""
"\n"
" Extracts the schema structure.\n"
" "
msgstr ""
#. module: olap_extract
#: wizard_field:olap.extract.schema,init,module_name:0
msgid "Module Name"
msgstr "Nombre de 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 "Nombre del Módulo Nuevo"
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap_extract
+1 -1
View File
@@ -9,7 +9,7 @@
<field name="arch" type="xml">
<page string="Sales &amp; Purchases" position="inside">
<newline/>
<group col="2" colspan="2" name="sale_list">
<group col="2" colspan="2" name="sale_list" groups="base.group_extended">
<separator string="Sales Properties" colspan="2"/>
<field name="property_product_pricelist"/>
</group>
+4 -1
View File
@@ -2,7 +2,10 @@
<openerp>
<data>
<menuitem groups="base.group_extended" id="menu_product_pricelist_main" name="Pricelists" parent="prod_config_main" sequence="50"/>
<menuitem id="menu_product_pricelist_main"
name="Pricelists" parent="prod_config_main"
groups="base.group_extended"
sequence="50"/>
<record id="product_pricelist_version_form_view" model="ir.ui.view">
<field name="name">product.pricelist.version.form</field>
+5 -5
View File
@@ -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-11-22 19:25+0000\n"
"PO-Revision-Date: 2010-04-09 11:29+0000\n"
"Last-Translator: Ferdinand @ ChriCar <Unknown>\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-30 03:55+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -178,7 +178,7 @@ msgstr "Freundliche Gruesse."
#. module: purchase
#: rml:purchase.order:0
msgid "Net Total :"
msgstr "Gesamtsumme Netto:"
msgstr "Gesamt Netto:"
#. module: purchase
#: selection:purchase.order,state:0
@@ -664,7 +664,7 @@ msgstr "Auftragsstatus"
#. module: purchase
#: field:purchase.order.line,price_subtotal:0
msgid "Subtotal"
msgstr "Zwischenbetrag"
msgstr "Zwischensumme"
#. module: purchase
#: model:product.pricelist.version,name:purchase.ver0
@@ -883,7 +883,7 @@ msgstr "Erzeuge Rechnung aus Packauftrag"
#. module: purchase
#: field:purchase.order,amount_total:0
msgid "Total"
msgstr "Betrag gesammt"
msgstr "Betrag gesamt"
#. module: purchase
#: wizard_view:purchase.order.merge,init:0
+1 -1
View File
@@ -8,7 +8,7 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="priority">36</field>
<field name="arch" type="xml">
<group name="sale_list" position="after">
<group name="sale_list" position="after" groups="base.group_extended">
<group colspan="2" col="2">
<separator string="Purchases Properties" colspan="2"/>
<field name="property_product_pricelist_purchase"/>
+1
View File
@@ -18,5 +18,6 @@
#
##############################################################################
import purchase_tender
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+5 -2
View File
@@ -28,10 +28,13 @@
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"],
"depends" : ["purchase","mrp"],
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["purchase_tender_view.xml","security/ir.model.access.csv","purchase_tender_sequence.xml"],
"update_xml" : ["wizard/purchase_requisition_partner.xml",
"purchase_tender_view.xml","security/ir.model.access.csv","purchase_tender_sequence.xml",
],
"active": False,
"installable": True
}
+89 -3
View File
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -33,17 +33,71 @@ class purchase_tender(osv.osv):
'date_start': fields.datetime('Date Start'),
'date_end': fields.datetime('Date End'),
'user_id': fields.many2one('res.users', 'Responsible'),
'exclusive': fields.boolean('Exclusive', help="If the tender is exclusive, it will cancel all purchase orders when you confirm one of them"),
'description': fields.text('Description'),
'purchase_ids' : fields.one2many('purchase.order','tender_id','Purchase Orders'),
'state': fields.selection([('draft','Draft'),('open','Open'),('close','Close')], 'State', required=True)
'line_ids' : fields.one2many('purchase.tender.line','tender_id','Products to Purchase'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'state': fields.selection([('draft','Draft'),('open','Open'),('cancel','Cancel'),('close','Close'),('in_progress','In progress'),('done','Done')], 'State', required=True)
}
_defaults = {
'date_start': lambda *args: time.strftime('%Y-%m-%d %H:%M:%S'),
'state': lambda *args: 'open',
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'purchase.order.tender'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
def tender_close(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'done', 'date_end': time.strftime('%Y-%m-%d %H:%M:%S')})
return True
def tender_open(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'open'}, context=context)
return True
def tender_cancel(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'cancel'})
return True
def tender_confirm(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'done'}, context=context)
return True
def tender_reset(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state': 'draft'})
return True
def tender_done(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'done'}, context=context)
return True
purchase_tender()
class purchase_tender_line(osv.osv):
_name = "purchase.tender.line"
_description="Purchase Tender Line"
_rec_name = 'product_id'
_columns = {
'product_id': fields.many2one('product.product', 'Product'),
'product_uom_id': fields.many2one('product.uom', 'Product UoM'),
'product_qty': fields.float('Date End', digits=(16,2)),
'tender_id' : fields.many2one('purchase.tender','Purchase Tender', ondelete='cascade'),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
def onchange_product_id(self, cr, uid, ids, product_id, context={}):
""" Changes UoM and name if product_id changes.
@param name: Name of the field
@param product_id: Changed product_id
@return: Dictionary of changed values
"""
value = {}
if product_id:
prod = self.pool.get('product.product').browse(cr, uid, [product_id])[0]
value = {'product_uom_id': prod.uom_id.id}
return {'value': value}
_defaults = {
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
purchase_tender_line()
class purchase_order(osv.osv):
_inherit = "purchase.order"
_description = "purchase order"
@@ -53,7 +107,7 @@ class purchase_order(osv.osv):
def wkf_confirm_order(self, cr, uid, ids, context={}):
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context)
for po in self.browse(cr, uid, ids, context):
if po.tender_id:
if po.tender_id and po.tender_id.exclusive:
for order in po.tender_id.purchase_ids:
if order.id<>po.id:
wf_service = netsvc.LocalService("workflow")
@@ -61,3 +115,35 @@ class purchase_order(osv.osv):
self.pool.get('purchase.tender').write(cr, uid, [po.tender_id.id], {'state':'close'})
return res
purchase_order()
class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
'purchase_tender': fields.boolean('Purchase Tender', help="Check this box so that requisitions generates purchase tenders instead of directly requests for quotations.")
}
_defaults = {
'purchase_tender': lambda *args: False
}
product_product()
class mrp_procurement(osv.osv):
_inherit = 'mrp.procurement'
def make_po(self, cr, uid, ids, context={}):
sequence_obj=self.pool.get('ir.sequence')
res = super(mrp_procurement, self).make_po(cr, uid, ids, context)
for proc_id,po_id in res.items():
procurement = self.browse(cr, uid, proc_id)
if procurement.product_id.purchase_tender:
self.pool.get('purchase.tender').create(cr, uid, {
'name': sequence_obj.get(cr, uid, 'purchase.order.tender'),
'lines_ids': [(0,0,{
'product_id': procurement.product_id.id,
'product_uom_id': procurement.product_uom.id,
'product_qty': procurement.product_qty
})],
'purchase_ids': [(6,0,[po_id])]
})
mrp_procurement()
+113 -66
View File
@@ -21,82 +21,129 @@
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<field name="partner_ref" position="after">
<field name="tender_id" select="2"/>
<field name="tender_id"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="view_purchase_tender_form">
<field name="name">purchase.tender.form</field>
<field name="type">form</field>
<record model="ir.ui.view" id="view_purchase_tender_form">
<field name="name">purchase.tender.form</field>
<field name="type">form</field>
<field name="model">purchase.tender</field>
<field name="arch" type="xml">
<form string="Purchase Tender">
<field name="name" select="1"/>
<field name="user_id" select="1"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<notebook colspan="4">
<page string="Products">
<field name="line_ids" colspan="4" nolabel="1">
<tree string="Products" editable="bottom">
<field name="product_id" on_change="onchange_product_id(product_id)"/>
<field name="product_uom_id"/>
<field name="product_qty"/>
</tree>
<form string="Products" editable="bottom">
<field name="product_id"/>
<field name="product_uom_id"/>
<field name="product_qty"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</form>
</field>
</page>
<page string="Notes">
<field name="description" colspan="4" nolabel="1"/>
</page>
<page string="Quotations">
<group col="8" colspan="4">
<button name="%(action_purchase_requisition_partner)d" string="New RfQr" type="action" />
<label colspan="6" string=""/>
</group>
<field name="purchase_ids" nolabel="1" colspan="4"/>
</page>
</notebook>
<separator colspan="4"/>
<group col="8" colspan="4">
<field name="state" select="1" readonly ="1"/>
<button name="tender_close" states="open,draft,in_progress" string="Close" type="object" icon="gtk-close" />
<button name="tender_open" states="draft,in_progress" string="Open" type="object" icon="gtk-go-forward" />
<button name="tender_cancel" states="draft,open,in_progress" string="Cancel" type="object" icon="gtk-cancel" />
<button name="tender_confirm" states="open,in_progress" string="Confirm" type="object" icon="gtk-go-up" />
<button name="tender_reset" states="done,cancel" string="Reset to Draft" type="object" icon="gtk-convert" />
</group>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_purchase_tender_tree">
<field name="name">purchase.tender.tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Purchase Tender">
<field name="name"/>
<field name="user_id"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_purchase_tender_filter" model="ir.ui.view">
<field name="name">purchase.tender.list.select</field>
<field name="model">purchase.tender</field>
<field name="type">search</field>
<field name="arch" type="xml">
<form string="Purchase Tender">
<field name="name" select="1"/>
<field name="user_id" select="1"/>
<field name="date_start" select="2"/>
<field name="date_end" select="2"/>
<notebook colspan="4">
<page string="Description">
<field name="description" colspan="4" nolabel="1" select="2"/>
</page>
<page string="Quotations">
<field name="purchase_ids" nolabel="1" colspan="4"/>
</page>
</notebook>
<field name="state" select="1"/>
</form>
<search string="Search Purchase Tender">
<group col='10' colspan='4'>
<filter icon="terp-purchase" string="Quotations" domain="[('state','=','draft')]" separator="1"/>
<filter icon="terp-purchase" string="Approved" domain="[('state','=','confirmed')]" separator="1"/>
<separator orientation="vertical"/>
<field name="name" select="1" string="Tender Reference"/>
<field name="purchase_ids" select="1"/>
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('create_uid','=',uid)]" help="My Tender "/>
</field>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="10">
<filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
<filter string="Date Start" icon="terp-purchase" domain="[]" context="{'group_by':'date_start'}"/>
<filter string="Date End" icon="terp-purchase" domain="[]" context="{'group_by':'date_end'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_purchase_tender_tree">
<field name="name">purchase.tender.tree</field>
<field name="type">tree</field>
<field name="model">purchase.tender</field>
<field name="arch" type="xml">
<tree string="Purchase Tender">
<field name="name"/>
<field name="user_id"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="state"/>
</tree>
<record model="ir.actions.act_window" id="action_purchase_tender">
<field name="name">Purchase Tenders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.tender</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_purchase_tender_filter"/>
</record>
<menuitem id="menu_purchase_Tender_pro_mgt" parent="purchase.menu_procurement_management" action="action_purchase_tender"/>
<record model="ir.ui.view" id="product_normal_form_view_inherit">
<field name="name">product.form.inherit</field>
<field name="type">form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="supply_method" position="after">
<group colspan="2" col="2" attrs="{'invisible': [('supply_method','&lt;&gt;','buy')]}">
<field name="purchase_tender"/>
</group>
</field>
</record>
<record model="ir.actions.act_window" id="action_purchase_tender">
<field name="name">Purchase Tenders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.tender</field>
<field name="view_type">form</field>
</record>
<!-- <menuitem name="Purchase Tenders" id="menu_purchase_tender" parent="base.menu_purchase_root"/>-->
<!-- <menuitem id="menu_purchase_Tender1" parent="menu_purchase_tender" action="action_purchase_tender"/>-->
<menuitem id="menu_purchase_Tender_pro_mgt" parent="purchase.menu_procurement_management" action="action_purchase_tender"/>
<record model="ir.actions.act_window" id="action_purchase_tender_draft">
<field name="name">Draft Purchase Tenders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.tender</field>
<field name="domain">[('state','=','draft')]</field>
<field name="view_type">form</field>
</record>
<!-- <menuitem id="menu_purchase_Tender1_draft" parent="menu_purchase_Tender1" action="action_purchase_tender_draft"/>-->
</field>
</record>
<record model="ir.actions.act_window" id="action_purchase_tender_open">
<field name="name">Open Purchase Tenders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.tender</field>
<field name="domain">[('state','=','open')]</field>
<field name="view_type">form</field>
</record>
<!-- <menuitem id="menu_purchase_Tender1_open" parent="menu_purchase_Tender1" action="action_purchase_tender_open"/>-->
<record model="ir.actions.act_window" id="action_purchase_tender_new">
<field name="name">New Purchase Tenders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.tender</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
</record>
<!-- <menuitem id="menu_purchase_Tender1_new" parent="menu_purchase_tender" action="action_purchase_tender_new"/>-->
</data>
</openerp>
+25
View File
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
import purchase_requisition_partner
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -0,0 +1,136 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
from service import web_services
import netsvc
import pooler
import time
from mx import DateTime
from osv.orm import browse_record, browse_null
class purchase_requisition_partner(osv.osv_memory):
_name = "purchase.requisition.partner"
_description = "Purchase Requisition"
_columns = {
'partner_id': fields.many2one('res.partner', 'Partner', required=True),
'pruchase_requisitions': fields.many2one('mrp.procurement', 'Requisitions',required=True, domain=[('state', '=', 'confirmed')]),
}
_defaults = {
'parnter_id': lambda *a: 1,
}
def create_order(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
"""
record_id = context and context.get('active_id', False)
if record_id:
data = self.read(cr, uid, ids)
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
order_obj = self.pool.get('purchase.order')
partner_obj = self.pool.get('res.partner')
procurement_obj = self.pool.get('mrp.procurement')
purchase_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')
record_id = context and context.get('active_id', False)
procurement_id=data[0]['pruchase_requisitions']
for procurement in procurement_obj.browse(cr, uid,[procurement_id]):
#Todo need to check
# partner = procurement.product_id.seller_ids[0].name
partner_id = data[0]['partner_id']
address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery']
res_id = procurement.move_id.id
partner = procurement.product_id.seller_ids[0].name
pricelist_id = partner.property_product_pricelist_purchase.id
uom_id = procurement.product_id.uom_po_id.id
newdate = DateTime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S')
newdate = newdate - DateTime.RelativeDateTime(days=company.po_lead)
newdate = newdate - procurement.product_id.seller_ids[0].delay
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 = pricelist_obj.price_get(cr, uid, [pricelist_id], procurement.product_id.id, qty, False, {'uom': uom_id})[pricelist_id]
product = prod_obj.browse(cr, uid, procurement.product_id.id, context=context)
line = {
'name': product.partner_ref,
'product_qty': qty,
'product_id': procurement.product_id.id,
'product_uom': uom_id,
'price_unit': price,
'date_planned': newdate.strftime('%Y-%m-%d %H:%M:%S'),
'move_dest_id': res_id,
'notes': product.description_purchase,
}
taxes_ids = procurement.product_id.product_tmpl_id.supplier_taxes_id
taxes = acc_pos_obj.map_tax(cr, uid, partner.property_account_position, taxes_ids)
line.update({
'taxes_id': [(6,0,taxes)]
})
purchase_id = order_obj.create(cr, uid, {
'origin': procurement.name,
'partner_id': partner_id,
'partner_address_id': address_id,
'location_id': procurement.location_id.id,
'pricelist_id': pricelist_id,
'order_line': [(0,0,line)],
'company_id': procurement.company_id.id,
'fiscal_position': partner.property_account_position and partner.property_account_position.id or False,
'tender_id':record_id,
})
procurement_obj.write(cr, uid, [procurement.id], {'state': 'running', 'purchase_id': purchase_id})
return {
'domain': "[('id','in', [" + ','.join(map(str, [purchase_id])) + "])]",
'name': 'Purchase Orders',
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'purchase.order',
'view_id': False,
'type': 'ir.actions.act_window',
}
purchase_requisition_partner()
@@ -0,0 +1,32 @@
<openerp>
<data>
<record id="view_purchase_requisition_partner" model="ir.ui.view">
<field name="name">Purchase Requisition</field>
<field name="model">purchase.requisition.partner</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Purchase Requisition">
<field name="partner_id"/>
<field name="pruchase_requisitions"/>
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="_Cancel"/>
<button icon="gtk-ok" name="create_order" string="Create Orders" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_purchase_requisition_partner" model="ir.actions.act_window">
<field name="name">Purchase Requisition</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.requisition.partner</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="context">{'record_id' : active_id}</field>
<field name="target">new</field>
</record>
</data>
</openerp>
+5 -5
View File
@@ -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-22 19:41+0000\n"
"PO-Revision-Date: 2010-04-09 08:08+0000\n"
"Last-Translator: Ferdinand @ ChriCar <Unknown>\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-30 04:05+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
@@ -130,7 +130,7 @@ msgstr "Erzeuge Rechnung"
#. module: sale
#: field:sale.order.line,price_subtotal:0
msgid "Subtotal"
msgstr "Zwischenbetrag"
msgstr "Zwischensumme"
#. module: sale
#: model:process.transition,note:sale.process_transition_confirmquotation0
@@ -180,7 +180,7 @@ msgstr "Umsatzsteuer"
#. module: sale
#: rml:sale.order:0
msgid "Net Total :"
msgstr "Gesamtsumme Netto:"
msgstr "Gesamt Netto:"
#. module: sale
#: field:sale.order,order_policy:0
@@ -200,7 +200,7 @@ msgstr "Versand Fehlerliste"
#. module: sale
#: field:sale.order,amount_total:0
msgid "Total"
msgstr "Betrag gesammt"
msgstr "Betrag gesamt"
#. module: sale
#: field:sale.order,origin:0
+6 -5
View File
@@ -18,7 +18,7 @@
<field name="warehouse_id" required="1" select="1" widget="selection"/>
<separator colspan="4" string="Accounting"/>
<field name="payment_default_id"/>
<field domain="[('type','=','sale')]" name="pricelist_id" select="1"/>
<field domain="[('type','=','sale')]" name="pricelist_id" select="1" groups="base.group_extended"/>
<field name="project_id" select="1"/>
</form>
</field>
@@ -31,7 +31,7 @@
<tree string="Sale Shop">
<field name="name"/>
<field name="warehouse_id"/>
<field name="pricelist_id"/>
<field name="pricelist_id" groups="base.group_extended"/>
<field name="project_id"/>
</tree>
</field>
@@ -110,8 +110,9 @@
<field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
<field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
<field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
<field domain="[('type','=','sale')]" name="pricelist_id"/>
<field name="project_id" select="2" context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"/>
<field domain="[('type','=','sale')]" name="pricelist_id" groups="base.group_extended"/>
<field name="project_id" select="2"
context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"/>
<newline/>
<field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
<form string="Sale Order Lines">
@@ -428,7 +429,7 @@
</field>
<newline/>
<group expand="context.get('report',False)" string="Group By..." colspan="9" col="8">
<filter string="Product" icon="terp-sale" default="1" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Product" icon="terp-sale" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Order" icon="terp-sale" domain="[]" context="{'group_by':'order_id'}"/>
<filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
</group>
-1
View File
@@ -56,7 +56,6 @@ Thanks to the double entry management, the inventory controlling is powerful and
"wizard/stock_traceability_view.xml",
"wizard/stock_picking_make_view.xml",
"wizard/stock_return_picking_view.xml",
"wizard/stock_split_move_view.xml",
"stock_workflow.xml",
"stock_incoterms.xml",
"stock_wizard.xml",
+1 -3
View File
@@ -36,8 +36,6 @@
"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
"access_stock_delivery","stock.delivery","model_stock_delivery","stock.group_stock_user",1,0,0,0
"access_stock_traceability_upstream","stock.traceability.upstream","model_stock_traceability_upstream","stock.group_stock_user",1,0,0,0
"access_stock_traceability_downstream","stock.traceability.downstream","model_stock_traceability_downstream","stock.group_stock_user",1,0,0,0
"access_stock_traceability_lot_upstream","stock.traceability.lot.upstream","model_stock_traceability_lot_upstream","stock.group_stock_user",1,0,0,0
@@ -46,4 +44,4 @@
"access_stock_partial_move","stock.partial.move","model_stock_partial_move","stock.group_stock_user",1,0,0,0
"access_stock_picking_make","stock.picking.make","model_stock_picking_make","stock.group_stock_user",1,0,0,0
"access_stock_inventory_merge","stock.inventory.merge","model_stock_inventory_merge","stock.group_stock_user",1,0,0,0
"access_stock_change_standard_price","stock.change.standard.price","model_stock_change_standard_price","stock.group_stock_user",1,0,0,0
"access_stock_change_standard_price","stock.change.standard.price","model_stock_change_standard_price","stock.group_stock_user",1,0,0,0
Can't render this file because it contains an unexpected character in line 43 and column 53.
-44
View File
@@ -492,7 +492,6 @@ 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([
@@ -877,7 +876,6 @@ class stock_picking(osv.osv):
"""
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')
@@ -1003,14 +1001,6 @@ class stock_picking(osv.osv):
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
@@ -1112,26 +1102,6 @@ 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
# ----------------------------------------------------
#
# Fields:
# location_dest_id is only used for predicting futur stocks
@@ -1211,7 +1181,6 @@ 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 = [
@@ -1803,7 +1772,6 @@ class stock_move(osv.osv):
"""
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')
@@ -1909,18 +1877,6 @@ class stock_move(osv.osv):
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()
+69 -160
View File
@@ -20,7 +20,7 @@
<field name="prod_lot_id"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines"
type="action" icon="gtk-justify-fill"/>
type="action" icon="gtk-justify-fill"/>
<field name="location_id"/>
</tree>
</field>
@@ -35,7 +35,7 @@
<field name="product_qty"/>
<field name="product_uom"/>
<field name="prod_lot_id"/>
<field colspan="4" domain="[('usage','=','internal')]" name="location_id" select="1"/>
<field colspan="4" domain="[('usage','=','internal')]" name="location_id" select="1"/>
<button name="%(stock.action_view_stock_inventory_line_split)d"
string="Split inventory lines"
type="action" icon="gtk-justify-fill"/>
@@ -426,7 +426,7 @@
</form>
</field>
</record>
<record id="view_location_tree2" model="ir.ui.view">
<field name="name">stock.location.tree</field>
<field name="model">stock.location</field>
@@ -585,17 +585,17 @@
<field name="min_date" select="1"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
<button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
help="Make Picking" colspan="2"/>
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
icon="gtk-go-back"
help="Return Picking" colspan="2"/>
</group>
<notebook colspan="4">
@@ -619,9 +619,9 @@
states="draft,waiting,confirmed,assigned" />
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
</tree>
<form string="Stock Moves">
<notebook colspan="4">
@@ -662,10 +662,6 @@
</notebook>
</form>
</field>
<group col="7" colspan="4">
<label colspan="6"/>
<button name="%(act_split_moves)d" string="Split Entry Lines in two" type="action" icon="gtk-justify-fill"/>
</group>
<group col="10" colspan="4">
<field name="state" readonly="1"/>
<button name="draft_force_assign" states="draft" string="Confirm (Do Not Process Now)" type="object" icon="gtk-apply"/>
@@ -687,7 +683,7 @@
<newline/>
<field name="move_type"/>
</page>
</notebook>
</notebook>
</form>
</field>
</record>
@@ -708,8 +704,8 @@
<field name="location_dest_id" select="1"/>
<field name="name" select="1"/>
<field name="address_id" select="1"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
<filter string="State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
@@ -750,19 +746,18 @@
<field name="backorder_id" select="2" readonly="1"/>
<field name="date" />
<field name="min_date" select="1"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
<button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
help="Make Picking" colspan="2"/>
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
help="Return Picking" colspan="2"/>
</group>
<notebook colspan="4">
@@ -785,9 +780,9 @@
type="action" icon="gtk-justify-fill"
states="draft,waiting,confirmed,assigned" />
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
</tree>
<form string="Stock Moves">
<notebook colspan="4">
@@ -823,10 +818,6 @@
</notebook>
</form>
</field>
<group col="7" colspan="4">
<label colspan="6"/>
<button name="%(act_split_moves)d" string="Split in Two" type="action" states="assigned,confirmed,draft,auto" icon="gtk-justify-fill"/>
</group>
<group col="10" colspan="4">
<field name="state" readonly="1"/>
<button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
@@ -848,7 +839,7 @@
<field name="date_done" select="2"/>
<field name="move_type"/>
</page>
</notebook>
</notebook>
</form>
</field>
</record>
@@ -868,8 +859,8 @@
<field name="name" select="1"/>
<field name="address_id" select="1"/>
<field name="origin" select="1"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="10">
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
<filter string="State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
@@ -886,7 +877,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="domain">[('type','=','delivery')]</field>
<field name="context">{'contact_display': 'partner',"search_default_available":1}</field>
<field name="context">{'contact_display': 'partner',"search_default_available":1}</field>
<field name="search_view_id" ref="view_stock_delivery_filter"/>
</record>
<record id="action_picking_tree_delivery_view1" model="ir.actions.act_window.view">
@@ -939,24 +930,23 @@
<form string="Picking list">
<group col="6" colspan="4">
<field name="address_id" select="2"/>
<field name="type"/>
<field name="min_date" select="2"/>
<field name="name" select="1" readonly="1"/>
<field name="invoice_state"/>
<field name="backorder_id" select="2" readonly="1"/>
<field name="origin" select="2" readonly="1"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
<button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
help="Make Picking" colspan="2"/>
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
help="Return Picking" colspan="2"/>
</group>
<notebook colspan="4">
@@ -1020,10 +1010,6 @@
</notebook>
</form>
</field>
<group col="7" colspan="4">
<label colspan="6"/>
<button name="%(act_split_moves)d" string="Split in Two" type="action" icon="gtk-justify-fill"/>
</group>
<group col="10" colspan="4">
<field name="state" readonly="1"/>
<button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
@@ -1034,9 +1020,6 @@
<button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
</group>
</page>
<page string="Delivery Info">
<field colspan="4" name="delivery_line" nolabel="1"/>
</page>
<page string="Notes">
<field colspan="4" name="note" nolabel="1"/>
</page>
@@ -1066,8 +1049,8 @@
<field name="name" select="1"/>
<field name="address_id" select="1"/>
<field name="company_id" select="1" widget="selection"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
<filter string="State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
@@ -1139,19 +1122,18 @@
<field name="date"/>
<field name="min_date" select="2" readonly="1"/>
<field name="invoice_state" select="2" string="Invoice Control"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
<button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
<button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
icon="gtk-go-forward"
help="Make Picking" colspan="2"/>
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
<button name="%(act_stock_return_picking)d"
states="done"
string="Return Picking"
type="action"
icon="gtk-go-back"
help="Return Picking" colspan="2"/>
</group>
<notebook colspan="4">
@@ -1170,9 +1152,9 @@
type="action" icon="gtk-justify-fill"
states="draft,waiting,confirmed,assigned" />
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" />
</tree>
<form string="Stock Moves">
<notebook colspan="4">
@@ -1227,9 +1209,6 @@
<button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
</group>
</page>
<page string="Delivery Info">
<field colspan="4" name="delivery_line" nolabel="1"/>
</page>
<page string="Notes">
<field colspan="4" name="note" nolabel="1"/>
</page>
@@ -1252,8 +1231,8 @@
<field name="name" select="1"/>
<field name="address_id" select="1"/>
<field name="company_id" select="1" widget="selection" groups="base.group_multi_company" />
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
<filter string="Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
@@ -1265,7 +1244,7 @@
<record id="action_picking_tree4" model="ir.actions.act_window">
<field name="name">Incoming shipments</field>
<field name="name">Incoming Shipments</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@@ -1306,8 +1285,8 @@
<field name="name" select="1"/>
<field name="origin" select="1"/>
<field name="company_id" select="1" widget="selection"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Partner" icon="terp-stock" domain="[]" context="{'group_by':'address_id'}"/>
<filter string="Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
@@ -1364,7 +1343,6 @@
<group colspan="2" col="2">
<separator colspan="2" string="Move Information"/>
<field name="name" select="2"/>
<field name="delivered_id"/>
<field name="product_id" select="1" on_change="onchange_product_id(product_id,location_id,location_dest_id)"/>
<field name="product_qty" select="2" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" select="2"/>
@@ -1427,8 +1405,8 @@
<field name="location_id" select="1"/>
<field name="location_dest_id" select="1"/>
<field name="product_id" select="1"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Product" icon="terp-stock" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Date" icon="terp-stock" domain="[]" context="{'group_by':'date'}"/>
@@ -1449,24 +1427,6 @@
</record>
<menuitem action="action_move_form2" id="menu_action_move_form2" parent="menu_traceability" sequence="1"/>
<record id="action_picking_all" model="ir.actions.act_window">
<field name="name">Picking lists</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="search_view_id" ref="view_stock_picking_filter"/>
<field name="domain">[('type','=','out')]</field>
<field name="context">{'contact_display': 'partner',"search_default_available":1}</field>
</record>
<record id="action_picking_out_tree_view" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_picking_out_tree"/>
<field name="act_window_id" ref="action_picking_all"/>
</record>
<menuitem action="action_picking_all" id="menu_action_picking_all" parent="menu_stock_warehouse_mgmt" sequence="3"/>
====================================
Reception Picking (By Stock Move)
====================================
@@ -1504,7 +1464,6 @@
<notebook colspan="4">
<page string="General Information">
<separator colspan="4" string="Move Information"/>
<field name="delivered_id"/>
<field name="location_id" select="1"/>
<field name="location_dest_id" select="1"/>
<field colspan="4" name="product_id" select="1" on_change="onchange_product_id(product_id,location_id,location_dest_id)"/>
@@ -1561,8 +1520,8 @@
<field name="origin" string="Latest Requisition" select="1"/>
<field name="partner_id" string="Supplier" select="1"/>
<field name="product_id"/>
</group>
<newline/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Product" icon="terp-stock" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="State" icon="terp-stock" domain="[]" context="{'group_by':'state'}"/>
@@ -1754,56 +1713,6 @@
<field name="view_mode">graph,tree</field>
<field name="view_id" ref="view_move_delivery_products_planned_graph"/>
</record>
<!-- Product Delivered -->
<record id="view_stock_delivery_form" model="ir.ui.view">
<field name="name">stock.delivery.from</field>
<field name="model">stock.delivery</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Product">
<field name="name"/>
<field name="date"/>
<field name="partner_id"/>
<field name="address_id"/>
<field name="picking_id"/>
<separator string="Product Delivered Information" colspan="4" />
<field name="move_delivered" colspan="4" nolabel="1" widget="one2many" mode="tree,form">
<tree string="Stock Moves" editable="top">
<field name="picking_id" string="Reference"/>
<field name="origin" string="Latest Requisition"/>
<field name="partner_id" string="Supplier"/>
<field name="product_id"/>
<field name="product_qty" />
<field name="product_uom" string="UOM"/>
<field name="prodlot_id" string="Lot"/>
</tree>
</field>
</form>
</field>
</record>
<record id="view_stock_delivery_tree" model="ir.ui.view">
<field name="name">stock.delivery.tree</field>
<field name="model">stock.delivery</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Delivered Product">
<field name="name"/>
<field name="date"/>
<field name="partner_id"/>
<field name="address_id"/>
</tree>
</field>
</record>
<record id="action_stock_delivery" model="ir.actions.act_window">
<field name="name">Delivered Products</field>
<field name="res_model">stock.delivery</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="view_stock_delivery_tree"/>
</record>
<menuitem action="action_stock_delivery" id="menu_action_picking_all" parent="menu_traceability" sequence="4"/>
</data>
</openerp>
-1
View File
@@ -26,7 +26,6 @@ import stock_partial_move
import stock_picking_make
import wizard_replacement
import stock_return_picking
import stock_split_move
import wizard_ups
import stock_inventory_merge
import stock_inventory_set_stock_zero
+50 -58
View File
@@ -27,22 +27,19 @@ import pooler
import time
class stock_partial_move(osv.osv_memory):
_name = "stock.partial.move"
_description = "Partial Move"
_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),
}
'date': fields.datetime('Date', 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')
move_obj = self.pool.get('stock.move')
if not context:
context={}
moveids = []
for m in move_obj.browse(cr, uid, context.get('active_ids', [])):
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:
@@ -57,55 +54,53 @@ class stock_partial_move(osv.osv_memory):
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
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)
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 = context.get('active_ids', False)
move_ids = move_obj.search(cr, uid, [('id','in',move_ids)])
_moves_arch_lst = """<form string="Deliver Products">
<separator colspan="4" string="Delivery Information"/>
<separator colspan="4" string="Information"/>
<field name="date" colspan="4" />
<field name="partner_id"/>
<field name="address_id"/>
<newline/>
<separator colspan="4" string="Move Detail"/>
"""
_moves_fields = result['fields']
if move_ids and view_type in ['form']:
for m in move_obj.browse(cr, uid, move_ids, context):
if move_ids and view_type in ['form']:
for m in move_obj.browse(cr, uid, move_ids, context):
if m.state in ('done', 'cancel'):
continue
_moves_fields.update({
'move%s_product_id'%(m.id) : {
'string': _('Product'),
'type' : 'many2one',
'relation': 'product.product',
'required' : True,
'readonly' : True,
'type' : 'many2one',
'relation': 'product.product',
'required' : True,
'readonly' : True,
},
'move%s_product_qty'%(m.id) : {
'string': _('Quantity'),
'type' : 'float',
'required': True,
'required': True,
},
'move%s_product_uom'%(m.id) : {
'string': _('Product UOM'),
'type' : 'many2one',
'relation': 'product.uom',
'required' : True,
'readonly' : True,
'type' : 'many2one',
'relation': 'product.uom',
'required' : True,
'readonly' : True,
}
})
})
_moves_arch_lst += """
<group colspan="4" col="10">
<field name="move%s_product_id" nolabel="1"/>
<field name="move%s_product_qty" string="Qty" />
<field name="move%s_product_uom" nolabel="1" />
"""%(m.id, m.id, m.id)
if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
_moves_fields.update({
'move%s_product_price'%(m.id) : {
'string': _('Price'),
@@ -113,9 +108,9 @@ class stock_partial_move(osv.osv_memory):
},
'move%s_product_currency'%(m.id): {
'string': _('Currency'),
'type' : 'float',
'type' : 'many2one',
'relation': 'res.currency',
'type' : 'float',
'type' : 'many2one',
'relation': 'res.currency',
}
})
_moves_arch_lst += """
@@ -136,31 +131,31 @@ class stock_partial_move(osv.osv_memory):
</group>
</form>"""
result['arch'] = _moves_arch_lst
result['fields'] = _moves_fields
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.
"""
@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')
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', [])):
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:
@@ -178,23 +173,21 @@ class stock_partial_move(osv.osv_memory):
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
return res
def do_partial(self, cr, uid, ids, context):
move_obj = self.pool.get('stock.move')
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
'delivery_date' : partial.date
}
for m in move_obj.browse(cr, uid, move_ids):
for m in move_obj.browse(cr, uid, move_ids):
if m.state in ('done', 'cancel'):
continue
partial_datas['move%s'%(m.id)] = {
@@ -203,15 +196,14 @@ class stock_partial_move(osv.osv_memory):
'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({
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:
stock_partial_move()
-125
View File
@@ -1,125 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
class stock_split_move_line(osv.osv_memory):
_name = 'stock.move.line.split'
_description = "Split Moves"
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(stock_split_move_line, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
pick_obj = self.pool.get('stock.picking')
pick = pick_obj.browse(cr, uid, record_id)
for m in [line for line in pick.move_lines]:
res['move%s'%(m.id)] = m.product_qty
return res
def view_init(self, cr, uid, fields_list, context=None):
"""
Creates view dynamically and adding fields at runtime.
@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 with new columns.
"""
res = super(stock_split_move_line, self).view_init(cr, uid, fields_list, context=context)
record_id = context and context.get('active_id', False) or False
if record_id:
pick_obj = self.pool.get('stock.picking')
try:
pick = pick_obj.browse(cr, uid, record_id)
for m in [line for line in pick.move_lines]:
if 'move%s' % m.id not in self._columns:
self._columns['move%s' % m.id] = fields.float(string=m.product_id.name)
except:
return res
return res
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.
"""
res = super(stock_split_move_line, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
record_id = context and context.get('active_id', False) or False
assert record_id,'Active ID not found'
pick_obj = self.pool.get('stock.picking')
pick = pick_obj.browse(cr, uid, record_id)
arch_lst = ['<?xml version="1.0"?>', '<form string="Split lines">', '<label string="Indicate here the quantity of the new line. A quantity of zero will not split the line." colspan="4"/>']
for m in [line for line in pick.move_lines]:
quantity = m.product_qty
arch_lst.append('<field name="move%s" />\n<newline />' % (m.id,))
res['fields']['move%s' % m.id] = {'string' : m.product_id.name, 'type' : 'float', 'required' : True}
arch_lst.append('<group col="2" colspan="4">')
arch_lst.append('<button icon="gtk-cancel" special="cancel" string="Cancel" />')
arch_lst.append('<button name="split_lines" string="Split" colspan="1" type="object" icon="gtk-apply" />')
arch_lst.append('</group>')
arch_lst.append('</form>')
res['arch'] = '\n'.join(arch_lst)
return res
def split_lines(self, cr, uid, ids, context):
"""
Splits moves in quantity given in the wizard.
@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 of fields with values.
"""
move_obj = self.pool.get('stock.move')
record_id = context and context.get('active_id', False) or False
pick_obj = self.pool.get('stock.picking')
pick = pick_obj.browse(cr, uid, record_id)
data = self.read(cr, uid, ids[0])
move_ids = [m.id for m in [line for line in pick.move_lines]]
for move in move_obj.browse(cr, uid, move_ids):
quantity = data['move%s' % move.id]
if 0 < quantity < move.product_qty:
new_qty = move.product_qty - quantity
new_uos_qty = new_qty / move.product_qty * move.product_uos_qty
new_obj = move_obj.copy(cr, uid, move.id, {'product_qty' : new_qty, 'product_uos_qty': new_uos_qty, 'state':move.state})
uos_qty = quantity / move.product_qty * move.product_uos_qty
move_obj.write(cr, uid, [move.id], {'product_qty' : quantity, 'product_uos_qty': uos_qty})
return {}
stock_split_move_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+3 -14
View File
@@ -1,17 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Split Moves -->
<record id="act_split_moves" model="ir.actions.act_window">
<field name="name">Split Moves</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.move.line.split</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</openerp>
</data>
</openerp>
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
"X-Launchpad-Export-Date: 2010-04-10 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: survey
+44
View File
@@ -95,6 +95,50 @@ class survey(osv.osv):
def copy(self, cr, uid, id, default=None,context={}):
raise osv.except_osv(_('Warning !'),_('You cannot duplicate the resource!'))
def action_print_survey(self, cr, uid, ids, context=None):
"""
If response is available then print this response otherwise print survey form(print template of the survey).
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Survey IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for print survey form.
"""
if not context:
context = {}
datas = {}
if 'response_id' in context:
response_id = context.get('response_id', 0)
datas['ids'] = [context.get('survey_id', 0)]
else:
response_id = self.pool.get('survey.response').search(cr, uid, [('survey_id','=', ids)], context=context)
datas['ids'] = ids
page_setting = {'orientation': 'vertical', 'without_pagebreak': 0, 'paper_size': 'letter', 'page_number': 1, 'survey_title': 1}
report = {}
if response_id and response_id[0]:
context.update({'survey_id': datas['ids']})
datas['form'] = page_setting
datas['model'] = 'survey.print.answer'
report = {
'type': 'ir.actions.report.xml',
'report_name': 'survey.browse.response',
'datas': datas,
'nodestroy': True,
'context' : context
}
else:
datas['form'] = page_setting
datas['model'] = 'survey.print'
report = {
'type': 'ir.actions.report.xml',
'report_name': 'survey.form',
'datas': datas,
'nodestroy':True,
'context' : context
}
return report
survey()
class survey_history(osv.osv):
+2 -2
View File
@@ -243,8 +243,8 @@
string="Answer Survey" type="action" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
<button name="%(action_view_survey_question_message)d" states="open,draft,close,cancel"
string="Edit Survey" type="action" icon="gtk-edit" context="{'active':True,'edit' : True,'survey_id': active_id}"/>
<button name="%(survey_browse_response)d" states="open,draft,close,cancel"
string="Print Answer" type="action" icon="gtk-print"/>
<button name="action_print_survey" states="open,draft,close,cancel"
string="Print Answer" type="object" icon="gtk-print"/>
</tree>
</field>
</record>