@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -43,53 +43,59 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Invoices">
|
||||
<filter icon="terp-account"
|
||||
string="This Year"
|
||||
domain="[('year','=',time.strftime('%%Y'))]"
|
||||
help="Invoices of the year"/>
|
||||
<filter icon="terp-account"
|
||||
string="This Month"
|
||||
domain="[('month','=',time.strftime('%%m'))]"
|
||||
help="Invoices of this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-account"
|
||||
string="Draft"
|
||||
domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Invoices"
|
||||
domain="[('state','<>','draft'),('state','<>','cancel')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-account"
|
||||
string="My Invoices"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
<field name="partner_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
|
||||
<newline/>
|
||||
<group expand="1" string="Extended options..." colspan="10" col="12">
|
||||
<filter icon="terp-account"
|
||||
string="Customer Invoices"
|
||||
domain="[('type','=','out_invoice')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Supplier Invoices"
|
||||
domain="[('type','=','in_invoice')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Customer Refunds"
|
||||
domain="[('type','=','out_refund')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Supplier Refunds"
|
||||
domain="[('type','=','in_refund')]"/>
|
||||
<group>
|
||||
<filter icon="terp-account"
|
||||
string="This Year"
|
||||
domain="[('year','=',time.strftime('%%Y'))]"
|
||||
help="Invoices of the year"/>
|
||||
<filter icon="terp-account"
|
||||
string="This Month"
|
||||
domain="[('month','=',time.strftime('%%m'))]"
|
||||
help="Invoices of this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-account"
|
||||
string="Draft"
|
||||
domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Invoices"
|
||||
domain="[('state','<>','draft'),('state','<>','cancel')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Paid"
|
||||
domain="[('state','=','paid')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-account"
|
||||
string="My Invoices"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
<field name="partner_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<group expand="1" string="Extended options..." >
|
||||
<filter icon="terp-account"
|
||||
string="Customer Invoices"
|
||||
domain="[('type','=','out_invoice')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Customer Refunds"
|
||||
domain="[('type','=','out_refund')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-account"
|
||||
string="Supplier Invoices"
|
||||
domain="[('type','=','in_invoice')]"/>
|
||||
<filter icon="terp-account"
|
||||
string="Supplier Refunds"
|
||||
domain="[('type','=','in_refund')]"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." >
|
||||
<filter string="Company" icon="terp-account" context="{'group_by':'company_id'}"/>
|
||||
<filter string="Salesman" icon="terp-account" context="{'group_by':'user_id'}" default="1"/>
|
||||
<filter string="Salesman" icon="terp-account" context="{'group_by':'user_id'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" icon="terp-account" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Partner" icon="terp-account" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Type" icon="terp-account" context="{'group_by':'type'}"/>
|
||||
<filter string="State" icon="terp-account" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Month" icon="terp-account" context="{'group_by':'date'}"/>
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
Then I should see an account entry linked to this invoice.
|
||||
-
|
||||
!assert {model: account.invoice, id: invoice1}:
|
||||
test:
|
||||
- bool(move_id)
|
||||
-
|
||||
# This is not working, find a way to do that in YAML, *qty is not
|
||||
@@ -53,14 +52,12 @@
|
||||
equal to *qty x *price x (1 + *tax)
|
||||
-
|
||||
!assert {model: account.invoice, id: invoice1}:
|
||||
test:
|
||||
- abs(sum(x.credit for x in move_id.line_id) - 163.97) < 0.000001
|
||||
- abs(sum(x.credit for x in move_id.line_id) - 163.97) < 0.000001
|
||||
-
|
||||
And this account entry must have a credit equals to the debit
|
||||
-
|
||||
!assert {model: account.invoice, id: invoice1}:
|
||||
test:
|
||||
- abs(sum(x.credit - x.debit for x in move_id.line_id)) < 0.000001
|
||||
- abs(sum(x.credit - x.debit for x in move_id.line_id)) < 0.000001
|
||||
-
|
||||
Then, I change the precision of numbers to 3 digits.
|
||||
-
|
||||
@@ -80,8 +77,7 @@
|
||||
Then this account entry must have a credit equals to the debit
|
||||
-
|
||||
!assert {model: account.invoice, id: invoice2}:
|
||||
test:
|
||||
- abs(sum(x.credit - x.debit for x in move_id.line_id)) < 0.000001
|
||||
- abs(sum(x.credit - x.debit for x in move_id.line_id)) < 0.000001
|
||||
-
|
||||
And this account entry must have a credit equals to 163.968€ which is
|
||||
equal to *qty x *price x (1 + *tax)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:24+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"PO-Revision-Date: 2010-04-07 22:24+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-03-30 04:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_payment
|
||||
@@ -46,7 +46,7 @@ msgstr ""
|
||||
#: field:payment.line,info_owner:0
|
||||
#: view:payment.order:0
|
||||
msgid "Owner Account"
|
||||
msgstr ""
|
||||
msgstr "Majitel účtu"
|
||||
|
||||
#. module: account_payment
|
||||
#: help:account.invoice,amount_to_pay:0
|
||||
@@ -65,17 +65,17 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: field:payment.order,date_prefered:0
|
||||
msgid "Preferred date"
|
||||
msgstr ""
|
||||
msgstr "Preferované datum"
|
||||
|
||||
#. module: account_payment
|
||||
#: selection:payment.line,state:0
|
||||
msgid "Free"
|
||||
msgstr ""
|
||||
msgstr "Volný"
|
||||
|
||||
#. module: account_payment
|
||||
#: wizard_field:populate_payment,search,entries:0
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
msgstr "Příspěvky"
|
||||
|
||||
#. module: account_payment
|
||||
#: wizard_field:populate_payment,init,duedate:0
|
||||
@@ -96,7 +96,7 @@ msgstr ""
|
||||
#: rml:payment.order:0
|
||||
#: view:payment.order:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
msgstr "Částka"
|
||||
|
||||
#. module: account_payment
|
||||
#: rml:payment.order:0
|
||||
@@ -111,7 +111,7 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: selection:payment.order,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Zrušeno"
|
||||
|
||||
#. module: account_payment
|
||||
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree_new
|
||||
@@ -123,7 +123,7 @@ msgstr ""
|
||||
#: rml:payment.order:0
|
||||
#: field:payment.order,reference:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "Odkaz"
|
||||
|
||||
#. module: account_payment
|
||||
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
|
||||
@@ -134,7 +134,7 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: selection:payment.order,date_prefered:0
|
||||
msgid "Directly"
|
||||
msgstr ""
|
||||
msgstr "Přímo"
|
||||
|
||||
#. module: account_payment
|
||||
#: model:ir.actions.act_window,name:account_payment.action_payment_line_form
|
||||
@@ -157,7 +157,7 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: selection:payment.order,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
msgstr "Potvrzeno"
|
||||
|
||||
#. module: account_payment
|
||||
#: help:payment.line,ml_date_created:0
|
||||
@@ -177,12 +177,12 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: selection:payment.line,state:0
|
||||
msgid "Structured"
|
||||
msgstr ""
|
||||
msgstr "Strukturované"
|
||||
|
||||
#. module: account_payment
|
||||
#: field:payment.order,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Stav"
|
||||
|
||||
#. module: account_payment
|
||||
#: view:payment.line:0
|
||||
@@ -223,17 +223,17 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: field:payment.order,date_done:0
|
||||
msgid "Execution date"
|
||||
msgstr ""
|
||||
msgstr "Datum představení"
|
||||
|
||||
#. module: account_payment
|
||||
#: selection:payment.order,date_prefered:0
|
||||
msgid "Fixed date"
|
||||
msgstr ""
|
||||
msgstr "Pevné datum"
|
||||
|
||||
#. module: account_payment
|
||||
#: field:payment.line,info_partner:0
|
||||
msgid "Destination Account"
|
||||
msgstr ""
|
||||
msgstr "Protiúčet"
|
||||
|
||||
#. module: account_payment
|
||||
#: view:payment.line:0
|
||||
@@ -251,12 +251,12 @@ msgstr ""
|
||||
#: wizard_button:populate_payment,search,end:0
|
||||
#: wizard_button:populate_statement,init,end:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
msgstr "Zrušit"
|
||||
|
||||
#. module: account_payment
|
||||
#: field:payment.line,create_date:0
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
msgstr "Vytvořeno"
|
||||
|
||||
#. module: account_payment
|
||||
#: view:payment.line:0
|
||||
@@ -281,12 +281,12 @@ msgstr ""
|
||||
#. module: account_payment
|
||||
#: field:payment.line,communication:0
|
||||
msgid "Communication"
|
||||
msgstr ""
|
||||
msgstr "Komunikace"
|
||||
|
||||
#. module: account_payment
|
||||
#: selection:payment.order,date_prefered:0
|
||||
msgid "Due date"
|
||||
msgstr ""
|
||||
msgstr "Termín dokončení"
|
||||
|
||||
#. module: account_payment
|
||||
#: field:account.invoice,amount_to_pay:0
|
||||
@@ -307,7 +307,7 @@ msgstr ""
|
||||
#: view:payment.type:0
|
||||
#: help:payment.type,name:0
|
||||
msgid "Payment Type"
|
||||
msgstr ""
|
||||
msgstr "Typ platby"
|
||||
|
||||
#. module: account_payment
|
||||
#: help:payment.line,amount_currency:0
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -204,7 +204,7 @@ class account_analytic_account(osv.osv):
|
||||
'date': fields.date('Date End'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Currency'),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Close'),('template', 'Template')], 'State', required=True,readonly=True,
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Closed'),('template', 'Template')], 'State', required=True,readonly=True,
|
||||
help='* When an account is created its in \'Draft\' state.\
|
||||
\n* If any associated partner is there, it can be in \'Open\' state.\
|
||||
\n* If any pending balance is there it can be in \'Pending\'. \
|
||||
|
||||
@@ -7,19 +7,19 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 12:33+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-04-07 08:27+0000\n"
|
||||
"Last-Translator: iTuxer <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:13+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: audittrail
|
||||
#: model:ir.module.module,shortdesc:audittrail.module_meta_information
|
||||
msgid "Audit Trail"
|
||||
msgstr ""
|
||||
msgstr "Audit Trail"
|
||||
|
||||
#. module: audittrail
|
||||
#: constraint:ir.model:0
|
||||
@@ -32,22 +32,22 @@ msgstr ""
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log.line,log_id:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
msgstr "Log"
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.rule,state:0
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
msgstr "Iscritto"
|
||||
|
||||
#. module: audittrail
|
||||
#: view:audittrail.log:0
|
||||
msgid "Old Value : "
|
||||
msgstr ""
|
||||
msgstr "Valore precendente : "
|
||||
|
||||
#. module: audittrail
|
||||
#: selection:audittrail.log,method:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "Crea"
|
||||
|
||||
#. module: audittrail
|
||||
#: wizard_view:audittrail.view.log,init:0
|
||||
@@ -67,7 +67,7 @@ msgstr ""
|
||||
#. module: audittrail
|
||||
#: field:audittrail.log.line,old_value:0
|
||||
msgid "Old Value"
|
||||
msgstr ""
|
||||
msgstr "Valore precedente"
|
||||
|
||||
#. module: audittrail
|
||||
#: constraint:ir.actions.act_window:0
|
||||
|
||||
@@ -31,9 +31,10 @@ import time
|
||||
import tools
|
||||
|
||||
months = {
|
||||
1: "January", 2: "February", 3: "March", 4: "April", \
|
||||
5: "May", 6: "June", 7: "July", 8: "August", 9: "September", \
|
||||
10: "October", 11: "November", 12: "December"}
|
||||
1: "January", 2: "February", 3: "March", 4: "April", \
|
||||
5: "May", 6: "June", 7: "July", 8: "August", 9: "September", \
|
||||
10: "October", 11: "November", 12: "December"
|
||||
}
|
||||
|
||||
def get_recurrent_dates(rrulestring, exdate, startdate=None):
|
||||
"""
|
||||
@@ -94,7 +95,6 @@ def real_id2base_calendar_id(real_id, recurrent_date):
|
||||
return '%d-%s' % (real_id, recurrent_date)
|
||||
return real_id
|
||||
|
||||
|
||||
def _links_get(self, cr, uid, context={}):
|
||||
"""
|
||||
Get request link.
|
||||
@@ -386,9 +386,11 @@ property or property parameter."),
|
||||
response_re = re.compile("Are you coming\?.*\n*.*(YES|NO|MAYBE).*", re.UNICODE)
|
||||
|
||||
def msg_new(self, cr, uid, msg):
|
||||
""" @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 self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
"""
|
||||
return False
|
||||
|
||||
def msg_act_get(self, msg):
|
||||
@@ -445,27 +447,27 @@ property or property parameter."),
|
||||
for att2 in self.browse(cr, uid, other_invitaion_ids):
|
||||
att_infos.append(((att2.user_id and att2.user_id.name) or \
|
||||
(att2.partner_id and att2.partner_id.name) or \
|
||||
att2.email) + ' - Status: ' + att2.state.title())
|
||||
body_vals = {'name': res_obj.name,
|
||||
'start_date': res_obj.date,
|
||||
'end_date': res_obj.date_deadline or False,
|
||||
'description': res_obj.description or '-',
|
||||
'location': res_obj.location or '-',
|
||||
'attendees': '<br>'.join(att_infos),
|
||||
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
|
||||
'sign': sign,
|
||||
'company': company
|
||||
att2.email) + ' - Status: ' + att2.state.title())
|
||||
body_vals = {'name': res_obj.name,
|
||||
'start_date': res_obj.date,
|
||||
'end_date': res_obj.date_deadline or False,
|
||||
'description': res_obj.description or '-',
|
||||
'location': res_obj.location or '-',
|
||||
'attendees': '<br>'.join(att_infos),
|
||||
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
|
||||
'sign': sign,
|
||||
'company': company
|
||||
}
|
||||
body = html_invitation % body_vals
|
||||
if mail_to and email_from:
|
||||
tools.email_send(
|
||||
email_from,
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
subtype='html',
|
||||
reply_to=email_from
|
||||
)
|
||||
email_from,
|
||||
mail_to,
|
||||
sub,
|
||||
body,
|
||||
subtype='html',
|
||||
reply_to=email_from
|
||||
)
|
||||
return True
|
||||
def onchange_user_id(self, cr, uid, ids, user_id, *args, **argv):
|
||||
"""
|
||||
@@ -508,7 +510,6 @@ property or property parameter."),
|
||||
for vals in self.browse(cr, uid, ids, context=context):
|
||||
user = vals.user_id
|
||||
if user:
|
||||
|
||||
mod_obj = self.pool.get(vals.ref._name)
|
||||
if vals.ref:
|
||||
if vals.ref.user_id.id != user.id:
|
||||
@@ -567,9 +568,7 @@ class res_alarm(osv.osv):
|
||||
are both optional, but if one occurs, so MUST the other"""),
|
||||
'repeat': fields.integer('Repeat'),
|
||||
'active': fields.boolean('Active', help="If the active field is set to \
|
||||
true, it will allow you to hide the event alarm information without removing it."),
|
||||
|
||||
|
||||
true, it will allow you to hide the event alarm information without removing it.")
|
||||
}
|
||||
_defaults = {
|
||||
'trigger_interval': lambda *x: 'minutes',
|
||||
@@ -595,10 +594,10 @@ are both optional, but if one occurs, so MUST the other"""),
|
||||
model_id = ir_obj.search(cr, uid, [('model', '=', model)])[0]
|
||||
|
||||
model_obj = self.pool.get(model)
|
||||
for data in model_obj.browse(cr, uid, ids):
|
||||
for data in model_obj.browse(cr, uid, ids, context):
|
||||
|
||||
basic_alarm = data.alarm_id
|
||||
if not context.get('alarm_id'):
|
||||
if not context.get('alarm_id', False):
|
||||
self.do_alarm_unlink(cr, uid, [data.id], model)
|
||||
return True
|
||||
self.do_alarm_unlink(cr, uid, [data.id], model)
|
||||
@@ -641,7 +640,7 @@ are both optional, but if one occurs, so MUST the other"""),
|
||||
ir_obj = self.pool.get('ir.model')
|
||||
model_id = ir_obj.search(cr, uid, [('model', '=', model)])[0]
|
||||
model_obj = self.pool.get(model)
|
||||
for datas in model_obj.browse(cr, uid, ids):
|
||||
for datas in model_obj.browse(cr, uid, ids, context):
|
||||
alarm_ids = alarm_obj.search(cr, uid, [('model_id', '=', model_id), ('res_id', '=', datas.id)])
|
||||
if alarm_ids:
|
||||
alarm_obj.unlink(cr, uid, alarm_ids)
|
||||
@@ -659,35 +658,35 @@ class calendar_alarm(osv.osv):
|
||||
__attribute__ = {}
|
||||
|
||||
_columns = {
|
||||
'alarm_id': fields.many2one('res.alarm', 'Basic Alarm', ondelete='cascade'),
|
||||
'name': fields.char('Summary', size=124, help="""Contains the text to be \
|
||||
used as the message subject for email \
|
||||
or contains the text to be used for display"""),
|
||||
'action': fields.selection([('audio', 'Audio'), ('display', 'Display'), \
|
||||
('procedure', 'Procedure'), ('email', 'Email') ], 'Action', \
|
||||
required=True, help="Defines the action to be invoked when an alarm is triggered"),
|
||||
'description': fields.text('Description', help='Provides a more complete \
|
||||
description of the calendar component, than that \
|
||||
provided by the "SUMMARY" property'),
|
||||
'attendee_ids': fields.many2many('calendar.attendee', 'alarm_attendee_rel', \
|
||||
'alarm_id', 'attendee_id', 'Attendees', readonly=True),
|
||||
'attach': fields.binary('Attachment', help="""* Points to a sound resource,\
|
||||
which is rendered when the alarm is triggered for audio,
|
||||
* File which is intended to be sent as message attachments for email,
|
||||
* Points to a procedure resource, which is invoked when\
|
||||
the alarm is triggered for procedure."""),
|
||||
'res_id': fields.integer('Resource ID'),
|
||||
'model_id': fields.many2one('ir.model', 'Model'),
|
||||
'user_id': fields.many2one('res.users', 'Owner'),
|
||||
'event_date': fields.datetime('Event Date'),
|
||||
'event_end_date': fields.datetime('Event End Date'),
|
||||
'trigger_date': fields.datetime('Trigger Date', readonly="True"),
|
||||
'state':fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('run', 'Run'),
|
||||
('stop', 'Stop'),
|
||||
('done', 'Done'),
|
||||
], 'State', select=True, readonly=True),
|
||||
'alarm_id': fields.many2one('res.alarm', 'Basic Alarm', ondelete='cascade'),
|
||||
'name': fields.char('Summary', size=124, help="""Contains the text to be \
|
||||
used as the message subject for email \
|
||||
or contains the text to be used for display"""),
|
||||
'action': fields.selection([('audio', 'Audio'), ('display', 'Display'), \
|
||||
('procedure', 'Procedure'), ('email', 'Email') ], 'Action', \
|
||||
required=True, help="Defines the action to be invoked when an alarm is triggered"),
|
||||
'description': fields.text('Description', help='Provides a more complete \
|
||||
description of the calendar component, than that \
|
||||
provided by the "SUMMARY" property'),
|
||||
'attendee_ids': fields.many2many('calendar.attendee', 'alarm_attendee_rel', \
|
||||
'alarm_id', 'attendee_id', 'Attendees', readonly=True),
|
||||
'attach': fields.binary('Attachment', help="""* Points to a sound resource,\
|
||||
which is rendered when the alarm is triggered for audio,
|
||||
* File which is intended to be sent as message attachments for email,
|
||||
* Points to a procedure resource, which is invoked when\
|
||||
the alarm is triggered for procedure."""),
|
||||
'res_id': fields.integer('Resource ID'),
|
||||
'model_id': fields.many2one('ir.model', 'Model'),
|
||||
'user_id': fields.many2one('res.users', 'Owner'),
|
||||
'event_date': fields.datetime('Event Date'),
|
||||
'event_end_date': fields.datetime('Event End Date'),
|
||||
'trigger_date': fields.datetime('Trigger Date', readonly="True"),
|
||||
'state':fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('run', 'Run'),
|
||||
('stop', 'Stop'),
|
||||
('done', 'Done'),
|
||||
], 'State', select=True, readonly=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
@@ -722,15 +721,14 @@ class calendar_alarm(osv.osv):
|
||||
def do_run_scheduler(self, cr, uid, automatic=False, use_new_cursor=False, \
|
||||
context=None):
|
||||
"""
|
||||
@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 calendar alarm’s IDs.
|
||||
@param use_new_cursor: False or the dbname
|
||||
@param context: A standard dictionary for contextual values
|
||||
@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 calendar alarm’s IDs.
|
||||
@param use_new_cursor: False or the dbname
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
@@ -798,7 +796,6 @@ class calendar_event(osv.osv):
|
||||
def _tz_get(self, cr, uid, context={}):
|
||||
return [(x.lower(), x) for x in pytz.all_timezones]
|
||||
|
||||
|
||||
def onchange_dates(self, cr, uid, ids, start_date, duration=False, end_date=False, context={}):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@@ -904,10 +901,10 @@ class calendar_event(osv.osv):
|
||||
whr = " where id=%(id)s"
|
||||
qry = qry + whr
|
||||
val.update({
|
||||
'table': self._table,
|
||||
'rule_type': rrule_type,
|
||||
'id': id,
|
||||
})
|
||||
'table': self._table,
|
||||
'rule_type': rrule_type,
|
||||
'id': id,
|
||||
})
|
||||
cr.execute(qry % val)
|
||||
return True
|
||||
|
||||
@@ -921,9 +918,7 @@ class calendar_event(osv.osv):
|
||||
@return: dictionary of rrule value.
|
||||
"""
|
||||
result = {}
|
||||
for event in ids:
|
||||
|
||||
datas = self.read(cr, uid, event)
|
||||
for datas in self.read(cr, uid, ids):
|
||||
if datas.get('rrule_type'):
|
||||
if datas.get('rrule_type') == 'none':
|
||||
result[event] = False
|
||||
@@ -947,12 +942,11 @@ class calendar_event(osv.osv):
|
||||
'duration': fields.float('Duration'),
|
||||
'description': fields.text('Your action'),
|
||||
'class': fields.selection([('public', 'Public'), ('private', 'Private'), \
|
||||
('confidential', 'Confidential')], 'Mark as'),
|
||||
'location': fields.char('Location', size=264, help="Location of Event"),
|
||||
('confidential', 'Confidential')], 'Mark as'),
|
||||
'location': fields.char('Location', size=264, help="Location of Event"),
|
||||
'show_as': fields.selection([('free', 'Free'), \
|
||||
('busy', 'Busy')],
|
||||
'Show as'),
|
||||
'base_calendar_url': fields.char('Caldav URL', size=264),
|
||||
('busy', 'Busy')], 'Show as'),
|
||||
'base_calendar_url': fields.char('Caldav URL', size=264),
|
||||
'exdate': fields.text('Exception Date/Times', help="This property \
|
||||
defines the list of date/time exceptions for arecurring calendar component."),
|
||||
'exrule': fields.char('Exception Rule', size=352, help="defines a \
|
||||
@@ -964,46 +958,45 @@ class calendar_event(osv.osv):
|
||||
e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU'),
|
||||
'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \
|
||||
('weekly', 'Weekly'), ('monthly', 'Monthly'), \
|
||||
('yearly', 'Yearly'), ('custom', 'Custom')], 'Recurrency'),
|
||||
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
|
||||
'base_calendar_alarm_id': fields.many2one('calendar.alarm', 'Alarm'),
|
||||
'recurrent_uid': fields.integer('Recurrent ID'),
|
||||
'recurrent_id': fields.datetime('Recurrent ID date'),
|
||||
'vtimezone': fields.related('user_id', 'context_tz', type='char', size=24, \
|
||||
string='Timezone', store=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
('weekly', 'Weekly'), ('monthly', 'Monthly'), \
|
||||
('yearly', 'Yearly'), ('custom', 'Custom')], 'Recurrency'),
|
||||
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
|
||||
'base_calendar_alarm_id': fields.many2one('calendar.alarm', 'Alarm'),
|
||||
'recurrent_uid': fields.integer('Recurrent ID'),
|
||||
'recurrent_id': fields.datetime('Recurrent ID date'),
|
||||
'vtimezone': fields.related('user_id', 'context_tz', type='char', size=24,\
|
||||
string='Timezone', store=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
'freq': fields.selection([('None', 'No Repeat'), \
|
||||
('secondly', 'Secondly'), \
|
||||
('minutely', 'Minutely'), \
|
||||
('hourly', 'Hourly'), \
|
||||
('daily', 'Daily'), \
|
||||
('weekly', 'Weekly'), \
|
||||
('monthly', 'Monthly'), \
|
||||
('yearly', 'Yearly')], 'Frequency'),
|
||||
'interval': fields.integer('Interval'),
|
||||
'count': fields.integer('Count'),
|
||||
'mo': fields.boolean('Mon'),
|
||||
'tu': fields.boolean('Tue'),
|
||||
'we': fields.boolean('Wed'),
|
||||
'th': fields.boolean('Thu'),
|
||||
'fr': fields.boolean('Fri'),
|
||||
'sa': fields.boolean('Sat'),
|
||||
'su': fields.boolean('Sun'),
|
||||
('secondly', 'Secondly'), \
|
||||
('minutely', 'Minutely'), \
|
||||
('hourly', 'Hourly'), \
|
||||
('daily', 'Daily'), \
|
||||
('weekly', 'Weekly'), \
|
||||
('monthly', 'Monthly'), \
|
||||
('yearly', 'Yearly')], 'Frequency'),
|
||||
'interval': fields.integer('Interval'),
|
||||
'count': fields.integer('Count'),
|
||||
'mo': fields.boolean('Mon'),
|
||||
'tu': fields.boolean('Tue'),
|
||||
'we': fields.boolean('Wed'),
|
||||
'th': fields.boolean('Thu'),
|
||||
'fr': fields.boolean('Fri'),
|
||||
'sa': fields.boolean('Sat'),
|
||||
'su': fields.boolean('Sun'),
|
||||
'select1': fields.selection([('date', 'Date of month'), \
|
||||
('day', 'Day of month')], 'Option'),
|
||||
'day': fields.integer('Date of month'),
|
||||
('day', 'Day of month')], 'Option'),
|
||||
'day': fields.integer('Date of month'),
|
||||
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \
|
||||
('WE', 'Wednesday'), ('TH', 'Thursday'), \
|
||||
('FR', 'Friday'), ('SA', 'Saturday'), \
|
||||
('SU', 'Sunday')], 'Weekday'),
|
||||
('WE', 'Wednesday'), ('TH', 'Thursday'), \
|
||||
('FR', 'Friday'), ('SA', 'Saturday'), \
|
||||
('SU', 'Sunday')], 'Weekday'),
|
||||
'byday': fields.selection([('1', 'First'), ('2', 'Second'), \
|
||||
('3', 'Third'), ('4', 'Fourth'), \
|
||||
('5', 'Fifth'), ('-1', 'Last')], 'By day'),
|
||||
'month_list': fields.selection(months.items(), 'Month'),
|
||||
('3', 'Third'), ('4', 'Fourth'), \
|
||||
('5', 'Fifth'), ('-1', 'Last')], 'By day'),
|
||||
'month_list': fields.selection(months.items(), 'Month'),
|
||||
'end_date': fields.date('Repeat Until')
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'class': lambda *a: 'public',
|
||||
'show_as': lambda *a: 'busy',
|
||||
@@ -1027,11 +1020,11 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
event_id = base_calendar_id2real_id(event_id)
|
||||
datas = self.read(cr, uid, event_id, context=context)
|
||||
defaults.update({
|
||||
'recurrent_uid': base_calendar_id2real_id(datas['id']),
|
||||
'recurrent_id': defaults.get('date') or real_date,
|
||||
'rrule_type': 'none',
|
||||
'rrule': ''
|
||||
})
|
||||
'recurrent_uid': base_calendar_id2real_id(datas['id']),
|
||||
'recurrent_id': defaults.get('date') or real_date,
|
||||
'rrule_type': 'none',
|
||||
'rrule': ''
|
||||
})
|
||||
exdate = datas['exdate'] and datas['exdate'].split(',') or []
|
||||
if real_date and defaults.get('date'):
|
||||
exdate.append(real_date)
|
||||
@@ -1047,7 +1040,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
@param event_ids: List of crm meeting’s IDs.
|
||||
@return: True
|
||||
"""
|
||||
#start Loop
|
||||
|
||||
for event_id in event_ids:
|
||||
event_id = base_calendar_id2real_id(event_id)
|
||||
|
||||
@@ -1062,7 +1055,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
qry += ", location = '%(location)s'"
|
||||
qry += "WHERE id = %s" % (event_id)
|
||||
cr.execute(qry %(defaults))
|
||||
#End Loop
|
||||
|
||||
return True
|
||||
|
||||
def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100):
|
||||
@@ -1159,7 +1152,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
weekstring = ''
|
||||
monthstring = ''
|
||||
yearstring = ''
|
||||
# logic for computing rrule string
|
||||
|
||||
freq = datas.get('freq')
|
||||
if freq == 'None':
|
||||
return ''
|
||||
@@ -1198,7 +1191,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
|
||||
rrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \
|
||||
+ enddate + monthstring + yearstring
|
||||
|
||||
# End logic
|
||||
return rrule_string
|
||||
|
||||
|
||||
@@ -1390,13 +1382,14 @@ class calendar_todo(osv.osv):
|
||||
_description = "Calendar Task"
|
||||
|
||||
def _get_date(self, cr, uid, ids, name, arg, context):
|
||||
""" Get Date
|
||||
@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 calendar todo's IDs.
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
Get Date
|
||||
@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 calendar todo's IDs.
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
res = {}
|
||||
@@ -1405,14 +1398,15 @@ class calendar_todo(osv.osv):
|
||||
return res
|
||||
|
||||
def _set_date(self, cr, uid, id, name, value, arg, context):
|
||||
""" Set Date
|
||||
@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 id: calendar's ID.
|
||||
@param value: Get Value
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
Set Date
|
||||
@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 id: calendar's ID.
|
||||
@param value: Get Value
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
event = self.browse(cr, uid, id, context=context)
|
||||
@@ -1436,11 +1430,12 @@ class ir_attachment(osv.osv):
|
||||
_inherit = 'ir.attachment'
|
||||
|
||||
def search_count(self, cr, user, args, context=None):
|
||||
""" @param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param user: the current user’s ID for security checks,
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param user: the current user’s ID for security checks,
|
||||
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
args1 = []
|
||||
@@ -1450,14 +1445,14 @@ class ir_attachment(osv.osv):
|
||||
|
||||
def search(self, cr, uid, args, offset=0, limit=None, order=None,
|
||||
context=None, count=False):
|
||||
|
||||
""" @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 args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param offset: The Number of Results to pass,
|
||||
@param limit: The Number of Results to Return,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
@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 args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
|
||||
@param offset: The Number of Results to pass,
|
||||
@param limit: The Number of Results to Return,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
new_args = args
|
||||
@@ -1474,12 +1469,13 @@ class ir_values(osv.osv):
|
||||
|
||||
def set(self, cr, uid, key, key2, name, models, value, replace=True, \
|
||||
isobject=False, meta=False, preserve_user=False, company=False):
|
||||
|
||||
""" set IR Values
|
||||
@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 model: Get The Model """
|
||||
"""
|
||||
Set IR Values
|
||||
@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 model: Get The Model
|
||||
"""
|
||||
|
||||
new_model = []
|
||||
for data in models:
|
||||
@@ -1492,12 +1488,13 @@ class ir_values(osv.osv):
|
||||
|
||||
def get(self, cr, uid, key, key2, models, meta=False, context={}, \
|
||||
res_id_req=False, without_user=True, key2_req=True):
|
||||
|
||||
""" Get IR Values
|
||||
@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 model: Get The Model """
|
||||
"""
|
||||
Get IR Values
|
||||
@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 model: Get The Model
|
||||
"""
|
||||
|
||||
new_model = []
|
||||
for data in models:
|
||||
@@ -1516,14 +1513,14 @@ class ir_model(osv.osv):
|
||||
|
||||
def read(self, cr, uid, ids, fields=None, context={},
|
||||
load='_classic_read'):
|
||||
|
||||
""" Read IR Model
|
||||
@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 IR Model’s IDs.
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
"""
|
||||
Read IR Model
|
||||
@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 IR Model’s IDs.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
data = super(ir_model, self).read(cr, uid, ids, fields=fields, \
|
||||
context=context, load=load)
|
||||
@@ -1537,13 +1534,13 @@ ir_model()
|
||||
class virtual_report_spool(web_services.report_spool):
|
||||
|
||||
def exp_report(self, db, uid, object, ids, datas=None, context=None):
|
||||
|
||||
""" Export Report
|
||||
@param self: The object pointer
|
||||
@param db: get the current database,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
"""
|
||||
Export Report
|
||||
@param self: The object pointer
|
||||
@param db: get the current database,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
if object == 'printscreen.list':
|
||||
return super(virtual_report_spool, self).exp_report(db, uid, \
|
||||
@@ -1561,13 +1558,14 @@ class res_users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
|
||||
def _get_user_avail(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Get USer Availability
|
||||
@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 res user’s IDs.
|
||||
@param context: A standard dictionary for contextual values """
|
||||
"""
|
||||
Get USer Availability
|
||||
@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 res user’s IDs.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
res = {}
|
||||
@@ -1591,13 +1589,14 @@ class res_users(osv.osv):
|
||||
return res
|
||||
|
||||
def _get_user_avail_fun(self, cr, uid, ids, name, args, context=None):
|
||||
|
||||
""" Get USer Availability Function
|
||||
@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 res user’s IDs.
|
||||
@param context: A standard dictionary for contextual values """
|
||||
"""
|
||||
Get USer Availability Function
|
||||
@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 res user’s IDs.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
return self._get_user_avail(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
@@ -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-05 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base_contact
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "پیش"
|
||||
@@ -34,7 +34,7 @@ This module implements a dashboard for CRM that includes:
|
||||
* Jobs Tracking (graph)
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'depends': ['board', 'crm', 'report_crm'],
|
||||
'depends': ['board', 'crm'],
|
||||
'update_xml': ['board_crm_statistical_view.xml', 'board_crm_view.xml'],
|
||||
'demo_xml': ['board_crm_demo.xml'],
|
||||
'installable': True,
|
||||
|
||||
+2
-6
@@ -136,7 +136,6 @@ class crm_case_categ(osv.osv):
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
'object_id': fields.many2one('ir.model', 'Object Name'),
|
||||
}
|
||||
|
||||
def _find_object_id(self, cr, uid, context=None):
|
||||
|
||||
|
||||
@@ -172,7 +171,6 @@ class crm_case_resource_type(osv.osv):
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
'object_id': fields.many2one('ir.model', 'Object Name'),
|
||||
}
|
||||
|
||||
def _find_object_id(self, cr, uid, context=None):
|
||||
"""Finds id for case object
|
||||
@param self: The object pointer
|
||||
@@ -210,7 +208,6 @@ class crm_case_stage(osv.osv):
|
||||
help="Change Probability on next and previous stages."),
|
||||
'requirements': fields.text('Requirements')
|
||||
}
|
||||
|
||||
def _find_object_id(self, cr, uid, context=None):
|
||||
"""Finds id for case object
|
||||
@param self: The object pointer
|
||||
@@ -357,7 +354,6 @@ class crm_case(osv.osv):
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'company_id': fields.many2one('res.company', 'Company'),
|
||||
}
|
||||
|
||||
def _get_default_partner_address(self, cr, uid, context):
|
||||
"""Gives id of default address for current user
|
||||
@param self: The object pointer
|
||||
@@ -604,7 +600,7 @@ class crm_case(osv.osv):
|
||||
return True
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
"""This function returns value of partner address based on partner
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@@ -631,7 +627,7 @@ class crm_case(osv.osv):
|
||||
@email: Partner's email ID
|
||||
"""
|
||||
if not add:
|
||||
return {'value': {'email_from': False, 'partner_name2': False}}
|
||||
return {'value': {'email_from': False}}
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
return {'value': {'email_from': address.email}}
|
||||
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+1
@@ -13,6 +13,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar,form,graph</field>
|
||||
<field name="view_id" ref="crm_case_claims_tree_view"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_current":1,"search_default_my_claims":1}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_claims_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
Executable → Regular
+52
-54
@@ -14,7 +14,7 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_claim_categ_action"
|
||||
id="menu_crm_case_claim-act" parent="crm.menu_crm_case_categ" />
|
||||
id="menu_crm_case_claim-act" parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- Claim Stages -->
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_claim_stage_act"
|
||||
id="menu_crm_claim_stage_act" parent="crm.menu_crm_case_stage" />
|
||||
id="menu_crm_claim_stage_act" parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Claim Resource Type -->
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_claim_resource_act"
|
||||
id="menu_crm_claim_stage_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
id="menu_crm_claim_stage_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
<!-- Claims -->
|
||||
|
||||
@@ -57,26 +57,26 @@
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" />
|
||||
<field name="section_id" string="Section" />
|
||||
<field name="section_id"/>
|
||||
<field name="date" string="Claim Date"/>
|
||||
<field name="date_deadline" string="Deadline"/>
|
||||
<field name="date_closed" string="Closure Date"/>
|
||||
<field name="categ_id" string="Type" select="1"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_close" string="Close"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -132,20 +132,20 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_reset"
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
@@ -161,7 +161,7 @@
|
||||
<separator string="Action Information" colspan="4"/>
|
||||
<field name="name" colspan="4"/>
|
||||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<field name="user_id"/>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
@@ -183,10 +183,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.claim'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.claim'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -195,9 +195,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.claim'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.claim'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Claim Calendar view -->
|
||||
<!-- Claim Calendar view -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_claims_calendar_view">
|
||||
<field name="name">CRM - Claims Calendar</field>
|
||||
@@ -222,7 +222,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Claim Graph view -->
|
||||
<!-- Claim Graph view -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_graph_view_stage_cost">
|
||||
<field name="name">CRM -Graph</field>
|
||||
@@ -237,7 +237,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Crm claim Search view -->
|
||||
<!-- Crm claim Search view -->
|
||||
|
||||
<record id="view_crm_case_claims_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Claims Search</field>
|
||||
@@ -245,9 +245,9 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Claims">
|
||||
<filter icon="gtk-new" string="Current"
|
||||
<filter icon="gtk-new" string="Current" name="current"
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
separator="1" help="Current Claims" default="1"
|
||||
separator="1" help="Current Claims"
|
||||
/>
|
||||
<filter icon="gtk-execute"
|
||||
string="In Progress"
|
||||
@@ -263,28 +263,26 @@
|
||||
<field name="name" select='1'/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]" help="My Claims"
|
||||
default="1" />
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned Claims" />
|
||||
<filter icon="terp-partner" name="my_claims"
|
||||
domain="[('user_id','=',uid)]" help="My Claims"/>
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned Claims" />
|
||||
</field>
|
||||
<field name="section_id" select="1"
|
||||
widget="selection" string="Section"
|
||||
default="context.get('section_id', False)">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="20">
|
||||
<filter string="Deadline" icon="terp-crm"
|
||||
domain="[]"
|
||||
context="{'group_by':'date_deadline'}" />
|
||||
<filter string="Closure" icon="terp-crm"
|
||||
domain="[]"
|
||||
context="{'group_by':'date_closed'}" />
|
||||
<filter string="Deadline" icon="terp-crm"
|
||||
domain="[]"
|
||||
context="{'group_by':'date_deadline'}" />
|
||||
<filter string="Closure" icon="terp-crm"
|
||||
domain="[]"
|
||||
context="{'group_by':'date_closed'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<field name="res_model">crm.fundraising</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="view_id" ref="crm.crm_case_tree_view_fund"/>
|
||||
<field name="context">{"search_default_my_funds":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_fund_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
+102
-103
@@ -8,29 +8,29 @@
|
||||
<field name="name">Fundraising Categories</field>
|
||||
<field name="res_model">crm.case.categ</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_fund_categ_action"
|
||||
id="menu_crm_case_fundraising-act"
|
||||
parent="crm.menu_crm_case_categ" />
|
||||
id="menu_crm_case_fundraising-act"
|
||||
parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- Fund Stage Form View -->
|
||||
|
||||
<record id="crm_fundraising_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Fundraising Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
</record>
|
||||
<record id="crm_fundraising_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Fundraising Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_fundraising_stage_act"
|
||||
id="menu_crm_fundraising_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
<menuitem action="crm_fundraising_stage_act"
|
||||
id="menu_crm_fundraising_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Fund Resource Type Form View -->
|
||||
|
||||
@@ -39,13 +39,13 @@
|
||||
<field name="res_model">crm.case.resource.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_resource_type_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_fundraising_resource_act"
|
||||
id="menu_crm_fundraising_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
id="menu_crm_fundraising_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
|
||||
<!-- Fund Raising Tree View -->
|
||||
@@ -56,31 +56,31 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Funds Tree"
|
||||
colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="id" />
|
||||
<field name="name" string="Fund Description" />
|
||||
<field name="categ_id" />
|
||||
<field name="type_id" string="Payment Mode" />
|
||||
<field name="planned_cost" string="Amount" />
|
||||
<field name="probability" />
|
||||
<field name="user_id" />
|
||||
<field name="state" />
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object" icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="id" />
|
||||
<field name="name" string="Fund Description" />
|
||||
<field name="categ_id" />
|
||||
<field name="type_id" string="Payment Mode" />
|
||||
<field name="planned_cost" string="Amount" />
|
||||
<field name="probability" />
|
||||
<field name="user_id" />
|
||||
<field name="state" />
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object" icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -96,20 +96,20 @@
|
||||
<group colspan="4" col="4">
|
||||
<field name="name" select="1" string="Name"/>
|
||||
<field name="type_id" string="Payment Mode" select="1" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Funds">
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="partner_id" select="1"
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
colspan="2" />
|
||||
<field name="partner_address_id"
|
||||
string="Contact"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
colspan="1" />
|
||||
<field name="email_from" colspan="2"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="partner_id" select="1"
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
colspan="2" />
|
||||
<field name="partner_address_id"
|
||||
string="Contact"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
colspan="1" />
|
||||
<field name="email_from" colspan="2"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Estimates"/>
|
||||
<field name="planned_cost"/>
|
||||
@@ -117,13 +117,13 @@
|
||||
<field name="probability"/>
|
||||
<separator colspan="4" string="Categorization"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="user_id" select="2" string="Responsible"/>
|
||||
<field name="user_id" select="2" string="Responsible"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<field name="categ_id" select="1"
|
||||
widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
<field name="date"/>
|
||||
<field name="duration"/>
|
||||
<field name="categ_id" select="1"
|
||||
widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.fundraising')]" />
|
||||
<field name="date"/>
|
||||
<field name="duration"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Details"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
@@ -131,23 +131,23 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset"
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
@@ -169,7 +169,7 @@
|
||||
<separator string="Action Information" colspan="4"/>
|
||||
<field name="name" colspan="4"/>
|
||||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<field name="user_id"/>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
@@ -181,8 +181,8 @@
|
||||
<form string="Communication history">
|
||||
<group col="7" colspan="4">
|
||||
<field name="date"/>
|
||||
<field name="email_to"/>
|
||||
<field name="email_from"/>
|
||||
<field name="email_to"/>
|
||||
<field name="email_from"/>
|
||||
<button
|
||||
string="Add a CC"
|
||||
name="%(crm.action_view_crm_email_add_cc_wizard)d"
|
||||
@@ -191,10 +191,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.fundraising'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.fundraising'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -203,9 +203,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.fundraising'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.fundraising'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -252,36 +252,35 @@
|
||||
<search string="Search Funds">
|
||||
<group col='6' colspan='4'>
|
||||
<filter icon="terp-partner" string="My Funds"
|
||||
default="1" domain="[('user_id','=',uid)]"
|
||||
name="my_funds" domain="[('user_id','=',uid)]"
|
||||
separator="1"
|
||||
help="Funds Related to Current User"
|
||||
/>
|
||||
<separator orientation="vertical" />
|
||||
<filter icon="gtk-new" string="Current Funds"
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
help="Current Funds" />
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
help="Current Funds" />
|
||||
<filter icon="gtk-yes" string="Open Funds"
|
||||
domain="[('state','=','open')]"
|
||||
help="Open Funds" />
|
||||
domain="[('state','=','open')]"
|
||||
help="Open Funds" />
|
||||
<filter icon="gtk-media-pause"
|
||||
string="Pending Funds"
|
||||
domain="[('state','=','pending')]"
|
||||
help="Pending Funds" />
|
||||
string="Pending Funds"
|
||||
domain="[('state','=','pending')]"
|
||||
help="Pending Funds" />
|
||||
<separator orientation="vertical" />
|
||||
<field name="state" select="1" />
|
||||
<field name="name" select='1'
|
||||
string="Fund Description" />
|
||||
string="Fund Description" />
|
||||
<field name="user_id" select="1"
|
||||
widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned" />
|
||||
widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned" />
|
||||
</field>
|
||||
<field name="section_id" select="1"
|
||||
widget="selection" string="Section"
|
||||
default="context.get('section_id', False)">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
<field name="section_id" select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
</group>
|
||||
</search>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<field name="res_model">crm.helpdesk</field>
|
||||
<field name="view_mode">tree,calendar,form</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_helpdesk"/>
|
||||
<field name="context">{"search_default_my_hd_request":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_helpdesk_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
<field name="name">Helpdesk Categories</field>
|
||||
<field name="res_model">crm.case.categ</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.helpdesk')]</field>
|
||||
<field name="context">{'object_id':'crm.helpdesk'}</field>
|
||||
<field name="context">{'object_id':'crm.helpdesk'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_helpdesk_categ_action"
|
||||
id="menu_crm_case_helpdesk-act" parent="crm.menu_crm_case_categ" />
|
||||
id="menu_crm_case_helpdesk-act" parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- Helpdesk Support Form View -->
|
||||
|
||||
@@ -31,20 +31,20 @@
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<separator colspan="4" string="Communication"/>
|
||||
<group col="7" colspan="4">
|
||||
<field name="partner_id"
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
select="1" />
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
select="1" />
|
||||
<field name="partner_address_id"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
select="2" />
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
select="2" />
|
||||
|
||||
<field name="email_from" select="2" />
|
||||
<button name="remind_partner"
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
|
||||
</group>
|
||||
<separator colspan="4" string="Categorization"/>
|
||||
@@ -53,37 +53,37 @@
|
||||
<field name="section_id" widget="selection"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<button name="remind_user"
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="Details"/>
|
||||
<field name="description" colspan="4"
|
||||
nolabel="1" widget="text_tag" readonly="1" />
|
||||
nolabel="1" widget="text_tag" readonly="1" />
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="case_close"
|
||||
states="open,draft,pending" string="Close"
|
||||
type="object" icon="gtk-close" />
|
||||
states="open,draft,pending" string="Close"
|
||||
type="object" icon="gtk-close" />
|
||||
<button name="case_open"
|
||||
states="draft,pending" string="Open"
|
||||
type="object" icon="gtk-go-forward" />
|
||||
states="draft,pending" string="Open"
|
||||
type="object" icon="gtk-go-forward" />
|
||||
<button name="case_cancel"
|
||||
states="draft,open,pending" string="Cancel"
|
||||
type="object" icon="gtk-cancel" />
|
||||
states="draft,open,pending" string="Cancel"
|
||||
type="object" icon="gtk-cancel" />
|
||||
<button name="case_pending"
|
||||
states="draft,open" string="Pending"
|
||||
type="object" icon="gtk-media-pause" />
|
||||
states="draft,open" string="Pending"
|
||||
type="object" icon="gtk-media-pause" />
|
||||
<button name="case_escalate"
|
||||
states="open,draft,pending"
|
||||
string="Escalate" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending"
|
||||
string="Escalate" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset"
|
||||
states="done,cancel"
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
states="done,cancel"
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
@@ -126,10 +126,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.helpdesk'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.helpdesk'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -138,9 +138,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.helpdesk'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.helpdesk'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -162,25 +162,25 @@
|
||||
<field name="date" string="Date"/>
|
||||
<field name="date_deadline"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" string="Section" />
|
||||
<field name="section_id"/>
|
||||
<field name="state"/>
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -223,25 +223,22 @@
|
||||
<field name="name" select='1' string="Query"/>
|
||||
<field name="partner_id" />
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Helpdesk Requests" default="1" />
|
||||
<filter icon="terp-partner" name="my_hd_request"
|
||||
domain="[('user_id','=',uid)]" help="My Helpdesk Requests"/>
|
||||
</field>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)" select="1"
|
||||
widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
<field name="section_id" select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="12" col="20">
|
||||
<filter string="Customer" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'partner_id'}" />
|
||||
domain="[]" context="{'group_by':'partner_id'}" />
|
||||
<filter string="State" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'state'}" />
|
||||
context="{'group_by':'state'}" />
|
||||
<filter string="Priority" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'priority'}" />
|
||||
domain="[]" context="{'group_by':'priority'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
+32
-16
@@ -24,7 +24,7 @@ from datetime import datetime, timedelta
|
||||
import crm
|
||||
import math
|
||||
import time
|
||||
from mx import DateTime
|
||||
import mx.DateTime
|
||||
from tools.translate import _
|
||||
|
||||
class crm_lead(osv.osv):
|
||||
@@ -32,7 +32,7 @@ class crm_lead(osv.osv):
|
||||
|
||||
_name = "crm.lead"
|
||||
_description = "Leads Cases"
|
||||
_order = "priority desc, id desc"
|
||||
_order = "priority, id desc"
|
||||
_inherit = ['res.partner.address', 'crm.case']
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
@@ -55,36 +55,52 @@ class crm_lead(osv.osv):
|
||||
@param ids: List of Openday’s IDs
|
||||
@return: difference between current date and log date
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
log_obj = self.pool.get('crm.case.log')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
cal_obj = self.pool.get('resource.calendar')
|
||||
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', self._name)])
|
||||
model_id = False
|
||||
if len(model_ids):
|
||||
model_id = model_ids[0]
|
||||
"""
|
||||
cal_obj = self.pool.get('resource.calendar')
|
||||
res_obj = self.pool.get('resource.resource')
|
||||
|
||||
res = {}
|
||||
for lead in self.browse(cr, uid, ids , context):
|
||||
for field in fields:
|
||||
res[lead.id] = {}
|
||||
duration = 0
|
||||
ans = False
|
||||
if field == 'day_open':
|
||||
if lead.date_open:
|
||||
date_create = datetime.strptime(lead.create_date, "%Y-%m-%d %H:%M:%S")
|
||||
date_open = datetime.strptime(lead.date_open, "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
ans = date_open - date_create
|
||||
duration = float(ans.days) + (float(ans.seconds) / 86400)
|
||||
|
||||
date_until = lead.date_open
|
||||
elif field == 'day_close':
|
||||
if lead.date_closed:
|
||||
date_create = datetime.strptime(lead.create_date, "%Y-%m-%d %H:%M:%S")
|
||||
date_close = datetime.strptime(lead.date_closed, "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
date_until = lead.date_closed
|
||||
ans = date_close - date_create
|
||||
duration = float(ans.days) + (float(ans.seconds) / 86400)
|
||||
if ans:
|
||||
resource_id = False
|
||||
if lead.user_id:
|
||||
resource_ids = res_obj.search(cr, uid, [('user_id','=',lead.user_id.id)])
|
||||
resource_id = len(resource_ids) or resource_ids[0]
|
||||
|
||||
duration = float(ans.days)
|
||||
if lead.section_id.resource_calendar_id:
|
||||
duration = float(ans.days) * 24
|
||||
new_dates = cal_obj.interval_get(cr,
|
||||
uid,
|
||||
lead.section_id.resource_calendar_id and lead.section_id.resource_calendar_id.id or False,
|
||||
mx.DateTime.strptime(lead.create_date, '%Y-%m-%d %H:%M:%S'),
|
||||
duration,
|
||||
resource=resource_id
|
||||
)
|
||||
no_days = []
|
||||
date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
|
||||
for in_time, out_time in new_dates:
|
||||
if in_time.date not in no_days:
|
||||
no_days.append(in_time.date)
|
||||
if out_time > date_until:
|
||||
break
|
||||
duration = len(no_days)
|
||||
res[lead.id][field] = abs(int(duration))
|
||||
return res
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
<field name="res_model">crm.lead</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_leads"/>
|
||||
<field name="context">{"search_default_current":1,"search_default_my_lead":1,"search_default_section_id":section_id}</field>
|
||||
<field name="context">{"search_default_current":1,"search_default_my_lead":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_leads_all">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<field name="context">{'object_id':'crm.lead'}</field>
|
||||
</record>
|
||||
<menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Resource Type Form View -->
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
<field name="res_model">crm.case.resource.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_resource_type_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.lead')]</field>
|
||||
<field name="context">{'object_id':'crm.lead'}</field>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.lead')]</field>
|
||||
<field name="context">{'object_id':'crm.lead'}</field>
|
||||
</record>
|
||||
<menuitem action="crm_lead_resource_act"
|
||||
id="menu_crm_lead_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
id="menu_crm_lead_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
<!-- CRM Lead Form View -->
|
||||
|
||||
@@ -45,23 +45,23 @@
|
||||
name="convert_opportunity"
|
||||
string="Convert"
|
||||
help="Convert into Opportunity"
|
||||
icon="gtk-index"
|
||||
type="object"
|
||||
icon="gtk-index"
|
||||
type="object"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}"/>
|
||||
<newline />
|
||||
<field name="section_id" colspan="1"
|
||||
widget="selection" />
|
||||
widget="selection" />
|
||||
<field name="user_id" />
|
||||
<field name="stage_id" widget="selection"
|
||||
readonly="1"
|
||||
domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
readonly="1"
|
||||
domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<group col="2" colspan="1">
|
||||
<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="open,pending" type="object"
|
||||
icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
@@ -104,65 +104,31 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
<button name="case_close" string="Close"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset"
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
string="Reset to Draft" states="done,cancel"
|
||||
type="object" icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
<field name="history_line" colspan="4" nolabel="1" mode="form,tree">
|
||||
<form string="Communication history">
|
||||
<group col="7" colspan="4">
|
||||
<field name="date"/>
|
||||
<field name="email_to"/>
|
||||
<field name="email_from"/>
|
||||
<button
|
||||
string="Add a CC"
|
||||
name="%(crm.action_view_crm_email_add_cc_wizard)d"
|
||||
icon="gtk-add" type="action"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
<field name="email_to"/>
|
||||
<field name="date"/>
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Categories" colspan="2" col="2"/>
|
||||
<field name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
widget="selection" colspan="2" />
|
||||
groups="base.group_multi_company"
|
||||
widget="selection" colspan="2" />
|
||||
<field name="categ_id"
|
||||
widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.opportunity')]" />
|
||||
@@ -182,6 +148,41 @@
|
||||
<field name="day_close"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
<field name="history_line" colspan="4" nolabel="1" mode="form,tree">
|
||||
<form string="Communication history">
|
||||
<group col="7" colspan="4">
|
||||
<field name="date"/>
|
||||
<field name="email_to"/>
|
||||
<field name="email_from"/>
|
||||
<button
|
||||
string="Add a CC"
|
||||
name="%(crm.action_view_crm_email_add_cc_wizard)d"
|
||||
icon="gtk-add" type="action"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
<field name="email_to"/>
|
||||
<field name="date"/>
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
@@ -207,30 +208,30 @@
|
||||
|
||||
<field name="stage_id"/>
|
||||
<button name="stage_previous" string="Previous"
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<field name="section_id"
|
||||
invisible="context.get('invisible_section', True)" />
|
||||
invisible="context.get('invisible_section', True)" />
|
||||
<field name="user_id" />
|
||||
<field name="state" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_close" string="Close"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(action_crm_lead2opportunity)d"
|
||||
states="draft,open,pending" icon="gtk-index"
|
||||
type="action" />
|
||||
name="%(action_crm_lead2opportunity)d"
|
||||
states="draft,open,pending" icon="gtk-index"
|
||||
type="action" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -244,11 +245,11 @@
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Meeting For Leads Generation"
|
||||
date_start="create_date" color="user_id"
|
||||
date_delay="duration">
|
||||
<field name="name" />
|
||||
<field name="partner_name" />
|
||||
<field name="partner_contact" />
|
||||
date_start="create_date" color="user_id"
|
||||
date_delay="duration">
|
||||
<field name="name" />
|
||||
<field name="partner_name" />
|
||||
<field name="partner_contact" />
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
@@ -261,9 +262,8 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Leads">
|
||||
<filter icon="terp-project"
|
||||
<filter icon="terp-project" name="current"
|
||||
string="Current"
|
||||
default="1"
|
||||
domain="[('state','in',('draft','open'))]"/>
|
||||
<filter icon="terp-project"
|
||||
string="Open"
|
||||
@@ -274,9 +274,9 @@
|
||||
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-home" string="Today"
|
||||
domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), \
|
||||
('create_date','>=', time.strftime('%%Y-%%m-%%d 23:59:59'))]"
|
||||
help="Todays' Opportunities" />
|
||||
domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), \
|
||||
('create_date','>=', time.strftime('%%Y-%%m-%%d 23:59:59'))]"
|
||||
help="Todays' Opportunities" />
|
||||
<filter icon="gtk-media-rewind" string="7 Days"
|
||||
help="Opportunities during last 7 days"
|
||||
domain="[('create_date','<', time.strftime('%%Y-%%m-%%d')),\
|
||||
@@ -288,10 +288,13 @@
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Leads" default="1"
|
||||
help="My Leads" name="my_lead"
|
||||
/>
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned Leads" />
|
||||
</field>
|
||||
<field name="section_id" default="context.get('section_id', False)" widget="selection"
|
||||
<field name="section_id" widget="selection"
|
||||
context="{'invisible_section': False}">
|
||||
<filter icon="terp-crm"
|
||||
context="{'invisible_section': False}"
|
||||
@@ -300,7 +303,7 @@
|
||||
<filter icon="terp-crm"
|
||||
context="{'invisible_section': False}"
|
||||
domain="[]"
|
||||
help="Show Sections"/>
|
||||
help="Show Sales Team"/>
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="14">
|
||||
@@ -314,7 +317,7 @@
|
||||
<filter string="Referrer" icon="terp-crm" domain="[]" context="{'group_by':'referred'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Creation" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -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"/>
|
||||
@@ -85,6 +85,7 @@
|
||||
<field name="res_model">crm.meeting</field>
|
||||
<field name="view_mode">calendar,tree,form,gantt</field>
|
||||
<field name="view_id" ref="crm_case_calendar_view_meet"/>
|
||||
<field name="context">{"search_default_current":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_meetings_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_calendar_meet">
|
||||
@@ -115,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">
|
||||
@@ -144,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">
|
||||
@@ -168,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
-7
@@ -259,17 +259,13 @@
|
||||
<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" string="Confirmed"
|
||||
domain="[('state','=','done')]"
|
||||
help="Confirmed Meetings" />
|
||||
<filter icon="terp-crm" name="current" string="Current"
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
help="Current Meetings"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1" string="Subject"/>
|
||||
<field name="partner_id" select="1" />
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)"
|
||||
select="1" widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
|
||||
@@ -24,6 +24,7 @@ from osv import fields,osv,orm
|
||||
from tools.translate import _
|
||||
import crm
|
||||
import time
|
||||
import mx.DateTime
|
||||
|
||||
AVAILABLE_STATES = [
|
||||
('draft','New'),
|
||||
@@ -38,7 +39,7 @@ class crm_opportunity(osv.osv):
|
||||
|
||||
_name = "crm.opportunity"
|
||||
_description = "Opportunity Cases"
|
||||
_order = "id desc"
|
||||
_order = "priority,id desc"
|
||||
_inherit = 'crm.case'
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
@@ -61,36 +62,52 @@ class crm_opportunity(osv.osv):
|
||||
@param ids: List of Openday’s IDs
|
||||
@return: difference between current date and log date
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
log_obj = self.pool.get('crm.case.log')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
cal_obj = self.pool.get('resource.calendar')
|
||||
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', self._name)])
|
||||
model_id = False
|
||||
if len(model_ids):
|
||||
model_id = model_ids[0]
|
||||
"""
|
||||
cal_obj = self.pool.get('resource.calendar')
|
||||
res_obj = self.pool.get('resource.resource')
|
||||
|
||||
res = {}
|
||||
for opportunity in self.browse(cr, uid, ids , context):
|
||||
for field in fields:
|
||||
res[opportunity.id] = {}
|
||||
duration = 0
|
||||
ans = False
|
||||
if field == 'day_open':
|
||||
if opportunity.date_open:
|
||||
date_create = datetime.strptime(opportunity.create_date, "%Y-%m-%d %H:%M:%S")
|
||||
date_open = datetime.strptime(opportunity.date_open, "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
ans = date_open - date_create
|
||||
duration = float(ans.days) + (float(ans.seconds) / 86400)
|
||||
|
||||
date_until = opportunity.date_open
|
||||
elif field == 'day_close':
|
||||
if opportunity.date_closed:
|
||||
date_create = datetime.strptime(opportunity.create_date, "%Y-%m-%d %H:%M:%S")
|
||||
date_close = datetime.strptime(opportunity.date_closed, "%Y-%m-%d %H:%M:%S")
|
||||
|
||||
date_until = opportunity.date_closed
|
||||
ans = date_close - date_create
|
||||
duration = float(ans.days) + (float(ans.seconds) / 86400)
|
||||
if ans:
|
||||
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) and resource_ids[0] or False
|
||||
|
||||
duration = float(ans.days)
|
||||
if opportunity.section_id.resource_calendar_id:
|
||||
duration = float(ans.days) * 24
|
||||
new_dates = cal_obj.interval_get(cr,
|
||||
uid,
|
||||
opportunity.section_id.resource_calendar_id and opportunity.section_id.resource_calendar_id.id or False,
|
||||
mx.DateTime.strptime(opportunity.create_date, '%Y-%m-%d %H:%M:%S'),
|
||||
duration,
|
||||
resource=resource_id
|
||||
)
|
||||
no_days = []
|
||||
date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
|
||||
for in_time, out_time in new_dates:
|
||||
if in_time.date not in no_days:
|
||||
no_days.append(in_time.date)
|
||||
if out_time > date_until:
|
||||
break
|
||||
duration = len(no_days)
|
||||
res[opportunity.id][field] = abs(int(duration))
|
||||
return res
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
<field name="res_model">crm.opportunity</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_oppor"/>
|
||||
<field name="context">{"search_default_my_oprtnit":1,"search_default_new_oprtnit":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11">
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_opportunity_categ_action"
|
||||
id="menu_crm_case_opportunity-act"
|
||||
parent="crm.menu_crm_case_categ" />
|
||||
id="menu_crm_case_opportunity-act"
|
||||
parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- Opportunity Stages Form View-->
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_opportunity_stage_act"
|
||||
id="menu_crm_opportunity_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
id="menu_crm_opportunity_stage_act"
|
||||
parent="crm.menu_crm_case_stage" />
|
||||
|
||||
<!-- Opportunity Resource Type Form View -->
|
||||
|
||||
@@ -44,9 +44,8 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_opportunity_resource_act"
|
||||
id="menu_crm_opportunity_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
id="menu_crm_opportunity_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
<!-- Opportunities Form View -->
|
||||
|
||||
@@ -61,19 +60,19 @@
|
||||
<label string="Stage:" align="1.0"/>
|
||||
<group colspan="1" col="4">
|
||||
<field name="stage_id" nolabel="1"
|
||||
on_change="onchange_stage_id(stage_id)"
|
||||
widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.opportunity')]" />
|
||||
on_change="onchange_stage_id(stage_id)"
|
||||
widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.opportunity')]" />
|
||||
<button name="stage_previous"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-back" string="" />
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-back" string="" />
|
||||
<button name="stage_next" states="open,pending"
|
||||
type="object" icon="gtk-go-forward" string="" />
|
||||
type="object" icon="gtk-go-forward" string="" />
|
||||
</group>
|
||||
<field name="user_id"/>
|
||||
|
||||
<button name="action_makeMeeting" type="object"
|
||||
string="Schedule Meeting" icon="gtk-redo" />
|
||||
string="Schedule Meeting" icon="gtk-redo" />
|
||||
|
||||
<field name="planned_revenue"/>
|
||||
<field name="probability"/>
|
||||
@@ -83,52 +82,50 @@
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Opportunity">
|
||||
<group col="3" colspan="2">
|
||||
<separator colspan="3" string="Contacts"/>
|
||||
<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" />
|
||||
string="Contact"
|
||||
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"
|
||||
string="Category" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.opportunity')]" />
|
||||
string="Category" widget="selection"
|
||||
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"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_close" string="Mark Won"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_cancel" string="Mark Lost"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_reset" string="Reset to New"
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -145,7 +142,6 @@
|
||||
<field name="active"/>
|
||||
<field name="day_open"/>
|
||||
<field name="day_close"/>
|
||||
|
||||
</group>
|
||||
<separator colspan="4" string="References"/>
|
||||
<field name="ref"/>
|
||||
@@ -177,10 +173,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.opportunity'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.opportunity'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -189,9 +185,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.opportunity'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.opportunity'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -213,28 +209,29 @@
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<button name="stage_previous" string="Previous"
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<field name="planned_revenue" sum="Total of Planned Revenue"/>
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<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"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_close" string="Won"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="open,draft" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
states="open,draft" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_cancel" string="Lost"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -262,61 +259,63 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Opportunities">
|
||||
<filter icon="terp-project"
|
||||
string="Current"
|
||||
domain="[('state','in',('draft','open'))]"/>
|
||||
<filter icon="terp-project"
|
||||
string="Open"
|
||||
domain="[('state','=','open')]"/>
|
||||
<filter icon="terp-project"
|
||||
string="Pending"
|
||||
domain="[('state','=','pending')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-home" string="Today"
|
||||
domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), ('create_date','>=', time.strftime('%%Y-%%m-%%d 23:59:59'))]"
|
||||
help="Todays' Opportunities" />
|
||||
|
||||
<filter icon="gtk-media-rewind" string="7 Days"
|
||||
help="Opportunities during last 7 days"
|
||||
domain="[('create_date','<', time.strftime('%%Y-%%m-%%d')),\
|
||||
('create_date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
('create_date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" string="Opportunity"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-partner"
|
||||
<filter icon="terp-partner" name="my_oprtnit"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Opportunities" default="1"
|
||||
/>
|
||||
help="My Opportunities" />
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned Opportunities" />
|
||||
</field>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)" select="1"
|
||||
widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<field name="state">
|
||||
<filter icon="gtk-media-rewind"
|
||||
help="New and open opportunities"
|
||||
default="1"
|
||||
domain="[('state','in',('draft','open'))]" />
|
||||
select="1"
|
||||
widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4">
|
||||
<group expand="1" string="Group By..." colspan="16">
|
||||
<filter string="Stage" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'stage_id'}" />
|
||||
|
||||
context="{'group_by':'stage_id'}" />
|
||||
<filter string="Priority" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'priority'}" />
|
||||
<filter string="Category" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
|
||||
<filter string="Campaign" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'type_id'}" />
|
||||
|
||||
domain="[]" context="{'group_by':'type_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Partner" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'partner_id'}" />
|
||||
|
||||
context="{'group_by':'partner_id'}" />
|
||||
<filter string="Salesman" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Creation" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
<filter string="Exp.Closing" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'date_deadline'}" />
|
||||
domain="[]" context="{'group_by':'date_deadline'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -108,6 +108,14 @@ class crm_phonecall(osv.osv):
|
||||
|
||||
return value
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
res = super(crm_phonecall, self).onchange_partner_address_id(cr, uid, ids, add, email)
|
||||
res.setdefault('value', {})
|
||||
if add:
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
res['value']['partner_phone'] = address.mobile
|
||||
res['value']['partner_mobile'] = address.phone
|
||||
return res
|
||||
crm_phonecall()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_phone_tree_view"/>
|
||||
<field name="context">{"set_editable":True,"default_state":'open',"search_default_my_calls":1,"search_default_state":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
</record>
|
||||
|
||||
@@ -54,7 +55,7 @@
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_phone_tree_view"/>
|
||||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone1'))+')]'"/>
|
||||
<field name="context">{'set_editable':True,'default_state':'open'}</field>
|
||||
<field name="context">{"default_state":'open',"search_default_my_calls":1,"search_default_state":1,"search_default_section_id":section_id}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_phonecall_categ_action"
|
||||
id="menu_crm_case_phonecall-act" parent="crm.menu_crm_case_categ" />
|
||||
id="menu_crm_case_phonecall-act" parent="crm.menu_crm_case_categ" />
|
||||
|
||||
<!-- ResourceType Form View -->
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
<field name="res_model">crm.case.resource.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_resource_type_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.phonecall')]</field>
|
||||
<field name="context">{'object_id':'crm.phonecall'}</field>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.phonecall')]</field>
|
||||
<field name="context">{'object_id':'crm.phonecall'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_phonecall_resource_act"
|
||||
id="menu_crm_phonecall_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
id="menu_crm_phonecall_resource_act"
|
||||
parent="crm.menu_crm_case_resource_type" />
|
||||
|
||||
|
||||
<!-- PhoneCalls Tree View -->
|
||||
@@ -87,9 +87,9 @@
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="gtk-redo"
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="gtk-redo"
|
||||
name="%(phonecall_to_phonecall_act)d"
|
||||
type="action" />
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<group col="3" colspan="2">
|
||||
<separator colspan="3" string="Contacts" />
|
||||
<field name="partner_id"
|
||||
on_change="onchange_partner_id(partner_id, email_from)" />
|
||||
on_change="onchange_partner_id(partner_id, email_from)" />
|
||||
<button string="Create a Partner"
|
||||
icon="terp-crm"
|
||||
name="%(action_crm_phonecall2partner)d"
|
||||
@@ -105,7 +105,7 @@
|
||||
attrs="{'invisible':[('partner_id','!=',False)]}" />
|
||||
<newline/>
|
||||
<field name="partner_address_id" string="Contact"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<newline/>
|
||||
<field name="partner_mobile" />
|
||||
</group>
|
||||
@@ -120,19 +120,19 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Not Held"
|
||||
states="open" type="object" icon="gtk-undo" />
|
||||
states="open" type="object" icon="gtk-undo" />
|
||||
<button name="case_close" string="Held"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -176,36 +176,30 @@
|
||||
<field name="name" string="Call Summary"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-partner" name="my_calls"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Phonecalls"/>
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',uid)]" help="My Phonecalls"
|
||||
default="1" />
|
||||
<filter icon="terp-partner"
|
||||
domain="[('user_id','=',False)]"
|
||||
help="Unassigned Phonecalls" />
|
||||
</field>
|
||||
<field name="state">
|
||||
<filter icon="gtk-index"
|
||||
domain="[('state','in',('open','draft' ))]"
|
||||
help="Current" default="1" />
|
||||
domain="[('user_id','=',False)]"
|
||||
help="Unassigned Phonecalls" />
|
||||
</field>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)" select="1"
|
||||
widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
select="1" widget="selection" string="Section">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4">
|
||||
<filter string="Partner" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'partner_id'}" />
|
||||
context="{'group_by':'partner_id'}" />
|
||||
<filter string="Responsible" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Creation" icon="terp-project"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
<filter string="Date" icon="terp-project" domain="[]"
|
||||
context="{'group_by':'date'}" />
|
||||
context="{'group_by':'date'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
help="Cases by Section and Type for this month" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)"
|
||||
select="1" widget="selection" />
|
||||
<field name="category2_id" select="1"/>
|
||||
<field name="nbr" select="1"/>
|
||||
|
||||
+99
-101
@@ -20,7 +20,7 @@
|
||||
<field name="parent_id" select="2" widget="selection"/>
|
||||
<field name="allow_unlink" select="2"/>
|
||||
<field name="reply_to" select="2"/>
|
||||
<field name="resource_calendar_id"/>
|
||||
<field name="resource_calendar_id" select="2"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -142,8 +142,8 @@
|
||||
<menuitem id="menu_crm_case_categ" name="Categories" parent="crm.menu_crm_configuration"/>
|
||||
|
||||
<menuitem action="crm_case_section_act"
|
||||
id="menu_crm_case_section_act"
|
||||
parent="crm.menu_crm_configuration" />
|
||||
id="menu_crm_case_section_act"
|
||||
parent="crm.menu_crm_configuration" />
|
||||
|
||||
|
||||
<!-- Resource Type of case Tree View -->
|
||||
@@ -185,7 +185,7 @@
|
||||
<field name="view_id" ref="crm_case_resource_type_tree"/>
|
||||
</record>
|
||||
<menuitem id="menu_crm_case_resource_type" name="Resource Type"
|
||||
parent="crm.menu_crm_configuration" />
|
||||
parent="crm.menu_crm_configuration" />
|
||||
|
||||
<record id="crm_case_section_act_tree" model="ir.actions.act_window">
|
||||
<field name="name">Cases by section</field>
|
||||
@@ -242,11 +242,11 @@
|
||||
<field name="type">calendar</field>
|
||||
<field name="arch" type="xml">
|
||||
<calendar color="user_id" date_start="create_date"
|
||||
date_stop="date_deadline" day_length="12"
|
||||
string="Cases">
|
||||
<field name="name" />
|
||||
<field name="partner_id" />
|
||||
<field name="state" />
|
||||
date_stop="date_deadline" day_length="12"
|
||||
string="Cases">
|
||||
<field name="name" />
|
||||
<field name="partner_id" />
|
||||
<field name="state" />
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
@@ -268,22 +268,22 @@
|
||||
<field name="user_id"/>
|
||||
<field name="state"/>
|
||||
<button name="case_close"
|
||||
states="open,draft,pending" string="Close"
|
||||
type="object" icon="gtk-close" />
|
||||
states="open,draft,pending" string="Close"
|
||||
type="object" icon="gtk-close" />
|
||||
<button name="case_open" states="draft,pending"
|
||||
string="Open" type="object" icon="gtk-go-forward" />
|
||||
string="Open" type="object" icon="gtk-go-forward" />
|
||||
<button name="case_cancel"
|
||||
states="draft,open,pending" string="Cancel"
|
||||
type="object" icon="gtk-cancel" />
|
||||
states="draft,open,pending" string="Cancel"
|
||||
type="object" icon="gtk-cancel" />
|
||||
<button name="case_pending" states="draft,open"
|
||||
string="Pending" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
string="Pending" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate"
|
||||
states="open,draft,pending" string="Escalate"
|
||||
type="object" icon="gtk-go-up" />
|
||||
states="open,draft,pending" string="Escalate"
|
||||
type="object" icon="gtk-go-up" />
|
||||
<button name="case_reset" states="done,cancel"
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -306,24 +306,24 @@
|
||||
<page string="General">
|
||||
<group col="8" colspan="4">
|
||||
<field colspan="4" name="partner_id"
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
select="1" />
|
||||
on_change="onchange_partner_id(partner_id, email_from)"
|
||||
select="1" />
|
||||
<field colspan="3"
|
||||
name="partner_address_id"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
select="2" />
|
||||
name="partner_address_id"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)"
|
||||
select="2" />
|
||||
<newline />
|
||||
<field colspan="3" name="email_from"
|
||||
select="2" />
|
||||
select="2" />
|
||||
<button name="remind_partner"
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<field name="user_id" select="1" />
|
||||
<button name="remind_user"
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
states="open,pending"
|
||||
string="Send Reminder" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
</group>
|
||||
<separator colspan="4" string="Description"/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
@@ -331,27 +331,27 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="case_close"
|
||||
states="open,draft,pending"
|
||||
string="Close" type="object"
|
||||
icon="gtk-close" />
|
||||
states="open,draft,pending"
|
||||
string="Close" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_open"
|
||||
states="draft,pending" string="Open"
|
||||
type="object" icon="gtk-go-forward" />
|
||||
states="draft,pending" string="Open"
|
||||
type="object" icon="gtk-go-forward" />
|
||||
<button name="case_cancel"
|
||||
states="draft,open,pending"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="draft,open,pending"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_pending"
|
||||
states="draft,open" string="Pending"
|
||||
type="object" icon="gtk-media-pause" />
|
||||
states="draft,open" string="Pending"
|
||||
type="object" icon="gtk-media-pause" />
|
||||
<button name="case_escalate"
|
||||
states="open,draft,pending"
|
||||
string="Escalate" type="object"
|
||||
icon="gtk-go-up" />
|
||||
states="open,draft,pending"
|
||||
string="Escalate" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_reset"
|
||||
states="done,cancel"
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
states="done,cancel"
|
||||
string="Reset to Draft" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
@@ -386,10 +386,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.case'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.case'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -398,9 +398,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.case'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.case'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -415,28 +415,27 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Case">
|
||||
<group col='6' colspan='4'>
|
||||
<filter icon="terp-partner" string="My Cases"
|
||||
domain="[('user_id','=',uid)]" separator="1"
|
||||
default="1" help="Cases Related to Current User" />
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-new"
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
help="Current Cases" />
|
||||
<filter icon="gtk-yes"
|
||||
domain="[('state','=','open')]" help="Open Cases" />
|
||||
<filter icon="gtk-media-pause"
|
||||
domain="[('state','=','pending')]"
|
||||
help="Pending Cases" />
|
||||
</field>
|
||||
<separator orientation="vertical" />
|
||||
<field name="name" select='1' />
|
||||
<field name="user_id" select="1"
|
||||
widget="selection" />
|
||||
</group>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)" select="1"
|
||||
widget="selection" string="Section" />
|
||||
<group col='6' colspan='4'>
|
||||
<filter icon="terp-partner" string="My Cases"
|
||||
domain="[('user_id','=',uid)]" separator="1"
|
||||
help="Cases Related to Current User" />
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-new"
|
||||
domain="[('state','in',('draft', 'open'))]"
|
||||
help="Current Cases" />
|
||||
<filter icon="gtk-yes"
|
||||
domain="[('state','=','open')]" help="Open Cases" />
|
||||
<filter icon="gtk-media-pause"
|
||||
domain="[('state','=','pending')]"
|
||||
help="Pending Cases" />
|
||||
</field>
|
||||
<separator orientation="vertical" />
|
||||
<field name="name" select='1' />
|
||||
<field name="user_id" select="1"
|
||||
widget="selection" />
|
||||
</group>
|
||||
<field name="section_id"
|
||||
select="1" widget="selection" string="Section"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -454,7 +453,7 @@
|
||||
<field name="res_model">crm.case</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">
|
||||
[('state','<>','done'),('state','<>','cancel'),('state','<>','pending')]
|
||||
[('state','<>','done'),('state','<>','cancel'),('state','<>','pending')]
|
||||
</field>
|
||||
<field name="search_view_id" ref="view_crm_case_filter"/>
|
||||
</record>
|
||||
@@ -504,15 +503,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Histories">
|
||||
<filter icon="terp-crm" string="My Histories"
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Histories" />
|
||||
domain="[('user_id','=',uid)]"
|
||||
help="My Histories" />
|
||||
<separator orientation="vertical"/>
|
||||
<group col="6" colspan="2">
|
||||
<field name="date" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)"
|
||||
select="1" widget="selection" string="Section" />
|
||||
select="1" widget="selection"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -574,11 +572,11 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Partner Segmentation">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="categ_id" select="2"/>
|
||||
<field name="exclusif"/>
|
||||
</group>
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="categ_id" select="2"/>
|
||||
<field name="exclusif"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Sales Purchase">
|
||||
<field name="sales_purchase_active"/>
|
||||
@@ -591,21 +589,21 @@
|
||||
<field colspan="4" name="segmentation_line" widget="one2many_list" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Description">
|
||||
<field colspan="4" name="description" select="2" nolabel="1"/>
|
||||
</page>
|
||||
<field colspan="4" name="description" select="2" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<button name="process_start"
|
||||
states="not running"
|
||||
string="Compute Segmentation" type="object"
|
||||
icon="gtk-execute" />
|
||||
states="not running"
|
||||
string="Compute Segmentation" type="object"
|
||||
icon="gtk-execute" />
|
||||
<button name="process_stop" states="running"
|
||||
string="Stop Process" type="object"
|
||||
icon="gtk-cancel" />
|
||||
string="Stop Process" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="process_continue" states="running"
|
||||
string="Continue Process" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
string="Continue Process" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -640,8 +638,8 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<menuitem action="crm_segmentation_tree-act"
|
||||
id="menu_crm_segmentation-act"
|
||||
parent="crm.menu_crm_configuration" />
|
||||
id="menu_crm_segmentation-act"
|
||||
parent="crm.menu_crm_configuration" />
|
||||
|
||||
<record model="ir.ui.view" id="view_users_form_simple_modif_inherited1">
|
||||
<field name="name">view.users.form.crm.modif.inherited1</field>
|
||||
@@ -651,8 +649,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<page string="Current Activity" position="inside">
|
||||
<field name="context_section_id" completion="1"
|
||||
widget="selection"
|
||||
context="{'user_prefence':True}" />
|
||||
widget="selection"
|
||||
context="{'user_prefence':True}" />
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
@@ -672,7 +670,7 @@
|
||||
|
||||
<!-- Inherit View From Partner -->
|
||||
|
||||
<record id="view_partners_form_crm1" model="ir.ui.view">
|
||||
<record id="view_partners_form_crm1" model="ir.ui.view">
|
||||
<field name="name">view.res.partner.form.crm.inherited1</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="type">form</field>
|
||||
|
||||
@@ -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-05 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
|
||||
+26
-14
@@ -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
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_claim_tree"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_claim_filter"/>
|
||||
|
||||
</record>
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_fundraising_tree"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_fundraising_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -68,11 +68,11 @@
|
||||
<group col="16" colspan="9">
|
||||
<filter string="This Year" icon="terp-hr"
|
||||
domain="[('name','=',time.localtime()[0])]"
|
||||
default="1" />
|
||||
name="this_year" />
|
||||
|
||||
<filter string="This Month" icon="terp-hr"
|
||||
domain="[('month','=',time.strftime('%%m'))]"
|
||||
default="1" />
|
||||
name="this_month" />
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Current" icon="terp-hr"
|
||||
@@ -89,7 +89,6 @@
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)"
|
||||
widget="selection"
|
||||
context="{'invisible_section': False}">
|
||||
|
||||
@@ -138,8 +137,7 @@
|
||||
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter string="User" icon="terp-sale"
|
||||
domain="[]" context="{'group_by':'user_id'}"
|
||||
default="1" />
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
|
||||
<filter string="Company" icon="terp-sale"
|
||||
domain="[]"
|
||||
@@ -177,6 +175,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_helpdesk_tree"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_helpdesk_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
<field name="res_model">crm.lead.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_lead_filter"/>
|
||||
|
||||
</record>
|
||||
|
||||
@@ -24,12 +24,10 @@ import tools
|
||||
|
||||
class crm_opportunity_report(osv.osv):
|
||||
""" CRM Opportunity Report """
|
||||
|
||||
_name = "crm.opportunity.report"
|
||||
_auto = False
|
||||
_inherit = "crm.case.report"
|
||||
_description = "CRM Opportunity Report"
|
||||
|
||||
_columns = {
|
||||
'probability': fields.float('Avg. Probability', readonly=True),
|
||||
'amount_revenue': fields.float('Est.Revenue', readonly=True),
|
||||
@@ -47,7 +45,6 @@ class crm_opportunity_report(osv.osv):
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
|
||||
""" Display Est.Revenue , Average Probability ,Est.Revenue Probability
|
||||
@param cr: the current row, from the database cursor
|
||||
"""
|
||||
@@ -88,5 +85,3 @@ class crm_opportunity_report(osv.osv):
|
||||
)""")
|
||||
|
||||
crm_opportunity_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
<field name="res_model">crm.opportunity.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_opportunity_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_opportunity_tree">
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_phonecall_tree"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_report_crm_phonecall_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -65,11 +65,11 @@
|
||||
<group col="16" colspan="8">
|
||||
<filter string="This Year" icon="terp-hr"
|
||||
domain="[('name','=',time.localtime()[0])]"
|
||||
default="1" />
|
||||
name="this_year" />
|
||||
|
||||
<filter string="This Month" icon="terp-hr"
|
||||
domain="[('month','=',time.strftime('%%m'))]"
|
||||
default="1" />
|
||||
name="this_month" />
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Current" icon="terp-hr"
|
||||
@@ -83,7 +83,6 @@
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<field name="section_id"
|
||||
default="context.get('section_id', False)"
|
||||
widget="selection"
|
||||
context="{'invisible_section': False}">
|
||||
|
||||
@@ -108,7 +107,7 @@
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
<filter string="User" icon="terp-sale"
|
||||
domain="[]" context="{'group_by':'user_id'}"
|
||||
default="1" />
|
||||
name="by_user" />
|
||||
|
||||
<filter string="Company" icon="terp-sale"
|
||||
domain="[]"
|
||||
@@ -146,6 +145,7 @@
|
||||
<field name="res_model">crm.case.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_this_year":1,"search_default_this_month":1}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -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,53 +1,53 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!-- Lead to partner confirmation form -->
|
||||
<!-- Lead to partner confirmation form -->
|
||||
|
||||
<record id="view_crm_lead2partner_create" model="ir.ui.view">
|
||||
<field name="name">crm.lead2partner.view.create</field>
|
||||
<field name="model">crm.lead2partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create a Partner?">
|
||||
<label string="Are you sure you want to create a partner based on this lead ?" colspan="4"/>
|
||||
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
|
||||
<separator string="" colspan="4" />
|
||||
<group col="4" colspan="4">
|
||||
<button special="cancel" string="_Cancel" icon="gtk-cancel"/>
|
||||
<button name="open_create_partner" string="Create _Partner" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_crm_lead2partner_create" model="ir.ui.view">
|
||||
<field name="name">crm.lead2partner.view.create</field>
|
||||
<field name="model">crm.lead2partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create a Partner?">
|
||||
<label string="Are you sure you want to create a partner based on this lead ?" colspan="4"/>
|
||||
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
|
||||
<separator string="" colspan="4" />
|
||||
<group col="4" colspan="4">
|
||||
<button special="cancel" string="_Cancel" icon="gtk-cancel"/>
|
||||
<button name="open_create_partner" string="Create _Partner" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Lead to Partner form view -->
|
||||
<!-- Lead to Partner form view -->
|
||||
|
||||
<record id="view_crm_lead2partner" model="ir.ui.view">
|
||||
<field name="name">crm.lead2partner.view</field>
|
||||
<field name="model">crm.lead2partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create a Partner">
|
||||
<field name="action"/>
|
||||
<group attrs="{'invisible':[('action','!=','exist')]}">
|
||||
<field name="partner_id" attrs="{'required': [('action', '=', 'exist')]}"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group col="4" colspan="4">
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="make_partner" string="Continue" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_crm_lead2partner" model="ir.ui.view">
|
||||
<field name="name">crm.lead2partner.view</field>
|
||||
<field name="model">crm.lead2partner</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create a Partner">
|
||||
<field name="action"/>
|
||||
<group attrs="{'invisible':[('action','!=','exist')]}">
|
||||
<field name="partner_id" attrs="{'required': [('action', '=', 'exist')]}"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group col="4" colspan="4">
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="make_partner" string="Continue" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Lead to Partner wizard -->
|
||||
<!-- Lead to Partner wizard -->
|
||||
|
||||
<act_window id="action_crm_lead2partner"
|
||||
key2="client_action_multi" name="Create a Partner"
|
||||
res_model="crm.lead2partner" src_model="crm.lead"
|
||||
view_id="view_crm_lead2partner_create"
|
||||
view_mode="form" target="new" view_type="form" />
|
||||
<act_window id="action_crm_lead2partner"
|
||||
key2="client_action_multi" name="Create a Partner"
|
||||
res_model="crm.lead2partner" src_model="crm.lead"
|
||||
view_id="view_crm_lead2partner_create"
|
||||
view_mode="form" target="new" view_type="form" />
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -29,19 +29,22 @@ from crm import crm
|
||||
class crm_send_new_email(osv.osv_memory):
|
||||
""" Sends new email for the case"""
|
||||
_name = "crm.send.mail"
|
||||
_description = "Case Send new email"
|
||||
_description = "Send new email"
|
||||
|
||||
_columns = {
|
||||
'email_to' : fields.char('To', size=64, required=True),
|
||||
'email_from' : fields.char('From', size=64, required=True),
|
||||
'email_cc' : fields.char('CC', size=128),
|
||||
'subject': fields.char('Subject', size=128, required=True),
|
||||
'text': fields.text('Message', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='State'),
|
||||
'doc1': fields.binary("Attachment1"),
|
||||
'doc2': fields.binary("Attachment2"),
|
||||
'doc3': fields.binary("Attachment3"),
|
||||
}
|
||||
'email_to' : fields.char('To', size=64, required=True),
|
||||
'email_from' : fields.char('From', size=64, required=True),
|
||||
'email_cc' : fields.char('CC', size=128),
|
||||
'subject': fields.char('Subject', size=128, required=True),
|
||||
'text': fields.text('Message', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
'doc1': fields.binary("Attachment1"),
|
||||
'doc1_fname': fields.char("File Name", size=64),
|
||||
'doc2': fields.binary("Attachment2"),
|
||||
'doc2_fname': fields.char("File Name", size=64),
|
||||
'doc3': fields.binary("Attachment3"),
|
||||
'doc3_fname': fields.char("File Name", size=64),
|
||||
}
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
""" Closes Phonecall to Opportunity form
|
||||
@@ -51,9 +54,9 @@ class crm_send_new_email(osv.osv_memory):
|
||||
def action_send(self, cr, uid, ids, context=None):
|
||||
""" This sends an email to ALL the addresses of the selected partners.
|
||||
"""
|
||||
|
||||
|
||||
hist_obj = self.pool.get('crm.case.history')
|
||||
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
@@ -79,12 +82,10 @@ class crm_send_new_email(osv.osv_memory):
|
||||
emails = filter(None, emails)
|
||||
body = data['text']
|
||||
|
||||
if case.user_id.signature:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
body = case_pool.format_body(body)
|
||||
email_from = data.get('email_from', False)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from)
|
||||
|
||||
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
@@ -94,13 +95,13 @@ class crm_send_new_email(osv.osv_memory):
|
||||
reply_to=case.section_id.reply_to,
|
||||
openobject_id=str(case.id),
|
||||
)
|
||||
if flag:
|
||||
if flag:
|
||||
if data['state'] == 'unchanged':
|
||||
pass
|
||||
elif data['state'] == 'done':
|
||||
case_pool.case_close(cr, uid, [case.id])
|
||||
elif data['state'] == 'draft':
|
||||
case_pool.case_reset(cr, uid, [case.id])
|
||||
case_pool.case_reset(cr, uid, [case.id])
|
||||
elif data['state'] in ['cancel', 'open', 'pending']:
|
||||
act = 'case_' + data['state']
|
||||
getattr(case_pool, act)(cr, uid, [case.id])
|
||||
@@ -141,11 +142,11 @@ class crm_send_new_email(osv.osv_memory):
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)})
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
if 'email_cc' in fields:
|
||||
res.update({'email_cc': case.email_cc or ''})
|
||||
if 'text' in fields:
|
||||
res.update({'text': case.description or ''})
|
||||
res.update({'text': '\n\n'+(case.user_id.signature or '')})
|
||||
if 'state' in fields:
|
||||
res.update({'state': 'pending'})
|
||||
return res
|
||||
@@ -168,8 +169,8 @@ class crm_send_new_email(osv.osv_memory):
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from',False)})
|
||||
if 'text' in fields:
|
||||
header = '-------- Original Message --------'
|
||||
sender = 'From: %s' %(hist.email_from or '')
|
||||
header = '-------- Original Message --------'
|
||||
sender = 'From: %s' %(hist.email_from or '')
|
||||
to = 'To: %s' % (hist.email_to or '')
|
||||
sentdate = 'Date: %s' % (hist.date)
|
||||
desc = '\n%s'%(hist.description)
|
||||
@@ -177,7 +178,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
original = '\n'.join(original)
|
||||
res['text']=original
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
if 'state' in fields:
|
||||
res['state']='pending'
|
||||
return res
|
||||
@@ -214,4 +215,3 @@ class crm_send_new_email(osv.osv_memory):
|
||||
|
||||
crm_send_new_email()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -3,27 +3,33 @@
|
||||
<data>
|
||||
|
||||
<!-- Send New Mail view -->
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="crm_send_new_mail_view">
|
||||
<field name="name">crm.new.send.mail.form</field>
|
||||
<field name="model">crm.send.mail</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send New Mail" col="2">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<form string="Send New Mail" col="4">
|
||||
<field name="email_to" />
|
||||
<field name="email_cc"/>
|
||||
<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" />
|
||||
<field name="doc2_fname"/>
|
||||
<field name="doc3" filename="doc3_fname" />
|
||||
<field name="doc3_fname"/>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4" string="Set case state to" />
|
||||
<field name="state" />
|
||||
<separator string=" " colspan="4"/>
|
||||
<newline/>
|
||||
<field name="state" />
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<label string=" " />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send" icon="gtk-go-forward" />
|
||||
</group>
|
||||
@@ -41,10 +47,10 @@
|
||||
<field name="view_id" ref="crm_send_new_mail_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Reply to Mail view -->
|
||||
|
||||
|
||||
|
||||
<!-- Reply to Mail view -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_reply_mail_view">
|
||||
<field name="name">crm.mail.reply.form</field>
|
||||
<field name="model">crm.send.mail</field>
|
||||
@@ -52,17 +58,17 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Reply to last Mail" col="2">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
<separator string=" " colspan="4"/>
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<label string=" " />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send Reply" icon="gtk-go-forward" />
|
||||
</group>
|
||||
@@ -80,6 +86,6 @@
|
||||
<field name="view_id" ref="crm_reply_mail_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
||||
@@ -27,6 +27,15 @@ class event_registration_list(osv.osv_memory):
|
||||
_description = "List Event Registrations"
|
||||
|
||||
def open_registration(self, cr, uid, ids, context={}):
|
||||
if not context.get('active_id', None):
|
||||
return {
|
||||
'name': 'Event Registrations',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'event.registration',
|
||||
'type': 'ir.actions.act_window'
|
||||
}
|
||||
|
||||
cr.execute('SELECT section_id FROM event_event WHERE id = %s', (context['active_id'],))
|
||||
res = cr.fetchone()
|
||||
return {
|
||||
@@ -40,4 +49,4 @@ class event_registration_list(osv.osv_memory):
|
||||
|
||||
event_registration_list()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
+2
-2
@@ -101,8 +101,8 @@ class hr_employee(osv.osv):
|
||||
'department_id':fields.many2one('hr.department','Department'),
|
||||
'address_id': fields.many2one('res.partner.address', 'Working Address'),
|
||||
'address_home_id': fields.many2one('res.partner.address', 'Home Address'),
|
||||
'work_phone': fields.related('address_id', 'phone', type='char', string='Work Phone'),
|
||||
'work_email': fields.related('address_id', 'email', type='char', size=240, string='Work E-mail'),
|
||||
'work_phone': fields.related('address_id', 'phone', type='char', string='Work Phone', readonly=True),
|
||||
'work_email': fields.related('address_id', 'email', type='char', size=240, string='Work E-mail', readonly=True),
|
||||
'work_location': fields.char('Office Location', size=32),
|
||||
|
||||
'notes': fields.text('Notes'),
|
||||
|
||||
+25
-24
@@ -38,20 +38,6 @@
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Personal Information">
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Social IDs"/>
|
||||
<field name="ssnid"/>
|
||||
<field name="sinid" groups="base.group_extended"/>
|
||||
<field name="otherid"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Status" colspan="2"/>
|
||||
<field name="gender"/>
|
||||
<field name="marital"/>
|
||||
<field name="country_id"/>
|
||||
<field name="birthday"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Contact Information" colspan="2"/>
|
||||
<field name="address_home_id" colspan="2"/>
|
||||
@@ -62,6 +48,13 @@
|
||||
<field name="work_location"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Social IDs"/>
|
||||
<field name="ssnid"/>
|
||||
<field name="sinid" groups="base.group_extended"/>
|
||||
<field name="otherid"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Position" colspan="2"/>
|
||||
<field name="job_id" widget="selection"/>
|
||||
@@ -70,6 +63,14 @@
|
||||
<field name="parent_id" select="1"/>
|
||||
<field name="coach_id" select="1"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Status" colspan="2"/>
|
||||
<field name="gender"/>
|
||||
<field name="marital"/>
|
||||
<field name="country_id"/>
|
||||
<field name="birthday"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field colspan="4" nolabel="1" name="notes"/>
|
||||
@@ -87,10 +88,10 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Employees">
|
||||
<field name="name"/>
|
||||
<field name="job_id"/>
|
||||
<field name="work_phone"/>
|
||||
<field name="work_email"/>
|
||||
<field name="department_id"/>
|
||||
<field name="job_id"/>
|
||||
<field name="parent_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -101,14 +102,12 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Employees">
|
||||
<group col='6' colspan='2'>
|
||||
<field name="name"/>
|
||||
<field name="job_id" widget="selection"/>
|
||||
<field name="department_id" widget="selection"/>
|
||||
<field name="parent_id">
|
||||
<filter icon="terp-partner" domain="[('parent_id','child_of',uid),('id', '!=', uid)]" help="Employees under me"/>
|
||||
</field>
|
||||
</group>
|
||||
<filter icon="terp-partner" domain="[('parent_id','child_of',uid),('id', '!=', uid)]" string ="My Employees"/>
|
||||
<separator orientation="vertical" />
|
||||
<field name="name"/>
|
||||
<field name="department_id" widget="selection"/>
|
||||
<field name="job_id" widget="selection"/>
|
||||
<field name="parent_id" widget="selection" />
|
||||
<newline />
|
||||
|
||||
<group expand="1" string="Group By..." colspan="11" col="11">
|
||||
@@ -154,6 +153,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[]</field>
|
||||
<field name="view_id" ref="view_employee_tree"/>
|
||||
<field name="search_view_id" ref="view_employee_filter"/>
|
||||
</record>
|
||||
<!--<menuitem
|
||||
@@ -208,6 +208,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Employees">
|
||||
<field name="name"/>
|
||||
<field name="ssnid"/>
|
||||
<field name="user_id"/>
|
||||
<field name="address_id"/>
|
||||
|
||||
@@ -331,7 +332,7 @@
|
||||
<field name="requirements" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Employee">
|
||||
<field name="employee_ids" colspan='4' nolabel="1" mode="tree,form"/>
|
||||
<field name="employee_ids" colspan='4' nolabel="1" widget="many2many"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="state"/>
|
||||
|
||||
@@ -46,11 +46,19 @@ def _employee_get(obj,cr,uid,context={}):
|
||||
class hr_attendance(osv.osv):
|
||||
_name = "hr.attendance"
|
||||
_description = "Attendance"
|
||||
|
||||
def _day_compute(self, cr, uid, ids, fieldnames, args, context=None):
|
||||
res = dict.fromkeys(ids, '')
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
res[obj.id] = time.strftime('%Y-%m-%d', time.strptime(obj.name, '%Y-%m-%d %H:%M:%S'))
|
||||
|
||||
return res
|
||||
_columns = {
|
||||
'name' : fields.datetime('Date', required=True),
|
||||
'action' : fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'),('action','Action')], 'Action', required=True),
|
||||
'action_desc' : fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
|
||||
'employee_id' : fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
|
||||
'day' : fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
|
||||
}
|
||||
_defaults = {
|
||||
'name' : lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Employee attendance">
|
||||
<field name="employee_id" select="1"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="action" select="1"/>
|
||||
<field name="action_desc" select="1"/>
|
||||
</form>
|
||||
@@ -48,9 +48,17 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Hr Attendance Search">
|
||||
<filter icon="terp-sale" string="My Attendances" domain="[('employee_id.user_id.id', '=', uid)]" />
|
||||
<filter icon="terp-sale" string="Today" domain="[('name::date','=',current_date)]" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id" select="1" />
|
||||
<field name="name" select="1" />
|
||||
<field name="action" select="1" />
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="11" col="11">
|
||||
<filter string="Employee" icon="terp-sale" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Day" icon="terp-sale" domain="[]" context="{'group_by':'day'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -139,8 +139,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contract Type">
|
||||
<field colspan="4" name="name"/>
|
||||
<field colspan="4" name="description"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -220,6 +219,14 @@
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_hr_contract_type" model="ir.actions.act_window">
|
||||
<field name="name">Contract Types</field>
|
||||
<field name="res_model">hr.contract.type</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<menuitem action="action_hr_contract_type" id="hr_menu_contract_type" parent="next_id_56"/>
|
||||
|
||||
<menuitem id="hr_menu_contract_main" parent="hr.menu_hr_root" name="Contracts" sequence="3"/>
|
||||
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr_menu_contract_main" name="Contracts"/>
|
||||
</data>
|
||||
|
||||
@@ -183,79 +183,48 @@ class hr_evaluation(osv.osv):
|
||||
return {'value': {'plan_id':evaluation_plan_id}}
|
||||
|
||||
def button_plan_in_progress(self,cr, uid, ids, context={}):
|
||||
user_obj = self.pool.get('res.users')
|
||||
employee_obj = self.pool.get('hr.employee')
|
||||
hr_eval_inter_obj = self.pool.get('hr.evaluation.interview')
|
||||
survey_request_obj = self.pool.get('survey.request')
|
||||
hr_eval_plan_obj = self.pool.get('hr_evaluation.plan.phase')
|
||||
curr_employee=self.browse(cr,uid, ids, context=context)[0].employee_id
|
||||
child_employees=employee_obj.browse(cr,uid, employee_obj.search(cr,uid,[('parent_id','=',curr_employee.id)],context=context))
|
||||
manager_employee=curr_employee.parent_id
|
||||
for evaluation in self.browse(cr,uid,ids):
|
||||
if evaluation and evaluation.plan_id:
|
||||
apprai_id = []
|
||||
for phase in evaluation.plan_id.phase_ids:
|
||||
if phase.action == "bottom-up":
|
||||
for child in child_employees:
|
||||
user = False
|
||||
if child.user_id:
|
||||
user = child.user_id.id
|
||||
id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id ,'user_id' : user,'survey_id' : phase.survey_id.id, 'user_to_review_id' : child.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
|
||||
if not phase.wait:
|
||||
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
|
||||
if phase.mail_feature:
|
||||
src = tools.config.options['email_from']
|
||||
user_obj_id = user_obj.browse(cr,uid,uid)
|
||||
val = {
|
||||
'employee_name':child.name,
|
||||
'user_signature':curr_employee.name,
|
||||
# 'company_name':user_obj_id.company_id.name,
|
||||
'eval_name':phase.survey_id.title,
|
||||
'date':time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
mailbody = hr_eval_plan_obj.read(cr,uid,phase.id,['mail_body','email_subject'],context=context)
|
||||
body = mailbody['mail_body']%val
|
||||
sub = mailbody['email_subject']+phase.survey_id.title
|
||||
dest=[child.work_email]
|
||||
if dest:
|
||||
tools.email_send(src,dest,sub,body)
|
||||
apprai_id.append(id)
|
||||
apprai_id = []
|
||||
for evaluation in self.browse(cr,uid,ids, context):
|
||||
wait = False
|
||||
for phase in evaluation.plan_id.phase_ids:
|
||||
childs = []
|
||||
if phase.action == "bottom-up":
|
||||
childs = evaluation.employee_id.child_ids
|
||||
elif phase.action in ("top-down", "final"):
|
||||
if evaluation.employee_id.parent_id:
|
||||
childs = [evaluation.employee_id.parent_id]
|
||||
elif phase.action == "self":
|
||||
childs = [evaluation.employee_id]
|
||||
for child in childs:
|
||||
if not child.user_id:
|
||||
continue
|
||||
|
||||
hr_eval_inter_obj = self.pool.get('hr.evaluation.interview')
|
||||
int_id = hr_eval_inter_obj.create(cr, uid, {
|
||||
'evaluation_id': evaluation.id,
|
||||
'survey_id': phase.survey_id.id,
|
||||
'date_deadline': (dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d'),
|
||||
'user_id': child.user_id.id,
|
||||
'user_to_review_id': evaluation.employee_id.id
|
||||
}, context=context)
|
||||
if phase.wait:
|
||||
wait = True
|
||||
if not wait:
|
||||
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [int_id], context=context)
|
||||
|
||||
if (not wait) and phase.mail_feature:
|
||||
body = phase.mail_body % {
|
||||
'employee_name': child.name,
|
||||
'user_signature': user.signature,
|
||||
'eval_name': phase.survey_id.title,
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'time': time
|
||||
}
|
||||
sub = phase.email_subject
|
||||
dest = [child.work_email]
|
||||
if dest:
|
||||
tools.email_send(src,dest,sub,body)
|
||||
|
||||
elif phase.action == "top-down":
|
||||
if manager_employee:
|
||||
user = False
|
||||
if manager_employee.user_id:
|
||||
user = manager_employee.user_id.id
|
||||
id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id': user ,'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
|
||||
if not phase.wait:
|
||||
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
|
||||
if phase.mail_feature:
|
||||
val.update({'employee_name':manager_employee.name})
|
||||
mailbody = hr_eval_plan_obj.read(cr,uid,phase.id,['mail_body'],context=context)
|
||||
body = mailbody['mail_body']%val
|
||||
dest = [manager_employee.work_email]
|
||||
if dest:
|
||||
tools.email_send(src,dest,sub,body)
|
||||
apprai_id.append(id)
|
||||
elif phase.action == "self":
|
||||
if curr_employee:
|
||||
user = False
|
||||
if curr_employee.user_id:
|
||||
user = curr_employee.user_id.id
|
||||
id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :curr_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
|
||||
if not phase.wait:
|
||||
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
|
||||
apprai_id.append(id)
|
||||
elif phase.action == "final":
|
||||
if manager_employee:
|
||||
user = False
|
||||
if manager_employee.user_id:
|
||||
user = manager_employee.user_id.id
|
||||
id = hr_eval_inter_obj.create(cr, uid, {'evaluation_id':evaluation.id,'user_id' : user, 'survey_id' : phase.survey_id.id, 'user_to_review_id' :manager_employee.id, 'date_deadline' :(dt.ISO.ParseAny(dt.now().strftime('%Y-%m-%d')) + dt.RelativeDateTime(months =+ 1)).strftime('%Y-%m-%d')},context=context)
|
||||
if not phase.wait:
|
||||
hr_eval_inter_obj.survey_req_waiting_answer(cr, uid, [id], context=context)
|
||||
apprai_id.append(id)
|
||||
self.write(cr, uid, evaluation.id, {'survey_request_ids':[[6, 0, apprai_id]]})
|
||||
self.write(cr,uid,ids,{'state':'wait'},context=context)
|
||||
return True
|
||||
|
||||
@@ -291,21 +260,15 @@ class hr_evaluation_interview(osv.osv):
|
||||
_description='Evaluation Interview'
|
||||
_columns = {
|
||||
'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade'),
|
||||
'user_to_review_id': fields.many2one('hr.employee', 'Employee'),
|
||||
'evaluation_id' : fields.many2one('hr_evaluation.evaluation', 'Evaluation'),
|
||||
}
|
||||
'user_to_review_id': fields.many2one('hr.employee', 'Employee to Interview'),
|
||||
'evaluation_id' : fields.many2one('hr_evaluation.evaluation', 'Evaluation Type'),
|
||||
}
|
||||
_defaults = {
|
||||
'is_evaluation': lambda *a: True,
|
||||
}
|
||||
}
|
||||
|
||||
def survey_req_waiting_answer(self, cr, uid, ids, context={}):
|
||||
self.write(cr, uid, ids, { 'state' : 'waiting_answer'})
|
||||
# for id in self.browse(cr, uid, ids):
|
||||
# print"id",id
|
||||
# if id.user_to_review_id and id.user_to_review_id.work_email:
|
||||
# msg = " Hello %s, \n\n We are inviting you for %s survey. \n\n Thanks," %(id.user_to_review_id.name, id.survey_id.title)
|
||||
# tools.email_send(tools.config['email_from'], [id.user_to_review_id.work_email],\
|
||||
# 'Invite to fill up Survey', msg)
|
||||
return True
|
||||
|
||||
def survey_req_done(self, cr, uid, ids, context={}):
|
||||
@@ -337,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
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
<group col="6" colspan="4">
|
||||
<field name="state"/>
|
||||
<button name="button_plan_in_progress"
|
||||
string="Plan In Progress"
|
||||
string="Start Evaluation"
|
||||
states="draft"
|
||||
type="object"/>
|
||||
<button name="button_final_validation"
|
||||
@@ -209,21 +209,31 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Evaluation">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-hr" string="Draft" domain="[('state','=','draft')]"/>
|
||||
<group>
|
||||
<filter icon="terp-hr" string="Draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-crm" string="In progress" domain="[('state','=','wait')]"/>
|
||||
<filter icon="terp-mrp" string="Final Step" domain="[('state','=','progress')]"/>
|
||||
<filter icon="terp-stock" string="Done" domain="[('state','=','done')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-media-rewind" string="7 Days"
|
||||
help="Evaluations to close within the next 7 days"
|
||||
domain="[('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind" string="Overpassed"
|
||||
help="Evaluations that overpassed the deadline"
|
||||
domain="[('date','>=',(datetime.date.today()))]"
|
||||
/>
|
||||
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id" widget="selection" select="1"/>
|
||||
<field name="plan_id" widget="selection" select="1"/>
|
||||
<field name="rating"/>
|
||||
<newline/>
|
||||
|
||||
<group col='8' colspan='15' expand='1' string='Group by...'>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand='1' string='Group by...'>
|
||||
<filter string='Employee' icon="terp-stock" domain="[]" context="{'group_by' : 'employee_id'}" />
|
||||
<filter string='Plan' icon="terp-stock" domain="[]" context="{'group_by' : 'plan_id'}" />
|
||||
<filter string='state' icon="terp-stock" domain="[]" context="{'group_by' : 'state'}" />
|
||||
</group>
|
||||
<filter string='State' icon="terp-stock" domain="[]" context="{'group_by' : 'state'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string='Date' icon="terp-stock" domain="[]" context="{'group_by' : 'date'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -251,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">
|
||||
@@ -282,12 +292,13 @@
|
||||
<tree string="Interview Evaluation">
|
||||
<field name="date_deadline"/>
|
||||
<field name="survey_id"/>
|
||||
<field name="user_id" string="Interviewer"/>
|
||||
<field name="user_to_review_id"/>
|
||||
<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>
|
||||
@@ -300,14 +311,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Evaluation">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-crm" string="Unanswered" domain="[('state','=','waiting_answer')]"/>
|
||||
<filter icon="terp-crm" string="To Do" name="todo" domain="[('state','=','waiting_answer')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="My" icon="terp-partner" name="my" domain="[('user_id','=',uid)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-stock" string="Late" domain="[('date_deadline','<',current_date)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="survey_id" widget="selection" select="1"/>
|
||||
<field name="email" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection" default="1">
|
||||
<filter string="MY" icon="terp-partner" domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
<field name="user_to_review_id" widget="selection"/>
|
||||
<field name="user_id" widget="selection"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -318,11 +329,12 @@
|
||||
<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>
|
||||
|
||||
<menuitem
|
||||
name="Intreview Requests" parent="menu_eval_hr"
|
||||
name="Interview Requests" parent="menu_eval_hr"
|
||||
id="menu_open_hr_evaluation_interview_requests"
|
||||
action="action_hr_evaluation_interview_tree"/>
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Evaluations">
|
||||
<group>
|
||||
<filter icon="terp-hr"
|
||||
string="This Year"
|
||||
domain="[('year','=',time.strftime('%%Y'))]"
|
||||
@@ -42,6 +43,7 @@
|
||||
domain="[('closed','=',time.strftime('%%Y/%%m/%%d'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Employee" icon="terp-hr" context="{'group_by':'employee_id'}"/>
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
<field name="model">hr.expense.expense</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Expenses">
|
||||
<tree string="Expenses"
|
||||
colors="blue:state == 'draft'">
|
||||
<field name="date"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="department_id"/>
|
||||
@@ -126,7 +127,7 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Expense">
|
||||
<group col="20" colspan="4">
|
||||
<group>
|
||||
<filter
|
||||
icon="terp-hr"
|
||||
domain="[('state','=','draft')]"
|
||||
@@ -147,19 +148,23 @@
|
||||
<field name="date" select='1'/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter
|
||||
icon="gtk-execute"
|
||||
icon="gtk-execute" name="my_expns"
|
||||
help="My Expenses"
|
||||
default="1"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
<filter icon="terp-hr"
|
||||
domain="[('department_id','=',context.get('department_id',False))]"
|
||||
string="Expenses of My Department"/>
|
||||
</field>
|
||||
<field name="state" select="1"/>
|
||||
<field name="department_id" widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('department_id','=',context.get('department_id',False))]"
|
||||
help="Expenses of My Department"/>
|
||||
</field>
|
||||
</group>
|
||||
</search>
|
||||
<field name="department_id" widget="selection" />
|
||||
</group>
|
||||
<newline />
|
||||
<group expand="1" string="Group By..." colspan="11" col="11">
|
||||
<filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Employee" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Date" icon="terp-sale" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -167,6 +172,7 @@
|
||||
<field name="name">Expenses</field>
|
||||
<field name="res_model">hr.expense.expense</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="context">{"search_default_my_expns":1}</field>
|
||||
<field name="search_view_id" ref="view_hr_expense_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Expenses">
|
||||
<group>
|
||||
<filter icon="terp-hr"
|
||||
string="This Year"
|
||||
domain="[('year','=',time.strftime('%%Y'))]"
|
||||
@@ -55,9 +56,8 @@
|
||||
<filter icon="terp-hr"
|
||||
string="Draft"
|
||||
domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-hr"
|
||||
<filter icon="terp-hr" name="expenses"
|
||||
string="Expenses"
|
||||
default="1"
|
||||
domain="[('state','<>','draft'),('state','<>','cancelled')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
@@ -67,11 +67,11 @@
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Company" icon="terp-hr" context="{'group_by':'company_id'}"/>
|
||||
<filter string="User" icon="terp-hr" context="{'group_by':'user_id'}" default="1"/>
|
||||
<filter string="User" name="by_user" icon="terp-hr" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Employee" icon="terp-hr" context="{'group_by':'employee_id'}"/>
|
||||
<filter string="Department" icon="terp-hr" context="{'group_by':'department_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
@@ -90,6 +90,7 @@
|
||||
<field name="res_model">hr.expense.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_expenses":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_hr_expense_report_search"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
""",
|
||||
'author': 'Tiny & Axelor',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['hr', 'crm', 'process'],
|
||||
'depends': ['hr', 'crm', 'process', 'resource'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -102,7 +102,7 @@ class hr_holidays(osv.osv):
|
||||
'user_id':fields.many2one('res.users', 'User', states={'draft':[('readonly',False)]}, select=True, readonly=True),
|
||||
'date_to' : fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'holiday_status_id' : fields.many2one("hr.holidays.status", "Leave Type", required=True,readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'employee_id' : fields.many2one('hr.employee', "Employee's Name", select=True, invisible=False, readonly=True, states={'draft':[('readonly',False)]}, help='Leave Manager can let this field empty if this leave request/allocation is for every employee'),
|
||||
'employee_id' : fields.many2one('hr.employee', "Employee", select=True, invisible=False, readonly=True, states={'draft':[('readonly',False)]}, help='Leave Manager can let this field empty if this leave request/allocation is for every employee'),
|
||||
'manager_id' : fields.many2one('hr.employee', 'Leave Manager', invisible=False, readonly=True, help='This area is automaticly filled by the user who validate the leave'),
|
||||
'notes' : fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'number_of_days': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
@@ -112,7 +112,7 @@ class hr_holidays(osv.osv):
|
||||
'allocation_type': fields.selection([('employee','Employee Request'),('company','Company Allocation')], 'Allocation Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help='This field is only for informative purposes, to depict if the leave request/allocation comes from an employee or from the company'),
|
||||
'parent_id': fields.many2one('hr.holidays', 'Parent'),
|
||||
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
|
||||
'department_id':fields.many2one('hr.department','Department', readonly=True, states={'draft':[('readonly',False)]} ),
|
||||
'department_id':fields.related('employee_id', 'department_id', string='Department', type='many2one', relation='hr.department', readonly=True, store=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
@@ -222,8 +222,19 @@ class hr_holidays(osv.osv):
|
||||
if ids2:
|
||||
vals['manager_id'] = ids2[0]
|
||||
else:
|
||||
raise osv.except_osv(_('Warning !'),_('Either there is no Employee defined, or no User attached with it.'))
|
||||
raise osv.except_osv(_('Warning !'),_('No user related to the selected employee.'))
|
||||
self.write(cr, uid, ids, vals)
|
||||
for record in self.browse(cr, uid, ids):
|
||||
if record.type=='remove':
|
||||
vals= {
|
||||
'name':record.name,
|
||||
'date_from':record.date_from,
|
||||
'date_to':record.date_to,
|
||||
'calendar_id':record.employee_id.calendar_id.id,
|
||||
'company_id':record.employee_id.company_id.id,
|
||||
'resource_id':record.employee_id.resource_id.id
|
||||
}
|
||||
self.pool.get('resource.calendar.leaves').create(cr,uid,vals)
|
||||
return True
|
||||
|
||||
def holidays_confirm(self, cr, uid, ids, *args):
|
||||
@@ -246,16 +257,6 @@ class hr_holidays(osv.osv):
|
||||
'number_of_days': nb,
|
||||
'user_id': user_id
|
||||
})
|
||||
#vals= {
|
||||
# 'name':record.name,
|
||||
# 'date_from':record.date_from,
|
||||
# 'date_to':record.date_to,
|
||||
# 'calendar_id':record.employee_id.calendar_id.id,
|
||||
# 'company_id':record.employee_id.company_id.id,
|
||||
# 'resource_id':record.employee_id.resource_id.id
|
||||
# }
|
||||
#self.pool.get('resource.calendar.leaves').create(cr,uid,vals)
|
||||
|
||||
return True
|
||||
|
||||
def holidays_refuse(self, cr, uid, ids, *args):
|
||||
|
||||
@@ -1,85 +1,23 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<report id="report_holidays_summary"
|
||||
string="Summary Of Leaves"
|
||||
model="hr.holidays"
|
||||
name="holidays.summary"
|
||||
xsl="hr_holidays/report/holidays_summary.xsl"
|
||||
auto="False"
|
||||
menu="False"/>
|
||||
<data>
|
||||
<report id="report_holidays_summary"
|
||||
string="Summary Of Leaves"
|
||||
model="hr.holidays"
|
||||
name="holidays.summary"
|
||||
xsl="hr_holidays/report/holidays_summary.xsl"
|
||||
auto="False"
|
||||
menu="False"/>
|
||||
|
||||
<menuitem
|
||||
name="Leaves Summary"
|
||||
parent="menu_hr_reporting_holidays"
|
||||
id="menu_report_hr_holiday_tree"
|
||||
action="open_company_allocation"
|
||||
groups="hr.group_hr_manager"
|
||||
sequence="40"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- available holidays report -->
|
||||
|
||||
<record id="view_report_hr_holiday_tree" model="ir.ui.view">
|
||||
<field name="name">hr.holidays.report.tree</field>
|
||||
<field name="model">hr.holidays.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Available Holidays">
|
||||
<field name="employee_id"/>
|
||||
<field name="holiday_status_id"/>
|
||||
<field name="remaining_leave"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_report_hr_holiday_form" model="ir.ui.view">
|
||||
<field name="name">hr.holidays.report.form</field>
|
||||
<field name="model">hr.holidays.report</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Available Holidays">
|
||||
<field name="employee_id" select="1"/>
|
||||
<field name="holiday_status_id" select="1"/>
|
||||
<field name="remaining_leave"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_report_hr_holiday_graph" model="ir.ui.view">
|
||||
<field name="name">hr.holiday.report.graph</field>
|
||||
<field name="model">hr.holidays.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph orientation="horizontal" string="Available Holidays" type="bar">
|
||||
<field name="holiday_status_id"/>
|
||||
<field name="remaining_leave" operator="+"/>
|
||||
<field group="True" name="employee_id"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_report_hr_holiday" model="ir.actions.act_window">
|
||||
<field name="name">Available Holidays</field>
|
||||
<field name="res_model">hr.holidays.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_hr_holiday_tree"/>
|
||||
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_hr_holiday_tree">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_report_hr_holiday_tree"/>
|
||||
<field name="act_window_id" ref="action_report_hr_holiday"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_hr_holiday_graph">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="view_report_hr_holiday_graph"/>
|
||||
<field name="act_window_id" ref="action_report_hr_holiday"/>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Available Holidays" id="menu_report_hr_holiday_tree" action="action_report_hr_holiday" parent="menu_hr_reporting_holidays"/>
|
||||
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
@@ -7,36 +7,34 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Leave">
|
||||
<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"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select='1'/>
|
||||
<field name="state" select="1">
|
||||
<filter icon="terp-hr" domain="[('state','=','refuse')]" help="Refused Holidays"/>
|
||||
<filter icon="terp-hr" domain="[('state','=','validate')]" help="Validated Holidays"/>
|
||||
</field>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="gtk-execute" help="My Leaves" domain="[('user_id','=',uid)]" />
|
||||
</field>
|
||||
<field name="department_id" select="1" widget="selection">
|
||||
<filter icon="gtk-execute" domain="[('department_id','=',context.get('department_id',False))]"
|
||||
help="My Departments Leaves"/>
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="2" col="2">
|
||||
<filter string="Employee" icon="terp-sale" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
<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"/>
|
||||
<separator orientation="vertical"/>
|
||||
<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">
|
||||
<filter icon="terp-hr"
|
||||
domain="[('department_id.manager_id','=',uid)]"
|
||||
/>
|
||||
</field>
|
||||
<field name="holiday_status_id" widget="selection"/>
|
||||
</group>
|
||||
<newline />
|
||||
<group expand="1" string="Group By..." colspan="11" col="11">
|
||||
<filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Manager" icon="terp-sale" domain="[]" context="{'group_by':'manager_id'}"/>
|
||||
<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'}"/>
|
||||
</group>
|
||||
|
||||
</search>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- Holidays: Leave Request -->
|
||||
<record model="ir.ui.view" id="edit_holiday_new">
|
||||
<field name="name">Leave Request</field>
|
||||
@@ -45,14 +43,16 @@
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Leave Request">
|
||||
<field name="name" select="1"/>
|
||||
<field name="holiday_status_id" select="1" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}" />
|
||||
<field name="date_from" select="1" on_change="onchange_date_from(date_to, date_from)" required="1"/>
|
||||
<field name="date_to" select="1" on_change="onchange_date_to(date_from, date_to)" required="1"/>
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="employee_id" select="1" required="1"/>
|
||||
<field name="holiday_status_id" select="1" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}" />
|
||||
<field name="date_from" select="1" on_change="onchange_date_from(date_to, date_from)" required="1"/>
|
||||
<field name="date_to" select="1" on_change="onchange_date_to(date_from, date_to)" required="1"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<field name="employee_id" select="1" required="1"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="notes" colspan="4"/>
|
||||
@@ -136,21 +136,43 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_holiday_simple">
|
||||
<field name="name">hr.holidays.reprot_tree</field>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Holidays Report">
|
||||
<field name="employee_id" invisible="1"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
<field name="number_of_days" string="Number of Days" sum='Remaining Days'/>
|
||||
<field name="date_from" invisible="1"/>
|
||||
<field name="date_to" invisible="1"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="holiday_status_id" invisible="1"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_holiday">
|
||||
<field name="name">hr.holidays.tree</field>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Leaves">
|
||||
<field name="name"/>
|
||||
<tree string="Leaves"
|
||||
colors="red:state == 'refuse';grey:state == 'cancel'">
|
||||
<field name="employee_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="number_of_days" string="Number of Days" sum='Remaining Days'/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<field name="name"/>
|
||||
<field name="holiday_status_id"/>
|
||||
<field name="state"/>
|
||||
<field name="type"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -162,8 +184,8 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="My Leaves" >
|
||||
<field name="employee_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="holiday_status"/>
|
||||
<field name="max_leaves"/>
|
||||
<field name="leaves_taken" />
|
||||
@@ -179,7 +201,7 @@
|
||||
id="menu_open_ask_holidays"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="open_ask_holidays">
|
||||
<field name="name">Leave Request(s)</field>
|
||||
<field name="name">Leave Requests</field>
|
||||
<field name="res_model">hr.holidays</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="edit_holiday_new"/>
|
||||
@@ -209,7 +231,7 @@
|
||||
action="open_ask_holidays"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="open_allocation_holidays">
|
||||
<field name="name">Allocation Request(s)</field>
|
||||
<field name="name">Allocation Requests</field>
|
||||
<field name="res_model">hr.holidays</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="context">{'type':'add'}</field>
|
||||
@@ -217,7 +239,7 @@
|
||||
<field name="view_id" ref="allocation_leave_new" />
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_open_allocation_holidays_tree">
|
||||
<record model="ir.actions.act_window.view" id="action_open_allocation_holidays_tree">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_holiday"/>
|
||||
@@ -242,12 +264,12 @@
|
||||
<field name="res_model">hr.holidays</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="allocation_company_new" />
|
||||
<field name="context">{'allocation_type':'company'}</field>
|
||||
<field name="view_id" eval="view_holiday_simple" />
|
||||
<field name="context">{'allocation_type':'company', 'report':True}</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Leaves Management"
|
||||
name="Leaves Summary"
|
||||
parent="menu_open_ask_holidays"
|
||||
id="menu_open_company_allocation"
|
||||
action="open_company_allocation"
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
from osv import fields,osv
|
||||
import tools
|
||||
|
||||
class hr_holidays_report(osv.osv):
|
||||
_name = "hr.holidays.report"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'employee_id': fields.many2one ('hr.employee', 'Employee', readonly=True),
|
||||
'holiday_status_id': fields.many2one('hr.holidays.status', 'Leave Type', readonly=True),
|
||||
# 'max_leave': fields.float('Allocated Leaves', readonly=True),
|
||||
# 'taken_leaves': fields.float('Taken Leaves', readonly=True),
|
||||
'remaining_leave': fields.float('Remaining Leaves',readonly=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'hr_holidays_report')
|
||||
cr.execute("""
|
||||
create or replace view hr_holidays_report as (
|
||||
select
|
||||
min(h.id) as id,
|
||||
h.employee_id as employee_id,
|
||||
h.holiday_status_id as holiday_status_id,
|
||||
sum(number_of_days) as remaining_leave
|
||||
from
|
||||
hr_holidays h
|
||||
left join hr_holidays_status s on (s.id = h.holiday_status_id)
|
||||
where h.state = 'validate'
|
||||
and h.employee_id is not null
|
||||
and s.active <> 'f'
|
||||
group by h.holiday_status_id, h.employee_id
|
||||
)""")
|
||||
hr_holidays_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<tree string="Leaves Statistics">
|
||||
<field name="date"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
@@ -46,13 +47,6 @@
|
||||
domain="[('month','=',time.strftime('%%m'))]"
|
||||
help="Leaves of this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr"
|
||||
string="Today's Start Leave"
|
||||
domain="[('date_from','=',time.strftime('%%Y/%%m/%%d'))]"/>
|
||||
<filter icon="terp-hr"
|
||||
string="Today's End Leave"
|
||||
domain="[('date_to','=',time.strftime('%%Y/%%m/%%d'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-sale"
|
||||
|
||||
@@ -77,7 +77,7 @@ class wizard_report(wizard.interface):
|
||||
states={
|
||||
'init':{
|
||||
'actions':[_check],
|
||||
'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end', 'Cancel'), ('checkdept', 'Print')]}
|
||||
'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end', 'Cancel', 'gtk-cancel'), ('checkdept', 'Print', 'gtk-print')]}
|
||||
},
|
||||
'checkdept': {
|
||||
'actions': [],
|
||||
@@ -85,7 +85,7 @@ class wizard_report(wizard.interface):
|
||||
},
|
||||
'notify': {
|
||||
'actions': [],
|
||||
'result': {'type':'form','arch':zero_form,'fields':zero_fields,'state':[('end','Ok')]}
|
||||
'result': {'type':'form','arch':zero_form,'fields':zero_fields,'state':[('end','Ok', 'gtk-ok')]}
|
||||
},
|
||||
'report':{
|
||||
'actions':[],
|
||||
|
||||
@@ -67,7 +67,7 @@ class wizard_report(wizard.interface):
|
||||
states={
|
||||
'init':{
|
||||
'actions':[_check],
|
||||
'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end', 'Cancel', 'gtk-cancel'), ('checkemp', 'Print', 'gtk-ok')]}
|
||||
'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end', 'Cancel','gtk-cancel'), ('checkemp', 'Print', 'gtk-print')]}
|
||||
},
|
||||
'checkemp': {
|
||||
'actions': [],
|
||||
@@ -75,7 +75,7 @@ class wizard_report(wizard.interface):
|
||||
},
|
||||
'notify': {
|
||||
'actions': [],
|
||||
'result': {'type':'form','arch':zero_form,'fields':zero_fields,'state':[('end','Ok')]}
|
||||
'result': {'type':'form','arch':zero_form,'fields':zero_fields,'state':[('end','Ok', 'gtk-ok')]}
|
||||
},
|
||||
'report':{
|
||||
'actions':[],
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<field name="res_model">hr.applicant</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_job"/>
|
||||
<field name="context">{"search_default_current":1,"search_default_my_recrui":1}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_jobs_filter"/>
|
||||
|
||||
</record>
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
<field name="partner_phone"/>
|
||||
<field name="job_id"/>
|
||||
<field name="stage_id"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<field name="priority"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="availability" invisible="1"/>
|
||||
@@ -71,22 +71,24 @@
|
||||
<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"/>
|
||||
<button string="Schedule a Phone Call"
|
||||
name="%(wizard_hr_job_reschedule_phone_call)d" icon="gtk-redo" type="action"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action"
|
||||
icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}"/>
|
||||
icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}"/>
|
||||
<newline/>
|
||||
<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)]}" />
|
||||
<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">
|
||||
@@ -158,10 +160,10 @@
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4"
|
||||
string="Reply to Last Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'hr.applicant'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
string="Reply to Last Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'hr.applicant'}"
|
||||
icon="gtk-undo" type="action" />
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
@@ -170,9 +172,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'hr.applicant'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'hr.applicant'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -199,10 +201,10 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Jobs">
|
||||
<filter icon="gtk-new" string="Current"
|
||||
<group>
|
||||
<filter icon="gtk-new" string="Current" name="current"
|
||||
domain="[('state','in',('draft','open'))]"
|
||||
help="All new and in progress jobs"
|
||||
default="1"
|
||||
/>
|
||||
<filter icon="gtk-new" string="New"
|
||||
domain="[('state','=','draft')]"
|
||||
@@ -220,8 +222,9 @@
|
||||
<field name="partner_name"/>
|
||||
<field name="email_from"/>
|
||||
<field name="job_id" widget="selection"/>
|
||||
<newline/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter domain="[('user_id','=',uid)]" help="My Recruitements" icon="gtk-execute" default="1"/>
|
||||
<filter domain="[('user_id','=',uid)]" name="my_recrui" help="My Recruitements" icon="gtk-execute"/>
|
||||
<filter domain="[('user_id','=',False)]" help="Unassigned Recruitements" icon="gtk-execute" separator="1"/>
|
||||
</field>
|
||||
<field name="department_id" widget="selection" string="Department" context="{'invisible_department': False}">
|
||||
@@ -229,8 +232,9 @@
|
||||
domain="[('department_id','=',context.get('department_id',False))]"
|
||||
help="My Department"/>
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="11" col="20">
|
||||
<group expand="1" string="Group By..." >
|
||||
<filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Responsible" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-sale"
|
||||
string="My Recruitments"
|
||||
default="1"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
</field>
|
||||
<newline/>
|
||||
@@ -80,7 +79,7 @@
|
||||
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="User" icon="terp-hr" domain="[]" context="{'group_by':'user_id'}" default="1" />
|
||||
<filter string="User" name="by_user" icon="terp-hr" domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Company" icon="terp-hr" domain="[]" context="{'group_by':'company_id'}"/>
|
||||
<filter string="Stage" icon="terp-hr" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
@@ -101,6 +100,7 @@
|
||||
<field name="res_model">hr.recruitment.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_user_id":1,"search_default_by_user":1}</field>
|
||||
<field name="search_view_id" ref="view_hr_recruitment_report_search"/>
|
||||
</record>
|
||||
<menuitem id="hr.menu_hr_reporting" name="Reporting" parent="hr.menu_hr_root"/>
|
||||
|
||||
@@ -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"?>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<field name="model">hr.analytic.timesheet</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom" string="Timesheet Line">
|
||||
<tree editable="bottom" string="Timesheet Lines">
|
||||
<field name="user_id" on_change="on_change_user_id(user_id)" required="1"/>
|
||||
<field name="date" on_change="on_change_date(date)"/>
|
||||
<field domain="[('type','=','normal'),('state', '<>', 'close')]" name="account_id"/>
|
||||
@@ -50,12 +50,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Timesheet">
|
||||
<group col='8' colspan='4'>
|
||||
<filter icon="terp-hr" domain="[('date', '=', time.strftime('%%Y-%%m-%%d'))]" string="Today"/>
|
||||
<filter icon="terp-hr" domain="[('user_id','=',uid)]" string="My Work" help="My Work"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="account_id" select="1" widget="selection"/>
|
||||
<field name="date" select="1"/>
|
||||
<filter icon="terp-hr" domain="[('date', '=', time.strftime('%%Y-%%m-%%d'))]" string="Today"/>
|
||||
<filter icon="terp-hr" domain="[('user_id','=',uid)]" string="My Work" help="My Work"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="account_id" select="1" widget="selection"/>
|
||||
<field name="date" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -83,11 +83,6 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="hr_timesheet_line_search"/>
|
||||
</record>
|
||||
<!-- <menuitem
|
||||
action="act_hr_timesheet_line_evry1_all_form"
|
||||
id="menu_act_hr_timesheet_line_evry1_all_form"
|
||||
parent="hr_timesheet.menu_act_hr_timesheet_line_today_form"
|
||||
groups="hr.group_hr_manager"/>-->
|
||||
|
||||
<record id="hr_timesheet_employee_extd_form" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.employee.extd_form</field>
|
||||
|
||||
@@ -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:08+0000\n"
|
||||
"PO-Revision-Date: 2010-04-06 23:02+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:06+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-08 07:18+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr_timesheet
|
||||
@@ -351,7 +351,7 @@ msgstr "März"
|
||||
#: xsl:hr.analytical.timesheet:0
|
||||
#: xsl:hr.analytical.timesheet_users:0
|
||||
msgid "Total"
|
||||
msgstr "Betrag gesammt"
|
||||
msgstr "Betrag gesamt"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: selection:hr.analytical.timesheet,init,month:0
|
||||
|
||||
@@ -68,16 +68,16 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Timesheet by user">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Timesheet by user in this year"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Timesheet by user in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Timesheet by user in this year"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Timesheet by user in this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -124,8 +124,8 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Timesheet by invoice">
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets to invoice"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets to invoice"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="manager_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
@@ -207,17 +207,17 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Daily timesheet by account">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Daily Timesheets" domain="[('user_id','=',uid)]" help="My Daily Timesheets by account"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Daily Timesheets for this year"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Daily Timesheets of this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Daily Timesheets" domain="[('user_id','=',uid)]" help="My Daily Timesheets by account"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Daily Timesheets for this year"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Daily Timesheets of this month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -281,17 +281,17 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Timesheet by account">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets by account"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-hr" string="My Timesheets" domain="[('user_id','=',uid)]" help="My Timesheets by account"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]"/>
|
||||
<filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -323,15 +323,15 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Random Timesheets">
|
||||
<field name="analytic_account_id" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="quantity" select="2" />
|
||||
<field name="date" select="1"/>
|
||||
<field name="analytic_account_id" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="quantity" select="2" />
|
||||
<field name="date" select="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_random_timesheet_board">
|
||||
<record model="ir.actions.act_window" id="action_random_timesheet_board">
|
||||
<field name="name">Random Timesheet</field>
|
||||
<field name="res_model">report.random.timesheet</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -347,21 +347,21 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Random Timesheets Lines">
|
||||
<field name="date" select="1"/>
|
||||
<field name="user_id" />
|
||||
<field name="name" select="1"/>
|
||||
<field name="quantity" />
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="analytic_account_id" select="1"/>
|
||||
<field name="uom_id" />
|
||||
<field name="amount" />
|
||||
<field name="to_invoice" select="1"/>
|
||||
<field name="general_account_id" />
|
||||
<field name="date" select="1"/>
|
||||
<field name="user_id" />
|
||||
<field name="name" select="1"/>
|
||||
<field name="quantity" />
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="analytic_account_id" select="1"/>
|
||||
<field name="uom_id" />
|
||||
<field name="amount" />
|
||||
<field name="to_invoice" select="1"/>
|
||||
<field name="general_account_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_random_timesheet_lines_board">
|
||||
<record model="ir.actions.act_window" id="action_random_timesheet_lines_board">
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="name">Timesheet Lines</field>
|
||||
<field name="res_model">random.timesheet.lines</field>
|
||||
@@ -376,7 +376,7 @@
|
||||
name="Time Tracking"
|
||||
parent="base.menu_main_pm" sequence="3"/>
|
||||
<menuitem action="action_random_timesheet_lines_board" id="menu_project_management_timesheet_lines_board" parent="base.menu_project_management_time_tracking" sequence="7"/>
|
||||
<!--<menuitem action="action_random_timesheet_lines_board" id="menu_hr_action_random_timesheet_lines_board"
|
||||
<!--<menuitem action="action_random_timesheet_lines_board" id="menu_hr_action_random_timesheet_lines_board"
|
||||
parent="hr_attendance.menu_hr_time_tracking" groups="hr.group_hr_manager"/>-->
|
||||
<menuitem action="action_random_timesheet_lines_board" id="menu_hr_action_random_timesheet_lines_board" name="Timesheets Lines"
|
||||
parent="hr_attendance.menu_hr_time_tracking" groups="hr.group_hr_manager"/>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Editable current timesheet used in dashboard-->
|
||||
<record id="hr_timesheet_sheet_tree" model="ir.ui.view">
|
||||
<field name="name">hr.timesheet.sheet.tree</field>
|
||||
<field name="model">hr_timesheet_sheet.sheet</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Timesheets">
|
||||
<tree string="Timesheets"
|
||||
colors="blue:state == 'draft';grey:state == 'done'">
|
||||
<field name="user_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="total_attendance" groups="hr_attendance.group_hr_attendance"/>
|
||||
<field name="total_timesheet"/>
|
||||
<field name="total_difference" groups="hr_attendance.group_hr_attendance"/>
|
||||
@@ -156,9 +156,11 @@
|
||||
<field name="total_difference" widget="float_time" groups="hr_attendance.group_hr_attendance"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="total_attendance" widget="float_time"/>
|
||||
<field name="total_timesheet" widget="float_time"/>
|
||||
<field name="total_difference" widget="float_time"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="total_attendance" widget="float_time"/>
|
||||
<field name="total_timesheet" widget="float_time"/>
|
||||
<field name="total_difference" widget="float_time"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="state"/>
|
||||
@@ -179,17 +181,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Timesheet">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-crm" string="Unvalidated" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
|
||||
<filter icon="terp-crm" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Timesheets"/>
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="state">
|
||||
<filter icon="terp-hr" domain="[('state','=','draft')]" help="Draft Timesheets"/>
|
||||
<filter icon="terp-hr" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
|
||||
</field>
|
||||
<field name="name" select="1"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Timesheet"/>
|
||||
</field>
|
||||
<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"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="date_from"/>
|
||||
<field name="department_id" widget="selection">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('department_id','=',context.get('department_id',False))]"
|
||||
@@ -197,10 +195,10 @@
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="20">
|
||||
<group expand="1" string="Group By..." colspan="4" col="20">
|
||||
<filter string="Users" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -308,17 +306,6 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_attendance_tree_who" model="ir.ui.view">
|
||||
<field name="name">hr.attendance.tree</field>
|
||||
<field name="model">hr.attendance</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="inherit_id" ref="hr_attendance.view_attendance_who"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="action_desc" position="after">
|
||||
<field name="sheet_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window domain="[('sheet_id', '=', active_id)]" id="act_hr_timesheet_sheet_sheet_by_day" name="Timesheet by Account" res_model="hr_timesheet_sheet.sheet.account" src_model="hr_timesheet_sheet.sheet"/>
|
||||
<!-- <act_window domain="[('sheet_id', '=', active_id)]" id="act_hr_timesheet_sheet_sheet_by_account" name="Timesheet by Day" res_model="hr_timesheet_sheet.sheet.day" src_model="hr_timesheet_sheet.sheet"/> -->
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -25,7 +25,7 @@ class res_company(osv.osv):
|
||||
_description = 'res.company'
|
||||
|
||||
def _get_default_ad(self, addresses):
|
||||
city = post_code = address = ""
|
||||
city = post_code = address = country_code = ""
|
||||
for ads in addresses:
|
||||
if ads.type == 'default':
|
||||
city = ads.city or ""
|
||||
@@ -34,7 +34,9 @@ class res_company(osv.osv):
|
||||
address = ads.street or ""
|
||||
if ads.street2:
|
||||
address += " " + ads.street2
|
||||
return city, post_code, address
|
||||
if ads.country_id:
|
||||
country_code = ads.country_id and ads.country_id.code or ""
|
||||
return city, post_code, address, country_code
|
||||
res_company()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -18,13 +18,15 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import base64
|
||||
|
||||
import time
|
||||
import datetime
|
||||
import base64
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class l10n_be_vat_declaration(osv.osv_memory):
|
||||
""" Periodical VAT Declaration """
|
||||
""" Vat Declaration """
|
||||
_name = "l1on_be.vat.declaration"
|
||||
_description = "Vat Declaration"
|
||||
|
||||
@@ -32,11 +34,14 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
||||
'period_id': fields.many2one('account.period','Period', required=True),
|
||||
'msg': fields.text('File created', size=64, readonly=True),
|
||||
'file_save': fields.binary('Save File'),
|
||||
}
|
||||
'ask_resitution': fields.boolean('Ask Restitution'),
|
||||
'ask_payment': fields.boolean('Ask Payment'),
|
||||
'client_nihil': fields.boolean('Last Declaration of Entreprise',help='Thick this case only if it concerns only the last statement on the civil or cessation of activity'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'msg': lambda *a:'''Save the File with '".xml"' extension.''',
|
||||
}
|
||||
}
|
||||
|
||||
def create_xml(self, cr, uid, ids, context={}):
|
||||
obj_fyear = self.pool.get('account.fiscalyear')
|
||||
@@ -46,12 +51,14 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
||||
obj_comp = self.pool.get('res.company')
|
||||
obj_data = self.pool.get('ir.model.data')
|
||||
|
||||
list_of_tags=['00','01','02','03','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','91']
|
||||
list_of_tags=['00','01','02','03','44','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','88','91']
|
||||
obj_company = obj_user.browse(cr, uid, uid, context=context).company_id
|
||||
user_cmpny = obj_company.name
|
||||
vat_no=obj_company.partner_id.vat
|
||||
if not vat_no:
|
||||
raise osv.except_osv(_('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()
|
||||
@@ -59,50 +66,46 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
||||
ctx['period_id'] = data['period_id'] #added context here
|
||||
tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
|
||||
|
||||
address = post_code = city = ''
|
||||
if not obj_company.partner_id.address:
|
||||
address = post_code = city = ''
|
||||
address = post_code = city = country_code = ''
|
||||
city, post_code, address, country_code =self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
|
||||
|
||||
|
||||
city, post_code, address = obj_comp._get_default_ad(obj_company.partner_id.address)
|
||||
year_id = obj_fyear.find(cr, uid)
|
||||
|
||||
account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
|
||||
current_year = account_period.fiscalyear_id.name
|
||||
period_code = account_period.code
|
||||
|
||||
send_ref = user_cmpny
|
||||
if period_code:
|
||||
send_ref = send_ref + period_code
|
||||
|
||||
send_ref = str(obj_company.partner_id.id) + str(account_period.date_start[5:7]) + str(account_period.date_stop[:4])
|
||||
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<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)+'</VATNUMBER>\n\t\t<DPERIODE>\n\t\t\t'
|
||||
|
||||
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>'+((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]
|
||||
if starting_month != ending_month:
|
||||
#starting month and ending month of selected period are not the same
|
||||
#it means that the accounting isn't based on periods of 1 month but on quarters
|
||||
quarter = str(((int(starting_month) - 1) / 3) + 1)
|
||||
data_of_file += '<QUARTER>' + quarter + '</QUARTER>\n\t\t\t'
|
||||
data_of_file += '<QUARTER>'+quarter+'</QUARTER>\n\t\t\t'
|
||||
else:
|
||||
data_of_file += '<MONTH>' + starting_month + '</MONTH>\n\t\t\t'
|
||||
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['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:
|
||||
if item['code']:
|
||||
if item['code'] == '71-72':
|
||||
item['code'] = '71'
|
||||
item['code']='71'
|
||||
if item['code'] in list_of_tags:
|
||||
data_of_file +='\n\t\t\t\t<D' + str(int(item['code'])) +'>' + str(int(item['sum_period']*100)) + '</D'+str(int(item['code'])) +'>'
|
||||
data_of_file +='\n\t\t\t\t<D'+str(int(item['code'])) +'>' + str(abs(int(item['sum_period']*100))) + '</D'+str(int(item['code'])) +'>'
|
||||
|
||||
data_of_file +='\n\t\t\t</DATA_ELEM>\n\t\t</DATA>\n\t</VATRECORD>\n</VATSENDING>'
|
||||
data['file_save'] = base64.encodestring(data_of_file)
|
||||
self.write(cr, uid, ids, {'file_save':data['file_save']}, context=context)
|
||||
return True
|
||||
|
||||
|
||||
l10n_be_vat_declaration()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<data>
|
||||
|
||||
<menuitem
|
||||
id="menu_finance_belgian_statement"
|
||||
name="Belgium Statements"
|
||||
parent="account.menu_finance_legal_statement"/>
|
||||
id="menu_finance_belgian_statement"
|
||||
name="Belgium Statements"
|
||||
parent="account.menu_finance_legal_statement"/>
|
||||
|
||||
<record id="view_vat_declaration" model="ir.ui.view">
|
||||
<field name="name">Select Period</field>
|
||||
@@ -13,9 +13,12 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Select Period">
|
||||
<group colspan="4" >
|
||||
<field name="period_id" select="1" default_focus="1"/>
|
||||
<button colspan="1" name="create_xml" string="Create XML" type="object" icon="gtk-execute"/>
|
||||
<group colspan="4" >
|
||||
<field name="period_id" select="1"/>
|
||||
<field name="ask_resitution"/>
|
||||
<field name="ask_payment"/>
|
||||
<field name="client_nihil"/>
|
||||
<button colspan="1" name="create_xml" string="Create XML" type="object" default_focus="1"/>
|
||||
</group>
|
||||
<separator string="XML Flie has been Created." colspan="4"/>
|
||||
<group colspan="4" >
|
||||
@@ -44,4 +47,4 @@
|
||||
id="l10_be_vat_declaration"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -152,9 +152,9 @@ class account_invoice(osv.osv):
|
||||
## @parma date_invoice date of the invoice
|
||||
## @parma payment_term inoice payment term
|
||||
## @param partner_bank_id the partner linked invoice bank
|
||||
## @return the dict of values with the partner_bank value updated
|
||||
## @return the dict of values with the partner_bank value updated
|
||||
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
|
||||
date_invoice=False, payment_term=False, partner_bank_id=False):
|
||||
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
|
||||
""" Function that is call when the partner of the invoice is changed
|
||||
it will retriev and set the good bank partner bank"""
|
||||
res = super(account_invoice, self).onchange_partner_id(
|
||||
|
||||
+1
-2
@@ -159,7 +159,7 @@ class mrp_bom(osv.osv):
|
||||
@param arg: User defined argument
|
||||
@param context: A standard dictionary for contextual values
|
||||
@return: Dictionary of values
|
||||
"""
|
||||
"""
|
||||
result = {}
|
||||
for bom in self.browse(cr, uid, ids, context=context):
|
||||
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
|
||||
@@ -220,7 +220,6 @@ class mrp_bom(osv.osv):
|
||||
'property_ids': fields.many2many('mrp.property', 'mrp_bom_property_rel', 'bom_id','property_id', 'Properties'),
|
||||
'revision_ids': fields.one2many('mrp.bom.revision', 'bom_id', 'BoM Revisions'),
|
||||
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'Index type'),
|
||||
'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
|
||||
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
|
||||
'company_id': fields.many2one('res.company','Company',required=True),
|
||||
'multi_level_bom': fields.boolean('Multi-level BoM'),
|
||||
|
||||
+79
-81
@@ -242,21 +242,21 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bill of Material">
|
||||
<group colspan="4" col="6">
|
||||
<field name="product_id" on_change="onchange_product_id(product_id, name)" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id, name)" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<newline/>
|
||||
<field name="product_uom"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="routing_id" select="2" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field name="product_uos" groups="product.group_uos"/>
|
||||
<field name="product_uos_qty" groups="product.group_uos"/>
|
||||
<newline/>
|
||||
<field name="multi_level_bom" invisible="1"/>
|
||||
<field name="type" groups="base.group_extended"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="product_uos" groups="product.group_uos"/>
|
||||
<field name="product_uos_qty" groups="product.group_uos"/>
|
||||
<field name="routing_id" select="2" groups="base.group_extended"/>
|
||||
<field name="type" groups="base.group_extended"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="product_uom"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="multi_level_bom"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field colspan="4" name="bom_lines" nolabel="1" widget="one2many_list"/>
|
||||
@@ -276,9 +276,6 @@
|
||||
<field name="product_efficiency"/>
|
||||
<field colspan="4" name="property_ids" nolabel="2" groups="base.group_extended"/>
|
||||
</page>
|
||||
<page string="Multi-Level BoM" attrs="{'invisible':[('multi_level_bom','=',False)]}">
|
||||
<field colspan="4" name="child_ids" nolabel="1" string="BoM Hierarchy"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
@@ -291,7 +288,7 @@
|
||||
<field name="field_parent">child_complete_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="BoM Structure" colors="blue:method">
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="product_id"/>
|
||||
@@ -461,8 +458,8 @@
|
||||
<group colspan="2" col="3">
|
||||
<field name="product_uom"/>
|
||||
<button type="action"
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="Change Qty" states="ready,confirmed" />
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="Change Qty" states="ready,confirmed" />
|
||||
</group>
|
||||
<label string="" colspan="2"/>
|
||||
<field name="product_uos_qty" groups="product.group_uos"/>
|
||||
@@ -484,45 +481,45 @@
|
||||
mode="tree,form" height="275" domain="[('state','<>', ('done', 'cancel'))]">
|
||||
<tree string="Products to Consume">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" string="Qty"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="product_qty" string="Qty"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="location_id" string="Source Loc."/>
|
||||
|
||||
<field name="state" invisible="1"/>
|
||||
<button name="%(stock.move_consume)d"
|
||||
string="Consume Products" type="action"
|
||||
icon="gtk-go-forward" context="{'consume': True}"
|
||||
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" />
|
||||
<button name="%(stock.move_consume)d"
|
||||
string="Consume Products" type="action"
|
||||
icon="gtk-go-forward" context="{'consume': True}"
|
||||
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" />
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
<field colspan="2" name="move_lines2" nolabel="1" domain="[('state','in', ('done', 'cancel'))]"
|
||||
widget="one2many_list" mode="tree,form" height="275">
|
||||
<tree string="Consumed Products" editable="bottom" colors="red:scraped==True">
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="product_qty" readonly="1" string="Qty"/>
|
||||
<field name="product_uom" readonly="1" string="UOM"/>
|
||||
widget="one2many_list" mode="tree,form" height="275">
|
||||
<tree string="Consumed Products" editable="bottom" colors="red:scraped==True">
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="product_qty" readonly="1" string="Qty"/>
|
||||
<field name="product_uom" readonly="1" string="UOM"/>
|
||||
<field name="location_dest_id" readonly="1" string="Destination Loc."/>
|
||||
<field name="prodlot_id" />
|
||||
<field name="prodlot_id" />
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="scraped" invisible="1"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
states="done,cancel" />
|
||||
<button
|
||||
name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action"
|
||||
icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
<group col="9" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
@@ -540,38 +537,38 @@
|
||||
mode="tree,form" height="275" domain="[('state','<>', ('done', 'cancel'))]">
|
||||
<tree string="Products to Finish">
|
||||
<field name="product_id" />
|
||||
<field name="product_qty" string="Qty"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="product_qty" string="Qty"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="location_id" string="Source Loc."/>
|
||||
<field name="state" invisible="1"/>
|
||||
<button name="%(stock.move_consume)d"
|
||||
string="Consume Products" type="action"
|
||||
icon="gtk-go-forward" context="{'consume': True}"
|
||||
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" />
|
||||
<button name="%(stock.move_consume)d"
|
||||
string="Consume Products" type="action"
|
||||
icon="gtk-go-forward" context="{'consume': True}"
|
||||
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" />
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
<field colspan="2" name="move_created_ids2" nolabel="1" domain="[('state','in', ('done', 'cancel'))]"
|
||||
widget="one2many_list" mode="tree,form" height="275">
|
||||
<tree string="Finished Products" editable="bottom" colors="red:scraped==True">
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="product_qty" readonly="1" string="Qty"/>
|
||||
<field name="product_uom" readonly="1" string="UOM"/>
|
||||
widget="one2many_list" mode="tree,form" height="275">
|
||||
<tree string="Finished Products" editable="bottom" colors="red:scraped==True">
|
||||
<field name="product_id" readonly="1"/>
|
||||
<field name="product_qty" readonly="1" string="Qty"/>
|
||||
<field name="product_uom" readonly="1" string="UOM"/>
|
||||
<field name="location_dest_id" readonly="1" string="Destination Loc."/>
|
||||
<field name="prodlot_id" />
|
||||
<field name="prodlot_id" />
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="scraped" invisible="1"/>
|
||||
<button name="%(stock.track_line)d"
|
||||
<button name="%(stock.track_line)d"
|
||||
string="Split in production lots" type="action" icon="gtk-justify-fill" states="done,cancel"/>
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action" icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
</field>
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action" icon="gtk-convert"
|
||||
states="done,cancel" />
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Work Orders">
|
||||
<field colspan="4" name="workcenter_lines" nolabel="1">
|
||||
@@ -621,8 +618,7 @@
|
||||
<filter icon="terp-mrp" string="Draft"
|
||||
domain="[('state','=','draft')]"
|
||||
help="Non confirmed manufacturing orders"/>
|
||||
<filter icon="terp-mrp" string="Current"
|
||||
default="1"
|
||||
<filter icon="terp-mrp" string="Current" name="current"
|
||||
domain="[('state','in',('confirmed','ready'))]"
|
||||
help="Manufacturing Orders which are waiting for raw materials"/>
|
||||
<filter icon="terp-mrp" string="Ready"
|
||||
@@ -660,6 +656,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar,graph,gantt</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="context">{"search_default_current":1}</field>
|
||||
<field name="search_view_id" ref="view_mrp_production_filter"/>
|
||||
</record>
|
||||
<menuitem action="mrp_production_action" id="menu_mrp_production_action" parent="menu_mrp_manufacturing" sequence="1"/>
|
||||
@@ -811,7 +808,7 @@
|
||||
<page string="Procurement Details">
|
||||
<separator colspan="4" string="Product & 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"/>
|
||||
|
||||
@@ -855,7 +852,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Procurement">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-mrp" string="Current" domain="[('state','in',('draft','confirmed'))]" default="1" help="Procurement Orders in draft or open state."/>
|
||||
<filter icon="terp-mrp" string="Current" domain="[('state','in',('draft','confirmed'))]" name="current" help="Procurement Orders in draft or open state."/>
|
||||
<filter icon="terp-mrp" string="Exceptions" domain="[('state','=','exception')]" help="Procurement Orders with exceptions"/>
|
||||
<filter icon="terp-mrp" string="Late"
|
||||
domain="['&', ('date_planned::date','<', current_date), ('state', 'in', ('draft', 'confirmed'))]"
|
||||
@@ -881,6 +878,7 @@
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="context">{"search_default_current":1}</field>
|
||||
<field name="search_view_id" ref="view_mrp_procurement_filter"/>
|
||||
</record>
|
||||
<menuitem action="mrp_procurement_action" id="menu_mrp_procurement_action" parent="mrp.menu_mrp_manufacturing"
|
||||
@@ -898,7 +896,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>
|
||||
@@ -1039,12 +1037,12 @@
|
||||
res_model="mrp.bom"
|
||||
src_model="product.product"/>
|
||||
|
||||
<!-- Menu for Resource for MRP-->
|
||||
<menuitem icon="terp-mrp" id="base.menu_mrp_root" name="Manufacturing" sequence="3"/>
|
||||
<!-- Menu for Resource for MRP-->
|
||||
<menuitem icon="terp-mrp" id="base.menu_mrp_root" name="Manufacturing" sequence="3"/>
|
||||
<menuitem id="menu_pm_resources_mrp" name="Resources" parent="base.menu_mrp_root" sequence="2"/>
|
||||
<menuitem action="resource.action_resource_resource_tree" id="menu_view_resource_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
<menuitem action="resource.action_resource_calendar_form" id="menu_view_resource_calendar_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
<menuitem action="resource.action_resource_calendar_leave_tree" id="menu_view_resource_calendar_leaves_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
<menuitem action="resource.action_resource_resource_tree" id="menu_view_resource_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
<menuitem action="resource.action_resource_calendar_form" id="menu_view_resource_calendar_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
<menuitem action="resource.action_resource_calendar_leave_tree" id="menu_view_resource_calendar_leaves_search_mrp" parent="menu_pm_resources_mrp" sequence="1"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search">
|
||||
<group col="16" colspan="6">
|
||||
<filter string="This Year" icon="terp-hr" domain="[('name','=',time.localtime()[0])]" default="1" />
|
||||
<filter string="This Month" icon="terp-hr" domain="[('month','=',time.strftime('%%m'))]" default="1"/>
|
||||
<filter string="This Year" name="this_year" icon="terp-hr" domain="[('name','=',time.localtime()[0])]"/>
|
||||
<filter string="This Month" name="this_month" icon="terp-hr" domain="[('month','=',time.strftime('%%m'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Current" icon="terp-hr" domain="[('state','in',('open','draft'))]"/>
|
||||
<filter string="Scheduled Date" icon="terp-hr" domain="[('scheduled_date',=,time.strftime('%%m/%%d/%%Y'))]"/>
|
||||
@@ -90,6 +90,7 @@
|
||||
<field name="res_model">mrp.production.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{"search_default_this_year":1,"search_default_this_month":1}</field>
|
||||
<field name="view_id" ref="view_report_mrp_production_order_tree"/>
|
||||
<field name="search_view_id" ref="view_report_mrp_production_order_filter"/>
|
||||
</record>
|
||||
|
||||
@@ -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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user