[MERGE] merged with trunk development branch
bzr revid: hmo@tinyerp.com-20111130074138-0tsvucwct4mnrjya
This commit is contained in:
commit
600713c6eb
|
@ -141,7 +141,6 @@ module named account_voucher.
|
|||
'test/account_change_currency.yml',
|
||||
'test/chart_of_account.yml',
|
||||
'test/account_period_close.yml',
|
||||
'test/account_fiscalyear_close_state.yml',
|
||||
'test/account_use_model.yml',
|
||||
'test/account_validate_account_move.yml',
|
||||
'test/account_fiscalyear_close.yml',
|
||||
|
@ -149,6 +148,7 @@ module named account_voucher.
|
|||
'test/account_cash_statement.yml',
|
||||
'test/test_edi_invoice.yml',
|
||||
'test/account_report.yml',
|
||||
'test/account_fiscalyear_close_state.yml', #last test, as it will definitively close the demo fiscalyear
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
|
|
|
@ -1,31 +1,8 @@
|
|||
|
||||
-
|
||||
In order to check the Close a Fiscal Year wizard in OpenERP I first create a Fiscalyear
|
||||
-
|
||||
!record {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0}:
|
||||
code: !eval "'FY%s'% (datetime.now().year+1)"
|
||||
company_id: base.main_company
|
||||
date_start: !eval "'%s-01-01' %(datetime.now().year+1)"
|
||||
date_stop: !eval "'%s-12-31' %(datetime.now().year+1)"
|
||||
name: !eval "'Fiscal Year %s' %(datetime.now().year+1)"
|
||||
-
|
||||
I create monthly Periods for this fiscalyear
|
||||
-
|
||||
!python {model: account.fiscalyear}: |
|
||||
self.create_period(cr, uid, [ref("account_fiscalyear_fiscalyear0")], {"lang":
|
||||
'en_US', "active_model": "ir.ui.menu", "active_ids": [ref("account.menu_action_account_fiscalyear_form")],
|
||||
"tz": False, "active_id": ref("account.menu_action_account_fiscalyear_form"),
|
||||
})
|
||||
-
|
||||
I check that the fiscalyear state is "Draft"
|
||||
-
|
||||
!assert {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0, string: Fiscal Year is in Draft state}:
|
||||
- state == 'draft'
|
||||
-
|
||||
I run the Close a Fiscalyear wizard to close this fiscalyear
|
||||
I run the Close a Fiscalyear wizard to close the demo fiscalyear
|
||||
-
|
||||
!record {model: account.fiscalyear.close.state, id: account_fiscalyear_close_state_0}:
|
||||
fy_id: account_fiscalyear_fiscalyear0
|
||||
fy_id: data_fiscalyear
|
||||
-
|
||||
I clicked on Close States Button to close fiscalyear
|
||||
|
||||
|
@ -37,9 +14,6 @@
|
|||
-
|
||||
I check that the fiscalyear state is now "Done"
|
||||
-
|
||||
!assert {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0, string: Fiscal Year is in Done state}:
|
||||
!assert {model: account.fiscalyear, id: data_fiscalyear, string: Fiscal Year is in Done state}:
|
||||
- state == 'done'
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -8,31 +8,31 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-24 12:54+0000\n"
|
||||
"PO-Revision-Date: 2011-07-12 12:04+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-11-29 08:00+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2011-11-05 05:57+0000\n"
|
||||
"X-Generator: Launchpad (build 14231)\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-30 05:27+0000\n"
|
||||
"X-Generator: Launchpad (build 14404)\n"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal
|
||||
msgid "Open Assets"
|
||||
msgstr ""
|
||||
msgstr "Anlage (Entwurf)"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_end:0
|
||||
#: field:account.asset.property.history,method_end:0
|
||||
msgid "Ending date"
|
||||
msgstr ""
|
||||
msgstr "Ende Datum"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation board"
|
||||
msgstr ""
|
||||
msgstr "Abschreibungs-Tableau"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
|
@ -45,61 +45,61 @@ msgstr ""
|
|||
#: model:ir.model,name:account_asset.model_account_asset_asset
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_form
|
||||
msgid "Asset"
|
||||
msgstr ""
|
||||
msgstr "Anlagegüter"
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Ungültiger Modellname in der Aktionsdefinition."
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method:0
|
||||
msgid "Linear"
|
||||
msgstr ""
|
||||
msgstr "Linear"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Change duration"
|
||||
msgstr ""
|
||||
msgstr "Verändere Lebensdauer"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,child_ids:0
|
||||
msgid "Child assets"
|
||||
msgstr ""
|
||||
msgstr "untergeordnete Anlagengüter"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_asset:0
|
||||
msgid "Asset Value"
|
||||
msgstr ""
|
||||
msgstr "Anlagenwert"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,name:0
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
msgstr "Begründung"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
#: field:account.asset.asset,entry_ids:0
|
||||
#: wizard_field:account.asset.compute,asset_compute,move_ids:0
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
msgstr "Buchungen"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.compute,asset_compute:0
|
||||
msgid "Generated entries"
|
||||
msgstr ""
|
||||
msgstr "erzeugte Buchungen"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,method_delay:0
|
||||
#: field:account.asset.property,method_delay:0
|
||||
#: field:account.asset.property.history,method_delay:0
|
||||
msgid "Number of interval"
|
||||
msgstr ""
|
||||
msgstr "Anzahl der Intervalle"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.compute,asset_compute,asset_open:0
|
||||
msgid "Open entries"
|
||||
msgstr ""
|
||||
msgstr "offene Buchungen"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
|
@ -108,102 +108,102 @@ msgstr ""
|
|||
#: model:ir.ui.menu,name:account_asset.menu_finance_Assets
|
||||
#: model:ir.ui.menu,name:account_asset.menu_finance_config_Assets
|
||||
msgid "Assets"
|
||||
msgstr ""
|
||||
msgstr "Anlagegüter"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method:0
|
||||
msgid "Progressive"
|
||||
msgstr ""
|
||||
msgstr "Progressiv"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_draft
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_draft
|
||||
msgid "Draft Assets"
|
||||
msgstr ""
|
||||
msgstr "Anlagegüter (Entwurf)"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
#: wizard_field:account.asset.modify,init,note:0
|
||||
#: view:account.asset.property.history:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
msgstr "Bemerkungen"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Change history"
|
||||
msgstr ""
|
||||
msgstr "Bearbeitungshistorie"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation entries"
|
||||
msgstr ""
|
||||
msgstr "Abschreibungsbuchungen"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Methods"
|
||||
msgstr ""
|
||||
msgstr "Methoden"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
msgid "Asset properties to modify"
|
||||
msgstr ""
|
||||
msgstr "zu verändernde Anlagenmerkmale"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,method_period:0
|
||||
#: field:account.asset.property,method_period:0
|
||||
#: field:account.asset.property.history,method_period:0
|
||||
msgid "Period per interval"
|
||||
msgstr ""
|
||||
msgstr "Perioden pro Intervall"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation duration"
|
||||
msgstr ""
|
||||
msgstr "Abschreibungsdauer"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_analytic_id:0
|
||||
msgid "Analytic account"
|
||||
msgstr ""
|
||||
msgstr "Analytisches Konto"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Status"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation methods"
|
||||
msgstr ""
|
||||
msgstr "Abschreibungsmethode"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Other information"
|
||||
msgstr ""
|
||||
msgstr "Andere Informationen"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_asset_cumul:0
|
||||
msgid "Cumul. value"
|
||||
msgstr ""
|
||||
msgstr "kummulierter Betrag"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.property:0
|
||||
msgid "Assets methods"
|
||||
msgstr ""
|
||||
msgstr "Anlagen Methoden"
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "Fehlerhafter XML-Code für diese Ansicht!"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_asset_property
|
||||
msgid "Asset property"
|
||||
msgstr ""
|
||||
msgstr "Anlagenmerkmale"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.compute,asset_compute:0
|
||||
|
@ -212,30 +212,30 @@ msgstr ""
|
|||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_compute
|
||||
#: model:ir.ui.menu,name:account_asset.menu_wizard_asset_compute
|
||||
msgid "Compute assets"
|
||||
msgstr ""
|
||||
msgstr "Berechne Anlagen"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
#: wizard_button:account.asset.modify,init,asset_modify:0
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_modify
|
||||
msgid "Modify asset"
|
||||
msgstr ""
|
||||
msgstr "Verändere Anlagegut"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Confirm asset"
|
||||
msgstr ""
|
||||
msgstr "Anlagegut bestätigen"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.property.history:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_property_history
|
||||
msgid "Asset history"
|
||||
msgstr ""
|
||||
msgstr "Anlagenhistorie"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,date:0
|
||||
msgid "Date created"
|
||||
msgstr ""
|
||||
msgstr "Erstellungsdatum"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.module.module,description:account_asset.module_meta_information
|
||||
|
@ -252,211 +252,213 @@ msgstr ""
|
|||
#: field:account.asset.board,value_gross:0
|
||||
#: field:account.asset.property,value_total:0
|
||||
msgid "Gross value"
|
||||
msgstr ""
|
||||
msgstr "Anschaffungswert"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method_time:0
|
||||
msgid "Ending period"
|
||||
msgstr ""
|
||||
msgstr "Periodenende"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,name:0
|
||||
msgid "Asset name"
|
||||
msgstr ""
|
||||
msgstr "Anlagenname"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Accounts information"
|
||||
msgstr ""
|
||||
msgstr "Konto Information"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,note:0
|
||||
#: field:account.asset.category,note:0
|
||||
#: field:account.asset.property.history,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
msgstr "Notiz"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
msgstr "Entwurf"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,type:0
|
||||
msgid "Depr. method type"
|
||||
msgstr ""
|
||||
msgstr "Abschreibungsmethode"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_asset_id:0
|
||||
msgid "Asset account"
|
||||
msgstr ""
|
||||
msgstr "Anlagenkonto"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,asset_property_id:0
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
msgstr "Methode"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
msgstr "Normal"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_progress_factor:0
|
||||
msgid "Progressif factor"
|
||||
msgstr ""
|
||||
msgstr "Progressionsfaktor"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,localisation:0
|
||||
msgid "Localisation"
|
||||
msgstr ""
|
||||
msgstr "Lokalisation"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method:0
|
||||
msgid "Computation method"
|
||||
msgstr ""
|
||||
msgstr "Berechnungsmethode"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_time:0
|
||||
msgid "Time method"
|
||||
msgstr ""
|
||||
msgstr "Zeitmethode"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Benutzer"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,property_ids:0
|
||||
msgid "Asset method name"
|
||||
msgstr ""
|
||||
msgstr "Anlagenmethoden Bezeichnung"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,date:0
|
||||
#: field:account.asset.property.history,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "Datum"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_net:0
|
||||
msgid "Net value"
|
||||
msgstr ""
|
||||
msgstr "Netto Wert"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.close,init:0
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_close
|
||||
msgid "Close asset"
|
||||
msgstr ""
|
||||
msgstr "Anlagegut schliessen"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,history_ids:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
msgstr "Verlauf"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_actif_id:0
|
||||
msgid "Depreciation account"
|
||||
msgstr ""
|
||||
msgstr "AfA-Konto"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,period_id:0
|
||||
#: wizard_field:account.asset.compute,init,period_id:0
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
msgstr "Periode"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_category_form
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_category_form
|
||||
msgid "Asset Category"
|
||||
msgstr ""
|
||||
msgstr "Anlagenkategorie"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.close,init,end:0
|
||||
#: wizard_button:account.asset.compute,init,end:0
|
||||
#: wizard_button:account.asset.modify,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
#: wizard_button:account.asset.compute,asset_compute,end:0
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Schließen"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
msgstr "Öffnen"
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Der Objektname muss mit \"x_\" beginnen und darf keine Sonderzeichen "
|
||||
"beinhalten!"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.module.module,shortdesc:account_asset.module_meta_information
|
||||
msgid "Asset management"
|
||||
msgstr ""
|
||||
msgstr "Anlagenbuchhaltung"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.board:0
|
||||
#: field:account.asset.property,board_ids:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_board
|
||||
msgid "Asset board"
|
||||
msgstr ""
|
||||
msgstr "Anlagenspiegel"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,state:0
|
||||
msgid "Global state"
|
||||
msgstr ""
|
||||
msgstr "Globaler Status"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method_time:0
|
||||
msgid "Delay"
|
||||
msgstr ""
|
||||
msgstr "Verzögerung"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.close,init:0
|
||||
msgid "General information"
|
||||
msgstr ""
|
||||
msgstr "Allgemeine Informationen"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,journal_analytic_id:0
|
||||
msgid "Analytic journal"
|
||||
msgstr ""
|
||||
msgstr "analytisches Journal"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,name:0
|
||||
msgid "Method name"
|
||||
msgstr ""
|
||||
msgstr "Methodenname"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
msgstr "Journal"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,name:0
|
||||
msgid "History name"
|
||||
msgstr ""
|
||||
msgstr "Verlauf Bezeichnung"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Close method"
|
||||
msgstr ""
|
||||
msgstr "Abschlussmethode"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,entry_asset_ids:0
|
||||
msgid "Asset Entries"
|
||||
msgstr ""
|
||||
msgstr "Anlagen"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,category_id:0
|
||||
|
@ -464,66 +466,66 @@ msgstr ""
|
|||
#: field:account.asset.category,name:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_category
|
||||
msgid "Asset category"
|
||||
msgstr ""
|
||||
msgstr "Analgenkategorie"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation"
|
||||
msgstr ""
|
||||
msgstr "Abschreibung"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,code:0
|
||||
#: field:account.asset.category,code:0
|
||||
msgid "Asset code"
|
||||
msgstr ""
|
||||
msgstr "Kurzbezeichnung"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,value_total:0
|
||||
msgid "Total value"
|
||||
msgstr ""
|
||||
msgstr "Gesamt Wert"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Ansicht"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "General info"
|
||||
msgstr ""
|
||||
msgstr "Allgemeine Informationen"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
msgstr "Sequenz"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,value_residual:0
|
||||
msgid "Residual value"
|
||||
msgstr ""
|
||||
msgstr "Buchwert"
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.close,init,asset_close:0
|
||||
msgid "End of asset"
|
||||
msgstr ""
|
||||
msgstr "Ende des Anlagegutes"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,type:0
|
||||
msgid "Direct"
|
||||
msgstr ""
|
||||
msgstr "Direkt"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,type:0
|
||||
msgid "Indirect"
|
||||
msgstr ""
|
||||
msgstr "Indirekt"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,parent_id:0
|
||||
msgid "Parent asset"
|
||||
msgstr ""
|
||||
msgstr "übergeordnetes Anlagegut"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
|
||||
msgid "Asset Hierarchy"
|
||||
msgstr ""
|
||||
msgstr "Anlangenhierarchie"
|
||||
|
|
|
@ -146,7 +146,11 @@
|
|||
<field eval=""""Grand-Rosière"""" name="city"/>
|
||||
<field eval=""""+32.81.73.35.01"""" name="fax"/>
|
||||
<field eval=""""1367"""" name="zip"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<!-- The partner associated with the main company should not have a country specified in the demo data,
|
||||
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
|
||||
install the localization module accordingly to this variable automatically. Thus, in demo data,
|
||||
everyone would have the belgian chart of account by default, what should be avoided. -->
|
||||
<!-- <field name="country_id" ref="base.be"/> -->
|
||||
<field eval=""""+32.81.81.37.00"""" name="phone"/>
|
||||
<field eval=""""Chaussée de Namur, 40"""" name="street"/>
|
||||
</record>
|
||||
|
@ -154,7 +158,11 @@
|
|||
<field eval=""""Louvain-La-Neuve"""" name="city"/>
|
||||
<field eval=""""1348"""" name="zip"/>
|
||||
<field eval=""""contact"""" name="type"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<!-- The partner associated with the main company should not have a country specified in the demo data,
|
||||
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
|
||||
install the localization module accordingly to this variable automatically. Thus, in demo data,
|
||||
everyone would have the belgian chart of account by default, what should be avoided. -->
|
||||
<!-- <field name="country_id" ref="base.be"/> -->
|
||||
<field eval=""""rue du pré, 115"""" name="street"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
@ -162,7 +170,11 @@
|
|||
<field eval=""""Charleroi"""" name="city"/>
|
||||
<field eval=""""6000"""" name="zip"/>
|
||||
<field eval=""""contact"""" name="type"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<!-- The partner associated with the main company should not have a country specified in the demo data,
|
||||
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
|
||||
install the localization module accordingly to this variable automatically. Thus, in demo data,
|
||||
everyone would have the belgian chart of account by default, what should be avoided. -->
|
||||
<!-- <field name="country_id" ref="base.be"/> -->
|
||||
<field eval=""""Boulevars Tirou, 32"""" name="street"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
country_id: base.be
|
||||
first_name: Nicolas
|
||||
job_ids:
|
||||
- address_id: base.main_address
|
||||
- address_id: base.res_partner_address_1
|
||||
function: CTO
|
||||
state: current
|
||||
- address_id: base.res_partner_address_3000
|
||||
|
|
|
@ -59,13 +59,21 @@ class report_xml(osv.osv):
|
|||
return True
|
||||
|
||||
def report_get(self, cr, uid, report_id, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
# skip osv.fields.sanitize_binary_value() because we want the raw bytes in all cases
|
||||
context.update(bin_raw=True)
|
||||
report = self.browse(cr, uid, report_id, context=context)
|
||||
sxw_data=(report.report_sxw_content).encode("iso-8859-1", "replace")
|
||||
rml_data= (report.report_rml_content).encode("iso-8859-1", "replace")
|
||||
sxw_data = report.report_sxw_content
|
||||
rml_data = report.report_rml_content
|
||||
if isinstance(sxw_data, unicode):
|
||||
sxw_data = sxw_data.encode("iso-8859-1", "replace")
|
||||
if isinstance(rml_data, unicode):
|
||||
rml_data = rml_data.encode("iso-8859-1", "replace")
|
||||
return {
|
||||
'file_type' : report.report_type,
|
||||
'report_sxw_content': report.report_sxw_content and base64.encodestring(sxw_data) or False,
|
||||
'report_rml_content': report.report_rml_content and base64.encodestring(rml_data) or False
|
||||
'file_type' : report.report_type,
|
||||
'report_sxw_content': sxw_data and base64.encodestring(sxw_data) or False,
|
||||
'report_rml_content': rml_data and base64.encodestring(rml_data) or False
|
||||
}
|
||||
|
||||
report_xml()
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<field name="code" eval="'# obj is a browse_record and will provide stupid ids to method\n' 'action = pool.get(\'ir.actions.todo\').action_launch(cr, uid, ' + str([ref('base_setup_installer_todo')]) + ', context=context)'"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="100"/>
|
||||
<menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="1"/>
|
||||
<record id="ir_ui_view_sc_configuration" model="ir.ui.view_sc">
|
||||
<field name="name">Add More Features</field>
|
||||
<field name="resource">ir.ui.menu</field>
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import res_company
|
||||
import base_vat
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -33,6 +33,21 @@ be validated for all supported countries. The country is inferred from the
|
|||
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
|
||||
will be validated using the Belgian rules.
|
||||
|
||||
There are two different levels of VAT number validation:
|
||||
|
||||
* By default, a simple off-line check is performed using the known validation
|
||||
rules for the country, usually a simple check digit. This is quick and
|
||||
always available, but allows numbers that are perhaps not truly allocated,
|
||||
or not valid anymore.
|
||||
* When the "VAT VIES Check" option is enabled (in the configuration of the user's
|
||||
Company), VAT numbers will be instead submitted to the online EU VIES
|
||||
database, which will truly verify that the number is valid and currently
|
||||
allocated to a EU company. This is a little bit slower than the simple
|
||||
off-line check, requires an Internet connection, and may not be available
|
||||
all the time. If the service is not available or does not support the
|
||||
requested country (e.g. for non-EU countries), a simple check will be performed
|
||||
instead.
|
||||
|
||||
Supported countries currently include EU countries, and a few non-EU countries
|
||||
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
|
||||
only the country code will be validated.
|
||||
|
|
|
@ -61,27 +61,48 @@ class res_partner(osv.osv):
|
|||
vat_country, vat_number = vat[:2].lower(), vat[2:].replace(' ', '')
|
||||
return vat_country, vat_number
|
||||
|
||||
def check_vat(self, cr, uid, ids, context=None):
|
||||
def simple_vat_check(self, cr, uid, country_code, vat_number, context=None):
|
||||
'''
|
||||
Check the VAT number depending of the country.
|
||||
http://sima-pc.com/nif.php
|
||||
'''
|
||||
country_obj = self.pool.get('res.country')
|
||||
check_func_name = 'check_vat_' + country_code
|
||||
check_func = getattr(self, check_func_name, None) or \
|
||||
getattr(vatnumber, check_func_name, None)
|
||||
if not check_func:
|
||||
# No VAT validation available, default to check that the country code exists
|
||||
res_country = self.pool.get('res.country')
|
||||
return bool(res_country.search(cr, uid, [('code', '=ilike', country_code)], context=context))
|
||||
return check_func(vat_number)
|
||||
|
||||
def vies_vat_check(self, cr, uid, country_code, vat_number, context=None):
|
||||
try:
|
||||
# Validate against VAT Information Exchange System (VIES)
|
||||
# see also http://ec.europa.eu/taxation_customs/vies/
|
||||
return vatnumber.check_vies(country_code.upper()+vat_number)
|
||||
except Exception:
|
||||
# see http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl
|
||||
# Fault code may contain INVALID_INPUT, SERVICE_UNAVAILABLE, MS_UNAVAILABLE,
|
||||
# TIMEOUT or SERVER_BUSY. There is no way we can validate the input
|
||||
# with VIES if any of these arise, including the first one (it means invalid
|
||||
# country code or empty VAT number), so we fall back to the simple check.
|
||||
return self.simple_vat_check(cr, uid, country_code, vat_number, context=context)
|
||||
|
||||
def check_vat(self, cr, uid, ids, context=None):
|
||||
user_company = self.pool.get('res.users').browse(cr, uid, uid).company_id
|
||||
if user_company.vat_check_vies:
|
||||
# force full VIES online check
|
||||
check_func = self.vies_vat_check
|
||||
else:
|
||||
# quick and partial off-line checksum validation
|
||||
check_func = self.simple_vat_check
|
||||
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
if not partner.vat:
|
||||
continue
|
||||
vat_country, vat_number = self._split_vat(partner.vat)
|
||||
check_func_name = 'check_vat_' + vat_country
|
||||
check_func = getattr(self, check_func_name, None) or \
|
||||
getattr(vatnumber, check_func_name, None)
|
||||
if not check_func:
|
||||
# No VAT validation available, default to check that the country code
|
||||
# exists.
|
||||
if country_obj.search(cr, uid, [('code', 'ilike', vat_country)], context=context):
|
||||
continue
|
||||
# Country code not found, considered invalid
|
||||
if not check_func(cr, uid, vat_country, vat_number, context=context):
|
||||
return False
|
||||
return check_func(vat_number)
|
||||
return True
|
||||
|
||||
def vat_change(self, cr, uid, ids, value, context=None):
|
||||
|
|
|
@ -7,12 +7,23 @@
|
|||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="account.view_partner_property_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="property_account_payable" position="after">
|
||||
<group colspan="2" col="6">
|
||||
<field name="vat" on_change="vat_change(vat)" colspan="4" />
|
||||
<field name="vat_subjected" colspan="1" groups="base.group_extended" />
|
||||
</group>
|
||||
<field name="property_account_payable" position="after">
|
||||
<group colspan="2" col="6">
|
||||
<field name="vat" on_change="vat_change(vat)" colspan="4" />
|
||||
<field name="vat_subjected" colspan="1" groups="base.group_extended" />
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="company_form_vat" model="ir.ui.view">
|
||||
<field name="name">res.company.form.vat.inherit</field>
|
||||
<field name="model">res.company</field>
|
||||
<field name="inherit_id" ref="base.view_company_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="currency_id" position="after">
|
||||
<field name="vat_check_vies" groups="base.group_extended" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (c) 2011 OpenERP S.A. <http://openerp.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class res_company_vat (osv.osv):
|
||||
_inherit = 'res.company'
|
||||
_columns = {
|
||||
'vat_check_vies': fields.boolean('VIES VAT Check',
|
||||
help="If checked, Partners VAT numbers will be fully validated against EU's VIES service "
|
||||
"rather than via a simple format validation (checksum)."),
|
||||
}
|
||||
|
||||
|
|
@ -206,6 +206,7 @@ class crm_lead(crm_case, osv.osv):
|
|||
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"),
|
||||
'color': fields.integer('Color Index'),
|
||||
'partner_address_name': fields.related('partner_address_id', 'name', type='char', string='Partner Contact Name', readonly=True),
|
||||
'partner_address_email': fields.related('partner_address_id', 'email', type='char', string='Partner Contact Email', readonly=True),
|
||||
'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True),
|
||||
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
|
||||
'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True),
|
||||
|
@ -784,17 +785,17 @@ class crm_lead(crm_case, osv.osv):
|
|||
This opens Meeting's calendar view to schedule meeting on current Opportunity
|
||||
@return : Dictionary value for created Meeting view
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
value = {}
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
for opp in self.browse(cr, uid, ids, context=context):
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
|
||||
# Get meeting views
|
||||
tree_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_tree_view_meet')
|
||||
form_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_form_view_meet')
|
||||
calander_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_calendar_view_meet')
|
||||
search_view = data_obj.get_object_reference(cr, uid, 'crm', 'view_crm_case_meetings_filter')
|
||||
|
||||
context = {
|
||||
context.update({
|
||||
'default_opportunity_id': opp.id,
|
||||
'default_partner_id': opp.partner_id and opp.partner_id.id or False,
|
||||
'default_user_id': uid,
|
||||
|
@ -802,7 +803,7 @@ class crm_lead(crm_case, osv.osv):
|
|||
'default_email_from': opp.email_from,
|
||||
'default_state': 'open',
|
||||
'default_name': opp.name
|
||||
}
|
||||
})
|
||||
value = {
|
||||
'name': _('Meetings'),
|
||||
'context': context,
|
||||
|
|
|
@ -305,31 +305,46 @@
|
|||
<field name="priority"/>
|
||||
<field name="planned_revenue" sum="Expected Revenues"/>
|
||||
<field name="user_email"/>
|
||||
<field name="user_id"/>
|
||||
<field name="partner_address_email"/>
|
||||
<templates>
|
||||
<t t-name="lead_details">
|
||||
<ul class="oe_kanban_tooltip">
|
||||
<li t-if="record.phone.raw_value"><b>Phone:</b> <field name="phone"/></li>
|
||||
<li><b>Probability:</b> <field name="probability"/>%%</li>
|
||||
<li><b>Creation date:</b> <field name="create_date"/></li>
|
||||
<li t-if="record.date_deadline.raw_value"><b>Date Deadline:</b> <field name="date_deadline"/></li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<t t-set="color" t-value="kanban_color(record.color.raw_value)"/>
|
||||
<div t-att-class="color + (record.priority.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
|
||||
<t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="border">oe_kanban_color_red</t>
|
||||
<div t-attf-class="#{kanban_color(record.color.raw_value)} #{border || ''}">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<table class="oe_kanban_table oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
|
||||
<tr>
|
||||
<td class="oe_kanban_title3" align="left" valign="middle">
|
||||
<td align="left" valign="middle" width="16">
|
||||
<a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
|
||||
<a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
|
||||
</td>
|
||||
<td align="left" valign="middle" class="oe_kanban_title3" tooltip="lead_details">
|
||||
<field name="partner_id"/>
|
||||
<t t-if="record.planned_revenue.raw_value">
|
||||
- <t t-esc="Math.round(record.planned_revenue.value)"/>
|
||||
<field name="company_currency"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="oe_kanban_title2" align="right" valign="middle" t-if="record.planned_revenue.raw_value" nowrap="nowrap">
|
||||
<t t-esc="Math.round(record.planned_revenue.value)"/> <field name="company_currency"/>
|
||||
</td>
|
||||
<td valign="top" width="22"><img t-att-src="kanban_gravatar(record.user_email.value, 22)" class="oe_kanban_gravatar"/></td>
|
||||
<td valign="top" width="22"><img t-att-src="kanban_gravatar(record.user_email.value, 22)" class="oe_kanban_gravatar" t-att-title="record.user_id.value"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
|
||||
<div class="oe_kanban_right oe_kanban_small">
|
||||
<field name="user_login"/>
|
||||
</div>
|
||||
<div>
|
||||
<b><field name="partner_address_name"/></b>
|
||||
<b>
|
||||
<a t-if="record.partner_address_email.raw_value" t-attf-href="mailto:#{record.partner_address_email.raw_value}">
|
||||
<field name="partner_address_name"/>
|
||||
</a>
|
||||
<field t-if="!record.partner_address_email.raw_value" name="partner_address_name"/>
|
||||
</b>
|
||||
</div>
|
||||
<div>
|
||||
<field name="name"/>
|
||||
|
@ -345,13 +360,14 @@
|
|||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
<a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
|
||||
<a string="Schedule/Log Call" name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action"/>
|
||||
<a string="Add Internal Note" name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" icon="terp-document-new" type="action"/>
|
||||
<a string="Schedule Meeting" name="action_makeMeeting" type="object" icon="stock_calendar"/>
|
||||
<a string="Add Internal Note" name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" icon="terp-document-new" type="action"/>
|
||||
</div>
|
||||
<div class="oe_kanban_right">
|
||||
<a name="case_pending" string="Pending" states="draft,open" type="object" icon="kanban-pause" />
|
||||
<a name="case_mark_won" string="Mark Won" states="open,pending" type="object" icon="kanban-apply" />
|
||||
<a name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" icon="kanban-stop" />
|
||||
<a name="case_pending" string="Pending" states="draft,open" type="object" icon="kanban-pause" />
|
||||
<a name="case_open" string="Open" states="pending" type="object" icon="gtk-media-play" />
|
||||
<a name="case_mark_won" string="Mark Won" states="open,pending" type="object" icon="kanban-apply" />
|
||||
</div>
|
||||
<br class="oe_kanban_clear"/>
|
||||
</div>
|
||||
|
|
|
@ -147,6 +147,7 @@ class crm_lead_report(osv.osv):
|
|||
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
|
||||
FROM
|
||||
crm_lead c
|
||||
WHERE c.active = 'true'
|
||||
)""")
|
||||
|
||||
crm_lead_report()
|
||||
|
|
|
@ -97,6 +97,7 @@ class crm_fundraising_report(osv.osv):
|
|||
avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
|
||||
from
|
||||
crm_fundraising c
|
||||
where c.active = 'true'
|
||||
group by to_char(c.date, 'YYYY'), to_char(c.date, 'MM'),\
|
||||
c.state, c.user_id,c.section_id,c.categ_id,type_id,c.partner_id,c.company_id,
|
||||
c.create_date,to_char(c.date, 'YYYY-MM-DD')
|
||||
|
|
|
@ -101,6 +101,7 @@ class crm_helpdesk_report(osv.osv):
|
|||
abs(avg(extract('epoch' from (c.date_deadline - c.date_closed)))/(3600*24)) as delay_expected
|
||||
from
|
||||
crm_helpdesk c
|
||||
where c.active = 'true'
|
||||
group by to_char(c.date, 'YYYY'), to_char(c.date, 'MM'),to_char(c.date, 'YYYY-MM-DD'),\
|
||||
c.state, c.user_id,c.section_id,c.priority,\
|
||||
c.partner_id,c.company_id,c.date_deadline,c.create_date,c.date,c.date_closed,\
|
||||
|
|
|
@ -100,6 +100,7 @@ class report_event_registration(osv.osv):
|
|||
event_registration c ON (e.id=c.event_id)
|
||||
LEFT JOIN
|
||||
event_type t ON (e.type=t.id)
|
||||
WHERE c.active = 'true'
|
||||
GROUP BY
|
||||
to_char(e.date_begin, 'YYYY'),
|
||||
to_char(e.date_begin, 'MM'),
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<form string="Leave Request">
|
||||
<group col="8" colspan="4">
|
||||
<field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" groups="base.group_hr_manager"/>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_manager"/>
|
||||
<group attrs="{'invisible':[('holiday_type','=','employee')]}">
|
||||
<field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')]}"/>
|
||||
</group>
|
||||
|
@ -104,7 +104,7 @@
|
|||
<form string="Allocation Request">
|
||||
<group col="8" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" string="Allocation Category" groups="base.group_hr_manager"/>
|
||||
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" string="Allocation Mode" groups="base.group_hr_manager"/>
|
||||
<group attrs="{'invisible':[('holiday_type','=','category')]}">
|
||||
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')]}"/>
|
||||
</group>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,9 +7,13 @@
|
|||
!python {model: ir.actions.todo}: |
|
||||
if self.browse(cr, uid, ref('l10n_be.config_call_account_template')).state=='open':
|
||||
wiz = self.pool.get('wizard.multi.charts.accounts')
|
||||
wiz_id = wiz.create(cr, uid, {
|
||||
values = {
|
||||
'chart_template_id': ref('l10n_be.l10nbe_chart_template')
|
||||
})
|
||||
}
|
||||
values.update(
|
||||
wiz.onchange_chart_template_id(cr, uid, False, ref('l10n_be.l10nbe_chart_template')).get('values', {})
|
||||
)
|
||||
wiz_id = wiz.create(cr, uid, values)
|
||||
wiz.execute(cr, uid, [wiz_id])
|
||||
self.write(cr, uid, [ref('l10n_be.config_call_account_template')], {
|
||||
'state': 'done'
|
||||
|
|
|
@ -124,15 +124,6 @@ class account_tax(osv.osv):
|
|||
|
||||
account_tax()
|
||||
|
||||
class account_journal(osv.osv):
|
||||
_inherit = "account.journal"
|
||||
|
||||
_columns = {
|
||||
'internal_sequence': fields.many2one('ir.sequence', 'Internal Sequence'),
|
||||
}
|
||||
|
||||
account_journal()
|
||||
|
||||
class wizard_multi_charts_accounts(osv.osv_memory):
|
||||
|
||||
_inherit = 'wizard.multi.charts.accounts'
|
||||
|
|
|
@ -96,18 +96,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_l10n_br_journal_form_inherit" model="ir.ui.view">
|
||||
<field name="name">l10n_br.journal.form.inherit</field>
|
||||
<field name="model">account.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_account_journal_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="sequence_id" position="after">
|
||||
<field name="internal_sequence"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
</openerp>
|
||||
|
|
|
@ -138,7 +138,7 @@
|
|||
</group>
|
||||
<separator colspan="4" string="Financial institute infos"/>
|
||||
<newline/>
|
||||
<field name="my_bank" attrs="{'invisible': [('company_id', '!=', True)]}" colspan="4"/>
|
||||
<field name="my_bank" attrs="{'invisible': [('company_id', '=', False)]}" colspan="4"/>
|
||||
<group string="BVR print options" colspan="4" attrs="{'invisible': [('my_bank', '!=', True)]}" >
|
||||
<field name="bvr_adherent_num"/>
|
||||
<field name="print_bank"/>
|
||||
|
|
|
@ -359,11 +359,12 @@
|
|||
</record>
|
||||
<record id="ch_1024" model="account.account.template">
|
||||
<field name="type">other</field>
|
||||
<field name="name">Compte en devise A</field>
|
||||
<field name="name">Compte en devise EUR</field>
|
||||
<field name="code">1024</field>
|
||||
<field name="user_type" ref="account_type_cash"/>
|
||||
<field name="note"/>
|
||||
<field ref="ch_102_0" name="parent_id"/>
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
</record>
|
||||
<record id="ch_1025" model="account.account.template">
|
||||
<field name="type">other</field>
|
||||
|
|
|
@ -109,7 +109,7 @@ class report_membership(osv.osv):
|
|||
LEFT JOIN membership_membership_line ml ON (ml.partner = p.id)
|
||||
LEFT JOIN account_invoice_line il ON (ml.account_invoice_line = il.id)
|
||||
LEFT JOIN account_invoice ai ON (il.invoice_id = ai.id)
|
||||
WHERE p.membership_state != 'none'
|
||||
WHERE p.membership_state != 'none' and p.active = 'true'
|
||||
GROUP BY
|
||||
p.id,
|
||||
p.user_id,
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<field name="type">kanban</field>
|
||||
<field name="inherit_id" ref="project.view_task_kanban"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//span[@class='oe_kanban_project_times']/t" position="before">
|
||||
<a name="pad_get" string="Pad" type="object" class="oe_kanban_button"><b>PAD</b></a>
|
||||
<xpath expr="//span[@class='oe_kanban_project_times']" position="before">
|
||||
<a name="pad_get" string="Pad" type="object" class="oe_kanban_button" style="margin-left: 5px;"><b>PAD</b></a>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -8,78 +8,80 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-07-04 14:16+0000\n"
|
||||
"PO-Revision-Date: 2011-07-11 09:51+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-11-29 07:47+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2011-11-05 05:57+0000\n"
|
||||
"X-Generator: Launchpad (build 14231)\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-30 05:27+0000\n"
|
||||
"X-Generator: Launchpad (build 14404)\n"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/share_wizard.py:55
|
||||
#, python-format
|
||||
msgid "Please select at least one user to share with"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie mindestens einen Benutzer zum Teilen"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/share_wizard.py:59
|
||||
#, python-format
|
||||
msgid "Please select at least one group to share with"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie mindestens eine Gruppe zum Teilen"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,group_id:0
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
msgstr "Gruppe"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,other_group_ids:0
|
||||
msgid "Those groups are assigned to the portal's users"
|
||||
msgstr ""
|
||||
msgstr "Diese Gruppen sind den Portalbenutzern zugeordnet"
|
||||
|
||||
#. module: portal
|
||||
#: view:share.wizard:0
|
||||
#: field:share.wizard,group_ids:0
|
||||
msgid "Existing groups"
|
||||
msgstr ""
|
||||
msgstr "Vorhandene Gruppen"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_portal_wizard_user
|
||||
msgid "Portal User Config"
|
||||
msgstr ""
|
||||
msgstr "Portalbenutzer Konfiguration"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard.user:0
|
||||
msgid "Portal User"
|
||||
msgstr ""
|
||||
msgstr "Portalbenutzer"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,override_menu:0
|
||||
msgid "Enable this option to override the Menu Action of portal users"
|
||||
msgstr ""
|
||||
msgstr "Aktivieren, um die Menü Aktion für Portalbenutzer zu überschreiben"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,user_email:0
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
msgstr "E-Mail"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Other Groups assigned to Users"
|
||||
msgstr ""
|
||||
msgstr "Andere dem Benutzer zugeteilte Gruppen"
|
||||
|
||||
#. module: portal
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr ""
|
||||
"Die gewählte Firma ist nicht in der Liste der erlaubten Firmen für diesen "
|
||||
"Benutzer"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
#: field:res.portal,widget_ids:0
|
||||
msgid "Widgets"
|
||||
msgstr ""
|
||||
msgstr "Oberflächenelemente"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.module.module,description:portal.module_meta_information
|
||||
|
@ -103,67 +105,68 @@ msgstr ""
|
|||
#. module: portal
|
||||
#: view:share.wizard:0
|
||||
msgid "Who do you want to share with?"
|
||||
msgstr ""
|
||||
msgstr "Mit wem wollen Sie teilen?"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard:0
|
||||
msgid "Send Invitations"
|
||||
msgstr ""
|
||||
msgstr "Versende Einladungen"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,url:0
|
||||
msgid "The url where portal users can connect to the server"
|
||||
msgstr ""
|
||||
msgstr "Die URL, mit der sich Portalbenutzer anmelden können"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.widget,widget_id:0
|
||||
msgid "Widget"
|
||||
msgstr ""
|
||||
msgstr "Oberflächenelement"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal.wizard,message:0
|
||||
msgid "This text is included in the welcome email sent to the users"
|
||||
msgstr ""
|
||||
msgstr "Dieser Text ist Bestandteil der Willkommen E-Mail an den Benutzer"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,menu_action_id:0
|
||||
msgid "If set, replaces the standard menu for the portal's users"
|
||||
msgstr ""
|
||||
"Wenn definiert, dann ersetzt dies das Standardmenü für Portalbenutzer"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,parent_menu_id:0
|
||||
msgid "Parent Menu"
|
||||
msgstr ""
|
||||
msgstr "Obermenü"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Portal Name"
|
||||
msgstr ""
|
||||
msgstr "Portalname"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard.user:0
|
||||
msgid "Portal Users"
|
||||
msgstr ""
|
||||
msgstr "Portalbenutzer"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,override_menu:0
|
||||
msgid "Override Menu Action of Users"
|
||||
msgstr ""
|
||||
msgstr "Überschreibe Die Menü-Aktion für Benutzer"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,menu_action_id:0
|
||||
msgid "Menu Action"
|
||||
msgstr ""
|
||||
msgstr "Menü Aktion"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,name:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
msgstr "Benutzer Name"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_portal_widget
|
||||
msgid "Portal Widgets"
|
||||
msgstr ""
|
||||
msgstr "Portal Oberflächenelemente"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_portal
|
||||
|
@ -172,47 +175,47 @@ msgstr ""
|
|||
#: field:res.portal.widget,portal_id:0
|
||||
#: field:res.portal.wizard,portal_id:0
|
||||
msgid "Portal"
|
||||
msgstr ""
|
||||
msgstr "Portal"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:35
|
||||
#, python-format
|
||||
msgid "Your OpenERP account at %(company)s"
|
||||
msgstr ""
|
||||
msgstr "Ihr OpenERP Konto bei %(company)s"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/portal.py:110
|
||||
#: code:addons/portal/portal.py:184
|
||||
#, python-format
|
||||
msgid "%s Menu"
|
||||
msgstr ""
|
||||
msgstr "%s Menü"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal.wizard,portal_id:0
|
||||
msgid "The portal in which new users must be added"
|
||||
msgstr ""
|
||||
msgstr "Das Portal, zu dem neue Benutzer hinzugefügt werden müssen"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,widget_ids:0
|
||||
msgid "Widgets assigned to portal users"
|
||||
msgstr ""
|
||||
msgstr "Oberflächenelemente, die Portalbenutzern zugeordnet sind"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:163
|
||||
#, python-format
|
||||
msgid "(missing url)"
|
||||
msgstr ""
|
||||
msgstr "(fehlende URL)"
|
||||
|
||||
#. module: portal
|
||||
#: view:share.wizard:0
|
||||
#: field:share.wizard,user_ids:0
|
||||
msgid "Existing users"
|
||||
msgstr ""
|
||||
msgstr "Bestehende Benutzer"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,wizard_id:0
|
||||
msgid "Wizard"
|
||||
msgstr ""
|
||||
msgstr "Assistent"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal.wizard.user,user_email:0
|
||||
|
@ -220,63 +223,65 @@ msgid ""
|
|||
"Will be used as user login. Also necessary to send the account information "
|
||||
"to new users"
|
||||
msgstr ""
|
||||
"Wird als Benutzer Login verwendet. Ebenso notwendig die Kontoinformation an "
|
||||
"neue Benutzer zu senden."
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,lang:0
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
msgstr "Sprache"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,url:0
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
msgstr "URL"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Widgets assigned to Users"
|
||||
msgstr ""
|
||||
msgstr "Oberflächenelemente, die Benutzern zugeordnet sind"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal.wizard.user,lang:0
|
||||
msgid "The language for the user's user interface"
|
||||
msgstr ""
|
||||
msgstr "Die Sprache für die Benutzerschnittstelle"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Website"
|
||||
msgstr ""
|
||||
msgstr "Webseite"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Create Parent Menu"
|
||||
msgstr ""
|
||||
msgstr "Erstelle Obermenü"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard:0
|
||||
msgid ""
|
||||
"The following text will be included in the welcome email sent to users."
|
||||
msgstr ""
|
||||
msgstr "Der folgende Text wird im Willkommen E-Mail verwendet werden"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:135
|
||||
#, python-format
|
||||
msgid "Email required"
|
||||
msgstr ""
|
||||
msgstr "E-Mail ist erforderlich"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr ""
|
||||
msgstr "res.users"
|
||||
|
||||
#. module: portal
|
||||
#: constraint:res.portal.wizard.user:0
|
||||
msgid "Invalid email address"
|
||||
msgstr ""
|
||||
msgstr "Ungültige E-Mail Adresse"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:136
|
||||
|
@ -284,28 +289,30 @@ msgstr ""
|
|||
msgid ""
|
||||
"You must have an email address in your User Preferences to send emails."
|
||||
msgstr ""
|
||||
"Sie müssen Ihre E-Mail Adresse in den Benuztereinstellungen erfassen um E-"
|
||||
"Mails senden zu können."
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_ir_ui_menu
|
||||
msgid "ir.ui.menu"
|
||||
msgstr ""
|
||||
msgstr "ir.ui.menu"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,group_id:0
|
||||
msgid "The group extended by this portal"
|
||||
msgstr ""
|
||||
msgstr "Die diesem Portal zugeordnete Gruppe"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
#: view:res.portal.wizard:0
|
||||
#: field:res.portal.wizard,user_ids:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Benutzer"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal,other_group_ids:0
|
||||
msgid "Other User Groups"
|
||||
msgstr ""
|
||||
msgstr "Andere Benutzergruppen"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.act_window,name:portal.portal_list_action
|
||||
|
@ -313,38 +320,38 @@ msgstr ""
|
|||
#: model:ir.ui.menu,name:portal.portal_menu
|
||||
#: view:res.portal:0
|
||||
msgid "Portals"
|
||||
msgstr ""
|
||||
msgstr "Portale"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal,parent_menu_id:0
|
||||
msgid "The menu action opens the submenus of this menu item"
|
||||
msgstr ""
|
||||
msgstr "Die Menü-Aktion öffnet Unter-Menüeinträge dieses Menüeintrags"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.widget,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
msgstr "Sequenz"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.users,partner_id:0
|
||||
msgid "Related Partner"
|
||||
msgstr ""
|
||||
msgstr "referenzierter Geschäftspartner"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal:0
|
||||
msgid "Portal Menu"
|
||||
msgstr ""
|
||||
msgstr "Portal Menü"
|
||||
|
||||
#. module: portal
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr ""
|
||||
msgstr "2 Benuzter können nicht den gleichen Login Code haben."
|
||||
|
||||
#. module: portal
|
||||
#: view:res.portal.wizard:0
|
||||
#: field:res.portal.wizard,message:0
|
||||
msgid "Invitation message"
|
||||
msgstr ""
|
||||
msgstr "Einladungstext"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:36
|
||||
|
@ -369,24 +376,24 @@ msgstr ""
|
|||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_portal_wizard
|
||||
msgid "Portal Wizard"
|
||||
msgstr ""
|
||||
msgstr "Portal Assistent"
|
||||
|
||||
#. module: portal
|
||||
#: help:res.portal.wizard.user,name:0
|
||||
msgid "The user's real name"
|
||||
msgstr ""
|
||||
msgstr "Der vollständige Name des Benutzers"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.act_window,name:portal.address_wizard_action
|
||||
#: model:ir.actions.act_window,name:portal.partner_wizard_action
|
||||
#: view:res.portal.wizard:0
|
||||
msgid "Add Portal Access"
|
||||
msgstr ""
|
||||
msgstr "Füge Portalberechtigung hinzu"
|
||||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.act_window,help:portal.portal_list_action
|
||||
|
@ -398,8 +405,14 @@ msgid ""
|
|||
"the portal's users.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Ein Portal erlaubt die Zuordnung von bestimmten Sichten und Regeln zu einer "
|
||||
"Benutzergruppe (die Portalgruppe).\n"
|
||||
"Ein Portalmenu, Oberflächenelemente und einzelne Gruppen können "
|
||||
"Portalbenutzern zugeordnet werden.\n"
|
||||
" "
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_share_wizard
|
||||
msgid "Share Wizard"
|
||||
msgstr ""
|
||||
msgstr "Freigabeassistent"
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<field name="sequence"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="product_tmpl_id" select="1" groups="product.group_product_variant"/>
|
||||
<field name="categ_id" select="1"/>
|
||||
<field name="min_quantity"/>
|
||||
<field name="base"/>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<separator colspan="4" string="Rules Test Match"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" select="1"/>
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="product_tmpl_id" select="1" groups="product.group_product_variant"/>
|
||||
<field name="categ_id" select="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<newline/>
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
<separator colspan="2" string="Performance"/>
|
||||
<field name="planned_hours" widget="float_time"/>
|
||||
<field name="effective_hours" widget="float_time" />
|
||||
<field name="resource_calendar_id"/>
|
||||
</group>
|
||||
<group col="2" colspan="2" name="misc">
|
||||
<separator colspan="4" string="Miscelleanous"/>
|
||||
|
@ -263,7 +264,7 @@
|
|||
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-media-play"/>
|
||||
<button name="%(action_project_task_reevaluate)d" states="done,cancelled" string="Reactivate" type="action" icon="gtk-convert" context="{'button_reactivate':True}" />
|
||||
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
|
||||
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending"/>
|
||||
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal"/>
|
||||
<button name="action_close" states="pending,open" string="Done" type="object" icon="terp-dialog-close"/>
|
||||
</group>
|
||||
</page>
|
||||
|
@ -329,9 +330,14 @@
|
|||
<field name="sequence"/>
|
||||
<field name="state"/>
|
||||
<field name="kanban_state"/>
|
||||
<field name="project_id"/>
|
||||
<field name="remaining_hours" sum="Remaining Time"/>
|
||||
<field name="date_deadline"/>
|
||||
<templates>
|
||||
<t t-name="task_details">
|
||||
<ul class="oe_kanban_tooltip" t-if="record.project_id.raw_value">
|
||||
<li><b>Project:</b> <field name="project_id"/></li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<t t-set="pad_url">http://pad.openerp.com/<t t-raw="_.str.underscored(_.str.trim(record.name.raw_value))"/></t>
|
||||
<t t-if="record.kanban_state.raw_value === 'blocked'" t-set="border">oe_kanban_color_red</t>
|
||||
|
@ -344,8 +350,8 @@
|
|||
<a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
|
||||
<a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
|
||||
</td>
|
||||
<td align="left" valign="middle">
|
||||
<b t-att-title="record.project_id.value"><field name="name"/></b>
|
||||
<td align="left" valign="middle" class="oe_kanban_title3" tooltip="task_details">
|
||||
<b><field name="name"/></b>
|
||||
</td>
|
||||
<td valign="top" width="22">
|
||||
<img t-att-src="kanban_gravatar(record.user_email.value, 22)" class="oe_kanban_gravatar" t-att-title="record.user_id.value"/>
|
||||
|
@ -355,8 +361,11 @@
|
|||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
|
||||
<div class="oe_kanban_description">
|
||||
<t t-esc="kanban_text_ellipsis(record.description.value, 160)"/>
|
||||
<span class="oe_kanban_project_times" style="white-space: nowrap">
|
||||
<i t-if="record.date_deadline.raw_value"><field name="date_deadline"/> ,</i>
|
||||
<i t-if="record.date_deadline.raw_value">
|
||||
<t t-if="record.description.raw_value">, </t>
|
||||
<field name="date_deadline"/>
|
||||
</i>
|
||||
<span class="oe_kanban_project_times" style="white-space: nowrap; padding-left: 5px;">
|
||||
<t t-set="hours" t-value="record.remaining_hours.raw_value"/>
|
||||
<t t-set="times" t-value="[
|
||||
[1, (hours gte 1 and hours lt 2)]
|
||||
|
@ -377,9 +386,11 @@
|
|||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
<a name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal"/>
|
||||
<a name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close"/>
|
||||
</div>
|
||||
<div class="oe_kanban_right">
|
||||
<a name="set_kanban_state_blocked" string="Block" kanban_states="normal,done" type="object" icon="kanban-stop"/>
|
||||
<a name="set_kanban_state_blocked" string="Mark as Blocked" kanban_states="normal,done" type="object" icon="kanban-stop"/>
|
||||
<a name="set_kanban_state_normal" string="Normal" kanban_states="blocked,done" type="object" icon="gtk-media-play"/>
|
||||
<a name="set_kanban_state_done" string="Done" kanban_states="blocked,normal" type="object" icon="kanban-apply"/>
|
||||
</div>
|
||||
|
@ -423,7 +434,7 @@
|
|||
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
|
||||
<field name="state" invisible="context.get('set_visible',False)"/>
|
||||
<button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-media-play" help="For changing to open state" invisible="context.get('set_visible',False)"/>
|
||||
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/>
|
||||
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal" help="For changing to delegate state"/>
|
||||
<button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
@ -518,7 +529,7 @@
|
|||
<field name="view_mode">tree,form,calendar,gantt,graph,kanban</field>
|
||||
<field eval="False" name="filter"/>
|
||||
<field name="view_id" ref="view_task_tree2"/>
|
||||
<field name="context">{"search_default_draft": 1, "search_default_open":1}</field>
|
||||
<field name="context">{"search_default_draft": 1, "search_default_open":1, "search_default_project_id": project_id}</field>
|
||||
<field name="search_view_id" ref="view_task_search_form"/>
|
||||
<field name="help">A task represents a work that has to be done. Each user works in his own list of tasks where he can record his task work in hours. He can work and close the task itself or delegate it to another user. If you delegate a task to another user, you get a new task in pending state, which will be reopened when you have to review the work achieved. If you install the project_timesheet module, task work can be invoiced based on the project configuration. With the project_mrp module, sales orders can create tasks automatically when they are confirmed.</field>
|
||||
</record>
|
||||
|
|
|
@ -91,7 +91,7 @@ class report_project_task_user(osv.osv):
|
|||
(extract('epoch' from (t.date_start-t.create_date)))/(3600*24) as opening_days,
|
||||
abs((extract('epoch' from (t.date_deadline-t.date_end)))/(3600*24)) as delay_endings_days
|
||||
FROM project_task t
|
||||
|
||||
WHERE t.active = 'true'
|
||||
GROUP BY
|
||||
t.id,
|
||||
remaining_hours,
|
||||
|
|
|
@ -487,7 +487,6 @@ project_issue()
|
|||
class project(osv.osv):
|
||||
_inherit = "project.project"
|
||||
_columns = {
|
||||
'resource_calendar_id' : fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
|
||||
'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
|
||||
'reply_to' : fields.char('Reply-To Email Address', size=256)
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<field eval="15.0" name="duration"/>
|
||||
<field eval=""Bug in Accounts module"" name="name"/>
|
||||
<field eval=""agr@agrolait.com"" name="email_from"/>
|
||||
<field name="type_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_programnotgivingproperoutput0" model="project.issue">
|
||||
|
@ -31,6 +32,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field eval=""Program not giving proper output"" name="name"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="type_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_outputincorrect0" model="project.issue">
|
||||
|
@ -45,6 +47,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_23"/>
|
||||
<field eval=""Output incorrect"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_problemloadingpage0" model="project.issue">
|
||||
|
@ -60,6 +63,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Problem loading page"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_pagenotfound0" model="project.issue">
|
||||
|
@ -74,6 +78,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Page not Found"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_programmingerror0" model="project.issue">
|
||||
|
@ -89,6 +94,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Programming Error"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_logicalerrorinprogram0" model="project.issue">
|
||||
|
@ -104,6 +110,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Logical Error in Program"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_constrainterror0" model="project.issue">
|
||||
|
@ -119,6 +126,7 @@
|
|||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Constraint Error"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_errorinprogram0" model="project.issue">
|
||||
|
@ -133,6 +141,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Error in Program"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_patcheserrorinprogram0" model="project.issue">
|
||||
|
@ -148,6 +157,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Patches Error in Program"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_newfeaturestobeadded0" model="project.issue">
|
||||
|
@ -163,6 +173,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field eval=""New Features To Be Added"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_merge"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_addmenustothemodule0" model="project.issue">
|
||||
|
@ -179,6 +190,7 @@
|
|||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field eval=""Add menus to the module"" name="name"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
<field name="type_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_includeattendancesheetinproject0" model="project.issue">
|
||||
|
@ -195,6 +207,7 @@
|
|||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Include Attendance sheet in Project"" name="name"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field name="type_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_createnewobject0" model="project.issue">
|
||||
|
@ -210,6 +223,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Create new object"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_improvereportsinhrms0" model="project.issue">
|
||||
|
@ -225,6 +239,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Improve Reports in HRMS"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_improvereportsinpms0" model="project.issue">
|
||||
|
@ -240,6 +255,7 @@
|
|||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Improve Reports in PMS"" name="name"/>
|
||||
<field name="type_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -398,19 +398,6 @@
|
|||
# Project
|
||||
# ------------------------------------------------------
|
||||
|
||||
<record id="project.view_project_resource_form1" model="ir.ui.view">
|
||||
<field name="name">Project Resource Calendar View</field>
|
||||
<field name="model">project.project</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="project.edit_project"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="priority" position="after">
|
||||
<field name="resource_calendar_id"/>
|
||||
</field>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_project_form_inherited" model="ir.ui.view">
|
||||
<field name="name">project.project.form.inherited</field>
|
||||
<field name="model">project.project</field>
|
||||
|
|
|
@ -104,7 +104,7 @@ class project_issue_report(osv.osv):
|
|||
|
||||
FROM
|
||||
project_issue c
|
||||
WHERE c.categ_id IN (select id from crm_case_categ where object_id in (select id from ir_model where model = 'project.issue'))
|
||||
WHERE c.active= 'true' and c.categ_id IN (select id from crm_case_categ where object_id in (select id from ir_model where model = 'project.issue'))
|
||||
)""")
|
||||
|
||||
project_issue_report()
|
||||
|
|
|
@ -9,3 +9,4 @@
|
|||
"access_resource_calendar_project_manager","resource.calendar.project.manager","resource.model_resource_calendar","project.group_project_manager",1,1,1,1
|
||||
"access_project_issue_report_user","project.issue.report user","model_project_issue_report","project.group_project_user",1,0,0,0
|
||||
"access_mail_message_issue_project_user","mail.message.user","mail.model_mail_message","project.group_project_user",1,1,1,0
|
||||
"access_crm_case_section","crm.case.section","crm.model_crm_case_section","project.group_project_user",1,0,0,0
|
||||
|
|
|
|
@ -26,7 +26,7 @@
|
|||
"website": "http://www.openerp.com",
|
||||
"category": "Project Management",
|
||||
"images": ["images/project_phase_form.jpeg","images/project_phases.jpeg", "images/resources_allocation.jpeg"],
|
||||
"depends": ["resource", "project"],
|
||||
"depends": ["project"],
|
||||
"description": """
|
||||
Long Term Project management module that tracks planning, scheduling, resources allocation.
|
||||
===========================================================================================
|
||||
|
|
|
@ -273,23 +273,6 @@
|
|||
</record>
|
||||
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project
|
||||
# ------------------------------------------------------
|
||||
|
||||
<record id="project.view_project_user_form1" model="ir.ui.view">
|
||||
<field name="name">Project Resource Calendar View</field>
|
||||
<field name="model">project.project</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="project.edit_project"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="effective_hours" position="after">
|
||||
<field name="resource_calendar_id"/>
|
||||
</field>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project Task
|
||||
# ------------------------------------------------------
|
||||
|
|
|
@ -65,7 +65,11 @@ More information on the methodology:
|
|||
"board_project_scrum_view.xml",
|
||||
],
|
||||
'demo_xml': ['project_scrum_demo.xml'],
|
||||
'test': ['test/project_scrum_report.yml'],
|
||||
'test': ['test/backlog_process.yml',
|
||||
'test/sprint_process.yml',
|
||||
'test/cancel_backlog.yml',
|
||||
'test/project_scrum_demo.yml',
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate' : '00736750152003010781',
|
||||
|
|
|
@ -262,7 +262,7 @@ class project_scrum_task(osv.osv):
|
|||
'project.scrum.product.backlog': (_get_task, ['sprint_id'], 10)
|
||||
}),
|
||||
}
|
||||
|
||||
#dead code
|
||||
def onchange_backlog_id(self, cr, uid, backlog_id=False):
|
||||
if not backlog_id:
|
||||
return {}
|
||||
|
@ -292,7 +292,7 @@ class project_scrum_meeting(osv.osv):
|
|||
_defaults = {
|
||||
'date' : lambda *a: time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
# dead code
|
||||
def button_send_to_master(self, cr, uid, ids, context=None):
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email:
|
||||
|
@ -303,6 +303,7 @@ class project_scrum_meeting(osv.osv):
|
|||
raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.'))
|
||||
return True
|
||||
|
||||
#dead code
|
||||
def button_send_product_owner(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
@ -316,6 +317,7 @@ class project_scrum_meeting(osv.osv):
|
|||
raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.'))
|
||||
return True
|
||||
|
||||
#dead code
|
||||
def email_send(self, cr, uid, ids, email, context=None):
|
||||
mail_message_obj = self.pool.get('mail.message')
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="product_owner_id" ref="base.user_root"/>
|
||||
<field model="res.users" name="scrum_master_id" search="[('login','=','admin')]"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
|
||||
<record id="scrum_sprint_1" model="project.scrum.sprint">
|
||||
|
@ -158,7 +157,6 @@
|
|||
<field name="expected_hours">6.0</field>
|
||||
<field name="note">This new system will enable you to migrate automatically from an old version of OpenERP to a new one. This system will migrate not only the OpenERP system but also the customers particularities. This happens without any kind of script or programming. It has been possible to carry out such a system thanks to the descriptive approach of OpenERP components. </field>
|
||||
<field name="sprint_id" ref="scrum_sprint_0"/>
|
||||
<field name="state">done</field>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
</record>
|
||||
<record id="scrum_product_backlog_1" model="project.scrum.product.backlog">
|
||||
|
@ -387,6 +385,9 @@
|
|||
<field name="state">open</field>
|
||||
<field name="product_backlog_id" ref="scrum_product_backlog_7"/>
|
||||
</record>
|
||||
|
||||
<!-- Resource: project_scrum.meeting -->
|
||||
|
||||
<record id="scrum_meeting_0" model="project.scrum.meeting">
|
||||
<field name="question_yesterday">
|
||||
Admin: Worked on the Automatic migration system
|
||||
|
|
|
@ -263,6 +263,8 @@
|
|||
<group colspan="4" col="6">
|
||||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<button name="%(mail.action_email_compose_message_wizard)d"
|
||||
string="Send Email" type="action" icon="terp-mail-message-new"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Scrum Meeting">
|
||||
|
@ -273,8 +275,6 @@
|
|||
<separator colspan="4" string="Are there anything blocking you?"/>
|
||||
<field colspan="4" name="question_blocks" nolabel="1"/>
|
||||
<separator colspan="4" string=""/>
|
||||
<button name="button_send_to_master" type="object" string="Send to Scrum Master" icon="gtk-ok"/>
|
||||
<button name="button_send_product_owner" type="object" string="Send to Product Owner" icon="gtk-ok"/>
|
||||
</page>
|
||||
<page string="Optional Info">
|
||||
<separator colspan="4" string="Are your Sprint Backlog estimate accurate ?"/>
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
-
|
||||
In Order to Test process of Project Agile Methology,
|
||||
-
|
||||
I put Backlog in pending state because of specification is not ready.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
Now Specification is ready so I Open backlog "Automatic migration system".
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_open(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after opened.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in open state}:
|
||||
- state == "open"
|
||||
-
|
||||
I close Backlog after review.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_close(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after closed.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in close state}:
|
||||
- state == "done"
|
||||
-
|
||||
I merge two Backlogs in to one Backlog.
|
||||
-
|
||||
!python {model: project.scrum.backlog.merge}: |
|
||||
self.check_backlogs(cr, uid, [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")], {"active_ids": [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")],
|
||||
"active_id": ref("scrum_product_backlog_1")
|
||||
})
|
|
@ -0,0 +1,50 @@
|
|||
-
|
||||
I cancel Backlog "Automatic migration system" from draft state.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I cancel opened Backlog "Editable Trees".
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_7")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_7, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I put Backlog in pending due to resource unavailability.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
I cancel pending Backlog "Automatic migration system".
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I Postpone opened Backlog "Reshape the complete menu".
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_postpone(cr, uid, [ref("scrum_product_backlog_6")])
|
||||
-
|
||||
I check state of Backlog after Postpone.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_6, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
|
@ -0,0 +1,3 @@
|
|||
-
|
||||
!record {model: project.scrum.sprint, id: scrum_sprint_0, view: False}:
|
||||
project_id: project.project_integrate_openerp
|
|
@ -1,9 +0,0 @@
|
|||
-
|
||||
In order to test the PDF reports defined on a Project Scrum, we will print Project Scrum Sprint Burndown Report
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
import netsvc, tools, os
|
||||
data_dict = {'model': 'project.scrum.sprint', 'id':ref('project_scrum.scrum_sprint_0')}
|
||||
(data, format) = netsvc.LocalService('report.scrum.sprint.burndown').create(cr, uid, [ref('project_scrum.scrum_sprint_0')], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'project_scrum-project_scrum_sprint_burndown.'+format), 'wb+').write(data)
|
|
@ -0,0 +1,78 @@
|
|||
-
|
||||
I put sprint in pending state to allocate task to resources.
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state of sprint after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
I assign Backlog into this Sprint
|
||||
-
|
||||
!python {model: project.scrum.backlog.assign.sprint}: |
|
||||
new_id = self.create(cr, uid, {'sprint_id': ref("scrum_sprint_0")})
|
||||
self.assign_sprint(cr, uid, [new_id], {"active_ids": [ref("scrum_product_backlog_0")]
|
||||
})
|
||||
backlog_obj = self.pool.get('project.scrum.product.backlog')
|
||||
task_obj = self.pool.get('project.task')
|
||||
|
||||
backlog_data = backlog_obj.browse(cr, uid, ref("scrum_product_backlog_0"), context)
|
||||
assert backlog_data.sprint_id.id == ref("scrum_sprint_0"), 'Sprint is not assigned'
|
||||
-
|
||||
I Open sprint of "Week 31"
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_open(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state of sprint after opened.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in Open state}:
|
||||
- state == "open"
|
||||
-
|
||||
I create tasks from backlog "Automatic migration system" for sprint
|
||||
-
|
||||
!python {model: project.scrum.backlog.create.task}: |
|
||||
new_id = self.create(cr, uid, {'user_id': ref("project.res_users_project_manager")})
|
||||
task_obj = self.pool.get('project.task')
|
||||
backlog_obj = self.pool.get('project.scrum.product.backlog')
|
||||
|
||||
new_task = self.do_create(cr, uid, [new_id], {"active_ids": [ref("scrum_product_backlog_0")]})
|
||||
backlog_data = backlog_obj.browse(cr, uid, ref("scrum_product_backlog_0"), context)
|
||||
task_ids = task_obj.search(cr, uid, [('product_backlog_id','=', backlog_data.id)])
|
||||
assert len(task_ids), "Task not created"
|
||||
task = task_obj.browse(cr, uid, task_ids[0], context)
|
||||
|
||||
assert task.name == backlog_data.name and task.total_hours == backlog_data.expected_hours and task.user_id and task.user_id.id == ref("project.res_users_project_manager"), 'Task not has been created'
|
||||
-
|
||||
I send email to scrum master with scrum meeting details.
|
||||
-
|
||||
!python {model: mail.compose.message }: |
|
||||
ctx = context.copy()
|
||||
ctx.update({'active_model': 'project.scrum.meeting', 'active_id': ref("scrum_meeting_0"), 'active_ids': [ref("scrum_meeting_0")]})
|
||||
vals = self.default_get(cr, uid , [], context=ctx)
|
||||
try:
|
||||
new_id = self.create(cr, uid, {'email_to': 'xyz@mycompany.com', 'subject': 'test'})
|
||||
self.send_mail(cr, uid, [new_id], context=ctx)
|
||||
except Exception, e:
|
||||
pass
|
||||
-
|
||||
I close sprint after review
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_close(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state after closed sprint.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint shoud be in close state}:
|
||||
- state == "done"
|
||||
-
|
||||
I print Burndown chart of Sprint.
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
import netsvc, tools, os
|
||||
data_dict = {'model': 'project.scrum.sprint', 'id':ref('scrum_sprint_0')}
|
||||
(data, format) = netsvc.LocalService('report.scrum.sprint.burndown').create(cr, uid, [ref('scrum_sprint_0')], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'project_scrum-project_scrum_sprint_burndown.'+format), 'wb+').write(data)
|
|
@ -136,7 +136,6 @@
|
|||
<action name="%(purchase.action_po_per_month_tree)d" string="Purchase order per month"/>
|
||||
-->
|
||||
<action name="%(purchase_draft)d" string="Request for Quotations"/>
|
||||
<action name="%(purchase_waiting)d" string="Purchase Order Waiting Approval"/>
|
||||
</column>
|
||||
<column>
|
||||
<action name="%(action_purchase_order_monthly_categ_graph)d" string="Monthly Purchase by Category"/>
|
||||
|
|
|
@ -172,7 +172,7 @@
|
|||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Purchase Order">
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_supplier':1}" />
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_supplier':1,'default_supplier':1,'default_customer':0}" />
|
||||
<field name="partner_address_id"/>
|
||||
<field domain="[('type','=','purchase')]" name="pricelist_id" groups="base.group_extended"/>
|
||||
<field name="origin" groups="base.group_extended"/>
|
||||
|
|
|
@ -35,16 +35,12 @@ class stock_move(osv.osv):
|
|||
on the purchase order in case the valuation data was not directly specified during picking
|
||||
confirmation.
|
||||
"""
|
||||
product_uom_obj = self.pool.get('product.uom')
|
||||
|
||||
reference_amount, reference_currency_id = super(stock_move, self)._get_reference_accounting_values_for_valuation(cr, uid, move, context=context)
|
||||
default_uom = move.product_id.uom_id.id
|
||||
qty = product_uom_obj._compute_qty(cr, uid, move.product_uom.id, move.product_qty, default_uom)
|
||||
if move.product_id.cost_method != 'average' or not move.price_unit:
|
||||
# no average price costing or cost not specified during picking validation, we will
|
||||
# plug the purchase line values if they are found.
|
||||
if move.purchase_line_id and move.picking_id.purchase_id.pricelist_id:
|
||||
reference_amount, reference_currency_id = move.purchase_line_id.price_unit * qty, move.picking_id.purchase_id.pricelist_id.currency_id.id
|
||||
reference_amount, reference_currency_id = move.purchase_line_id.price_unit * move.product_qty, move.picking_id.purchase_id.pricelist_id.currency_id.id
|
||||
return reference_amount, reference_currency_id
|
||||
|
||||
stock_move()
|
||||
|
|
|
@ -37,9 +37,10 @@ that exceeds minimum amount set by configuration wizard.
|
|||
'website': 'http://www.openerp.com',
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'purchase_double_validation_workflow.xml',
|
||||
'purchase_double_validation_installer.xml'
|
||||
],
|
||||
'purchase_double_validation_workflow.xml',
|
||||
'purchase_double_validation_installer.xml',
|
||||
'board_purchase_view.xml'
|
||||
],
|
||||
'test': ['test/purchase_double_validation_test.yml'],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="purchase_waiting" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Order Waiting Approval</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('date_order','>',time.strftime('%Y-01-01 00:00:00')),('date_order','<',time.strftime('%Y-12-31 23:59:59')), ('state','in',('wait','confirmed'))]</field>
|
||||
</record>
|
||||
|
||||
<record id="board_purchase_form2" model="ir.ui.view">
|
||||
<field name="name">board.purchase.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="purchase.board_purchase_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/board/column/action[@string='Request for Quotations']" position="after">
|
||||
<action name="%(purchase_waiting)d" string="Purchase Order Waiting Approval"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
|
||||
"PO-Revision-Date: 2011-11-07 12:47+0000\n"
|
||||
"Last-Translator: Ferdinand-camptocamp <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-11-29 07:02+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <kde-i18n-doc@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-12 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 14277)\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-30 05:27+0000\n"
|
||||
"X-Generator: Launchpad (build 14404)\n"
|
||||
|
||||
#. module: stock
|
||||
#: field:product.product,track_outgoing:0
|
||||
|
@ -2256,7 +2256,7 @@ msgstr "Zukünftige Menge"
|
|||
#. module: stock
|
||||
#: field:product.category,property_stock_valuation_account_id:0
|
||||
msgid "Stock Valuation Account"
|
||||
msgstr ""
|
||||
msgstr "Lagerbestandskonto"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,note:0
|
||||
|
@ -4220,7 +4220,7 @@ msgstr "Optionale Lagerort Details, nur als Information"
|
|||
#. module: stock
|
||||
#: view:product.product:0
|
||||
msgid "Expected Stock Variations"
|
||||
msgstr ""
|
||||
msgstr "Erwartete Lagerveränderungen"
|
||||
|
||||
#~ msgid "LIFO"
|
||||
#~ msgstr "LiFo"
|
||||
|
|
|
@ -159,6 +159,7 @@ class report_stock_lines_date(osv.osv):
|
|||
left outer join stock_inventory_line l on (p.id=l.product_id)
|
||||
left join stock_inventory s on (l.inventory_id=s.id)
|
||||
and s.state = 'done'
|
||||
where p.active='true'
|
||||
group by p.id
|
||||
)""")
|
||||
report_stock_lines_date()
|
||||
|
|
|
@ -128,15 +128,12 @@ class report_stock_move(osv.osv):
|
|||
LEFT JOIN product_uom pu ON (sm.product_uom=pu.id)
|
||||
LEFT JOIN product_uom pu2 ON (sm.product_uom=pu2.id)
|
||||
LEFT JOIN product_template pt ON (pp.product_tmpl_id=pt.id)
|
||||
LEFT JOIN stock_location sl ON (sm.location_id = sl.id)
|
||||
|
||||
GROUP BY
|
||||
sm.id,sp.type, sm.date,sm.address_id,
|
||||
sm.product_id,sm.state,sm.product_uom,sm.date_expected,
|
||||
sm.product_id,pt.standard_price, sm.picking_id, sm.product_qty,
|
||||
sm.company_id,sm.product_qty, sm.location_id,sm.location_dest_id,pu.factor,pt.categ_id, sp.stock_journal_id)
|
||||
AS al
|
||||
|
||||
GROUP BY
|
||||
al.out_qty,al.in_qty,al.curr_year,al.curr_month,
|
||||
al.curr_day,al.curr_day_diff,al.curr_day_diff1,al.curr_day_diff2,al.dp,al.location_id,al.location_dest_id,
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
|
||||
"PO-Revision-Date: 2011-01-12 15:14+0000\n"
|
||||
"Last-Translator: Ferdinand-camptocamp <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-11-29 07:08+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2011-11-05 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 14231)\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-30 05:27+0000\n"
|
||||
"X-Generator: Launchpad (build 14404)\n"
|
||||
|
||||
#. module: stock_planning
|
||||
#: code:addons/stock_planning/wizard/stock_planning_createlines.py:73
|
||||
|
@ -352,7 +352,7 @@ msgstr " Bedarfsmenge "
|
|||
#: code:addons/stock_planning/stock_planning.py:719
|
||||
#, python-format
|
||||
msgid "%s Pick List %s (%s, %s) %s %s \n"
|
||||
msgstr ""
|
||||
msgstr "%s Lieferscheinliste %s (%s, %s) %s %s \n"
|
||||
|
||||
#. module: stock_planning
|
||||
#: view:stock.planning.createlines:0
|
||||
|
@ -473,7 +473,7 @@ msgstr "Fehler !"
|
|||
#: code:addons/stock_planning/stock_planning.py:626
|
||||
#, python-format
|
||||
msgid "Manual planning for %s"
|
||||
msgstr ""
|
||||
msgstr "Manuelle Planung für %s"
|
||||
|
||||
#. module: stock_planning
|
||||
#: field:stock.sale.forecast,analyzed_user_id:0
|
||||
|
@ -1248,7 +1248,7 @@ msgstr "Erzeuge Prognosepositionen für d. ausgew. Zentrallager u. d. Periode"
|
|||
#: code:addons/stock_planning/stock_planning.py:656
|
||||
#, python-format
|
||||
msgid "%s Requisition (%s, %s) %s %s \n"
|
||||
msgstr ""
|
||||
msgstr "%s Anforderung (%s, %s) %s %s \n"
|
||||
|
||||
#. module: stock_planning
|
||||
#: code:addons/stock_planning/stock_planning.py:655
|
||||
|
@ -1757,6 +1757,22 @@ msgid ""
|
|||
" Expected Out: %s Incoming Left: %s \n"
|
||||
" Stock Simulation: %s Minimum stock: %s "
|
||||
msgstr ""
|
||||
"Lieferschein erstellt im MPS von Benutzer: %s Erstellungsdatum: %s "
|
||||
" \n"
|
||||
"Für Periode: %s entspricht Status: \n"
|
||||
" Lagervorschau: %s \n"
|
||||
" Anfangsbestand: %s \n"
|
||||
" Geplant Auslieferung: %s Geplanter Eingang: %s "
|
||||
" \n"
|
||||
" bereits ausgeliefert: %s Bereits eingegangen: %s "
|
||||
" \n"
|
||||
" bestätigte Auslieferung: %s Bestätigter Eingang: %s "
|
||||
" \n"
|
||||
" geplante Auslieferung vor: %s Geplanter Eingang vor: %s "
|
||||
" \n"
|
||||
" erwartete Auslieferung: %s restlicher Eingang: %s "
|
||||
" \n"
|
||||
" Lager Simulation: %s Minimumbestand: %s "
|
||||
|
||||
#. module: stock_planning
|
||||
#: field:stock.planning,procure_to_stock:0
|
||||
|
|
Loading…
Reference in New Issue