diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index bef6e68221a..6fcc211bd84 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -261,7 +261,7 @@ class account_invoice(osv.osv):
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Partner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
'move_lines':fields.function(_get_lines, type='many2many', relation='account.move.line', string='Entry Lines'),
- 'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='Residual',
+ 'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='To Pay',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50),
'account.invoice.tax': (_get_invoice_tax, None, 50),
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index d14106bab5f..55d27e2e842 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -120,7 +120,7 @@
-
+
@@ -269,15 +269,13 @@
-
-
-
+
+
+
+
-
-
-
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index d6df834f4e8..da6ec7f73a1 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -10,7 +10,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
@@ -82,8 +82,8 @@
@@ -209,9 +209,9 @@
-
+
@@ -274,7 +274,7 @@
-
+
Journal Items (Search)
account.move.line
@@ -302,7 +302,7 @@
-
+
@@ -314,19 +314,19 @@
-
+
Review Asset Categories
account.asset.category
form
tree,form
-
+
3
-
+
diff --git a/addons/account_budget/i18n/fa.po b/addons/account_budget/i18n/fa.po
new file mode 100644
index 00000000000..9981083fe36
--- /dev/null
+++ b/addons/account_budget/i18n/fa.po
@@ -0,0 +1,441 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:52+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_budget
+#: field:crossovered.budget,creating_user_id:0
+msgid "Responsible User"
+msgstr ""
+
+#. module: account_budget
+#: selection:crossovered.budget,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
+#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
+msgid "Budgetary Positions"
+msgstr ""
+
+#. module: account_budget
+#: code:addons/account_budget/account_budget.py:119
+#, python-format
+msgid "The General Budget '%s' has no Accounts!"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+msgid "Printed at:"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+msgid "Confirm"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget,validating_user_id:0
+msgid "Validate User"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_summary_report
+msgid "Print Summary"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget.lines,paid_date:0
+msgid "Paid Date"
+msgstr ""
+
+#. module: account_budget
+#: field:account.budget.analytic,date_to:0
+#: field:account.budget.crossvered.report,date_to:0
+#: field:account.budget.crossvered.summary.report,date_to:0
+#: field:account.budget.report,date_to:0
+msgid "End of period"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+#: selection:crossovered.budget,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+msgid "at"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.report:0
+#: model:ir.actions.act_window,name:account_budget.action_account_budget_analytic
+#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_report
+msgid "Print Budgets"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+msgid "Currency:"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.model,name:account_budget.model_account_budget_crossvered_report
+msgid "Account Budget crossvered report"
+msgstr ""
+
+#. module: account_budget
+#: selection:crossovered.budget,state:0
+msgid "Validated"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget.lines,percentage:0
+msgid "Percentage"
+msgstr ""
+
+#. module: account_budget
+#: report:crossovered.budget.report:0
+msgid "to"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget,state:0
+msgid "Status"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.actions.act_window,help:account_budget.act_crossovered_budget_view
+msgid ""
+"A budget is a forecast of your company's income and expenses expected for a "
+"period in the future. With a budget, a company is able to carefully look at "
+"how much money they are taking in during a given period, and figure out the "
+"best way to divide it among various categories. By keeping track of where "
+"your money goes, you may be less likely to overspend, and more likely to "
+"meet your financial goals. Forecast a budget by detailing the expected "
+"revenue per analytic account and monitor its evolution based on the actuals "
+"realised during that period."
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.crossvered.summary.report:0
+msgid "This wizard is used to print summary of budgets"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "%"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Description"
+msgstr ""
+
+#. module: account_budget
+#: report:crossovered.budget.report:0
+msgid "Currency"
+msgstr ""
+
+#. module: account_budget
+#: report:crossovered.budget.report:0
+msgid "Total :"
+msgstr ""
+
+#. module: account_budget
+#: field:account.budget.post,company_id:0
+#: field:crossovered.budget,company_id:0
+#: field:crossovered.budget.lines,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+msgid "To Approve"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.post:0
+#: view:crossovered.budget:0
+#: field:crossovered.budget.lines,planned_amount:0
+msgid "Planned Amount"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Perc(%)"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+#: selection:crossovered.budget,state:0
+msgid "Done"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Practical Amt"
+msgstr ""
+
+#. module: account_budget
+#: view:account.analytic.account:0
+#: view:account.budget.post:0
+#: view:crossovered.budget:0
+#: field:crossovered.budget.lines,practical_amount:0
+msgid "Practical Amount"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget,date_to:0
+#: field:crossovered.budget.lines,date_to:0
+msgid "End Date"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.model,name:account_budget.model_account_budget_analytic
+#: model:ir.model,name:account_budget.model_account_budget_report
+msgid "Account Budget report for analytic account"
+msgstr ""
+
+#. module: account_budget
+#: view:account.analytic.account:0
+msgid "Theoritical Amount"
+msgstr ""
+
+#. module: account_budget
+#: field:account.budget.post,name:0
+#: field:crossovered.budget,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.model,name:account_budget.model_crossovered_budget_lines
+msgid "Budget Line"
+msgstr ""
+
+#. module: account_budget
+#: view:account.analytic.account:0
+#: view:account.budget.post:0
+msgid "Lines"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: view:crossovered.budget:0
+#: field:crossovered.budget.lines,crossovered_budget_id:0
+#: report:crossovered.budget.report:0
+#: model:ir.actions.report.xml,name:account_budget.account_budget
+#: model:ir.model,name:account_budget.model_crossovered_budget
+msgid "Budget"
+msgstr ""
+
+#. module: account_budget
+#: code:addons/account_budget/account_budget.py:119
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: account_budget
+#: field:account.budget.post,code:0
+#: field:crossovered.budget,code:0
+msgid "Code"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.analytic:0
+#: view:account.budget.crossvered.report:0
+msgid "This wizard is used to print budget"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view
+#: model:ir.actions.act_window,name:account_budget.action_account_budget_post_tree
+#: model:ir.actions.act_window,name:account_budget.action_account_budget_report
+#: model:ir.actions.report.xml,name:account_budget.report_crossovered_budget
+#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_view
+#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
+#: model:ir.ui.menu,name:account_budget.next_id_31
+#: model:ir.ui.menu,name:account_budget.next_id_pos
+msgid "Budgets"
+msgstr ""
+
+#. module: account_budget
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr ""
+
+#. module: account_budget
+#: selection:crossovered.budget,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: account_budget
+#: view:crossovered.budget:0
+msgid "Approve"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget,date_from:0
+#: field:crossovered.budget.lines,date_from:0
+msgid "Start Date"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.post:0
+#: field:crossovered.budget.lines,general_budget_id:0
+#: model:ir.model,name:account_budget.model_account_budget_post
+msgid "Budgetary Position"
+msgstr ""
+
+#. module: account_budget
+#: field:account.budget.analytic,date_from:0
+#: field:account.budget.crossvered.report,date_from:0
+#: field:account.budget.crossvered.summary.report,date_from:0
+#: field:account.budget.report,date_from:0
+msgid "Start of period"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.model,name:account_budget.model_account_budget_crossvered_summary_report
+msgid "Account Budget crossvered summary report"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Theoretical Amt"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.analytic:0
+#: view:account.budget.crossvered.report:0
+#: view:account.budget.crossvered.summary.report:0
+#: view:account.budget.report:0
+msgid "Select Dates Period"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.analytic:0
+#: view:account.budget.crossvered.report:0
+#: view:account.budget.crossvered.summary.report:0
+#: view:account.budget.report:0
+msgid "Print"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.module.module,description:account_budget.module_meta_information
+msgid ""
+"This module allows accountants to manage analytic and crossovered budgets.\n"
+"\n"
+"Once the Master Budgets and the Budgets are defined (in "
+"Accounting/Budgets/),\n"
+"the Project Managers can set the planned amount on each Analytic Account.\n"
+"\n"
+"The accountant has the possibility to see the total of amount planned for "
+"each\n"
+"Budget and Master Budget in order to ensure the total planned is not\n"
+"greater/lower than what he planned for this Budget/Master Budget. Each list "
+"of\n"
+"record can also be switched to a graphical view of it.\n"
+"\n"
+"Three reports are available:\n"
+" 1. The first is available from a list of Budgets. It gives the "
+"spreading, for these Budgets, of the Analytic Accounts per Master Budgets.\n"
+"\n"
+" 2. The second is a summary of the previous one, it only gives the "
+"spreading, for the selected Budgets, of the Analytic Accounts.\n"
+"\n"
+" 3. The last one is available from the Analytic Chart of Accounts. It "
+"gives the spreading, for the selected Analytic Accounts, of the Master "
+"Budgets per Budgets.\n"
+"\n"
+msgstr ""
+
+#. module: account_budget
+#: field:crossovered.budget.lines,analytic_account_id:0
+#: model:ir.model,name:account_budget.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+msgid "Budget :"
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Planned Amt"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.post:0
+#: field:account.budget.post,account_ids:0
+msgid "Accounts"
+msgstr ""
+
+#. module: account_budget
+#: view:account.analytic.account:0
+#: field:account.analytic.account,crossovered_budget_line:0
+#: view:account.budget.post:0
+#: field:account.budget.post,crossovered_budget_line:0
+#: view:crossovered.budget:0
+#: field:crossovered.budget,crossovered_budget_line:0
+#: view:crossovered.budget.lines:0
+#: model:ir.actions.act_window,name:account_budget.act_account_analytic_account_cb_lines
+#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_lines_view
+#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_lines_view
+msgid "Budget Lines"
+msgstr ""
+
+#. module: account_budget
+#: view:account.budget.analytic:0
+#: view:account.budget.crossvered.report:0
+#: view:account.budget.crossvered.summary.report:0
+#: view:account.budget.report:0
+#: view:crossovered.budget:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_budget
+#: model:ir.module.module,shortdesc:account_budget.module_meta_information
+msgid "Budget Management"
+msgstr ""
+
+#. module: account_budget
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: account_budget
+#: report:account.budget:0
+#: report:crossovered.budget.report:0
+msgid "Analysis from"
+msgstr ""
diff --git a/addons/account_cancel/i18n/fa.po b/addons/account_cancel/i18n/fa.po
new file mode 100644
index 00000000000..807d683515c
--- /dev/null
+++ b/addons/account_cancel/i18n/fa.po
@@ -0,0 +1,32 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:53+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_cancel
+#: model:ir.module.module,description:account_cancel.module_meta_information
+msgid ""
+"\n"
+" Module adds 'Allow cancelling entries' field on form view of account "
+"journal. If set to true it allows user to cancel entries & invoices.\n"
+" "
+msgstr ""
+
+#. module: account_cancel
+#: model:ir.module.module,shortdesc:account_cancel.module_meta_information
+msgid "Account Cancel"
+msgstr ""
diff --git a/addons/account_chart/i18n/fa.po b/addons/account_chart/i18n/fa.po
new file mode 100644
index 00000000000..3aca6c7161a
--- /dev/null
+++ b/addons/account_chart/i18n/fa.po
@@ -0,0 +1,28 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:54+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_chart
+#: model:ir.module.module,description:account_chart.module_meta_information
+msgid "Remove minimal account chart"
+msgstr ""
+
+#. module: account_chart
+#: model:ir.module.module,shortdesc:account_chart.module_meta_information
+msgid "Charts of Accounts"
+msgstr ""
diff --git a/addons/account_coda/i18n/fa.po b/addons/account_coda/i18n/fa.po
new file mode 100644
index 00000000000..4f0fb9af76c
--- /dev/null
+++ b/addons/account_coda/i18n/fa.po
@@ -0,0 +1,259 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:54+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_coda
+#: help:account.coda,journal_id:0
+#: field:account.coda.import,journal_id:0
+msgid "Bank Journal"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda.import,note:0
+msgid "Log"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_coda_import
+msgid "Account Coda Import"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,name:0
+msgid "Coda file"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda.import,awaiting_account:0
+msgid "Default Account for Unrecognized Movement"
+msgstr ""
+
+#. module: account_coda
+#: help:account.coda,date:0
+msgid "Import Date"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,note:0
+msgid "Import log"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Import"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Coda import"
+msgstr ""
+
+#. module: account_coda
+#: code:addons/account_coda/account_coda.py:51
+#, python-format
+msgid "Coda file not found for bank statement !!"
+msgstr ""
+
+#. module: account_coda
+#: help:account.coda.import,awaiting_account:0
+msgid ""
+"Set here the default account that will be used, if the partner is found but "
+"does not have the bank account, or if he is domiciled"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_coda
+#: help:account.coda.import,def_payable:0
+msgid ""
+"Set here the payable account that will be used, by default, if the partner "
+"is not found"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Search Coda"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,date:0
+msgid "Date"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
+msgid "Coda Import Logs"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_coda
+msgid "coda for an Account"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda.import,def_payable:0
+msgid "Default Payable Account"
+msgstr ""
+
+#. module: account_coda
+#: help:account.coda,name:0
+msgid "Store the detail of bank statements"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Open Statements"
+msgstr ""
+
+#. module: account_coda
+#: code:addons/account_coda/wizard/account_coda_import.py:167
+#, python-format
+msgid "The bank account %s is not defined for the partner %s.\n"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda_import
+msgid "Import Coda Statements"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+#: model:ir.actions.act_window,name:account_coda.action_account_coda_import
+msgid "Import Coda Statement"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.module.module,description:account_coda.module_meta_information
+msgid ""
+"\n"
+" Module provides functionality to import\n"
+" bank statements from coda files.\n"
+" "
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Statements"
+msgstr ""
+
+#. module: account_coda
+#: field:account.bank.statement,coda_id:0
+msgid "Coda"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Results :"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Result of Imported Coda Statements"
+msgstr ""
+
+#. module: account_coda
+#: help:account.coda.import,def_receivable:0
+msgid ""
+"Set here the receivable account that will be used, by default, if the "
+"partner is not found"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda.import,coda:0
+#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
+msgid "Coda File"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_bank_statement
+msgid "Bank Statement"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.actions.act_window,name:account_coda.action_account_coda
+msgid "Coda Logs"
+msgstr ""
+
+#. module: account_coda
+#: code:addons/account_coda/wizard/account_coda_import.py:311
+#, python-format
+msgid "Result"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Click on 'New' to select your file :"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda.import,def_receivable:0
+msgid "Default Receivable Account"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Close"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,statement_ids:0
+msgid "Generated Bank Statements"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.module.module,shortdesc:account_coda.module_meta_information
+msgid "Account CODA - import bank statements from coda file"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Configure Your Journal and Account :"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Coda Import"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,journal_id:0
+msgid "Journal"
+msgstr ""
diff --git a/addons/account_followup/i18n/fa.po b/addons/account_followup/i18n/fa.po
new file mode 100644
index 00000000000..7d5a113dd86
--- /dev/null
+++ b/addons/account_followup/i18n/fa.po
@@ -0,0 +1,718 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:56+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:48+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:295
+#, python-format
+msgid "Followup Summary"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup:0
+msgid "Search Followup"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.module.module,description:account_followup.module_meta_information
+msgid ""
+"\n"
+" Modules to automate letters for unpaid invoices, with multi-level "
+"recalls.\n"
+"\n"
+" You can define your multiple levels of recall through the menu:\n"
+" Accounting/Configuration/Miscellaneous/Follow-Ups\n"
+"\n"
+" Once it is defined, you can automatically print recalls every day\n"
+" through simply clicking on the menu:\n"
+" Accounting/Periodical Processing/Billing/Send followups\n"
+"\n"
+" It will generate a PDF with all the letters according to the the\n"
+" different levels of recall defined. You can define different policies\n"
+" for different companies. You can also send mail to the customer.\n"
+"\n"
+" Note that if you want to change the followup level for a given "
+"partner/account entry, you can do from in the menu:\n"
+" Accounting/Reporting/Generic Reporting/Partner Accounts/Follow-ups "
+"Sent\n"
+"\n"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:290
+#, python-format
+msgid ""
+"\n"
+"\n"
+"E-Mail sent to following Partners successfully. !\n"
+"\n"
+"%s"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup:0
+#: field:account_followup.followup,followup_line:0
+msgid "Follow-Up"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup,company_id:0
+#: view:account_followup.stat:0
+#: field:account_followup.stat,company_id:0
+#: field:account_followup.stat.by.partner,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Invoice Date"
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print.all,email_subject:0
+msgid "Email Subject"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.actions.act_window,help:account_followup.action_followup_stat
+msgid ""
+"Follow up on the reminders sent over to your partners for unpaid invoices."
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+#: view:account_followup.followup.line:0
+msgid "Legend"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Ok"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Select Partners to Remind"
+msgstr ""
+
+#. module: account_followup
+#: constraint:account.move.line:0
+msgid "You can not create move line on closed account."
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print,date:0
+msgid "Follow-up Sending Date"
+msgstr ""
+
+#. module: account_followup
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr ""
+
+#. module: account_followup
+#: selection:account_followup.followup.line,start:0
+msgid "Net Days"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
+#: model:ir.ui.menu,name:account_followup.account_followup_menu
+msgid "Follow-Ups"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat.by.partner:0
+msgid "Balance > 0"
+msgstr ""
+
+#. module: account_followup
+#: view:account.move.line:0
+msgid "Total debit"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(heading)s: Move line header"
+msgstr ""
+
+#. module: account_followup
+#: view:res.company:0
+#: field:res.company,follow_up_msg:0
+msgid "Follow-up Message"
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print,followup_id:0
+msgid "Follow-up"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "VAT:"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+#: field:account_followup.stat,partner_id:0
+#: field:account_followup.stat.by.partner,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Date :"
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print.all,partner_ids:0
+msgid "Partners"
+msgstr ""
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:138
+#, python-format
+msgid "Invoices Reminder"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_followup_followup
+msgid "Account Follow Up"
+msgstr ""
+
+#. module: account_followup
+#: selection:account_followup.followup.line,start:0
+msgid "End of Month"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Not Litigation"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(user_signature)s: User name"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,debit:0
+msgid "Debit"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print:0
+msgid ""
+"This feature allows you to send reminders to partners with pending invoices. "
+"You can send them the default message for unpaid invoices or manually enter "
+"a message should you need to remind them of a specific information."
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Ref"
+msgstr ""
+
+#. module: account_followup
+#: help:account_followup.followup.line,sequence:0
+msgid "Gives the sequence order when displaying a list of follow-up lines."
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+#: field:account.followup.print.all,email_body:0
+msgid "Email body"
+msgstr ""
+
+#. module: account_followup
+#: field:account.move.line,followup_line_id:0
+msgid "Follow-up Level"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,date_followup:0
+#: field:account_followup.stat.by.partner,date_followup:0
+msgid "Latest followup"
+msgstr ""
+
+#. module: account_followup
+#: model:account_followup.followup.line,description:account_followup.demo_followup_line2
+msgid ""
+"\n"
+"Dear %(partner_name)s,\n"
+"\n"
+"We are disappointed to see that despite sending a reminder, that your "
+"account is now seriously overdue.\n"
+"\n"
+"It is essential that immediate payment is made, otherwise we will have to "
+"consider placing a stop on your account which means that we will no longer "
+"be able to supply your company with (goods/services).\n"
+"Please, take appropriate measures in order to carry out this payment in the "
+"next 8 days\n"
+"\n"
+"If there is a problem with paying invoice that we are not aware of, do not "
+"hesitate to contact our accounting department at (+32).10.68.94.39. so that "
+"we can resolve the matter quickly.\n"
+"\n"
+"Details of due payments is printed below.\n"
+"\n"
+"Best Regards,\n"
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print.all,partner_lang:0
+msgid "Send Email in Partner Language"
+msgstr ""
+
+#. module: account_followup
+#: constraint:account.move.line:0
+msgid ""
+"You can not create move line on receivable/payable account without partner"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Partner Selection"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup.line,description:0
+msgid "Printed Message"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print:0
+#: view:account.followup.print.all:0
+#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
+#: model:ir.actions.act_window,name:account_followup.action_account_followup_print_all
+#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
+msgid "Send followups"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat.by.partner:0
+msgid "Partner to Remind"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup.line,followup_id:0
+#: field:account_followup.stat,followup_id:0
+msgid "Follow Ups"
+msgstr ""
+
+#. module: account_followup
+#: model:account_followup.followup.line,description:account_followup.demo_followup_line1
+msgid ""
+"\n"
+"Dear %(partner_name)s,\n"
+"\n"
+"Exception made if there was a mistake of ours, it seems that the following "
+"amount staid unpaid. Please, take appropriate measures in order to carry out "
+"this payment in the next 8 days.\n"
+"\n"
+"Would your payment have been carried out after this mail was sent, please "
+"consider the present one as void. Do not hesitate to contact our accounting "
+"department at (+32).10.68.94.39.\n"
+"\n"
+"Best Regards,\n"
+msgstr ""
+
+#. module: account_followup
+#: model:account_followup.followup.line,description:account_followup.demo_followup_line3
+msgid ""
+"\n"
+"Dear %(partner_name)s,\n"
+"\n"
+"Despite several reminders, your account is still not settled.\n"
+"\n"
+"Unless full payment is made in next 8 days , then legal action for the "
+"recovery of the debt, will be taken without further notice.\n"
+"\n"
+"I trust that this action will prove unnecessary and details of due payments "
+"is printed below.\n"
+"\n"
+"In case of any queries concerning this matter, do not hesitate to contact "
+"our accounting department at (+32).10.68.94.39.\n"
+"\n"
+"Best Regards,\n"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Send Mails"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Currency"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
+msgid "Followup Statistics by Partner"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.module.module,shortdesc:account_followup.module_meta_information
+msgid "Accounting follow-ups management"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,blocked:0
+msgid "Blocked"
+msgstr ""
+
+#. module: account_followup
+#: help:account.followup.print,date:0
+msgid ""
+"This field allow you to select a forecast date to plan your follow-ups"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Due"
+msgstr ""
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:56
+#, python-format
+msgid "Select Partners"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Email Settings"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "Print Follow Ups"
+msgstr ""
+
+#. module: account_followup
+#: field:account.move.line,followup_date:0
+msgid "Latest Follow-up"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Sub-Total:"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Balance:"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_followup_stat
+msgid "Followup Statistics"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Paid"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup.line:0
+msgid "%(user_signature)s: User Name"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_followup
+#: constraint:account.move.line:0
+msgid "Company must be same for its related account and period."
+msgstr ""
+
+#. module: account_followup
+#: field:account.followup.print.all,email_conf:0
+msgid "Send email confirmation"
+msgstr ""
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:287
+#, python-format
+msgid ""
+"All E-mails have been successfully sent to Partners:.\n"
+"\n"
+"%s"
+msgstr ""
+
+#. module: account_followup
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(company_name)s: User's Company name"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup:0
+msgid "Followup Lines"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,credit:0
+msgid "Credit"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Maturity Date"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup.line:0
+msgid "%(partner_name)s: Partner Name"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Follow-Up lines"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(company_currency)s: User's Company Currency"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+#: field:account_followup.stat,balance:0
+#: field:account_followup.stat.by.partner,balance:0
+msgid "Balance"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup.line,start:0
+msgid "Type of Term"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_followup_print
+#: model:ir.model,name:account_followup.model_account_followup_print_all
+msgid "Print Followup & Send Mail to Customers"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,date_move_last:0
+#: field:account_followup.stat.by.partner,date_move_last:0
+msgid "Last move"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
+msgid "Followup Report"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print:0
+#: view:account.followup.print.all:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup.line:0
+msgid "Follow-Up Lines"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Litigation"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat.by.partner,max_followup_id:0
+msgid "Max Follow Up Level"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all
+msgid "Payable Items"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(followup_amount)s: Total Amount Due"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+#: view:account_followup.followup.line:0
+msgid "%(date)s: Current Date"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Followup Level"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup:0
+#: field:account_followup.followup,description:0
+#: report:account_followup.followup.print:0
+msgid "Description"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "This Fiscal year"
+msgstr ""
+
+#. module: account_followup
+#: view:account.move.line:0
+msgid "Partner entries"
+msgstr ""
+
+#. module: account_followup
+#: help:account.followup.print.all,partner_lang:0
+msgid ""
+"Do not change message text, if you want to send email in partner language, "
+"or configure from company"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_all
+msgid "Receivable Items"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+#: model:ir.actions.act_window,name:account_followup.action_followup_stat
+#: model:ir.ui.menu,name:account_followup.menu_action_followup_stat_follow
+msgid "Follow-ups Sent"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup,name:0
+#: field:account_followup.followup.line,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.stat,date_move:0
+#: field:account_followup.stat.by.partner,date_move:0
+msgid "First move"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Li."
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Maturity"
+msgstr ""
+
+#. module: account_followup
+#: code:addons/account_followup/wizard/account_followup_print.py:289
+#, python-format
+msgid ""
+"E-Mail not sent to following Partners, Email not available !\n"
+"\n"
+"%s"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print:0
+msgid "Continue"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup.line,delay:0
+msgid "Days of delay"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Document : Customer account statement"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+#: field:account.followup.print.all,summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: account_followup
+#: view:account.move.line:0
+msgid "Total credit"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(line)s: Ledger Posting lines"
+msgstr ""
+
+#. module: account_followup
+#: field:account_followup.followup.line,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.followup.line:0
+msgid "%(company_name)s: User's Company Name"
+msgstr ""
+
+#. module: account_followup
+#: report:account_followup.followup.print:0
+msgid "Customer Ref :"
+msgstr ""
+
+#. module: account_followup
+#: view:account.followup.print.all:0
+msgid "%(partner_name)s: Partner name"
+msgstr ""
+
+#. module: account_followup
+#: view:account_followup.stat:0
+msgid "Latest Followup Date"
+msgstr ""
+
+#. module: account_followup
+#: model:ir.model,name:account_followup.model_account_followup_followup_line
+msgid "Follow-Up Criteria"
+msgstr ""
+
+#. module: account_followup
+#: constraint:account.move.line:0
+msgid "You can not create move line on view account."
+msgstr ""
diff --git a/addons/account_invoice_layout/i18n/fa.po b/addons/account_invoice_layout/i18n/fa.po
new file mode 100644
index 00000000000..742b7fbd93d
--- /dev/null
+++ b/addons/account_invoice_layout/i18n/fa.po
@@ -0,0 +1,366 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:56+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+msgid "Sub Total"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Note:"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+#: field:notify.message,name:0
+msgid "Title"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.actions.act_window,name:account_invoice_layout.action_account_invoice_special_msg
+#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_layout_message
+msgid "Invoices with Layout and Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Disc. (%)"
+msgstr ""
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+msgid "Note"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.model,name:account_invoice_layout.model_notify_message
+msgid "Notify By Messages"
+msgstr ""
+
+#. module: account_invoice_layout
+#: help:notify.message,msg:0
+msgid ""
+"This notification will appear at the bottom of the Invoices when printed."
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.module.module,description:account_invoice_layout.module_meta_information
+msgid ""
+"\n"
+" This module provides some features to improve the layout of the "
+"invoices.\n"
+"\n"
+" It gives you the possibility to\n"
+" * order all the lines of an invoice\n"
+" * add titles, comment lines, sub total lines\n"
+" * draw horizontal lines and put page breaks\n"
+"\n"
+" Moreover, there is one option which allows you to print all the selected "
+"invoices with a given special message at the bottom of it. This feature can "
+"be very useful for printing your invoices with end-of-year wishes, special "
+"punctual conditions...\n"
+"\n"
+" "
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "VAT :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Tel. :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: account_invoice_layout
+#: field:account.invoice,abstract_line_ids:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:account.invoice.line:0
+msgid "Seq."
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.ui.menu,name:account_invoice_layout.menu_finan_config_notify_message
+msgid "Notification Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+msgid "Product"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Description"
+msgstr ""
+
+#. module: account_invoice_layout
+#: help:account.invoice.line,sequence:0
+msgid "Gives the sequence order when displaying a list of invoice lines."
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Price"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Invoice Date"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+msgid "Taxes:"
+msgstr ""
+
+#. module: account_invoice_layout
+#: field:account.invoice.line,functional_field:0
+msgid "Source Account"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
+msgid "Write Messages"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Base"
+msgstr ""
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+msgid "Page Break"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:notify.message:0
+#: field:notify.message,msg:0
+msgid "Special Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: help:account.invoice.special.msg,message:0
+msgid "Message to Print at the bottom of report"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Quantity"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Refund"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Fax :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+msgid "Total:"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:account.invoice.special.msg:0
+msgid "Select Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:notify.message:0
+msgid "Messages"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_1
+msgid "Invoices with Layout"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Description / Taxes"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Amount"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:notify.message,msg:account_invoice_layout.demo_message1
+msgid "ERP & CRM Solutions..."
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:notify_account.invoice:0
+msgid "Net Total :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:notify_account.invoice:0
+msgid "Total :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: account_invoice_layout
+#: field:account.invoice.line,sequence:0
+msgid "Sequence Number"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.model,name:account_invoice_layout.model_account_invoice_special_msg
+msgid "Account Invoice Special Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Origin"
+msgstr ""
+
+#. module: account_invoice_layout
+#: field:account.invoice.line,state:0
+msgid "Type"
+msgstr ""
+
+#. module: account_invoice_layout
+#: selection:account.invoice.line,state:0
+msgid "Separator Line"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Your Reference"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
+msgid "Invoices Layout Improvement"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:account.invoice.special.msg:0
+msgid "Print"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Tax"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.model,name:account_invoice_layout.model_account_invoice_line
+msgid "Invoice Line"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+msgid "Net Total:"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:notify.message:0
+msgid "Write a notification or a wishful message."
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: model:ir.model,name:account_invoice_layout.model_account_invoice
+#: report:notify_account.invoice:0
+msgid "Invoice"
+msgstr ""
+
+#. module: account_invoice_layout
+#: view:account.invoice.special.msg:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:account.invoice.layout:0
+#: report:notify_account.invoice:0
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: account_invoice_layout
+#: field:account.invoice.special.msg,message:0
+msgid "Message"
+msgstr ""
+
+#. module: account_invoice_layout
+#: report:notify_account.invoice:0
+msgid "Taxes :"
+msgstr ""
+
+#. module: account_invoice_layout
+#: model:ir.ui.menu,name:account_invoice_layout.menu_notify_mesage_tree_form
+msgid "All Notification Messages"
+msgstr ""
diff --git a/addons/account_payment/i18n/fa.po b/addons/account_payment/i18n/fa.po
new file mode 100644
index 00000000000..d69fa3f3ba7
--- /dev/null
+++ b/addons/account_payment/i18n/fa.po
@@ -0,0 +1,714 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:56+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_payment
+#: field:payment.order,date_scheduled:0
+msgid "Scheduled date if fixed"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,currency:0
+msgid "Partner Currency"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Set to draft"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.order,mode:0
+msgid "Select the Payment Mode to be applied."
+msgstr ""
+
+#. module: account_payment
+#: view:payment.mode:0
+#: view:payment.order:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account_payment
+#: model:ir.module.module,description:account_payment.module_meta_information
+msgid ""
+"\n"
+"This module provides :\n"
+"* a more efficient way to manage invoice payment.\n"
+"* a basic mechanism to easily plug various automated payment.\n"
+" "
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,line_ids:0
+msgid "Payment lines"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+#: field:payment.line,info_owner:0
+#: view:payment.order:0
+msgid "Owner Account"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.order,state:0
+msgid ""
+"When an order is placed the state is 'Draft'.\n"
+" Once the bank is confirmed the state is set to 'Confirmed'.\n"
+" Then the order is paid the state is 'Done'."
+msgstr ""
+
+#. module: account_payment
+#: help:account.invoice,amount_to_pay:0
+msgid ""
+"The amount which should be paid at the current date\n"
+"minus the amount which is already in payment order"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.mode,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,date_prefered:0
+msgid "Preferred date"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.line,state:0
+msgid "Free"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order.create,entries:0
+msgid "Entries"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Used Account"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,ml_maturity_date:0
+#: field:payment.order.create,duedate:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account_payment
+#: constraint:account.move.line:0
+msgid "You can not create move line on closed account."
+msgstr ""
+
+#. module: account_payment
+#: view:account.move.line:0
+msgid "Account Entry Line"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order.create:0
+msgid "_Add to payment order"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement
+#: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm
+msgid "Payment Populate statement"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+#: view:payment.order:0
+msgid "Amount"
+msgstr ""
+
+#. module: account_payment
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Total in Company Currency"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.order,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree_new
+msgid "New Payment Order"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+#: field:payment.order,reference:0
+msgid "Reference"
+msgstr ""
+
+#. module: account_payment
+#: sql_constraint:payment.line:0
+msgid "The payment line name must be unique!"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
+#: model:ir.ui.menu,name:account_payment.menu_action_payment_order_form
+msgid "Payment Orders"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.order,date_prefered:0
+msgid "Directly"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_payment_line_form
+#: model:ir.model,name:account_payment.model_payment_line
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "Payment Line"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+msgid "Amount Total"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+#: selection:payment.order,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,ml_date_created:0
+msgid "Invoice Effective Date"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Execution Type"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.line,state:0
+msgid "Structured"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+#: field:payment.order,state:0
+msgid "State"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "Transaction Information"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_payment_mode_form
+#: model:ir.model,name:account_payment.model_payment_mode
+#: model:ir.ui.menu,name:account_payment.menu_action_payment_mode_form
+#: view:payment.mode:0
+#: view:payment.order:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,ml_date_created:0
+msgid "Effective Date"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,ml_inv_ref:0
+msgid "Invoice Ref."
+msgstr ""
+
+#. module: account_payment
+#: help:payment.order,date_prefered:0
+msgid ""
+"Choose an option for the Payment Order:'Fixed' stands for a date specified "
+"by you.'Directly' stands for the direct execution.'Due date' stands for the "
+"scheduled date of execution."
+msgstr ""
+
+#. module: account_payment
+#: code:addons/account_payment/account_move_line.py:110
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account_payment
+#: view:account.move.line:0
+msgid "Total debit"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,date_done:0
+msgid "Execution date"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.mode,journal:0
+msgid "Bank or Cash Journal for the Payment Mode"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.order,date_prefered:0
+msgid "Fixed date"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,info_partner:0
+#: view:payment.order:0
+msgid "Destination Account"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+msgid "Desitination Account"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Search Payment Orders"
+msgstr ""
+
+#. module: account_payment
+#: constraint:account.move.line:0
+msgid ""
+"You can not create move line on receivable/payable account without partner"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,create_date:0
+msgid "Created"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Select Invoices to Pay"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+msgid "Currency Amount Total"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Make Payments"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,state:0
+msgid "Communication Type"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.module.module,shortdesc:account_payment.module_meta_information
+msgid "Payment Management"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,bank_statement_line_id:0
+msgid "Bank statement line"
+msgstr ""
+
+#. module: account_payment
+#: selection:payment.order,date_prefered:0
+msgid "Due date"
+msgstr ""
+
+#. module: account_payment
+#: field:account.invoice,amount_to_pay:0
+msgid "Amount to be paid"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Currency"
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.make.payment:0
+msgid "Yes"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,info_owner:0
+msgid "Address of the Main Partner"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,date:0
+msgid ""
+"If no payment date is specified, the bank will treat this payment line "
+"directly"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.model,name:account_payment.model_account_payment_populate_statement
+msgid "Account Payment Populate Statement"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.mode,name:0
+msgid "Mode of Payment"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Value Date"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Payment Type"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,amount_currency:0
+msgid "Payment amount in the partner currency"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+#: selection:payment.order,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,communication2:0
+msgid "The successor message of Communication."
+msgstr ""
+
+#. module: account_payment
+#: code:addons/account_payment/account_move_line.py:110
+#, python-format
+msgid "No partner defined on entry line"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,info_partner:0
+msgid "Address of the Ordering Customer."
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.populate.statement:0
+msgid "Populate Statement:"
+msgstr ""
+
+#. module: account_payment
+#: view:account.move.line:0
+msgid "Total credit"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.order,date_scheduled:0
+msgid "Select a date if you have chosen Preferred Date to be fixed."
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: account_payment
+#: field:account.payment.populate.statement,lines:0
+#: model:ir.actions.act_window,name:account_payment.act_account_invoice_2_payment_line
+msgid "Payment Lines"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.model,name:account_payment.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_payment
+#: constraint:account.move.line:0
+msgid "Company must be same for its related account and period."
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,move_line_id:0
+msgid ""
+"This Entry Line will be referred for the information of the ordering "
+"customer."
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order.create:0
+msgid "Search"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.report.xml,name:account_payment.payment_order1
+#: model:ir.model,name:account_payment.model_payment_order
+msgid "Payment Order"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,date:0
+msgid "Payment Date"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Total:"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,date_created:0
+msgid "Creation date"
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.populate.statement:0
+msgid "ADD"
+msgstr ""
+
+#. module: account_payment
+#: view:account.bank.statement:0
+msgid "Import payment lines"
+msgstr ""
+
+#. module: account_payment
+#: field:account.move.line,amount_to_pay:0
+msgid "Amount to pay"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,amount:0
+msgid "Amount in Company Currency"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,partner_id:0
+msgid "The Ordering Customer"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.model,name:account_payment.model_account_payment_make_payment
+msgid "Account make payment"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Invoice Ref"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,name:0
+msgid "Your Reference"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,mode:0
+msgid "Payment mode"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Payment order"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "General Information"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+#: selection:payment.order,state:0
+msgid "Done"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.model,name:account_payment.model_account_invoice
+msgid "Invoice"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,communication:0
+msgid "Communication"
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.make.payment:0
+#: view:account.payment.populate.statement:0
+#: view:payment.order:0
+#: view:payment.order.create:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "Information"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,help:account_payment.action_payment_order_tree
+msgid ""
+"A payment order is a payment request from your company to pay a supplier "
+"invoice or a customer credit note. Here you can register all payment orders "
+"that should be done, keep track of all payment orders and mention the "
+"invoice reference and the partner the payment should be done for."
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,amount:0
+msgid "Payment amount in the company currency"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order.create:0
+msgid "Search Payment lines"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,amount_currency:0
+msgid "Amount in Partner Currency"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,communication2:0
+msgid "Communication 2"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,bank_id:0
+msgid "Destination Bank account"
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.make.payment:0
+msgid "Are you sure you want to make payment?"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.mode:0
+#: field:payment.mode,journal:0
+msgid "Journal"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.mode,bank_id:0
+msgid "Bank account"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.order:0
+msgid "Confirm Payments"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,company_currency:0
+#: report:payment.order:0
+msgid "Company Currency"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.ui.menu,name:account_payment.menu_main_payment
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "Payment"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Payment Order / Payment"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,move_line_id:0
+msgid "Entry line"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.line,communication:0
+msgid ""
+"Used as the message between ordering customer and current company. Depicts "
+"'What do you want to say to the recipient about this order ?'"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.mode,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_payment
+#: report:payment.order:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: account_payment
+#: view:payment.line:0
+#: view:payment.order:0
+msgid "Entry Information"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.model,name:account_payment.model_payment_order_create
+msgid "payment.order.create"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,order_id:0
+msgid "Order"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.order,total:0
+msgid "Total"
+msgstr ""
+
+#. module: account_payment
+#: view:account.payment.make.payment:0
+#: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment
+msgid "Make Payment"
+msgstr ""
+
+#. module: account_payment
+#: field:payment.line,partner_id:0
+#: report:payment.order:0
+msgid "Partner"
+msgstr ""
+
+#. module: account_payment
+#: model:ir.actions.act_window,name:account_payment.action_create_payment_order
+msgid "Populate Payment"
+msgstr ""
+
+#. module: account_payment
+#: help:payment.mode,bank_id:0
+msgid "Bank Account for the Payment Mode"
+msgstr ""
+
+#. module: account_payment
+#: constraint:account.move.line:0
+msgid "You can not create move line on view account."
+msgstr ""
diff --git a/addons/account_sequence/i18n/fa.po b/addons/account_sequence/i18n/fa.po
new file mode 100644
index 00000000000..953f96793b6
--- /dev/null
+++ b/addons/account_sequence/i18n/fa.po
@@ -0,0 +1,221 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:58+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
+msgid "Account Sequence Application Configuration"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move:0
+msgid ""
+"You cannot create entries on different periods/journals in the same move"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.move,internal_sequence_number:0
+#: help:account.move.line,internal_sequence_number:0
+msgid "Internal Sequence Number"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_next:0
+msgid "Next number of this sequence"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_next:0
+msgid "Next Number"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_increment:0
+msgid "Increment Number"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.module.module,description:account_sequence.module_meta_information
+msgid ""
+"\n"
+" This module maintains internal sequence number for accounting entries.\n"
+" "
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.module.module,shortdesc:account_sequence.module_meta_information
+msgid "Entries Sequence Numbering"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_increment:0
+msgid "The next number of the sequence will be incremented by this number"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure Your Account Sequence Application"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,suffix:0
+msgid "Suffix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.journal,internal_sequence_id:0
+msgid ""
+"This sequence will be used to maintain the internal number for the journal "
+"entries related to this journal."
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,padding:0
+msgid "Number padding"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.move,internal_sequence_number:0
+#: field:account.move.line,internal_sequence_number:0
+msgid "Internal Number"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "Company must be same for its related account and period."
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,padding:0
+msgid ""
+"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
+"get the required padding size."
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "You can not create move line on closed account."
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move:0
+msgid ""
+"You cannot create more than one move per period on centralized journal"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.journal,internal_sequence_id:0
+msgid "Internal Sequence"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_sequence_installer
+msgid "account.sequence.installer"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,prefix:0
+msgid "Prefix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,suffix:0
+msgid "Suffix"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "title"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,prefix:0
+msgid "Prefix"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid ""
+"You can not create move line on receivable/payable account without partner"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "You can enhance the Account Sequence Application by installing ."
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "You can not create move line on view account."
+msgstr ""
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index 2b63157ef30..0e82dd24da5 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -992,6 +992,7 @@ class account_voucher(osv.osv):
context = {}
move_line_obj = self.pool.get('account.move.line')
currency_obj = self.pool.get('res.currency')
+ tax_obj = self.pool.get('account.tax')
tot_line = line_total
rec_lst_ids = []
diff --git a/addons/account_voucher/i18n/fa.po b/addons/account_voucher/i18n/fa.po
new file mode 100644
index 00000000000..2cf94347ae1
--- /dev/null
+++ b/addons/account_voucher/i18n/fa.po
@@ -0,0 +1,1020 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 16:57+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: account_voucher
+#: view:account.voucher.unreconcile:0
+msgid "Unreconciliation transactions"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:247
+#, python-format
+msgid "Write-Off"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Payment Ref"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Open Customer Journal Entries"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+msgid "Voucher Date"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Particulars"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: view:sale.receipt.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:596
+#, python-format
+msgid "Cannot delete Voucher(s) which are already opened or paid !"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Supplier"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.report.xml,name:account_voucher.report_account_voucher_print
+msgid "Voucher Print"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.module.module,description:account_voucher.module_meta_information
+msgid ""
+"Account Voucher module includes all the basic requirements of\n"
+" Voucher Entries for Bank, Cash, Sales, Purchase, Expanse, Contra, "
+"etc...\n"
+" * Voucher Entry\n"
+" * Voucher Receipt\n"
+" * Cheque Register\n"
+" "
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: model:ir.actions.act_window,name:account_voucher.act_pay_bills
+msgid "Bill Payment"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:746
+#, python-format
+msgid ""
+"You have to configure account base code and account tax code on the '%s' tax!"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice.lines:0
+#: code:addons/account_voucher/wizard/account_statement_from_invoice.py:182
+#: model:ir.actions.act_window,name:account_voucher.action_view_account_statement_from_invoice_lines
+#, python-format
+msgid "Import Entries"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_account_voucher_unreconcile
+msgid "Account voucher unreconcile"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt
+msgid ""
+"When you sell products to a customer, you can give him a sales receipt or an "
+"invoice. When the sales receipt is confirmed, it creates journal items "
+"automatically and you can record the customer payment related to this sales "
+"receipt."
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Pay Bill"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,company_id:0
+#: field:account.voucher.line,company_id:0
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: account_voucher
+#: help:account.voucher,reference:0
+msgid "Transaction reference number."
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_view_account_voucher_unreconcile
+msgid "Unreconcile entries"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Voucher Statistics"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Validate"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Search Vouchers"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,type:0
+#: selection:sale.receipt.report,type:0
+msgid "Purchase"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,account_id:0
+#: field:account.voucher.line,account_id:0
+#: field:sale.receipt.report,account_id:0
+msgid "Account"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,line_dr_ids:0
+msgid "Debits"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice.lines:0
+msgid "Ok"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt_report_all
+msgid ""
+"From this report, you can have an overview of the amount invoiced to your "
+"customer as well as payment delays. The tool search can also be used to "
+"personalise your Invoices reports and so, match this analysis to your needs."
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,date_due:0
+#: field:account.voucher.line,date_due:0
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,date_due:0
+msgid "Due Date"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,narration:0
+msgid "Notes"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_vendor_receipt
+msgid ""
+"Sales payment allows you to register the payments you receive from your "
+"customers. In order to record a payment, you must enter the customer, the "
+"payment method (=the journal) and the payment amount. OpenERP will propose "
+"to you automatically the reconciliation of this payment with the open "
+"invoices or sales receipts."
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,type:0
+#: selection:sale.receipt.report,type:0
+msgid "Sale"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,move_line_id:0
+msgid "Journal Item"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,reference:0
+msgid "Ref #"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,amount:0
+#: report:voucher.print:0
+msgid "Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Payment Options"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Other Information"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,state:0
+#: selection:sale.receipt.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.statement.from.invoice,date:0
+msgid "Date payment"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_account_bank_statement_line
+msgid "Bank Statement Line"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt
+#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt
+msgid "Supplier Vouchers"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: view:account.voucher.unreconcile:0
+msgid "Unreconcile"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,tax_id:0
+msgid "Tax"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Amount (in words) :"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,nbr:0
+msgid "# of Voucher Lines"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,account_analytic_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Payment Information"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice:0
+msgid "Go"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Paid Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.bank.statement:0
+msgid "Import Invoices"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Account :"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,type:0
+#: selection:sale.receipt.report,type:0
+msgid "Receipt"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "On Account of :"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,writeoff_amount:0
+msgid "Write-Off Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Sales Lines"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Date:"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,state:0
+#: view:sale.receipt.report:0
+msgid "State"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.module.module,shortdesc:account_voucher.module_meta_information
+msgid "Accounting Voucher Entries"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,type:0
+msgid "Type"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.unreconcile,remove:0
+msgid "Want to remove accounting entries too ?"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open
+msgid "Voucher Entries"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:645
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Supplier Voucher"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list
+msgid "Vouchers Entries"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,name:0
+msgid "Memo"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt
+#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt
+msgid "Sales Receipt"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:596
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Bill Information"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher.unreconcile:0
+msgid "Unreconciliation"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,due_delay:0
+msgid "Avg. Due Delay"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.invoice:0
+#: code:addons/account_voucher/invoice.py:32
+#, python-format
+msgid "Pay Invoice"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:746
+#, python-format
+msgid "No Account Base Code and Account Tax Code!"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,tax_amount:0
+msgid "Tax Amount"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Voucher Entry"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,partner_id:0
+#: field:account.voucher.line,partner_id:0
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,payment_option:0
+msgid "Payment Difference"
+msgstr ""
+
+#. module: account_voucher
+#: constraint:account.bank.statement.line:0
+msgid ""
+"The amount of the voucher must be the same amount as the one on the "
+"statement line"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "To Review"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Expense Lines"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.statement.from.invoice,line_ids:0
+#: field:account.statement.from.invoice.lines,line_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,line_ids:0
+#: view:account.voucher.line:0
+#: model:ir.model,name:account_voucher.model_account_voucher_line
+msgid "Voucher Lines"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,currency_id:0
+#: field:sale.receipt.report,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice.lines:0
+msgid "Payable and Receivables"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,pay_now:0
+#: selection:sale.receipt.report,pay_now:0
+msgid "Pay Later or Group Funds"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,user_id:0
+msgid "Salesman"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,delay_to_pay:0
+msgid "Avg. Delay To Pay"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: selection:account.voucher,state:0
+#: view:sale.receipt.report:0
+#: selection:sale.receipt.report,state:0
+#: report:voucher.print:0
+msgid "Draft"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,writeoff_acc_id:0
+msgid "Write-Off account"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Currency:"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,price_total_tax:0
+msgid "Total With Tax"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "PRO-FORMA"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,help:account_voucher.action_vendor_payment
+msgid ""
+"The supplier payment form allows you to track the payment you do to your "
+"suppliers. When you select a supplier, the payment method and an amount for "
+"the payment, OpenERP will propose to reconcile your payment with the open "
+"supplier invoices or bills."
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Total Amount"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,type:0
+msgid "Cr/Dr"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,audit:0
+msgid "Audit Complete ?"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Payment Terms"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Are you sure to unreconcile this record ?"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,date:0
+#: field:account.voucher.line,date_original:0
+#: field:sale.receipt.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: view:sale.receipt.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Number:"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.bank.statement.line,amount_reconciled:0
+msgid "Amount reconciled"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,analytic_id:0
+msgid "Write-Off Analytic Account"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,pay_now:0
+#: selection:sale.receipt.report,pay_now:0
+msgid "Pay Directly"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,pre_line:0
+msgid "Previous Payments ?"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_voucher_list
+#: model:ir.ui.menu,name:account_voucher.menu_encode_entries_by_voucher
+msgid "Journal Vouchers"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Compute Tax"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher.line,type:0
+msgid "Credit"
+msgstr ""
+
+#. module: account_voucher
+#: code:addons/account_voucher/account_voucher.py:645
+#, python-format
+msgid "Please define a sequence on the journal !"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Open Supplier Journal Entries"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Through :"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_vendor_payment
+#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment
+msgid "Supplier Payment"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Post"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Invoices and outstanding transactions"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,price_total:0
+msgid "Total Without Tax"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Bill Date"
+msgstr ""
+
+#. module: account_voucher
+#: help:account.voucher,state:0
+msgid ""
+" * The 'Draft' state is used when a user is encoding a new and unconfirmed "
+"Voucher. \n"
+"* The 'Pro-forma' when voucher is in Pro-forma state,voucher does not have "
+"an voucher number. \n"
+"* The 'Posted' state is used when user create voucher,a voucher number is "
+"generated and voucher entries are created in account "
+"\n"
+"* The 'Cancelled' state is used when user cancel voucher."
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: model:ir.model,name:account_voucher.model_account_voucher
+msgid "Accounting Voucher"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,number:0
+msgid "Number"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_account_bank_statement
+msgid "Bank Statement"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Sales Information"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
+#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt_report_all
+#: view:sale.receipt.report:0
+msgid "Sales Receipt Analysis"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,voucher_id:0
+#: model:res.request.link,name:account_voucher.req_link_voucher
+msgid "Voucher"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_account_invoice
+msgid "Invoice"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Voucher Items"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice:0
+#: view:account.statement.from.invoice.lines:0
+#: view:account.voucher:0
+#: view:account.voucher.unreconcile:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,state:0
+#: view:sale.receipt.report:0
+#: selection:sale.receipt.report,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,move_ids:0
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: model:ir.actions.act_window,name:account_voucher.act_pay_voucher
+#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
+#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
+msgid "Customer Payment"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.statement.from.invoice:0
+#: model:ir.actions.act_window,name:account_voucher.action_view_account_statement_from_invoice
+msgid "Import Invoices in Statement"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Pay"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher.line,type:0
+msgid "Debit"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Are you sure to confirm this record ?"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,payment_option:0
+msgid "Reconcile with Write-Off"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Payment Method"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,name:0
+msgid "Description"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "Canceled"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.statement.from.invoice,journal_ids:0
+#: view:account.voucher:0
+#: field:account.voucher,journal_id:0
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,journal_id:0
+msgid "Journal"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Internal Notes"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,line_cr_ids:0
+msgid "Credits"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,amount_original:0
+msgid "Original Amount"
+msgstr ""
+
+#. module: account_voucher
+#: report:voucher.print:0
+msgid "State:"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.bank.statement.line,voucher_id:0
+#: view:account.invoice:0
+#: view:account.voucher:0
+#: field:account.voucher,pay_now:0
+#: selection:account.voucher,type:0
+#: field:sale.receipt.report,pay_now:0
+#: selection:sale.receipt.report,type:0
+msgid "Payment"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: selection:account.voucher,state:0
+#: view:sale.receipt.report:0
+#: selection:sale.receipt.report,state:0
+#: report:voucher.print:0
+msgid "Posted"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Customer"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+msgid "Supplier Invoices and Outstanding transactions"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,comment:0
+msgid "Write-Off Comment"
+msgstr ""
+
+#. module: account_voucher
+#: selection:sale.receipt.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,type:0
+msgid "Default Type"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_account_statement_from_invoice
+#: model:ir.model,name:account_voucher.model_account_statement_from_invoice_lines
+msgid "Entries by Statement from Invoices"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher,move_id:0
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_voucher
+#: field:sale.receipt.report,state:0
+msgid "Voucher State"
+msgstr ""
+
+#. module: account_voucher
+#: help:account.voucher,date:0
+msgid "Effective date for accounting entries"
+msgstr ""
+
+#. module: account_voucher
+#: selection:account.voucher,payment_option:0
+msgid "Keep Open"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher.unreconcile:0
+msgid ""
+"If you unreconciliate transactions, you must also verify all the actions "
+"that are linked to those transactions because they will not be disable"
+msgstr ""
+
+#. module: account_voucher
+#: field:account.voucher.line,untax_amount:0
+msgid "Untax Amount"
+msgstr ""
+
+#. module: account_voucher
+#: model:ir.model,name:account_voucher.model_sale_receipt_report
+msgid "Sales Receipt Statistics"
+msgstr ""
+
+#. module: account_voucher
+#: view:sale.receipt.report:0
+#: field:sale.receipt.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher.line,amount_unreconciled:0
+msgid "Open Balance"
+msgstr ""
+
+#. module: account_voucher
+#: view:account.voucher:0
+#: field:account.voucher,amount:0
+msgid "Total"
+msgstr ""
diff --git a/addons/account_voucher/wizard/account_statement_from_invoice.py b/addons/account_voucher/wizard/account_statement_from_invoice.py
index e4d728c8867..5fb3fc22b97 100644
--- a/addons/account_voucher/wizard/account_statement_from_invoice.py
+++ b/addons/account_voucher/wizard/account_statement_from_invoice.py
@@ -75,7 +75,7 @@ class account_statement_from_invoice_lines(osv.osv_memory):
statement.currency.id, amount, context=ctx)
context.update({'move_line_ids': [line.id]})
- result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
+ result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, amount=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
voucher_res = { 'type':(amount < 0 and 'payment' or 'receipt'),
'name': line.name,
'partner_id': line.partner_id.id,
diff --git a/addons/analytic/i18n/fa.po b/addons/analytic/i18n/fa.po
new file mode 100644
index 00000000000..d9802dca47a
--- /dev/null
+++ b/addons/analytic/i18n/fa.po
@@ -0,0 +1,255 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 17:01+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: analytic
+#: field:account.analytic.account,child_ids:0
+msgid "Child Accounts"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,name:0
+msgid "Account Name"
+msgstr ""
+
+#. module: analytic
+#: help:account.analytic.line,unit_amount:0
+msgid "Specifies the amount of quantity to count."
+msgstr ""
+
+#. module: analytic
+#: model:ir.module.module,description:analytic.module_meta_information
+msgid ""
+"Module for defining analytic accounting object.\n"
+" "
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,state:0
+msgid "State"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,user_id:0
+msgid "Account Manager"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,debit:0
+msgid "Debit"
+msgstr ""
+
+#. module: analytic
+#: help:account.analytic.account,state:0
+msgid ""
+"* When an account is created its in 'Draft' state. "
+" \n"
+"* If any associated partner is there, it can be in 'Open' state. "
+" \n"
+"* If any pending balance is there it can be in 'Pending'. "
+" \n"
+"* And finally when all the transactions are over, it can be in 'Close' "
+"state. \n"
+"* The project can be in either if the states 'Template' and 'Running'.\n"
+" If it is template then we can make projects based on the template projects. "
+"If its in 'Running' state it is a normal project. "
+" \n"
+" If it is to be reviewed then the state is 'Pending'.\n"
+" When the project is completed the state is set to 'Done'."
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,type:0
+msgid "Account Type"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Template"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: analytic
+#: model:ir.model,name:analytic.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,description:0
+#: field:account.analytic.line,name:0
+msgid "Description"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "Normal"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,company_id:0
+#: field:account.analytic.line,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,quantity_max:0
+msgid "Maximum Quantity"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.line,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,parent_id:0
+msgid "Parent Analytic Account"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.line,date:0
+msgid "Date"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,currency_id:0
+msgid "Account currency"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,quantity:0
+#: field:account.analytic.line,unit_amount:0
+msgid "Quantity"
+msgstr ""
+
+#. module: analytic
+#: help:account.analytic.line,amount:0
+msgid ""
+"Calculated by multiplying the quantity and the price given in the Product's "
+"cost price. Always expressed in the company main currency."
+msgstr ""
+
+#. module: analytic
+#: help:account.analytic.account,quantity_max:0
+msgid "Sets the higher limit of quantity of hours."
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,credit:0
+msgid "Credit"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.line,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,contact_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: analytic
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,balance:0
+msgid "Balance"
+msgstr ""
+
+#. module: analytic
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: analytic
+#: help:account.analytic.account,type:0
+msgid ""
+"If you select the View Type, it means you won't allow to create journal "
+"entries using that account."
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,date:0
+msgid "Date End"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,code:0
+msgid "Account Code"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,complete_name:0
+msgid "Full Account Name"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.line,account_id:0
+#: model:ir.model,name:analytic.model_account_analytic_account
+#: model:ir.module.module,shortdesc:analytic.module_meta_information
+msgid "Analytic Account"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "View"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,date_start:0
+msgid "Date Start"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Open"
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,line_ids:0
+msgid "Analytic Entries"
+msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/fa.po b/addons/analytic_journal_billing_rate/i18n/fa.po
new file mode 100644
index 00000000000..c928e9d2e66
--- /dev/null
+++ b/addons/analytic_journal_billing_rate/i18n/fa.po
@@ -0,0 +1,95 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-03 16:56+0000\n"
+"PO-Revision-Date: 2011-12-18 17:01+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: analytic_journal_billing_rate
+#: model:ir.module.module,description:analytic_journal_billing_rate.module_meta_information
+msgid ""
+"\n"
+"\n"
+" This module allows you to define what is the default invoicing rate for "
+"a specific journal on a given account. This is mostly used when a user "
+"encodes his timesheet: the values are retrieved and the fields are auto-"
+"filled... but the possibility to change these values is still available.\n"
+"\n"
+" Obviously if no data has been recorded for the current account, the "
+"default value is given as usual by the account data so that this module is "
+"perfectly compatible with older configurations.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: field:analytic_journal_rate_grid,journal_id:0
+msgid "Analytic Journal"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
+msgid "Invoice"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: view:analytic_journal_rate_grid:0
+msgid "Billing Rate per Journal for this Analytic Account"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: field:analytic_journal_rate_grid,account_id:0
+#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
+msgid "Relation table between journals and billing rates"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: field:account.analytic.account,journal_rate_ids:0
+msgid "Invoicing Rate per Journal"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
+msgid ""
+"Analytic Journal Billing Rate, Define the default invoicing rate for a "
+"specific journal"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: field:analytic_journal_rate_grid,rate_id:0
+msgid "Invoicing Rate"
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: analytic_journal_billing_rate
+#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
diff --git a/addons/analytic_user_function/i18n/fa.po b/addons/analytic_user_function/i18n/fa.po
new file mode 100644
index 00000000000..5cf714dd82f
--- /dev/null
+++ b/addons/analytic_user_function/i18n/fa.po
@@ -0,0 +1,103 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-03 16:56+0000\n"
+"PO-Revision-Date: 2011-12-18 17:03+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: analytic_user_function
+#: code:addons/analytic_user_function/analytic_user_function.py:96
+#: code:addons/analytic_user_function/analytic_user_function.py:131
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: analytic_user_function
+#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,account_id:0
+#: model:ir.model,name:analytic_user_function.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: analytic_user_function
+#: view:account.analytic.account:0
+#: field:account.analytic.account,user_product_ids:0
+msgid "Users/Products Rel."
+msgstr ""
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: analytic_user_function
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr ""
+
+#. module: analytic_user_function
+#: code:addons/analytic_user_function/analytic_user_function.py:97
+#: code:addons/analytic_user_function/analytic_user_function.py:132
+#, python-format
+msgid "There is no expense account define for this product: \"%s\" (id:%d)"
+msgstr ""
+
+#. module: analytic_user_function
+#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
+msgid "Relation table between users and products on a analytic account"
+msgstr ""
+
+#. module: analytic_user_function
+#: model:ir.module.module,description:analytic_user_function.module_meta_information
+msgid ""
+"\n"
+"\n"
+" This module allows you to define what is the default function of a "
+"specific user on a given account. This is mostly used when a user encodes "
+"his timesheet: the values are retrieved and the fields are auto-filled... "
+"but the possibility to change these values is still available.\n"
+"\n"
+" Obviously if no data has been recorded for the current account, the "
+"default value is given as usual by the employee data so that this module is "
+"perfectly compatible with older configurations.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: analytic_user_function
+#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
+msgid "Analytic User Function"
+msgstr ""
+
+#. module: analytic_user_function
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: analytic_user_function
+#: view:analytic_user_funct_grid:0
+msgid "User's Product for this Analytic Account"
+msgstr ""
diff --git a/addons/anonymization/i18n/fa.po b/addons/anonymization/i18n/fa.po
new file mode 100644
index 00000000000..e413048add4
--- /dev/null
+++ b/addons/anonymization/i18n/fa.po
@@ -0,0 +1,226 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 17:04+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
+msgid "ir.model.fields.anonymize.wizard"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_name:0
+msgid "Field Name"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_id:0
+msgid "Field"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,state:0
+#: field:ir.model.fields.anonymize.wizard,state:0
+msgid "State"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_import:0
+msgid "Import"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
+msgid "ir.model.fields.anonymization"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.module.module,shortdesc:anonymization.module_meta_information
+msgid "Database anonymization module"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,direction:0
+msgid "Direction"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
+#: view:ir.model.fields.anonymization:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
+msgid "Anonymized Fields"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
+msgid "Database anonymization"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:55
+#: sql_constraint:ir.model.fields.anonymization:0
+#, python-format
+msgid "You cannot have two records having the same model and the same field"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Anonymized"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,state:0
+msgid "unknown"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_id:0
+msgid "Object"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,filepath:0
+msgid "File path"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,date:0
+msgid "Date"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_export:0
+msgid "Export"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Reverse the Database Anonymization"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Database Anonymization"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
+msgid "Anonymize database"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,field_ids:0
+msgid "Fields"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Clear"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "clear -> anonymized"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+#: field:ir.model.fields.anonymize.wizard,summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization:0
+msgid "Anonymized Field"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.module.module,description:anonymization.module_meta_information
+msgid ""
+"\n"
+"This module allows you to anonymize a database.\n"
+" "
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Unstable"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Exception occured"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Not Existing"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_name:0
+msgid "Object Name"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
+#: view:ir.model.fields.anonymization.history:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
+msgid "Anonymization History"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
+msgid "ir.model.fields.anonymization.history"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Anonymize Database"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,name:0
+msgid "File Name"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "anonymized -> clear"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Started"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Done"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,msg:0
+#: field:ir.model.fields.anonymize.wizard,msg:0
+msgid "Message"
+msgstr ""
diff --git a/addons/association/i18n/fa.po b/addons/association/i18n/fa.po
new file mode 100644
index 00000000000..cc4a856312f
--- /dev/null
+++ b/addons/association/i18n/fa.po
@@ -0,0 +1,135 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 19:41+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,wiki:0
+msgid "Wiki"
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Event Management"
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,project_gtd:0
+msgid "Getting Things Done"
+msgstr ""
+
+#. module: association
+#: model:ir.module.module,description:association.module_meta_information
+msgid "This module is to create Profile for Associates"
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid ""
+"Here are specific applications related to the Association Profile you "
+"selected."
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "title"
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,event_project:0
+msgid "Helps you to manage and organize your events."
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,hr_expense:0
+msgid ""
+"Tracks and manages employee expenses, and can automatically re-invoice "
+"clients if the expenses are project-related."
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,project_gtd:0
+msgid ""
+"GTD is a methodology to efficiently organise yourself and your tasks. This "
+"module fully integrates GTD principle with OpenERP's project management."
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Resources Management"
+msgstr ""
+
+#. module: association
+#: model:ir.module.module,shortdesc:association.module_meta_information
+msgid "Association profile"
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,hr_expense:0
+msgid "Expenses Tracking"
+msgstr ""
+
+#. module: association
+#: model:ir.actions.act_window,name:association.action_config_install_module
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Association Application Configuration"
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,wiki:0
+msgid ""
+"Lets you create wiki pages and page groups in order to keep track of "
+"business knowledge and share it with and between your employees."
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,project:0
+msgid ""
+"Helps you manage your projects and tasks by tracking them, generating "
+"plannings, etc..."
+msgstr ""
+
+#. module: association
+#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
+msgid "profile.association.config.install_modules_wizard"
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,event_project:0
+msgid "Events"
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+#: field:profile.association.config.install_modules_wizard,project:0
+msgid "Project Management"
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Configure"
+msgstr ""
diff --git a/addons/auction/i18n/fa.po b/addons/auction/i18n/fa.po
new file mode 100644
index 00000000000..0f94b50d82e
--- /dev/null
+++ b/addons/auction/i18n/fa.po
@@ -0,0 +1,2294 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 19:41+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.auction_report_menu
+msgid "Reporting"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_taken
+msgid "Auction taken"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Set to draft"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+#: field:auction.deposit,partner_id:0
+#: field:auction.lots,seller_id:0
+#: view:report.auction:0
+#: field:report.auction,seller:0
+msgid "Seller"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,name:0
+msgid "Title"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.sms.send,text:0
+msgid "SMS Message"
+msgstr ""
+
+#. module: auction
+#: view:auction.catalog.flagey:0
+#: view:auction.lots.auction.move:0
+#: view:auction.lots.make.invoice.buyer:0
+msgid " "
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.auction.move:0
+msgid "Warning, Erase The Object Adjudication Price and Its Buyer!"
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,statement_id1:0
+msgid "First Bank Statement For Buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid_line,lot_id:0
+#: field:auction.lot.history,lot_id:0
+msgid "Object"
+msgstr ""
+
+#. module: auction
+#: field:report.auction.object.date,obj_num:0
+msgid "# of Objects"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Authors"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+#: report:auction.bids:0
+#: view:auction.lots:0
+#: field:auction.lots,ach_uid:0
+#: field:auction.lots.buyer_map,ach_uid:0
+#: field:auction.lots.make.invoice.buyer,buyer_id:0
+#: field:auction.pay.buy,buyer_id:0
+#: report:buyer.list:0
+#: view:report.auction:0
+#: field:report.auction,buyer:0
+#: report:report.auction.buyer.result:0
+msgid "Buyer"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,object:0
+msgid "No of objects"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,paid_vnd:0
+msgid ""
+"When state of Seller Invoice is 'Paid', this field is selected as True."
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of paid items (based on invoices):"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Deposit Border"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.make.invoice,amount:0
+#: field:auction.lots.make.invoice.buyer,amount:0
+msgid "Invoiced Amount"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,name:0
+msgid "Auction object name"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_aie_category
+msgid "aie.category"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit.cost,amount:0
+#: field:auction.pay.buy,amount:0
+#: field:auction.pay.buy,amount2:0
+#: field:auction.pay.buy,amount3:0
+msgid "Amount"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_deposit_border
+#: model:ir.ui.menu,name:auction.menu_auction_deposit_border
+msgid "Deposit border"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Reference"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,state:0
+msgid ""
+"When auction starts the state is 'Draft'.\n"
+" At the end of auction, the state becomes 'Closed'."
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,account_analytic_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,amount3:0
+msgid "Amount For Third Bank Statement"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,lot_num:0
+msgid "List Number"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "Date:"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit.cost,name:0
+msgid "Cost Name"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: field:auction.dates,state:0
+#: view:auction.lots:0
+#: field:auction.lots,state:0
+#: view:report.auction:0
+#: field:report.auction,state:0
+msgid "State"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "First Auction Date"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "January"
+msgstr ""
+
+#. module: auction
+#: help:auction.lot.category,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the auction "
+"lot category without removing it."
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Ref"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,total_price:0
+msgid "Total Price"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Total Adj."
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.sms.send:0
+msgid "SMS - Gateway: clickatell','Bulk SMS send"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,costs:0
+msgid "Deposit cost"
+msgstr ""
+
+#. module: auction
+#: selection:auction.lots,state:0
+#: selection:report.auction,state:0
+#: selection:report.object.encoded,state:0
+msgid "Unsold"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Search Auction deposit"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,lot_num:0
+msgid "List number in depositer inventory"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Items"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax5
+#: field:auction.dates,seller_costs:0
+msgid "Seller Costs"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+#: view:auction.bid_line:0
+#: view:auction.lots:0
+#: field:auction.lots,bid_lines:0
+#: model:ir.actions.report.xml,name:auction.bid_auction
+#: model:ir.ui.menu,name:auction.menu_action_bid_open
+msgid "Bids"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.buyer_map:0
+msgid "Buyer Map"
+msgstr ""
+
+#. module: auction
+#: field:report.object.encoded,obj_ret:0
+msgid "# obj ret"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_bid
+msgid "Bid Auctions"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,image:0
+msgid "Object Image"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_buyer_map.py:70
+#, python-format
+msgid "No buyer is set for this lot."
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:578
+#, python-format
+msgid "The Buyer \"%s\" has no Invoice Address."
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Commissions"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_deposit_cost
+msgid "Auction Deposit Cost"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Deposit Border Form"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,statement_id:0
+msgid "Bank statement line for given buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.category,aie_categ:0
+msgid "Category"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_view_auction_buyer_map
+msgid "Map buyer username to Partners"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Search Auction Lots"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,net_revenue:0
+msgid "Net Revenue"
+msgstr ""
+
+#. module: auction
+#: field:report.auction.adjudication,state:0
+#: field:report.object.encoded,state:0
+msgid "Status"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_lots_sms_send
+msgid "SMS Send"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "August"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+#: selection:auction.lots,state:0
+#: view:report.auction:0
+#: selection:report.auction,state:0
+msgid "Sold"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "June"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63
+#, python-format
+msgid "No Lots belong to this Auction Date"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "October"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid_line,name:0
+msgid "Bid date"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,acc_expense:0
+msgid "Expense Account"
+msgstr ""
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.menu_wizard_emporte
+msgid "Deliveries Management"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,obj_desc:0
+msgid "Object Description"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,artist2_id:0
+msgid "Artist/Author2"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Line1"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_make_invoice_buyer
+msgid "Make Invoice for Buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,gross_revenue:0
+#: field:report.object.encoded,gross_revenue:0
+msgid "Gross revenue"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_pay_buy
+msgid "Pay objects of the buyer"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,auction2:0
+msgid "End date of auction"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.sms.send:0
+msgid "Send SMS"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,name2:0
+msgid "Short Description (2)"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+#: model:ir.ui.menu,name:auction.auction_buyers_menu
+msgid "Buyers"
+msgstr ""
+
+#. module: auction
+#: model:account.tax.code,name:auction.account_tax_code_id4
+msgid "VAT 12%"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Buyer Invoices"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.res_w_buyer
+msgid "Results with buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid_line,price:0
+msgid "Maximum Price"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,auction1:0
+msgid "Start date of auction"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_auction_move
+msgid "Auction Move"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,buyer_costs:0
+msgid "Account tax for buyer"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Next Auction"
+msgstr ""
+
+#. module: auction
+#: view:auction.taken:0
+msgid "Select lots which are Sold"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,statement_id:0
+msgid "Payment"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:571
+#: code:addons/auction/auction.py:686
+#, python-format
+msgid "The object \"%s\" has no buyer assigned."
+msgstr ""
+
+#. module: auction
+#: selection:auction.deposit,method:0
+msgid "Keep until sold"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Last Auction Date"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.tax_seller
+msgid "Seller Costs (12%)"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,paid_vnd:0
+msgid "Seller Paid"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+#: view:report.object.encoded:0
+msgid "Objects statistics"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of sellers:"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,date:0
+#: field:report.object.encoded,date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: selection:report.object.encoded,state:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of items taken away:"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_report_auction
+#: view:report.auction:0
+msgid "Auction's Summary"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "%)"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Buyer Information"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,gross_revenue:0
+msgid "Buyer Price - Seller Price"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.make.invoice,objects:0
+#: field:auction.lots.make.invoice.buyer,objects:0
+msgid "# of objects"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,lot_est2:0
+msgid "Maximum Estimation"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,buyer_price:0
+msgid "Buyer price"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Bids Details"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,is_ok:0
+msgid "Buyer's payment"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "End of auction"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_catalog_flagey_wizard
+#: model:ir.model,name:auction.model_auction_catalog_flagey
+msgid "Auction Catalog Flagey"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "March"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax4
+msgid "Seller Costs1"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,create_uid:0
+#: field:auction.lots,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of buyers:"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,costs:0
+msgid "Indirect costs"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,seller_costs:0
+msgid "Account tax for seller"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_invoice.py:68
+#: code:addons/auction/wizard/auction_lots_numerotate.py:103
+#: code:addons/auction/wizard/auction_lots_numerotate.py:129
+#, python-format
+msgid "UserError"
+msgstr ""
+
+#. module: auction
+#: model:ir.module.module,shortdesc:auction.module_meta_information
+msgid "Auction Management"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,journal_seller_id:0
+msgid "Seller Journal"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: selection:auction.dates,state:0
+#: view:auction.lots:0
+#: selection:auction.lots,state:0
+#: view:report.auction:0
+#: selection:report.auction,state:0
+#: selection:report.auction.adjudication,state:0
+#: selection:report.object.encoded,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,state:0
+msgid ""
+" * The 'Draft' state is used when a object is encoding as a new object. "
+" \n"
+"* The 'Unsold' state is used when object does not sold for long time, user "
+"can also set it as draft state after unsold. \n"
+"* The 'Paid' state is used when user pay for the object \n"
+"* The 'Sold' state is used when user buy the object."
+msgstr ""
+
+#. module: auction
+#: view:auction.catalog.flagey:0
+msgid "Print"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+#: view:report.auction:0
+msgid "Type"
+msgstr ""
+
+#. module: auction
+#: help:aie.category,child_ids:0
+msgid "children aie category"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,ach_emp:0
+msgid "When state is Taken Away, this field is marked as True"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_taken
+msgid "Gestion emporte"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+#: report:auction.bids:0
+#: view:auction.dates:0
+#: view:auction.lots:0
+#: field:auction.lots,auction_id:0
+#: report:auction.total.rml:0
+#: model:ir.ui.menu,name:auction.auction_menu_root
+#: view:report.auction:0
+msgid "Auction"
+msgstr ""
+
+#. module: auction
+#: view:auction.lot.category:0
+#: model:ir.ui.menu,name:auction.menu_auction_object_cat
+msgid "Object Categories"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.sms.send,app_id:0
+msgid "API ID"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid,name:0
+#: field:auction.bid_line,bid_id:0
+msgid "Bid ID"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Min Estimate:"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "September"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,net_margin:0
+msgid "Net Margin"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,vnd_lim_net:0
+msgid "Net limit ?"
+msgstr ""
+
+#. module: auction
+#: field:aie.category,child_ids:0
+msgid "unknown"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of commissions:"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid_line,auction:0
+#: field:auction.dates,name:0
+msgid "Auction Name"
+msgstr ""
+
+#. module: auction
+#: field:report.object.encoded,obj_num:0
+msgid "# of Encoded obj."
+msgstr ""
+
+#. module: auction
+#: field:aie.category,parent_id:0
+msgid "Parent aie Category"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+msgid "Auction Summary"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.make.invoice:0
+#: view:auction.lots.make.invoice.buyer:0
+msgid "(Keep empty for automatic number)"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:578
+#, python-format
+msgid "No Invoice Address"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.v_huissier
+msgid "Bailiffs Listing"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_numerotate.py:103
+#: code:addons/auction/wizard/auction_lots_numerotate.py:129
+#, python-format
+msgid "This record does not exist !"
+msgstr ""
+
+#. module: auction
+#: field:auction.pay.buy,total:0
+msgid "Total Amount"
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,amount:0
+msgid "Amount For First Bank Statement"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_report_auction_object_date
+#: view:report.auction.object.date:0
+msgid "Objects per day"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,author_right:0
+msgid "Account tax for author commission"
+msgstr ""
+
+#. module: auction
+#: model:product.template,name:auction.monproduit_product_template
+msgid "Oeuvres a 21%"
+msgstr ""
+
+#. module: auction
+#: field:report.object.encoded,adj:0
+msgid "Adj."
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.history,name:0
+#: field:report.auction.adjudication,date:0
+msgid "Date"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,obj_ret:0
+msgid "Price retired"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Extra Costs"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.buyer_map:0
+msgid "Map "
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,paid_ach:0
+msgid "Buyer Invoice Reconciled"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,date_dep:0
+msgid "Deposit date"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.id_deposit
+msgid "Deposits"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,specific_cost_ids:0
+msgid "Specific Costs"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "To pay ("
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.tax_buyer
+msgid "Buyer Costs (20%)"
+msgstr ""
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.menu_board_auction
+msgid "Dashboard"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: model:ir.actions.act_window,name:auction.action_auction_dates_next
+#: model:ir.ui.menu,name:auction.auction_date_menu
+#: model:ir.ui.menu,name:auction.menu_auction_dates_next1
+msgid "Auctions"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Total Adjudications"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_make_invoice
+msgid "Make invoice"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "November"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: view:auction.lots:0
+msgid "History"
+msgstr ""
+
+#. module: auction
+#: field:aie.category,code:0
+msgid "Code"
+msgstr ""
+
+#. module: auction
+#: report:auction.code_bar_lot:0
+msgid "Nr."
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.v_report_barcode_lot
+msgid "Barcode batch"
+msgstr ""
+
+#. module: auction
+#: report:report.auction.buyer.result:0
+msgid "Num"
+msgstr ""
+
+#. module: auction
+#: view:auction.catalog.flagey:0
+msgid "Cancel"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Buyer's Payment History"
+msgstr ""
+
+#. module: auction
+#: view:auction.artists:0
+#: field:auction.artists,biography:0
+msgid "Biography"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Inventory"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Pay"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.make.invoice:0
+msgid "Create Invoices For Seller"
+msgstr ""
+
+#. module: auction
+#: field:report.object.encoded,obj_margin:0
+msgid "Net margin"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,lot_local:0
+msgid "Auction Location"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Analytic"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,paid_ach:0
+msgid ""
+"When state of Buyer Invoice is 'Paid', this field is selected as True."
+msgstr ""
+
+#. module: auction
+#: report:bids.lots:0
+#: report:bids.phones.details:0
+msgid "Cat.N"
+msgstr ""
+
+#. module: auction
+#: selection:auction.deposit,method:0
+msgid "Decrease limit of 10%"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,adj_total:0
+#: field:report.auction.adjudication,adj_total:0
+msgid "Total Adjudication"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice_buyer
+msgid "Invoice Buyer objects"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+msgid "My Auction"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,gross_margin:0
+msgid "(Gross Revenue*100.0)/ Object Price"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid,contact_tel:0
+msgid "Contact Number"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Price"
+msgstr ""
+
+#. module: auction
+#: report:bids.phones.details:0
+msgid "-"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Photos"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.make.invoice,number:0
+#: field:auction.lots.make.invoice.buyer,number:0
+msgid "Invoice Number"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_buyer_map.py:87
+#: code:addons/auction/wizard/auction_lots_numerotate.py:77
+#: code:addons/auction/wizard/auction_lots_numerotate.py:95
+#: code:addons/auction/wizard/auction_lots_numerotate.py:122
+#: code:addons/auction/wizard/auction_lots_numerotate.py:137
+#: code:addons/auction/wizard/auction_lots_numerotate.py:173
+#, python-format
+msgid "Active IDs not Found"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_aie_send.py:167
+#: code:addons/auction/wizard/auction_aie_send_result.py:117
+#, python-format
+msgid "Connection to WWW.Auction-in-Europe.com failed !"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,gross_revenue:0
+msgid "Gross Revenue"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.open_board_auction
+msgid "Auction board"
+msgstr ""
+
+#. module: auction
+#: field:aie.category,name:0
+#: view:auction.artists:0
+#: report:bids.lots:0
+msgid "Name"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,name:0
+#: field:auction.lots,bord_vnd_id:0
+msgid "Depositer Inventory"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:692
+#, python-format
+msgid "The Buyer has no Invoice Address."
+msgstr ""
+
+#. module: auction
+#: view:report.object.encoded:0
+msgid "Total adj."
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.sms.send,user:0
+msgid "Login"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_report_auction_adjudication
+msgid "report_auction_adjudication"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.seller_lots_3
+msgid "Seller Form"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,lot_type:0
+#: field:report.auction,lot_type:0
+msgid "Object category"
+msgstr ""
+
+#. module: auction
+#: view:auction.taken:0
+msgid "Mark Lots"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots
+msgid "Auction Object"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,obj_num:0
+#: field:auction.lots.enable,confirm_en:0
+msgid "Catalog Number"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Accounting"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.bid_phone
+msgid "Bids phones"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,avg_estimation:0
+msgid "Avg estimation"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Debit:"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,author_right:0
+msgid "Author rights"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+#: view:auction.dates:0
+#: view:auction.deposit:0
+#: view:auction.lots:0
+#: view:report.auction:0
+msgid "Group By..."
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,journal_id:0
+msgid "Account journal for buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid,bid_lines:0
+#: report:auction.bids:0
+#: report:bids.lots:0
+#: model:ir.model,name:auction.model_auction_bid_line
+msgid "Bid"
+msgstr ""
+
+#. module: auction
+#: view:report.object.encoded:0
+msgid "Total net rev."
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.buyer_map:0
+msgid "Update"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+#: model:ir.ui.menu,name:auction.auction_seller_menu
+msgid "Sellers"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,lot_est2:0
+msgid "Maximum Estimate Price"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Notes"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.auction.move:0
+msgid "Move to Auction date"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of unsold items:"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Create Invoices"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid,auction_id:0
+#: view:auction.dates:0
+#: field:auction.lots.auction.move,auction_id:0
+msgid "Auction Date"
+msgstr ""
+
+#. module: auction
+#: report:auction.code_bar_lot:0
+msgid ", ID"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "Adj.("
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.lot_list_inv
+msgid "Lots List - Landscape"
+msgstr ""
+
+#. module: auction
+#: view:auction.artists:0
+msgid "Author/Artist"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,ach_login:0
+#: field:auction.lots.buyer_map,ach_login:0
+msgid "Buyer Username"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.category,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Latest objects"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,lot_local:0
+msgid "Location"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+msgid "Month -1"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,is_ok:0
+msgid "When buyer pay for bank statement', this field is marked"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,ach_emp:0
+msgid "Taken Away"
+msgstr ""
+
+#. module: auction
+#: view:report.object.encoded:0
+msgid "Total gross rev."
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,lot_est1:0
+msgid "Minimum Estimate Price"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Deposit Date"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_numerotate.py:145
+#, python-format
+msgid "This lot does not exist !"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "July"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid_line,call:0
+msgid "To be Called"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+#: model:ir.actions.act_window,name:auction.action_report_auction_lots_estimation_adj_category_tree
+msgid "Min est/Adj/Max est"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,lot_est1:0
+msgid "Minimum Estimation"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_sms_send
+msgid "Sms send "
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.auction.move:0
+#: model:ir.actions.act_window,name:auction.action_auction_lots_auction_move
+msgid "Change Auction Date"
+msgstr ""
+
+#. module: auction
+#: field:auction.artists,birth_death_dates:0
+msgid "Lifespan"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+#: field:auction.deposit,method:0
+msgid "Withdrawned method"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Buyer Commissions"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_report_auction
+#: model:ir.ui.menu,name:auction.menu_report_auction
+msgid "Auction Analysis"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_pay_buy.py:80
+#, python-format
+msgid "Payment aborted !"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.history,price:0
+msgid "Withdrawn price"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Beginning of the auction"
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,statement_id3:0
+msgid "Third Bank Statement For Buyer"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+#: field:report.auction,month:0
+#: field:report.auction.object.date,month:0
+msgid "Month"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Max Estimate:"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Statistical"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_deposit
+msgid "Auction Deposit Border"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_report_object_encoded_tree
+msgid "Object statistics"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,net_margin:0
+msgid "(Net Revenue * 100)/ Object Price"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lot_history
+msgid "Lot History"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.make.invoice:0
+#: view:auction.lots.make.invoice.buyer:0
+msgid "Create invoices"
+msgstr ""
+
+#. module: auction
+#: model:account.tax.code,name:auction.account_tax_code_id5
+msgid "VAT 5%"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,expo1:0
+msgid "First Exposition Day"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "Lot"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_artists
+msgid "auction.artists"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,avg_price:0
+msgid "Avg Price."
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,statement_id2:0
+msgid "Second Bank Statement For Buyer"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,journal_id:0
+msgid "Buyer Journal"
+msgstr ""
+
+#. module: auction
+#: selection:auction.lots,state:0
+#: selection:report.object.encoded,state:0
+msgid "Paid"
+msgstr ""
+
+#. module: auction
+#: report:bids.lots:0
+#: report:bids.phones.details:0
+msgid "Phone"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.category,active:0
+msgid "Active"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Exposition Dates"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax1
+msgid "TVA"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,important:0
+msgid "To be Emphatized"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "Total:"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax2
+msgid "TVA1"
+msgstr ""
+
+#. module: auction
+#: view:report.auction.object.date:0
+msgid "Objects per Day"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,seller_invoice_history:0
+#: field:auction.lots,sel_inv_id:0
+#: view:auction.lots.make.invoice:0
+msgid "Seller Invoice"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Objects by day"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,expo2:0
+msgid "Last exposition date for auction"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:571
+#: code:addons/auction/auction.py:686
+#, python-format
+msgid "Missed buyer !"
+msgstr ""
+
+#. module: auction
+#: report:auction.code_bar_lot:0
+msgid "Flagey"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Auction manager "
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_lots_invoice.py:68
+#, python-format
+msgid ""
+"Two different buyers for the same invoice !\n"
+"Please correct this problem before invoicing"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Invoice"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,vnd_lim:0
+msgid "Seller limit"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,transfer:0
+msgid "Transfer"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Line3"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Line2"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,obj_ret:0
+msgid "Object Ret"
+msgstr ""
+
+#. module: auction
+#: view:report.auction.adjudication:0
+msgid "Total adjudication"
+msgstr ""
+
+#. module: auction
+#: selection:auction.deposit,method:0
+msgid "Contact the Seller"
+msgstr ""
+
+#. module: auction
+#: field:auction.taken,lot_ids:0
+msgid "Lots Emportes"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,net_margin:0
+msgid "Net Margin (%)"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid ")"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Seller Information"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+#: field:auction.deposit,lot_id:0
+#: view:auction.lots:0
+#: model:ir.actions.act_window,name:auction.action_all_objects
+#: model:ir.ui.menu,name:auction.auction_all_objects_menu
+msgid "Objects"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Seller Invoices"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Paid:"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,total_neg:0
+msgid "Allow Negative Amount"
+msgstr ""
+
+#. module: auction
+#: help:auction.pay.buy,amount2:0
+msgid "Amount For Second Bank Statement"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.history,auction_id:0
+#: field:report.auction,auction:0
+#: field:report.auction.adjudication,name:0
+msgid "Auction date"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.sms.send:0
+msgid "SMS Text"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,auction1:0
+msgid "First Auction Day"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.make.invoice.buyer:0
+msgid "Create Invoices For Buyer"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Names"
+msgstr ""
+
+#. module: auction
+#: view:auction.artists:0
+#: model:ir.ui.menu,name:auction.menu_auction_artist
+msgid "Artists"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Pay Objects"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,expo1:0
+msgid "Beginning exposition date for auction"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.act_auction_lot_line_open
+msgid "Open lots"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit
+msgid "Deposit slip"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_enable
+msgid "Lots Enable"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Lots"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,seller_price:0
+msgid "Seller price"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.buy_id_list
+msgid "Buyer List"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "Buyer costs("
+msgstr ""
+
+#. module: auction
+#: field:auction.pay.buy,statement_id1:0
+#: field:auction.pay.buy,statement_id2:0
+#: field:auction.pay.buy,statement_id3:0
+msgid "Statement"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,seller_price:0
+#: help:auction.lots.make.invoice,amount:0
+msgid "Seller Price"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax20
+#: model:account.tax,name:auction.auction_tax6
+msgid "Frais de vente"
+msgstr ""
+
+#. module: auction
+#: model:account.tax.code,name:auction.account_tax_code_id1
+msgid "VAT 1%"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax
+msgid "Droit d'auteur"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_buyer_map
+msgid "Map Buyer"
+msgstr ""
+
+#. module: auction
+#: field:report.auction.object.date,name:0
+msgid "Created date"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,bord_vnd_id:0
+msgid ""
+"Provide deposit information: seller, Withdrawned Method, Object, Deposit "
+"Costs"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,net_revenue:0
+#: field:report.object.encoded,net_revenue:0
+msgid "Net revenue"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63
+#: code:addons/auction/wizard/auction_pay_buy.py:87
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "# of items:"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.tax_buyer_author
+msgid "Author rights (4%)"
+msgstr ""
+
+#. module: auction
+#: field:report.object.encoded,estimation:0
+msgid "Estimation"
+msgstr ""
+
+#. module: auction
+#: model:ir.module.module,description:auction.module_meta_information
+msgid ""
+"\n"
+" This module manages the records of the artists,\n"
+" the articles to be put up for auction,the buyers and\n"
+" sellers.\n"
+"\n"
+" It completely manages an auction such as managing bids,\n"
+" keeping track of the sold articles along with the paid\n"
+" and unpaid objects including delivery of the articles.\n"
+" Dashboards for auction that includes:\n"
+" * My Latest Objects (list)\n"
+" * My Latest Deposits (list)\n"
+" * Objects Statistics (list)\n"
+" * My Objects By Day (list)\n"
+" "
+msgstr ""
+
+#. module: auction
+#: view:auction.taken:0
+msgid "OK"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.buyer_form_id
+msgid "Buyer Form"
+msgstr ""
+
+#. module: auction
+#: field:auction.bid,partner_id:0
+msgid "Buyer Name"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+#: field:report.auction,day:0
+msgid "Day"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice
+msgid "Invoice Seller objects"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,gross_margin:0
+msgid "Gross Margin (%)"
+msgstr ""
+
+#. module: auction
+#: selection:auction.dates,state:0
+#: selection:report.auction.adjudication,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Search Next Auction Dates"
+msgstr ""
+
+#. module: auction
+#: view:auction.catalog.flagey:0
+msgid "Print Auction Catalog Flagey Report..."
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,ach_avance:0
+msgid "Buyer Advance"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,obj_comm:0
+msgid "Commission"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Min/Adj/Max"
+msgstr ""
+
+#. module: auction
+#: view:auction.catalog.flagey:0
+msgid "Catalog Flagey Report"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,obj_price:0
+msgid "Object Price"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+msgid "Bids Lines"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Catalog"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,auction_id:0
+msgid "Auction for object"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit.cost,account:0
+msgid "Destination Account"
+msgstr ""
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.auction_config_menu
+msgid "Configuration"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_pay_buy.py:80
+#, python-format
+msgid ""
+"You should pay all the total: \"%.2f\" are missing to accomplish the payment."
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_pay_buy
+msgid "Pay buy"
+msgstr ""
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.auction_outils_menu
+msgid "Tools Bar Codes"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit.cost,deposit_id:0
+msgid "Deposit"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,expo2:0
+msgid "Last Exposition Day"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lots_able
+msgid "Lots able"
+msgstr ""
+
+#. module: auction
+#: model:account.tax.code,name:auction.account_tax_code_id3
+msgid "VAT 10%"
+msgstr ""
+
+#. module: auction
+#: field:auction.artists,name:0
+msgid "Artist/Author Name"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "December"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,image:0
+msgid "Image"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,buyer_price:0
+#: help:auction.lots.make.invoice.buyer,amount:0
+msgid "Buyer Price"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_lot_category
+msgid "Auction Lots Category"
+msgstr ""
+
+#. module: auction
+#: model:account.tax.code,name:auction.account_tax_code_id2
+msgid "VAT 20%"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_payer_sel
+msgid "Auction payment for seller"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+#: selection:auction.lots,state:0
+msgid "Taken away"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.seller_form_id
+msgid "Seller List"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Deposit Costs"
+msgstr ""
+
+#. module: auction
+#: field:auction.lot.category,name:0
+msgid "Category Name"
+msgstr ""
+
+#. module: auction
+#: report:buyer.list:0
+msgid "........."
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+msgid "Auction Summary tree view"
+msgstr ""
+
+#. module: auction
+#: report:report.auction.buyer.result:0
+msgid "Adj"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+#: model:ir.model,name:auction.model_auction_dates
+msgid "Auction Dates"
+msgstr ""
+
+#. module: auction
+#: model:ir.ui.menu,name:auction.menu_board_auction_open
+msgid "Auction DashBoard"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+#: field:report.auction,user_id:0
+#: field:report.auction.adjudication,user_id:0
+#: field:report.auction.object.date,user_id:0
+#: field:report.object.encoded,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Payment Lines"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/auction.py:692
+#, python-format
+msgid "Missed Address !"
+msgstr ""
+
+#. module: auction
+#: help:auction.lots,net_revenue:0
+msgid "Buyer Price - Seller Price - Indirect Cost"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.act_window,name:auction.act_auction_lot_open_bid
+msgid "Open Bids"
+msgstr ""
+
+#. module: auction
+#: field:auction.artists,pseudo:0
+msgid "Pseudo"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots:0
+msgid "Not sold"
+msgstr ""
+
+#. module: auction
+#: model:account.tax,name:auction.auction_tax3
+#: field:auction.dates,buyer_costs:0
+msgid "Buyer Costs"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Auction Date:"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_aie_send.py:167
+#: code:addons/auction/wizard/auction_aie_send_result.py:116
+#: code:addons/auction/wizard/auction_lots_buyer_map.py:70
+#: code:addons/auction/wizard/auction_lots_numerotate.py:145
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,buyer_invoice_history:0
+#: field:auction.lots,ach_inv_id:0
+#: view:auction.lots.make.invoice.buyer:0
+msgid "Buyer Invoice"
+msgstr ""
+
+#. module: auction
+#: report:auction.bids:0
+msgid "Tel"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,artist_id:0
+msgid "Artist/Author"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.total_result1
+msgid "Auction Totals with lists"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "General Information"
+msgstr ""
+
+#. module: auction
+#: view:auction.lots.auction.move:0
+#: view:auction.lots.buyer_map:0
+#: view:auction.lots.make.invoice:0
+#: view:auction.lots.make.invoice.buyer:0
+#: view:auction.lots.sms.send:0
+#: view:auction.pay.buy:0
+msgid "Close"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_report_object_encoded
+msgid "Object encoded"
+msgstr ""
+
+#. module: auction
+#: view:auction.bid:0
+msgid "Search Auction Bid"
+msgstr ""
+
+#. module: auction
+#: report:bids.phones.details:0
+msgid "Est"
+msgstr ""
+
+#. module: auction
+#: view:auction.dates:0
+msgid "Seller Commissions"
+msgstr ""
+
+#. module: auction
+#: view:report.object.encoded:0
+msgid "Object statistic"
+msgstr ""
+
+#. module: auction
+#: help:auction.dates,journal_seller_id:0
+msgid "Account journal for seller"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,auction2:0
+msgid "Last Auction Day"
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+msgid "Objects Description"
+msgstr ""
+
+#. module: auction
+#: code:addons/auction/wizard/auction_pay_buy.py:87
+#, python-format
+msgid "No auction date for \"%s\": Please set one."
+msgstr ""
+
+#. module: auction
+#: view:auction.deposit:0
+#: field:auction.deposit,info:0
+#: report:bids.phones.details:0
+msgid "Description"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "May"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,obj_price:0
+msgid "Adjudication price"
+msgstr ""
+
+#. module: auction
+#: field:auction.dates,acc_income:0
+msgid "Income Account"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots.sms.send,password:0
+msgid "Password"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "February"
+msgstr ""
+
+#. module: auction
+#: selection:report.auction,month:0
+msgid "April"
+msgstr ""
+
+#. module: auction
+#: view:auction.pay.buy:0
+msgid "Pay objects"
+msgstr ""
+
+#. module: auction
+#: view:report.object.encoded:0
+msgid "# objects"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Adjudication:"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.details_bids_phones
+msgid "Bids per lot (phone)"
+msgstr ""
+
+#. module: auction
+#: field:report.auction,buyer_login:0
+msgid "Buyer Login"
+msgstr ""
+
+#. module: auction
+#: field:auction.deposit,tax_id:0
+msgid "Expenses"
+msgstr ""
+
+#. module: auction
+#: model:ir.model,name:auction.model_auction_payer
+msgid "Auction payer"
+msgstr ""
+
+#. module: auction
+#: report:auction.total.rml:0
+msgid "Auction name:"
+msgstr ""
+
+#. module: auction
+#: view:board.board:0
+msgid "Latest deposits"
+msgstr ""
+
+#. module: auction
+#: model:ir.actions.report.xml,name:auction.art2
+msgid "Artists Biography"
+msgstr ""
+
+#. module: auction
+#: view:report.auction:0
+#: field:report.auction,year:0
+msgid "Year"
+msgstr ""
+
+#. module: auction
+#: field:auction.lots,history_ids:0
+msgid "Auction history"
+msgstr ""
diff --git a/addons/audittrail/i18n/fa.po b/addons/audittrail/i18n/fa.po
new file mode 100644
index 00000000000..b50458d5c57
--- /dev/null
+++ b/addons/audittrail/i18n/fa.po
@@ -0,0 +1,377 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 19:47+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: audittrail
+#: model:ir.module.module,shortdesc:audittrail.module_meta_information
+msgid "Audit Trail"
+msgstr ""
+
+#. module: audittrail
+#: code:addons/audittrail/audittrail.py:81
+#, python-format
+msgid "WARNING: audittrail is not part of the pool"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,log_id:0
+msgid "Log"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+#: selection:audittrail.rule,state:0
+msgid "Subscribed"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.model,name:audittrail.model_audittrail_rule
+msgid "Audittrail Rule"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.view.log:0
+#: model:ir.actions.act_window,name:audittrail.action_audittrail_log_tree
+#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree
+msgid "Audit Logs"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+#: view:audittrail.rule:0
+msgid "Group By..."
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+#: field:audittrail.rule,state:0
+msgid "State"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "_Subscribe"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+#: selection:audittrail.rule,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,old_value:0
+msgid "Old Value"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.actions.act_window,name:audittrail.action_audittrail_view_log
+msgid "View log"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_read:0
+msgid ""
+"Select this if you want to keep track of read/open on any record of the "
+"object of this rule"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log,method:0
+msgid "Method"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.view.log,from:0
+msgid "Log From"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,log:0
+msgid "Log ID"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log,res_id:0
+msgid "Resource Id"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,user_id:0
+msgid "if User is not added then it will applicable for all users"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_workflow:0
+msgid ""
+"Select this if you want to keep track of workflow on any record of the "
+"object of this rule"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,user_id:0
+msgid "Users"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "Log Lines"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+#: field:audittrail.log,object_id:0
+#: field:audittrail.rule,object_id:0
+msgid "Object"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "AuditTrail Rule"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.view.log,to:0
+msgid "Log To"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "New Value Text: "
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "Search Audittrail Rule"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.actions.act_window,name:audittrail.action_audittrail_rule_tree
+#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
+msgid "Audit Rules"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "Old Value : "
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log,name:0
+msgid "Resource Name"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+#: field:audittrail.log,timestamp:0
+msgid "Date"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_write:0
+msgid ""
+"Select this if you want to keep track of modification on any record of the "
+"object of this rule"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_create:0
+msgid "Log Creates"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,object_id:0
+msgid "Select object for which you want to generate log."
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "Old Value Text : "
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_workflow:0
+msgid "Log Workflow"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.module.module,description:audittrail.module_meta_information
+msgid ""
+"\n"
+" This module gives the administrator the rights\n"
+" to track every user operation on all the objects\n"
+" of the system.\n"
+"\n"
+" Administrator can subscribe rules for read,write and\n"
+" delete on objects and can check logs.\n"
+" "
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_read:0
+msgid "Log Reads"
+msgstr ""
+
+#. module: audittrail
+#: code:addons/audittrail/audittrail.py:82
+#, python-format
+msgid "Change audittrail depends -- Setting rule as DRAFT"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log,line_ids:0
+msgid "Log lines"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,field_id:0
+msgid "Fields"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "AuditTrail Rules"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_unlink:0
+msgid ""
+"Select this if you want to keep track of deletion on any record of the "
+"object of this rule"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+#: field:audittrail.log,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,action_id:0
+msgid "Action ID"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "Users (if User is not added then it will applicable for all users)"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.rule:0
+msgid "UnSubscribe"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_unlink:0
+msgid "Log Deletes"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,field_description:0
+msgid "Field Description"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "Search Audittrail Log"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_write:0
+msgid "Log Writes"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.view.log:0
+msgid "Open Logs"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,new_value_text:0
+msgid "New value Text"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,name:0
+msgid "Rule Name"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,new_value:0
+msgid "New Value"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "AuditTrail Logs"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.model,name:audittrail.model_audittrail_log
+msgid "Audittrail Log"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_action:0
+msgid ""
+"Select this if you want to keep track of actions on the object of this rule"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.log:0
+msgid "New Value : "
+msgstr ""
+
+#. module: audittrail
+#: sql_constraint:audittrail.rule:0
+msgid ""
+"There is a rule defined on this object\n"
+" You can not define other on the same!"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.log.line,old_value_text:0
+msgid "Old value Text"
+msgstr ""
+
+#. module: audittrail
+#: view:audittrail.view.log:0
+msgid "Cancel"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.model,name:audittrail.model_audittrail_view_log
+msgid "View Log"
+msgstr ""
+
+#. module: audittrail
+#: model:ir.model,name:audittrail.model_audittrail_log_line
+msgid "Log Line"
+msgstr ""
+
+#. module: audittrail
+#: field:audittrail.rule,log_action:0
+msgid "Log Action"
+msgstr ""
+
+#. module: audittrail
+#: help:audittrail.rule,log_create:0
+msgid ""
+"Select this if you want to keep track of creation on any record of the "
+"object of this rule"
+msgstr ""
diff --git a/addons/base_action_rule/i18n/fa.po b/addons/base_action_rule/i18n/fa.po
new file mode 100644
index 00000000000..17ad95ee7bd
--- /dev/null
+++ b/addons/base_action_rule/i18n/fa.po
@@ -0,0 +1,502 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 19:48+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: base_action_rule
+#: help:base.action.rule,act_mail_to_user:0
+msgid ""
+"Check this if you want the rule to send an email to the responsible person."
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_remind_partner:0
+msgid "Remind Partner"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_partner_categ_id:0
+msgid "Partner Category"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_mail_to_watchers:0
+msgid "Mail to Watchers (CC)"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_state_to:0
+msgid "Button Pressed"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,model_id:0
+msgid "Object"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_mail_to_email:0
+msgid "Mail to these Emails"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_state:0
+msgid "Set State to"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_email_from:0
+msgid "Email From"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Email Body"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Days"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,last_run:0
+msgid "Last Run"
+msgstr ""
+
+#. module: base_action_rule
+#: code:addons/base_action_rule/base_action_rule.py:313
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_reply_to:0
+msgid "Reply-To"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_email_cc:0
+msgid ""
+"These people will receive a copy of the future communication between partner "
+"and users by email"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Minutes"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,name:0
+msgid "Rule Name"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_remind_partner:0
+msgid ""
+"Check this if you want the rule to send a reminder by email to the partner."
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions on Model Partner"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_type:0
+msgid "Deadline"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_subject)s = Object subject"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Email Reminders"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Special Keywords to Be Used in The Body"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_state_from:0
+msgid "State"
+msgstr ""
+
+#. module: base_action_rule
+#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
+msgid ""
+"Use automated actions to automatically trigger actions for various screens. "
+"Example: a lead created by a specific user may be automatically set to a "
+"specific sales team, or an opportunity which still has status pending after "
+"14 days might trigger an automatic reminder email."
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_mail_to_email:0
+msgid "Email-id of the persons whom mail is to be sent"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+#: model:ir.module.module,shortdesc:base_action_rule.module_meta_information
+msgid "Action Rule"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Fields to Change"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_type:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_type:0
+msgid "Last Action Date"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Hours"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_id)s = Object ID"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Delay After Trigger Date"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_remind_attach:0
+msgid "Remind with Attachment"
+msgstr ""
+
+#. module: base_action_rule
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_user_id:0
+msgid "Set Responsible to"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_type:0
+msgid "None"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_email_to:0
+msgid ""
+"Use a python expression to specify the right field on which one than we will "
+"use for the 'To' field of the header"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_user_phone)s = Responsible phone"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid ""
+"The rule uses the AND operator. The model must match all non-empty fields so "
+"that the rule executes the action described in the 'Actions' tab."
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_date_range_type:0
+msgid "Delay type"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,regex_name:0
+msgid ""
+"Regular expression for matching name of the resource\n"
+"e.g.: 'urgent.*' will search for records having name starting with the "
+"string 'urgent'\n"
+"Note: This is case sensitive search."
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_method:0
+msgid "Call Object Method"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_email_to:0
+msgid "Email To"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_mail_to_watchers:0
+msgid ""
+"Check this if you want the rule to mark CC(mail to any other person defined "
+"in actions)."
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(partner)s = Partner name"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Note"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_email_from:0
+msgid ""
+"Use a python expression to specify the right field on which one than we will "
+"use for the 'From' field of the header"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_date_range:0
+msgid "Delay after trigger date"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,trg_date_range:0
+msgid ""
+"Delay After Trigger Date,specifies you can put a negative number. If you "
+"need a delay before the trigger date, like sending a reminder 15 minutes "
+"before a meeting."
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,active:0
+msgid "Active"
+msgstr ""
+
+#. module: base_action_rule
+#: code:addons/base_action_rule/base_action_rule.py:314
+#, python-format
+msgid "No E-Mail ID Found for your Company address!"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_remind_user:0
+msgid "Remind Responsible"
+msgstr ""
+
+#. module: base_action_rule
+#: model:ir.module.module,description:base_action_rule.module_meta_information
+msgid "This module allows to implement action rules for any object."
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,sequence:0
+msgid "Gives the sequence order when displaying a list of rules."
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_range_type:0
+msgid "Months"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,filter_id:0
+msgid "Filter"
+msgstr ""
+
+#. module: base_action_rule
+#: selection:base.action.rule,trg_date_type:0
+msgid "Date"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,server_action_id:0
+msgid ""
+"Describes the action name.\n"
+"eg:on which object which action to be taken on basis of which condition"
+msgstr ""
+
+#. module: base_action_rule
+#: model:ir.model,name:base_action_rule.model_ir_cron
+msgid "ir.cron"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_description)s = Object description"
+msgstr ""
+
+#. module: base_action_rule
+#: constraint:base.action.rule:0
+msgid "Error: The mail is not well formated"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Email Actions"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Email Information"
+msgstr ""
+
+#. module: base_action_rule
+#: model:ir.model,name:base_action_rule.model_base_action_rule
+msgid "Action Rules"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_mail_body:0
+msgid "Content of mail"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(partner_email)s = Partner Email"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_date)s = Creation date"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_user_email)s = Responsible Email"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_mail_body:0
+msgid "Mail body"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_remind_user:0
+msgid ""
+"Check this if you want the rule to send a reminder by email to the user."
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Server Action to be Triggered"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_mail_to_user:0
+msgid "Mail to Responsible"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,act_email_cc:0
+msgid "Add Watchers (Cc)"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions on Model Fields"
+msgstr ""
+
+#. module: base_action_rule
+#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
+#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
+msgid "Automated Actions"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,server_action_id:0
+msgid "Server Action"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,regex_name:0
+msgid "Regex on Resource Name"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,act_remind_attach:0
+msgid ""
+"Check this if you want that all documents attached to the object be attached "
+"to the reminder email sent."
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions on Timing"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Actions"
+msgstr ""
+
+#. module: base_action_rule
+#: help:base.action.rule,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the rule "
+"without removing it."
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "%(object_user)s = Responsible name"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: base_action_rule
+#: view:base.action.rule:0
+msgid "Conditions on States"
+msgstr ""
+
+#. module: base_action_rule
+#: field:base.action.rule,trg_date_type:0
+msgid "Trigger Date"
+msgstr ""
diff --git a/addons/base_contact/__init__.py b/addons/base_contact/__init__.py
index 84054cd59e7..aa3d3b43064 100644
--- a/addons/base_contact/__init__.py
+++ b/addons/base_contact/__init__.py
@@ -20,7 +20,4 @@
##############################################################################
import base_contact
-import base_contact_installer
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_contact/__openerp__.py b/addons/base_contact/__openerp__.py
index 27d06dc4e22..14f90106fef 100644
--- a/addons/base_contact/__openerp__.py
+++ b/addons/base_contact/__openerp__.py
@@ -19,15 +19,14 @@
#
##############################################################################
-
{
'name': 'Contacts Management',
'version': '1.0',
'category': 'Customer Relationship Management',
'complexity': "expert",
'description': """
-This module allows you to manage your contacts entirely.
-========================================================
+This module allows you to manage your contacts
+==============================================
It lets you define:
* contacts unrelated to a partner,
@@ -47,7 +46,6 @@ Pay attention that this module converts the existing addresses into "addresses +
'update_xml': [
'security/ir.model.access.csv',
'base_contact_view.xml',
- 'base_contact_installer_view.xml',
'process/base_contact_process.xml'
],
'demo_xml': ['base_contact_demo.xml'],
diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py
index 9a4b0eace6b..420894f23d9 100644
--- a/addons/base_contact/base_contact.py
+++ b/addons/base_contact/base_contact.py
@@ -20,6 +20,7 @@
##############################################################################
from osv import fields, osv
+import addons
class res_partner_contact(osv.osv):
""" Partner Contact """
@@ -27,81 +28,45 @@ class res_partner_contact(osv.osv):
_name = "res.partner.contact"
_description = "Contact"
- def _main_job(self, cr, uid, ids, fields, arg, context=None):
- """
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of partner contact’s IDs
- @fields: Get Fields
- @param context: A standard dictionary for contextual values
- @param arg: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...]. """
- res = dict.fromkeys(ids, False)
-
- res_partner_job_obj = self.pool.get('res.partner.job')
- all_job_ids = res_partner_job_obj.search(cr, uid, [])
- all_job_names = dict(zip(all_job_ids, res_partner_job_obj.name_get(cr, uid, all_job_ids, context=context)))
-
- for contact in self.browse(cr, uid, ids, context=context):
- if contact.job_ids:
- res[contact.id] = all_job_names.get(contact.job_ids[0].id, False)
-
- return res
+ def _name_get_full(self, cr, uid, ids, prop, unknow_none, context=None):
+ result = {}
+ for rec in self.browse(cr, uid, ids, context=context):
+ result[rec.id] = rec.last_name+' '+(rec.first_name or '')
+ return result
_columns = {
- 'name': fields.char('Last Name', size=64, required=True),
+ 'name': fields.function(_name_get_full, string='Name', size=64, type="char", store=True),
+ 'last_name': fields.char('Last Name', size=64, required=True),
'first_name': fields.char('First Name', size=64),
'mobile': fields.char('Mobile', size=64),
- 'title': fields.many2one('res.partner.title','Title'),
+ 'title': fields.many2one('res.partner.title','Title', domain=[('domain','=','contact')]),
'website': fields.char('Website', size=120),
'lang_id': fields.many2one('res.lang', 'Language'),
- 'job_ids': fields.one2many('res.partner.job', 'contact_id', 'Functions and Addresses'),
+ 'job_ids': fields.one2many('res.partner.address', 'contact_id', 'Functions and Addresses'),
'country_id': fields.many2one('res.country','Nationality'),
'birthdate': fields.date('Birth Date'),
'active': fields.boolean('Active', help="If the active field is set to False,\
it will allow you to hide the partner contact without removing it."),
- 'partner_id': fields.related('job_ids', 'address_id', 'partner_id', type='many2one',\
+ 'partner_id': fields.related('job_ids', 'partner_id', type='many2one',\
relation='res.partner', string='Main Employer'),
'function': fields.related('job_ids', 'function', type='char', \
string='Main Function'),
- 'job_id': fields.function(_main_job, type='many2one',\
- relation='res.partner.job', string='Main Job'),
'email': fields.char('E-Mail', size=240),
'comment': fields.text('Notes', translate=True),
- 'photo': fields.binary('Image'),
-
+ 'photo': fields.binary('Photo'),
}
+
+ def _get_photo(self, cr, uid, context=None):
+ photo_path = addons.get_module_resource('base_contact', 'images', 'photo.png')
+ return open(photo_path, 'rb').read().encode('base64')
+
_defaults = {
+ 'photo' : _get_photo,
'active' : lambda *a: True,
}
_order = "name,first_name"
- def name_get(self, cr, user, ids, context=None):
-
- """ will return name and first_name.......
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param user: the current user’s ID for security checks,
- @param ids: List of create menu’s IDs
- @return: name and first_name
- @param context: A standard dictionary for contextual values
- """
-
- if not len(ids):
- return []
- res = []
- for contact in self.browse(cr, user, ids, context=context):
- _contact = ""
- if contact.title:
- _contact += "%s "%(contact.title.name)
- _contact += contact.name or ""
- if contact.name and contact.first_name:
- _contact += " "
- _contact += contact.first_name or ""
- res.append((contact.id, _contact))
- return res
-
def name_search(self, cr, uid, name='', args=None, operator='ilike', context=None, limit=None):
if not args:
args = []
@@ -112,151 +77,175 @@ class res_partner_contact(osv.osv):
else:
ids = self.search(cr, uid, args, limit=limit, context=context)
return self.name_get(cr, uid, ids, context=context)
-
+
+ def name_get(self, cr, uid, ids, context=None):
+ result = {}
+ for obj in self.browse(cr, uid, ids, context=context):
+ result[obj.id] = obj.name or '/'
+ if obj.partner_id:
+ result[obj.id] = result[obj.id] + ', ' + obj.partner_id.name
+ return result.items()
+
+ def _auto_init(self, cr, context=None):
+ def table_exists(view_name):
+ cr.execute('SELECT count(relname) FROM pg_class WHERE relname = %s', (view_name,))
+ value = cr.fetchone()[0]
+ return bool(value == 1)
+
+ exists = table_exists(self._table)
+ super(res_partner_contact, self)._auto_init(cr, context)
+
+ if not exists:
+ cr.execute("""
+ INSERT INTO
+ res_partner_contact
+ (id,name,last_name,title,active)
+ SELECT
+ id,COALESCE(name, '/'),COALESCE(name, '/'),title,true
+ FROM
+ res_partner_address""")
+ cr.execute("alter table res_partner_address add contact_id int references res_partner_contact")
+ cr.execute("update res_partner_address set contact_id=id")
+ cr.execute("select setval('res_partner_contact_id_seq', (select max(id)+1 from res_partner_contact))")
+
res_partner_contact()
+class res_partner_location(osv.osv):
+ _name = 'res.partner.location'
+ _rec_name = 'street'
+ _columns = {
+ 'street': fields.char('Street', size=128),
+ 'street2': fields.char('Street2', size=128),
+ 'zip': fields.char('Zip', change_default=True, size=24),
+ 'city': fields.char('City', size=128),
+ 'state_id': fields.many2one("res.country.state", 'Fed. State', domain="[('country_id','=',country_id)]"),
+ 'country_id': fields.many2one('res.country', 'Country'),
+ 'partner_id': fields.many2one('res.partner', 'Partner Name', ondelete='set null', select=True, help="Keep empty for a private address, not related to partner."),
+ 'company_id': fields.many2one('res.company', 'Company',select=1),
+ 'job_ids': fields.one2many('res.partner.address', 'location_id', 'Contacts'),
+ 'partner_id': fields.related('job_ids', 'partner_id', type='many2one',\
+ relation='res.partner', string='Main Partner'),
+ }
+ _defaults = {
+ 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner.address', context=c),
+ }
+ def _auto_init(self, cr, context=None):
+ def table_exists(view_name):
+ cr.execute('SELECT count(relname) FROM pg_class WHERE relname = %s', (view_name,))
+ value = cr.fetchone()[0]
+ return bool(value == 1)
+
+ exists = table_exists(self._table)
+ super(res_partner_location, self)._auto_init(cr, context)
+
+ if not exists:
+ cr.execute("""
+ INSERT INTO
+ res_partner_location
+ (id,street,street2,zip,city,
+ state_id,country_id,company_id)
+ SELECT
+ id,street,street2,zip,city,
+ state_id,country_id,company_id
+ FROM
+ res_partner_address""")
+ cr.execute("alter table res_partner_address add location_id int references res_partner_location")
+ cr.execute("update res_partner_address set location_id=id")
+ cr.execute("select setval('res_partner_location_id_seq', (select max(id)+1 from res_partner_address))")
+
+ def name_get(self, cr, uid, ids, context=None):
+ result = {}
+ for obj in self.browse(cr, uid, ids, context=context):
+ res = []
+ if obj.partner_id: res.append(obj.partner_id.name_get()[0][1])
+ if obj.city: res.append(obj.city)
+ if obj.country_id: res.append(obj.country_id.name_get()[0][1])
+ result[obj.id] = ', '.join(res)
+ return result.items()
+
+res_partner_location()
class res_partner_address(osv.osv):
-
- #overriding of the name_get defined in base in order to remove the old contact name
- def name_get(self, cr, user, ids, context=None):
- """
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param user: the current user,
- @param ids: List of partner address’s IDs
- @param context: A standard dictionary for contextual values
- """
-
- if not len(ids):
- return []
- res = []
- if context is None:
- context = {}
- for r in self.read(cr, user, ids, ['zip', 'city', 'partner_id', 'street']):
- if context.get('contact_display', 'contact')=='partner' and r['partner_id']:
- res.append((r['id'], r['partner_id'][1]))
- else:
- addr = str('')
- addr += "%s %s %s" % (r.get('street', '') or '', r.get('zip', '') \
- or '', r.get('city', '') or '')
- res.append((r['id'], addr.strip() or '/'))
- return res
-
- def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
- if not args:
- args=[]
- ids = self.search(cr, user, [('name',operator,name)] + args, limit=limit, context=context)
- jobs = self.pool.get('res.partner.job')
- if name:
- job_ids = jobs.search(cr, user, [('contact_id', operator, name)] + args, limit=limit, context=context)
- for job in jobs.browse(cr, user, job_ids):
- ids += [job.address_id.id]
- return self.name_get(cr, user, ids, context)
-
- _name = 'res.partner.address'
_inherit = 'res.partner.address'
- _description ='Partner Address'
+
+ def _default_location_id(self, cr, uid, context=None):
+ context = context or {}
+ if not context.get('default_partner_id',False):
+ return False
+ ids = self.pool.get('res.partner.location').search(cr, uid, [('partner_id','=',context['default_partner_id'])], context=context)
+ return ids and ids[0] or False
+
+ def onchange_location_id(self,cr, uid, ids, location_id=False, context={}):
+ if not location_id:
+ return {}
+ location = self.pool.get('res.partner.location').browse(cr, uid, location_id, context=context)
+ return {'value':{
+ 'street': location.street,
+ 'street2': location.street2,
+ 'zip': location.zip,
+ 'city': location.city,
+ 'country_id': location.country_id and location.country_id.id or False,
+ 'state_id': location.state_id and location.state_id.id or False,
+ }}
_columns = {
- 'job_id': fields.related('job_ids','contact_id','job_id',type='many2one',\
- relation='res.partner.job', string='Main Job'),
- 'job_ids': fields.one2many('res.partner.job', 'address_id', 'Contacts'),
- }
-res_partner_address()
+ 'location_id' : fields.many2one('res.partner.location', 'Location'),
+ 'contact_id' : fields.many2one('res.partner.contact', 'Contact'),
+
+ # fields from location
+ 'street': fields.related('location_id', 'street', string='Street', type="char", store=True, size=128),
+ 'street2': fields.related('location_id', 'street2', string='Street2', type="char", store=True, size=128),
+ 'zip': fields.related('location_id', 'zip', string='Zip', type="char", store=True, change_default=True, size=24),
+ 'city': fields.related('location_id', 'city', string='City', type="char", store=True, size=128),
+ 'state_id': fields.related('location_id', 'state_id', relation="res.country.state", string='Fed. State', type="many2one", store=True, domain="[('country_id','=',country_id)]"),
+ 'country_id': fields.related('location_id', 'country_id', type='many2one', string='Country', store=True, relation='res.country'),
+
+ 'phone': fields.char('Phone', size=64),
+ 'fax': fields.char('Fax', size=64),
+ 'email': fields.char('E-Mail', size=240),
+
+ # fields from contact
+ 'mobile' : fields.related('contact_id', 'mobile', type='char', size=64, string='Mobile'),
+ 'name' : fields.related('contact_id', 'name', type='char', size=64, string="Contact Name", store=True),
+ 'title' : fields.related('contact_id', 'title', type='many2one', relation='res.partner.title', string="Title", store=True),
+ }
+ def create(self, cr, uid, data, context={}):
+ if not data.get('location_id', False):
+ loc_id = self.pool.get('res.partner.location').create(cr, uid, {
+ 'street': data.get('street',''),
+ 'street2': data.get('street2',''),
+ 'zip': data.get('zip',''),
+ 'city': data.get('city',''),
+ 'country_id': data.get('country_id',False),
+ 'state_id': data.get('state_id',False)
+ }, context=context)
+ data['location_id'] = loc_id
+ result = super(res_partner_address, self).create(cr, uid, data, context=context)
+ return result
-class res_partner_job(osv.osv):
def name_get(self, cr, uid, ids, context=None):
- """
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param user: the current user,
- @param ids: List of partner address’s IDs
- @param context: A standard dictionary for contextual values
- """
- if context is None:
- context = {}
-
- if not ids:
- return []
- res = []
-
- jobs = self.browse(cr, uid, ids, context=context)
-
- contact_ids = [rec.contact_id.id for rec in jobs]
- contact_names = dict(self.pool.get('res.partner.contact').name_get(cr, uid, contact_ids, context=context))
-
- for r in jobs:
- function_name = r.function
- funct = function_name and (", " + function_name) or ""
- res.append((r.id, contact_names.get(r.contact_id.id, '') + funct))
-
- return res
-
- _name = 'res.partner.job'
- _description ='Contact Partner Function'
- _order = 'sequence_contact'
-
- _columns = {
- 'name': fields.related('address_id', 'partner_id', type='many2one',\
- relation='res.partner', string='Partner', help="You may\
- enter Address first,Partner will be linked automatically if any."),
- 'address_id': fields.many2one('res.partner.address', 'Address', \
- help='Address which is linked to the Partner'), # TO Correct: domain=[('partner_id', '=', name)]
- 'contact_id': fields.many2one('res.partner.contact','Contact', required=True, ondelete='cascade'),
- 'function': fields.char('Partner Function', size=64, help="Function of this contact with this partner"),
- 'sequence_contact': fields.integer('Contact Seq.',help='Order of\
- importance of this address in the list of addresses of the linked contact'),
- 'sequence_partner': fields.integer('Partner Seq.',help='Order of importance\
- of this job title in the list of job title of the linked partner'),
- 'email': fields.char('E-Mail', size=240, help="Job E-Mail"),
- 'phone': fields.char('Phone', size=64, help="Job Phone no."),
- 'fax': fields.char('Fax', size=64, help="Job FAX no."),
- 'extension': fields.char('Extension', size=64, help='Internal/External extension phone number'),
- 'other': fields.char('Other', size=64, help='Additional phone field'),
- 'date_start': fields.date('Date Start',help="Start date of job(Joining Date)"),
- 'date_stop': fields.date('Date Stop', help="Last date of job"),
- 'state': fields.selection([('past', 'Past'),('current', 'Current')], \
- 'State', required=True, help="Status of Address"),
- }
+ result = {}
+ for rec in self.browse(cr,uid, ids, context=context):
+ res = []
+ if rec.partner_id:
+ res.append(rec.partner_id.name_get()[0][1])
+ if rec.contact_id and rec.contact_id.name:
+ res.append(rec.contact_id.name)
+ if rec.location_id:
+ if rec.location_id.city: res.append(rec.location_id.city)
+ if rec.location_id.country_id: res.append(rec.location_id.country_id.name_get()[0][1])
+ result[rec.id] = ', '.join(res)
+ return result.items()
_defaults = {
- 'sequence_contact' : lambda *a: 0,
- 'state': lambda *a: 'current',
+ 'location_id': _default_location_id
}
-
- def onchange_name(self, cr, uid, ids, address_id='', name='', context=None):
- return {'value': {'address_id': address_id}, 'domain':{'partner_id':'name'}}
-
- def onchange_partner(self, cr, uid, _, partner_id, context=None):
- """
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user,
- @param _: List of IDs,
- @partner_id : ID of the Partner selected,
- @param context: A standard dictionary for contextual values
- """
- return {'value': {'address_id': False}}
- def onchange_address(self, cr, uid, _, address_id, context=None):
- """
- @@param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user,
- @param _: List of IDs,
- @address_id : ID of the Address selected,
- @param context: A standard dictionary for contextual values
- """
- partner_id = False
- if address_id:
- address = self.pool.get('res.partner.address')\
- .browse(cr, uid, address_id, context=context)
- partner_id = address.partner_id.id
- return {'value': {'name': partner_id}}
-
-res_partner_job()
+ def default_get(self, cr, uid, fields=[], context=None):
+ context = context or {}
+ if 'default_type' in context:
+ del context['default_type']
+ return super(res_partner_address, self).default_get(cr, uid, fields, context)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+res_partner_address()
diff --git a/addons/base_contact/base_contact_demo.xml b/addons/base_contact/base_contact_demo.xml
index 35390caca77..888ef6b54b7 100644
--- a/addons/base_contact/base_contact_demo.xml
+++ b/addons/base_contact/base_contact_demo.xml
@@ -3,183 +3,123 @@
-
+
-
-
+ Benoit
+ Mortier
-
-
-
+ Laurent
+ Jacot
-
-
-
+ Thomas
+ Passot
-
-
-
-
+ Etienne
+ Lacarte
-
-
+ Tang
-
-
+ Wong
-
-
+ Jean-Guy
+ Lavente
-
-
-
+ Sylvie
+ Lelitre
-
-
-
+ Arthur
+ Grosbonnet
-
-
-
+ Karine
+ Lesbrouffe
-
-
-
+ Zen
-
-
-
+ http://fptiny.blogspot.com/
+ Fabien
+ Pinckaers
-
-
-
+ Marc
+ Debois
-
-
-
+ Phuong
+ Luu
-
-
-
+ Najlaa
+ Khayat
-
-
-
+ Quentin
+ Paolino
-
-
-
+ Fabian
+ W.
-
-
-
+ Yvan
+ Van
-
-
-
+ Henry
+ Lambotte
-
-
-
+ Olivier
+ Laurent
-
-
-
+ Christophe
+ Dupont
-
-
-
+ Stéphane
+ Andre
-
-
-
+ Philippe
+ Antoine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/addons/base_contact/base_contact_installer.py b/addons/base_contact/base_contact_installer.py
deleted file mode 100644
index 4568fa25193..00000000000
--- a/addons/base_contact/base_contact_installer.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class base_contact_installer(osv.osv_memory):
- _name = 'base.contact.installer'
- _inherit = 'res.config.installer'
-
- _columns = {
- 'name': fields.char('Name', size=64),
- 'migrate': fields.boolean('Migrate', help="If you select this, all addresses will be migrated."),
- }
-
- def execute(self, cr, uid, ids, context=None):
- """
- This function is used to create contact and address from existing partner address
- """
- obj = self.pool.get("base.contact.installer").browse(cr, uid, uid, context=context)
- if obj.migrate:
- # Enable PL/pgSQL if not enabled yet in the database
- cr.execute("SELECT 1 FROM pg_language WHERE lanname = 'plpgsql'")
- if not cr.fetchone():
- cr.execute("CREATE LANGUAGE plpgsql;")
-
- cr.execute("""DROP TRIGGER IF EXISTS contactjob on res_partner_contact;
- CREATE OR REPLACE FUNCTION add_to_job() RETURNS TRIGGER AS $contactjob$
- DECLARE
- new_name varchar;
- new_phonenum varchar;
- BEGIN
- IF(TG_OP='INSERT') THEN
- INSERT INTO res_partner_job(contact_id, address_id, function, state) VALUES(NEW.id, NEW.website::integer,NEW.first_name, 'current');
- UPDATE res_partner_contact set first_name=Null, website=Null, active=True where id=NEW.id;
- END IF;
- RETURN NEW;
- END;
- $contactjob$ LANGUAGE plpgsql;
- CREATE TRIGGER contactjob AFTER INSERT ON res_partner_contact FOR EACH ROW EXECUTE PROCEDURE add_to_job();""")
-
- cr.execute("INSERT into res_partner_contact (name, title, email, first_name, website) (SELECT coalesce(name, 'Noname'), title, email, function , to_char(id, '99999999') from res_partner_address)")
-
- cr.execute("DROP TRIGGER IF EXISTS contactjob on res_partner_contact")
-
- cr.execute("DROP FUNCTION IF EXISTS add_to_job()")
-
-base_contact_installer()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_contact/base_contact_installer_view.xml b/addons/base_contact/base_contact_installer_view.xml
deleted file mode 100644
index 2feed9113db..00000000000
--- a/addons/base_contact/base_contact_installer_view.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
- base.contact.installer.view
- base.contact.installer
- form
-
-
-
-
-
-
- Select the Option for Addresses Migration
-
-
- You can migrate Partner's current addresses to the contact.
-
-
- 13
-
-
-
- Configure
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Address Migration
- ir.actions.act_window
- base.contact.installer
-
- form
- form
- new
-
-
-
-
-
- 3
- automatic
-
-
-
-
diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml
index 1dc73f16f72..3e5edd201ac 100644
--- a/addons/base_contact/base_contact_view.xml
+++ b/addons/base_contact/base_contact_view.xml
@@ -30,12 +30,12 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
-
-
+
+
-
+
@@ -108,8 +90,8 @@
search
-
-
+
@@ -132,7 +114,7 @@
Addresses
-
-
@@ -152,119 +134,45 @@
form
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ res.partner.location.form
+ res.partner.location
+ form
+
+
-
-
-
- res.partner.form
- form
- res.partner
-
-
-
-
-
-
-
-
-
-
- res.partner.form
- form
- res.partner
-
-
-
-
-
-
-
- res.partner.form
- form
- res.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Partner addresses inherited
- res.partner.address
-
+
+ res.partner.location.tree
+ res.partner.location
tree
-
-
-
+
+
+
+
+
@@ -273,152 +181,16 @@
res.partner.address
form
-
-
-
-
-
-
-
- res.partner.address.form.inherited1
- res.partner.address
-
- form
-
-
-
-
-
- res.partner.address.form.inherited2
- res.partner.address
-
- form
-
-
-
-
-
-
-
- res.partner.address.form.inherited3
- res.partner.address
-
- form
-
-
-
-
-
-
-
- res.partner.address.form.inherited4
- res.partner.address
-
- form
-
-
-
-
-
-
-
- res.partner.address.form.inherited6
- res.partner.address
-
- form
-
-
-
-
-
-
-
-
-
-
- res.partner.address.select
- res.partner.address
- search
-
-
-
-
-
-
-
-
-
-
-
- res.partner.job.tree
- res.partner.job
- tree
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
- res.partner.job.form
- res.partner.job
- form
-
-
-
-
-
-
-
-
- Contact's Jobs
- ir.actions.act_window
- res.partner.job
- form
-
-
-
-
-
-
-
-
diff --git a/addons/base_contact/process/base_contact_process.xml b/addons/base_contact/process/base_contact_process.xml
index f5b754e7ad9..54b9ed08cd9 100644
--- a/addons/base_contact/process/base_contact_process.xml
+++ b/addons/base_contact/process/base_contact_process.xml
@@ -36,15 +36,6 @@
-
-
-
-
-
-
-
-
-
@@ -59,22 +50,6 @@
Process Transition
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -84,4 +59,4 @@
-
\ No newline at end of file
+
diff --git a/addons/base_contact/security/ir.model.access.csv b/addons/base_contact/security/ir.model.access.csv
index a44b5450a54..5df17cf17e6 100644
--- a/addons/base_contact/security/ir.model.access.csv
+++ b/addons/base_contact/security/ir.model.access.csv
@@ -1,7 +1,4 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_res_partner_contact,res.partner.contact,model_res_partner_contact,base.group_partner_manager,1,1,1,1
-access_res_partner_job,res.partner.job,model_res_partner_job,base.group_partner_manager,1,1,1,1
-access_res_partner_contact_all,res.partner.contact all,model_res_partner_contact,base.group_user,1,0,0,0
-access_res_partner_job_all,res.partner.job all,model_res_partner_job,base.group_user,1,0,0,0
-access_group_sale_salesman,res.partner.contact.sale.salesman,model_res_partner_contact,base.group_sale_salesman,1,1,1,0
-access_res_partner_job_salesman,res.partner.job.salesman,model_res_partner_job,base.group_sale_salesman,1,1,1,0
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_res_partner_contact","res.partner.contact","model_res_partner_contact","base.group_partner_manager",1,1,1,1
+"access_res_partner_contact_all","res.partner.contact all","model_res_partner_contact","base.group_user",1,0,0,0
+"access_group_sale_salesman","res.partner.contact.sale.salesman","model_res_partner_contact","base.group_sale_salesman",1,1,1,0
diff --git a/addons/base_contact/test/base_contact00.yml b/addons/base_contact/test/base_contact00.yml
index 775b5636caa..c2ff49199f7 100644
--- a/addons/base_contact/test/base_contact00.yml
+++ b/addons/base_contact/test/base_contact00.yml
@@ -3,31 +3,17 @@
*contacts unrelated to a partner,
*contacts working at several addresses (possibly for different partners),
*contacts with possibly different functions for each of its job's addresses
-- |
- In order to assign language to contacts first I will create Language FR
- (Remove)
--
- !record {model: res.lang, id: res_lang_french0}:
- code: fr_BE
- date_format: '%m/%d/%Y'
- decimal_point: '.'
- direction: ltr
- grouping: '[]'
- name: French
- time_format: '%H:%M:%S'
- |
In order to check contacts first I will create contact unrelated to a partner
-
!record {model: res.partner.contact, id: res_partner_contact_williams0}:
country_id: base.be
first_name: Laura
+ last_name: Henrion
job_ids:
- email: lwilliams@mydomain.com
function: PA
phone: (+32).10.45.18.77
- sequence_contact: 1
- state: current
- lang_id: res_lang_french0
mobile: (+32).10.45.18.77
name: Williams
- |
@@ -41,54 +27,12 @@
street: 23, street ways
type: default
zip: '2324324'
- job_ids:
- - address_id: res_partner_address_1
- function: CEO
- contact_id: res_partner_contact_williams0
- sequence_partner: 2
- state: current
- lang: fr_BE
- name: Laura's Company
+ function: CEO
+ contact_id: res_partner_contact_williams0
+ name: Lauras Company
ref: LC
-
-- |
+-
Now I will check that the new job is assigned properly to contact or not
-
!assert {model: res.partner.contact, id: res_partner_contact_williams0}:
- - len(job_ids) >= 2
-- |
- In order to check contacts working at several addresses for different partners
- I will create contact with 2 different addresses
--
- !record {model: res.partner.contact, id: res_partner_contact_pauwels0}:
- country_id: base.be
- first_name: Nicolas
- job_ids:
- - address_id: base.res_partner_address_1
- function: CTO
- state: current
- - address_id: base.res_partner_address_3000
- function: CEO
- state: current
- lang_id: res_lang_french0
- mobile: (+32).23.44.32.12
- name: Pauwels
-
-- |
- In order to check one contact working at one partner with different functions
- I will create contact with 2 different jobs with different function but the same address
--
- !record {model: res.partner.contact, id: res_partner_contact_mortier0}:
- country_id: base.be
- first_name: Christina
- job_ids:
- - address_id: base.res_partner_address_1
- function: CEO
- state: past
- - address_id: base.res_partner_address_1
- function: CTO
- state: current
- lang_id: base_contact.res_lang_french0
- mobile: (+32).10.45.18.77
- name: Mortier
-
+ - len(job_ids) == 2
diff --git a/addons/base_crypt/i18n/fa.po b/addons/base_crypt/i18n/fa.po
new file mode 100644
index 00000000000..1821a871468
--- /dev/null
+++ b/addons/base_crypt/i18n/fa.po
@@ -0,0 +1,71 @@
+# Persian translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-12-18 20:12+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Persian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:49+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
+
+#. module: base_crypt
+#: sql_constraint:res.users:0
+msgid "You can not have two users with the same login !"
+msgstr ""
+
+#. module: base_crypt
+#: model:ir.model,name:base_crypt.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. module: base_crypt
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr ""
+
+#. module: base_crypt
+#: code:addons/base_crypt/crypt.py:132
+#, python-format
+msgid "Please specify the password !"
+msgstr ""
+
+#. module: base_crypt
+#: model:ir.module.module,shortdesc:base_crypt.module_meta_information
+msgid "Base - Password Encryption"
+msgstr ""
+
+#. module: base_crypt
+#: code:addons/base_crypt/crypt.py:132
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: base_crypt
+#: model:ir.module.module,description:base_crypt.module_meta_information
+msgid ""
+"This module replaces the cleartext password in the database with a password "
+"hash,\n"
+"preventing anyone from reading the original password.\n"
+"For your existing user base, the removal of the cleartext passwords occurs "
+"the first time\n"
+"a user logs into the database, after installing base_crypt.\n"
+"After installing this module it won't be possible to recover a forgotten "
+"password for your\n"
+"users, the only solution is for an admin to set a new password.\n"
+"\n"
+"Note: installing this module does not mean you can ignore basic security "
+"measures,\n"
+"as the password is still transmitted unencrypted on the network (by the "
+"client),\n"
+"unless you are using a secure protocol such as XML-RPCS.\n"
+" "
+msgstr ""
diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py
index 599edd02111..131f6d40b0a 100644
--- a/addons/event/__openerp__.py
+++ b/addons/event/__openerp__.py
@@ -39,7 +39,7 @@ Note that:
Association / Configuration / Types of Events
""",
'author': 'OpenERP SA',
- 'depends': ['crm', 'base_contact', 'account', 'marketing', 'mail'],
+ 'depends': ['crm', 'account', 'marketing', 'mail'],
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
diff --git a/addons/event/event.py b/addons/event/event.py
index ab575408c63..752c7089582 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -303,7 +303,7 @@ class event_registration(osv.osv):
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
- "contact_id": fields.many2one('res.partner.contact', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
+ "contact_id": fields.many2one('res.partner.address', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
"unit_price": fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}),
'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute=dp.get_precision('Sale Price'), store=True),
"badge_ids": fields.one2many('event.registration.badge', 'registration_id', 'Badges', readonly=False, states={'done': [('readonly', True)]}),
@@ -382,7 +382,7 @@ class event_registration(osv.osv):
inv_lines_pool = self.pool.get('account.invoice.line')
inv_pool = self.pool.get('account.invoice')
product_pool = self.pool.get('product.product')
- contact_pool = self.pool.get('res.partner.contact')
+ contact_pool = self.pool.get('res.partner.address')
if context is None:
context = {}
# If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the
@@ -578,13 +578,7 @@ class event_registration(osv.osv):
if not contact:
return data
addr_obj = self.pool.get('res.partner.address')
- job_obj = self.pool.get('res.partner.job')
-
- if partner:
- partner_addresses = addr_obj.search(cr, uid, [('partner_id', '=', partner)])
- job_ids = job_obj.search(cr, uid, [('contact_id', '=', contact), ('address_id', 'in', partner_addresses)])
- if job_ids:
- data['email_from'] = job_obj.browse(cr, uid, job_ids[0]).email
+ data['email_from'] = addr_obj.browse(cr, uid, contact).email
return {'value': data}
def onchange_event(self, cr, uid, ids, event_id, partner_invoice_id):
@@ -636,7 +630,6 @@ class event_registration(osv.osv):
@param event_id: Event ID
@param partner_invoice_id: Partner Invoice ID
"""
- job_obj = self.pool.get('res.partner.job')
res_obj = self.pool.get('res.partner')
data = {}
@@ -648,14 +641,10 @@ class event_registration(osv.osv):
d = self.onchange_partner_invoice_id(cr, uid, ids, event_id, part)
# this updates the dictionary
data.update(d['value'])
- addr = res_obj.address_get(cr, uid, [part])
+ addr = res_obj.address_get(cr, uid, [part]).get('default', False)
if addr:
- if addr.has_key('default'):
- job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])])
- if job_ids:
- data['contact_id'] = job_obj.browse(cr, uid, job_ids[0]).contact_id.id
- d = self.onchange_contact_id(cr, uid, ids, data['contact_id'], part)
- data.update(d['value'])
+ d = self.onchange_contact_id(cr, uid, ids, addr, part)
+ data.update(d['value'])
return {'value': data}
def onchange_partner_invoice_id(self, cr, uid, ids, event_id, partner_invoice_id):
diff --git a/addons/event/wizard/partner_event_registration.py b/addons/event/wizard/partner_event_registration.py
index 45d56ddc41c..f788f49ebdb 100644
--- a/addons/event/wizard/partner_event_registration.py
+++ b/addons/event/wizard/partner_event_registration.py
@@ -48,21 +48,16 @@ class partner_event_registration(osv.osv_memory):
"""
value = {}
res_obj = self.pool.get('res.partner')
- job_obj = self.pool.get('res.partner.job')
+ addr_obj = self.pool.get('res.partner.address')
reg_obj = self.pool.get('event.registration')
mod_obj = self.pool.get('ir.model.data')
record_ids = context and context.get('active_ids', []) or []
addr = res_obj.address_get(cr, uid, record_ids)
- contact_id = False
email = False
- if addr.has_key('default'):
- job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])], context=context)
- if job_ids:
- contact = job_obj.browse(cr, uid, job_ids[0], context=context)
- if contact:
- contact_id = contact.contact_id.id
- email = contact.email
+ contact_id = addr.get('default', False)
+ if contact_id:
+ email = addr_obj.browse(cr, uid, contact_id, context=context).email
result = mod_obj.get_object_reference(cr, uid, 'event', 'view_registration_search')
res = result and result[1] or False
@@ -143,4 +138,4 @@ class partner_event_registration(osv.osv_memory):
partner_event_registration()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 2854ddf95a5..c07ec8188b8 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -184,10 +184,6 @@ class hr_applicant(crm.crm_case, osv.osv):
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
}
- def _get_stage(self, cr, uid, context=None):
- ids = self.pool.get('hr.recruitment.stage').search(cr, uid, [], context=context)
- return ids and ids[0] or False
-
_defaults = {
'active': lambda *a: 1,
'user_id': lambda self, cr, uid, context: uid,
diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml
index 43575137a6e..c1ef5022209 100644
--- a/addons/hr_recruitment/test/recruitment_process.yml
+++ b/addons/hr_recruitment/test/recruitment_process.yml
@@ -19,27 +19,49 @@
assert applicant.name == "Application for the post of Jr.application Programmer.", "Subject does not match"
assert applicant.state == "draft"
assert len(resume_ids), "Resume does not attached."
+-
+ I refuse applicant for the Recruitment.
+-
+ !python {model: hr.applicant}: |
+ self.case_close(cr, uid, [ref("hr_case_programmer")])
+-
+ I open applicant for the Recruitment.
+-
+ !python {model: hr.applicant}: |
+ self.case_reset(cr, uid, [ref("hr_case_programmer")])
+ self.case_open(cr, uid, [ref("hr_case_programmer")])
-
I assign the Job position to the applicant
-
!python {model: hr.applicant}: |
self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_jr_appli')})
--
- I open applicant for the Recruitment
--
-
- !python {model: hr.applicant}: |
- self.case_open(cr, uid, [ref("hr_case_programmer")])
-
I start communication with applicant, first schedule phonecall.
-
!python {model: hr.recruitment.job2phonecall}: |
- self.make_phonecall(cr, uid, [ref('hr_case_programmer')])
+ context.update({'active_model': 'hr.applicant', 'active_id': ref("hr_case_programmer"), 'active_ids': [ref("hr_case_programmer")], 'survey_id': ref("survey_job_0")})
+ id = self.create(cr, uid, {}, context=context)
+ self.make_phonecall(cr, uid, [id], context=context)
-
I schedule meeting with applicant for interview.
-
!python {model: hr.applicant}: |
self.action_makeMeeting(cr, uid, [ref('hr_case_programmer')])
+-
+ I check Initial Qualification of applicant.
+-
+ !python {model: hr.applicant}: |
+ self.stage_next(cr, uid, [ref('hr_case_programmer')])
+-
+ I schedule First Interview of applicant.
+-
+ !python {model: hr.applicant}: |
+ self.stage_next(cr, uid, [ref('hr_case_programmer')])
+-
+ On a successful First Interview of applicant, I schedule Second Interview.
+-
+ !python {model: hr.applicant}: |
+ self.stage_next(cr, uid, [ref('hr_case_programmer')])
-
Applicant fillup the answer of the interview quetion.
-
@@ -56,7 +78,13 @@
!python {model: hr.applicant}: |
self.action_print_survey(cr, uid, [ref('hr_case_programmer')])
-
- On a successful interview with the applicant, I hired employee.
+ On a successful Second Interview of applicant Contract is Proposed to applicant.
+-
+ !python {model: hr.applicant}: |
+ self.stage_next(cr, uid, [ref('hr_case_programmer')])
+ self.stage_previous(cr, uid, [ref('hr_case_programmer')])
+-
+ I Hired Applicant.
-
!python {model: hr.applicant}: |
self.case_close_with_emp(cr, uid, [ref('hr_case_programmer')])
@@ -65,3 +93,28 @@
-
!assert {model: hr.applicant, id: hr_case_programmer}:
- state == 'done'
+-
+ I do not give employment to the hired the applicant.
+-
+ !python {model: hired.employee}: |
+ context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
+ emp_id = self.create(cr, uid, {}, context=context)
+ self.case_close(cr, uid, [emp_id], context=context)
+-
+ Now I give employment to hired applicant .
+-
+ !python {model: hr.applicant}: |
+ hired_emp_obj = self.pool.get('hired.employee')
+ self.case_reset(cr, uid, [ref("hr_case_programmer")])
+ self.case_open(cr, uid, [ref("hr_case_programmer")])
+ context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
+ emp_hr_id = hired_emp_obj.create(cr, uid, {}, context=context)
+ hired_emp_obj.case_close_with_emp(cr, uid, [emp_hr_id], context=context)
+-
+ Now hired employee want to be a partner of company.
+-
+ !record {model: hr.recruitment.partner.create, id: hr_recruitment_partner_id1 }:
+-
+ !python {model: hr.recruitment.partner.create}: |
+ context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
+ self.make_order(cr, uid, [ref("hr_recruitment_partner_id1")], context=context)
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 19d08f7faf3..b6646e70bff 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -65,7 +65,8 @@ class account_analytic_account(osv.osv):
_columns = {
'pricelist_id': fields.many2one('product.pricelist', 'Customer Pricelist',
help="The product to invoice is defined on the employee form, the price will be deduced by this pricelist on the product."),
- 'amount_max': fields.float('Max. Invoice Price'),
+ 'amount_max': fields.float('Max. Invoice Price',
+ help="Keep empty if this contract is not limited to a total fixed price."),
'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount',
help="Total invoiced"),
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Invoice on Timesheet & Costs',
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
index 60b60e88550..4a2d1a5e536 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index 089ade7c618..75ca07861fb 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -294,7 +294,7 @@ class hr_timesheet_sheet(osv.osv):
if r=='month':
return time.strftime('%Y-%m-01')
elif r=='week':
- return (datetime.today() + relativedelta(weekday=0, weeks=-1)).strftime('%Y-%m-%d')
+ return (datetime.today() + relativedelta(weekday=0, days=-6)).strftime('%Y-%m-%d')
elif r=='year':
return time.strftime('%Y-01-01')
return time.strftime('%Y-%m-%d')
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index b14c9133319..dea111e2150 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -186,7 +186,7 @@
hr_timesheet_sheet.sheet
form
- {'search_default_my_timesheet':1,'group_by_no_leaf':1}
+ {'search_default_my_timesheet':1}
Check your timesheets for a specific period. You can also encode time spent on a project (i.e. an analytic account) thus generating costs in the analytic account concerned.
diff --git a/addons/l10n_de/account_chart_skr03.xml b/addons/l10n_de/account_chart_skr03.xml
index 74af8bb976d..91e7ced01d1 100644
--- a/addons/l10n_de/account_chart_skr03.xml
+++ b/addons/l10n_de/account_chart_skr03.xml
@@ -1,7 +1,50 @@
-
+
+
+
+
+ Asset
+ asset
+ asset
+ balance
+
+
+ Receivable
+ receivable
+ asset
+ unreconciled
+
+
+ Liability
+ liability
+ liability
+ balance
+
+
+ Payable
+ payable
+ liability
+ unreconciled
+
+
+ Income
+ income
+ income
+ none
+
+
+ Expense
+ expense
+ expense
+ none
+
+
+
+
0
Deutscher Kontenplan SKR03
@@ -964,7 +1007,7 @@
8339
other
-
+
@@ -972,7 +1015,7 @@
3724
other
-
+
@@ -980,7 +1023,7 @@
4300
other
-
+
@@ -988,7 +1031,7 @@
0280
other
-
+
@@ -996,7 +1039,7 @@
8300
other
-
+
@@ -1004,7 +1047,7 @@
4370
other
-
+
@@ -1012,7 +1055,7 @@
4520
other
-
+
@@ -1020,7 +1063,7 @@
3710
other
-
+
@@ -1028,7 +1071,7 @@
4149
other
-
+
@@ -1036,7 +1079,7 @@
0939
other
-
+
@@ -1044,7 +1087,7 @@
3551
other
-
+
@@ -1052,7 +1095,7 @@
3550
other
-
+
@@ -1060,7 +1103,7 @@
4145
other
-
+
@@ -1068,7 +1111,7 @@
1940
other
-
+
@@ -1076,7 +1119,7 @@
0930
other
-
+
@@ -1084,7 +1127,7 @@
0931
other
-
+
@@ -1092,7 +1135,7 @@
0932
other
-
+
@@ -1100,7 +1143,7 @@
3558
other
-
+
@@ -1108,7 +1151,7 @@
2171
other
-
+
@@ -1116,7 +1159,7 @@
3850
other
-
+
@@ -1124,7 +1167,7 @@
8905
other
-
+
@@ -1132,7 +1175,7 @@
8800
other
-
+
@@ -1140,7 +1183,7 @@
8906
other
-
+
@@ -1148,7 +1191,7 @@
4306
other
-
+
@@ -1156,7 +1199,7 @@
8900
other
-
+
@@ -1164,7 +1207,7 @@
8726
other
-
+
@@ -1172,7 +1215,7 @@
4969
other
-
+
@@ -1180,7 +1223,7 @@
4175
other
-
+
@@ -1188,7 +1231,7 @@
1793
other
-
+
@@ -1196,7 +1239,7 @@
1792
other
-
+
@@ -1204,7 +1247,7 @@
1791
other
-
+
@@ -1212,7 +1255,7 @@
1790
other
-
+
@@ -1220,7 +1263,7 @@
1795
other
-
+
@@ -1228,7 +1271,7 @@
1490
receivable
-
+
@@ -1236,7 +1279,7 @@
1491
other
-
+
@@ -1244,7 +1287,7 @@
7095
other
-
+
@@ -1252,7 +1295,7 @@
1495
other
-
+
@@ -1260,7 +1303,7 @@
1498
other
-
+
@@ -1268,7 +1311,7 @@
1499
other
-
+
@@ -1276,7 +1319,7 @@
0998
other
-
+
@@ -1284,7 +1327,7 @@
1700
other
-
+
@@ -1292,7 +1335,7 @@
0720
other
-
+
@@ -1300,7 +1343,7 @@
1702
other
-
+
@@ -1308,7 +1351,7 @@
1703
other
-
+
@@ -1316,7 +1359,7 @@
0725
other
-
+
@@ -1324,7 +1367,7 @@
1705
other
-
+
@@ -1332,7 +1375,7 @@
1706
other
-
+
@@ -1340,7 +1383,7 @@
1707
other
-
+
@@ -1348,7 +1391,7 @@
1708
other
-
+
@@ -1356,7 +1399,7 @@
1709
other
-
+
@@ -1364,7 +1407,7 @@
0680
other
-
+
@@ -1372,7 +1415,7 @@
2315
other
-
+
@@ -1380,7 +1423,7 @@
2312
other
-
+
@@ -1388,7 +1431,7 @@
2313
other
-
+
@@ -1396,7 +1439,7 @@
2310
other
-
+
@@ -1404,7 +1447,7 @@
2311
other
-
+
@@ -1412,7 +1455,7 @@
4831
other
-
+
@@ -1420,7 +1463,7 @@
4830
other
-
+
@@ -1428,7 +1471,7 @@
4960
other
-
+
@@ -1436,7 +1479,7 @@
1661
other
-
+
@@ -1444,7 +1487,7 @@
1660
other
-
+
@@ -1452,7 +1495,7 @@
0112
other
-
+
@@ -1460,7 +1503,7 @@
0113
other
-
+
@@ -1468,7 +1511,7 @@
0059
other
-
+
@@ -1476,7 +1519,7 @@
0111
other
-
+
@@ -1484,7 +1527,7 @@
0115
other
-
+
@@ -1492,7 +1535,7 @@
1120
liquidity
-
+
@@ -1500,7 +1543,7 @@
4320
other
-
+
@@ -1508,7 +1551,7 @@
8600
other
-
+
@@ -1516,7 +1559,7 @@
0050
other
-
+
@@ -1524,7 +1567,7 @@
8605
other
-
+
@@ -1532,7 +1575,7 @@
3140
other
-
+
@@ -1540,7 +1583,7 @@
4654
other
-
+
@@ -1548,7 +1591,7 @@
4964
other
-
+
@@ -1556,7 +1599,7 @@
4651
other
-
+
@@ -1564,7 +1607,7 @@
3145
other
-
+
@@ -1572,7 +1615,7 @@
4653
other
-
+
@@ -1580,7 +1623,7 @@
4652
other
-
+
@@ -1588,7 +1631,7 @@
4137
other
-
+
@@ -1596,7 +1639,7 @@
4550
other
-
+
@@ -1604,7 +1647,7 @@
8660
other
-
+
@@ -1612,7 +1655,7 @@
8749
other
-
+
@@ -1620,7 +1663,7 @@
0750
other
-
+
@@ -1628,7 +1671,7 @@
1455
other
-
+
@@ -1636,7 +1679,7 @@
3749
other
-
+
@@ -1644,7 +1687,7 @@
3610
other
-
+
@@ -1652,7 +1695,7 @@
2381
other
-
+
@@ -1660,7 +1703,7 @@
2380
other
-
+
@@ -1668,7 +1711,7 @@
2383
other
-
+
@@ -1676,7 +1719,7 @@
2382
other
-
+
@@ -1684,7 +1727,7 @@
2385
other
-
+
@@ -1692,7 +1735,7 @@
2384
other
-
+
@@ -1700,7 +1743,7 @@
0200
other
-
+
@@ -1708,7 +1751,7 @@
2386
other
-
+
@@ -1716,7 +1759,7 @@
0615
other
-
+
@@ -1724,7 +1767,7 @@
2388
other
-
+
@@ -1732,7 +1775,7 @@
1401
receivable
-
+
@@ -1740,7 +1783,7 @@
1400
receivable
-
+
@@ -1748,7 +1791,7 @@
1010
liquidity
-
+
@@ -1756,7 +1799,7 @@
0610
other
-
+
@@ -1764,7 +1807,7 @@
8730
other
-
+
@@ -1772,7 +1815,7 @@
1518
other
-
+
@@ -1780,7 +1823,7 @@
4215
other
-
+
@@ -1788,7 +1831,7 @@
8514
other
-
+
@@ -1796,7 +1839,7 @@
1130
liquidity
-
+
@@ -1804,7 +1847,7 @@
1230
liquidity
-
+
@@ -1812,7 +1855,7 @@
4210
other
-
+
@@ -1820,7 +1863,7 @@
4198
other
-
+
@@ -1828,7 +1871,7 @@
1449
other
-
+
@@ -1836,7 +1879,7 @@
8750
other
-
+
@@ -1844,7 +1887,7 @@
8828
other
-
+
@@ -1852,7 +1895,7 @@
4219
other
-
+
@@ -1860,7 +1903,7 @@
1330
liquidity
-
+
@@ -1868,7 +1911,7 @@
4190
other
-
+
@@ -1876,7 +1919,7 @@
0100
other
-
+
@@ -1884,7 +1927,7 @@
0079
other
-
+
@@ -1892,7 +1935,7 @@
0730
other
-
+
@@ -1900,7 +1943,7 @@
4355
other
-
+
@@ -1908,7 +1951,7 @@
8125
other
-
+
@@ -1916,7 +1959,7 @@
4350
other
-
+
@@ -1924,7 +1967,7 @@
4260
other
-
+
@@ -1932,7 +1975,7 @@
2387
other
-
+
@@ -1940,7 +1983,7 @@
1516
other
-
+
@@ -1948,7 +1991,7 @@
1448
other
-
+
@@ -1956,7 +1999,7 @@
4815
other
-
+
@@ -1964,7 +2007,7 @@
1511
other
-
+
@@ -1972,7 +2015,7 @@
1840
other
-
+
@@ -1980,7 +2023,7 @@
1510
other
-
+
@@ -1988,7 +2031,7 @@
1537
other
-
+
@@ -1996,7 +2039,7 @@
1240
liquidity
-
+
@@ -2004,7 +2047,7 @@
3090
other
-
+
@@ -2012,7 +2055,7 @@
1531
other
-
+
@@ -2020,7 +2063,7 @@
1530
other
-
+
@@ -2028,7 +2071,7 @@
4950
other
-
+
@@ -2036,7 +2079,7 @@
2166
other
-
+
@@ -2044,7 +2087,7 @@
4957
other
-
+
@@ -2052,7 +2095,7 @@
1539
other
-
+
@@ -2060,7 +2103,7 @@
1538
other
-
+
@@ -2068,7 +2111,7 @@
2617
other
-
+
@@ -2076,7 +2119,7 @@
2616
other
-
+
@@ -2084,7 +2127,7 @@
2615
other
-
+
@@ -2092,7 +2135,7 @@
4905
other
-
+
@@ -2100,7 +2143,7 @@
3800
other
-
+
@@ -2108,7 +2151,7 @@
2619
other
-
+
@@ -2116,7 +2159,7 @@
2618
other
-
+
@@ -2124,7 +2167,7 @@
0970
other
-
+
@@ -2132,7 +2175,7 @@
0971
other
-
+
@@ -2140,7 +2183,7 @@
0972
other
-
+
@@ -2148,7 +2191,7 @@
0973
other
-
+
@@ -2156,7 +2199,7 @@
0974
other
-
+
@@ -2164,7 +2207,7 @@
3559
other
-
+
@@ -2172,7 +2215,7 @@
0976
other
-
+
@@ -2180,7 +2223,7 @@
0977
other
-
+
@@ -2188,7 +2231,7 @@
0978
other
-
+
@@ -2196,7 +2239,7 @@
0979
other
-
+
@@ -2204,7 +2247,7 @@
3125
other
-
+
@@ -2212,7 +2255,7 @@
1900
other
-
+
@@ -2220,7 +2263,7 @@
8940
other
-
+
@@ -2228,7 +2271,7 @@
8190
other
-
+
@@ -2236,7 +2279,7 @@
8196
other
-
+
@@ -2244,7 +2287,7 @@
8400
other
-
+
@@ -2252,7 +2295,7 @@
8300
other
-
+
@@ -2260,7 +2303,7 @@
8947
other
-
+
@@ -2268,7 +2311,7 @@
8195
other
-
+
@@ -2276,7 +2319,7 @@
8949
other
-
+
@@ -2284,7 +2327,7 @@
0500
other
-
+
@@ -2292,7 +2335,7 @@
8741
other
-
+
@@ -2300,7 +2343,7 @@
0505
other
-
+
@@ -2308,7 +2351,7 @@
0504
other
-
+
@@ -2316,7 +2359,7 @@
1731
other
-
+
@@ -2324,7 +2367,7 @@
2688
other
-
+
@@ -2332,7 +2375,7 @@
2689
other
-
+
@@ -2340,7 +2383,7 @@
2680
other
-
+
@@ -2348,7 +2391,7 @@
1000
liquidity
-
+
@@ -2356,7 +2399,7 @@
8922
other
-
+
@@ -2364,7 +2407,7 @@
8120
other
-
+
@@ -2372,7 +2415,7 @@
0147
other
-
+
@@ -2380,7 +2423,7 @@
0480
other
-
+
@@ -2388,7 +2431,7 @@
0630
other
-
+
@@ -2396,7 +2439,7 @@
0485
other
-
+
@@ -2404,7 +2447,7 @@
1465
other
-
+
@@ -2412,7 +2455,7 @@
8955
other
-
+
@@ -2420,7 +2463,7 @@
8650
other
-
+
@@ -2428,7 +2471,7 @@
7000
other
-
+
@@ -2436,7 +2479,7 @@
1990
other
-
+
@@ -2444,7 +2487,7 @@
4170
other
-
+
@@ -2452,7 +2495,7 @@
1626
other
-
+
@@ -2460,7 +2503,7 @@
1625
other
-
+
@@ -2468,7 +2511,7 @@
1624
other
-
+
@@ -2476,7 +2519,7 @@
4946
other
-
+
@@ -2484,7 +2527,7 @@
1628
other
-
+
@@ -2492,7 +2535,7 @@
8935
other
-
+
@@ -2500,7 +2543,7 @@
8839
other
-
+
@@ -2508,7 +2551,7 @@
8838
other
-
+
@@ -2516,7 +2559,7 @@
3960
other
-
+
@@ -2524,7 +2567,7 @@
8933
other
-
+
@@ -2532,7 +2575,7 @@
8837
other
-
+
@@ -2540,7 +2583,7 @@
4340
other
-
+
@@ -2548,7 +2591,7 @@
0570
other
-
+
@@ -2556,7 +2599,7 @@
8939
other
-
+
@@ -2564,7 +2607,7 @@
8851
other
-
+
@@ -2572,7 +2615,7 @@
7140
other
-
+
@@ -2580,7 +2623,7 @@
8917
other
-
+
@@ -2588,7 +2631,7 @@
0513
other
-
+
@@ -2596,7 +2639,7 @@
8400
other
-
+
@@ -2604,7 +2647,7 @@
8850
other
-
+
@@ -2612,7 +2655,7 @@
2345
other
-
+
@@ -2620,7 +2663,7 @@
0650
other
-
+
@@ -2628,7 +2671,7 @@
2341
other
-
+
@@ -2636,7 +2679,7 @@
2340
other
-
+
@@ -2644,7 +2687,7 @@
2670
other
-
+
@@ -2652,7 +2695,7 @@
1190
liquidity
-
+
@@ -2660,7 +2703,7 @@
2349
other
-
+
@@ -2668,7 +2711,7 @@
2348
other
-
+
@@ -2676,7 +2719,7 @@
4880
other
-
+
@@ -2684,7 +2727,7 @@
1690
other
-
+
@@ -2692,7 +2735,7 @@
0890
other
-
+
@@ -2700,7 +2743,7 @@
0710
other
-
+
@@ -2708,7 +2751,7 @@
1756
other
-
+
@@ -2716,7 +2759,7 @@
1755
other
-
+
@@ -2724,7 +2767,7 @@
1754
other
-
+
@@ -2732,7 +2775,7 @@
1753
other
-
+
@@ -2740,7 +2783,7 @@
0715
other
-
+
@@ -2748,7 +2791,7 @@
0716
other
-
+
@@ -2756,7 +2799,7 @@
1750
other
-
+
@@ -2764,7 +2807,7 @@
0020
other
-
+
@@ -2772,7 +2815,7 @@
8160
other
-
+
@@ -2780,7 +2823,7 @@
0027
other
-
+
@@ -2788,7 +2831,7 @@
0025
other
-
+
@@ -2796,7 +2839,7 @@
4250
other
-
+
@@ -2804,7 +2847,7 @@
4885
other
-
+
@@ -2812,7 +2855,7 @@
0660
other
-
+
@@ -2820,7 +2863,7 @@
4500
other
-
+
@@ -2828,7 +2871,7 @@
0193
other
-
+
@@ -2836,7 +2879,7 @@
8790
other
-
+
@@ -2844,7 +2887,7 @@
3700
other
-
+
@@ -2852,7 +2895,7 @@
8736
other
-
+
@@ -2860,7 +2903,7 @@
8794
other
-
+
@@ -2868,7 +2911,7 @@
8723
other
-
+
@@ -2876,7 +2919,7 @@
1880
other
-
+
@@ -2884,7 +2927,7 @@
2120
other
-
+
@@ -2892,7 +2935,7 @@
2125
other
-
+
@@ -2900,7 +2943,7 @@
2127
other
-
+
@@ -2908,7 +2951,7 @@
2126
other
-
+
@@ -2916,7 +2959,7 @@
2129
other
-
+
@@ -2924,7 +2967,7 @@
2128
other
-
+
@@ -2932,7 +2975,7 @@
3115
other
-
+
@@ -2940,7 +2983,7 @@
3565
other
-
+
@@ -2948,7 +2991,7 @@
4660
other
-
+
@@ -2956,7 +2999,7 @@
4662
other
-
+
@@ -2964,7 +3007,7 @@
3110
other
-
+
@@ -2972,7 +3015,7 @@
0625
other
-
+
@@ -2980,7 +3023,7 @@
1579
other
-
+
@@ -2988,7 +3031,7 @@
1578
other
-
+
@@ -2996,7 +3039,7 @@
0620
other
-
+
@@ -3004,7 +3047,7 @@
8727
other
-
+
@@ -3012,7 +3055,7 @@
0150
other
-
+
@@ -3020,7 +3063,7 @@
1475
other
-
+
@@ -3028,7 +3071,7 @@
1573
other
-
+
@@ -3036,7 +3079,7 @@
1572
other
-
+
@@ -3044,7 +3087,7 @@
1571
other
-
+
@@ -3052,7 +3095,7 @@
1479
other
-
+
@@ -3060,7 +3103,7 @@
1577
other
-
+
@@ -3068,7 +3111,7 @@
1576
other
-
+
@@ -3076,7 +3119,7 @@
1575
other
-
+
@@ -3084,7 +3127,7 @@
0090
other
-
+
@@ -3092,7 +3135,7 @@
2712
other
-
+
@@ -3100,7 +3143,7 @@
1305
other
-
+
@@ -3108,7 +3151,7 @@
2659
other
-
+
@@ -3116,7 +3159,7 @@
2658
other
-
+
@@ -3124,7 +3167,7 @@
2716
other
-
+
@@ -3132,7 +3175,7 @@
1301
other
-
+
@@ -3140,7 +3183,7 @@
1302
other
-
+
@@ -3148,7 +3191,7 @@
2715
other
-
+
@@ -3156,7 +3199,7 @@
2653
other
-
+
@@ -3164,7 +3207,7 @@
1450
receivable
-
+
@@ -3172,7 +3215,7 @@
2650
other
-
+
@@ -3180,7 +3223,7 @@
2657
other
-
+
@@ -3188,7 +3231,7 @@
2656
other
-
+
@@ -3196,7 +3239,7 @@
2655
other
-
+
@@ -3204,7 +3247,7 @@
2654
other
-
+
@@ -3212,7 +3255,7 @@
4228
other
-
+
@@ -3220,7 +3263,7 @@
4229
other
-
+
@@ -3228,7 +3271,7 @@
4220
other
-
+
@@ -3236,7 +3279,7 @@
8540
other
-
+
@@ -3244,7 +3287,7 @@
8919
other
-
+
@@ -3252,7 +3295,7 @@
1830
other
-
+
@@ -3260,7 +3303,7 @@
8610
other
-
+
@@ -3268,7 +3311,7 @@
3794
other
-
+
@@ -3276,7 +3319,7 @@
4380
other
-
+
@@ -3284,7 +3327,7 @@
3790
other
-
+
@@ -3292,7 +3335,7 @@
2406
other
-
+
@@ -3300,7 +3343,7 @@
2407
other
-
+
@@ -3308,7 +3351,7 @@
2404
other
-
+
@@ -3316,7 +3359,7 @@
1372
other
-
+
@@ -3324,7 +3367,7 @@
2402
other
-
+
@@ -3332,7 +3375,7 @@
2403
other
-
+
@@ -3340,7 +3383,7 @@
2400
other
-
+
@@ -3348,7 +3391,7 @@
2401
other
-
+
@@ -3356,7 +3399,7 @@
4862
other
-
+
@@ -3364,7 +3407,7 @@
4860
other
-
+
@@ -3372,7 +3415,7 @@
4230
other
-
+
@@ -3380,7 +3423,7 @@
2010
other
-
+
@@ -3388,7 +3431,7 @@
2408
other
-
+
@@ -3396,7 +3439,7 @@
2409
other
-
+
@@ -3404,7 +3447,7 @@
3830
other
-
+
@@ -3412,7 +3455,7 @@
1759
other
-
+
@@ -3420,7 +3463,7 @@
1701
other
-
+
@@ -3428,7 +3471,7 @@
8807
other
-
+
@@ -3436,7 +3479,7 @@
1344
other
-
+
@@ -3444,7 +3487,7 @@
4595
other
-
+
@@ -3452,7 +3495,7 @@
4730
other
-
+
@@ -3460,7 +3503,7 @@
1345
other
-
+
@@ -3468,7 +3511,7 @@
8330
other
-
+
@@ -3476,7 +3519,7 @@
1630
payable
-
+
@@ -3484,7 +3527,7 @@
1950
other
-
+
@@ -3492,7 +3535,7 @@
1704
other
-
+
@@ -3500,7 +3543,7 @@
8338
other
-
+
@@ -3508,7 +3551,7 @@
4679
other
-
+
@@ -3516,7 +3559,7 @@
0540
other
-
+
@@ -3524,7 +3567,7 @@
4870
other
-
+
@@ -3532,7 +3575,7 @@
0530
other
-
+
@@ -3540,7 +3583,7 @@
4139
other
-
+
@@ -3548,7 +3591,7 @@
3560
other
-
+
@@ -3556,7 +3599,7 @@
8520
other
-
+
@@ -3564,7 +3607,7 @@
2318
other
-
+
@@ -3572,7 +3615,7 @@
0760
other
-
+
@@ -3580,7 +3623,7 @@
4130
other
-
+
@@ -3588,7 +3631,7 @@
0430
other
-
+
@@ -3596,7 +3639,7 @@
1752
other
-
+
@@ -3604,7 +3647,7 @@
2316
other
-
+
@@ -3612,7 +3655,7 @@
1751
other
-
+
@@ -3620,7 +3663,7 @@
2317
other
-
+
@@ -3628,7 +3671,7 @@
8970
other
-
+
@@ -3636,7 +3679,7 @@
4678
other
-
+
@@ -3644,7 +3687,7 @@
8975
other
-
+
@@ -3652,7 +3695,7 @@
8977
other
-
+
@@ -3660,7 +3703,7 @@
4900
other
-
+
@@ -3668,7 +3711,7 @@
8764
other
-
+
@@ -3676,7 +3719,7 @@
1481
other
-
+
@@ -3684,7 +3727,7 @@
1480
receivable
-
+
@@ -3692,7 +3735,7 @@
1485
other
-
+
@@ -3700,7 +3743,7 @@
1489
other
-
+
@@ -3708,7 +3751,7 @@
1488
other
-
+
@@ -3716,7 +3759,7 @@
0699
other
-
+
@@ -3724,7 +3767,7 @@
3300
other
-
+
@@ -3732,7 +3775,7 @@
2309
other
-
+
@@ -3740,7 +3783,7 @@
1711
other
-
+
@@ -3748,7 +3791,7 @@
1710
other
-
+
@@ -3756,7 +3799,7 @@
1717
other
-
+
@@ -3764,7 +3807,7 @@
0320
other
-
+
@@ -3772,7 +3815,7 @@
2300
other
-
+
@@ -3780,7 +3823,7 @@
1719
other
-
+
@@ -3788,7 +3831,7 @@
1718
other
-
+
@@ -3796,7 +3839,7 @@
2307
other
-
+
@@ -3804,7 +3847,7 @@
0990
other
-
+
@@ -3812,7 +3855,7 @@
1659
other
-
+
@@ -3820,7 +3863,7 @@
0996
other
-
+
@@ -3828,7 +3871,7 @@
0997
other
-
+
@@ -3836,7 +3879,7 @@
1650
payable
-
+
@@ -3844,7 +3887,7 @@
1651
other
-
+
@@ -3852,7 +3895,7 @@
0440
other
-
+
@@ -3860,7 +3903,7 @@
2520
other
-
+
@@ -3868,7 +3911,7 @@
1655
other
-
+
@@ -3876,7 +3919,7 @@
2289
other
-
+
@@ -3884,7 +3927,7 @@
0260
other
-
+
@@ -3892,7 +3935,7 @@
3660
other
-
+
@@ -3900,7 +3943,7 @@
3748
other
-
+
@@ -3908,7 +3951,7 @@
1631
other
-
+
@@ -3916,7 +3959,7 @@
2280
other
-
+
@@ -3924,7 +3967,7 @@
2281
other
-
+
@@ -3932,7 +3975,7 @@
2282
other
-
+
@@ -3940,7 +3983,7 @@
2283
other
-
+
@@ -3948,7 +3991,7 @@
2284
other
-
+
@@ -3956,7 +3999,7 @@
2285
other
-
+
@@ -3964,7 +4007,7 @@
8200
other
-
+
@@ -3972,7 +4015,7 @@
2287
other
-
+
@@ -3980,7 +4023,7 @@
3153
other
-
+
@@ -3988,7 +4031,7 @@
3152
other
-
+
@@ -3996,7 +4039,7 @@
3151
other
-
+
@@ -4004,7 +4047,7 @@
3150
other
-
+
@@ -4012,7 +4055,7 @@
3155
other
-
+
@@ -4020,7 +4063,7 @@
3154
other
-
+
@@ -4028,7 +4071,7 @@
4540
other
-
+
@@ -4036,7 +4079,7 @@
4976
other
-
+
@@ -4044,7 +4087,7 @@
2510
other
-
+
@@ -4052,7 +4095,7 @@
2652
other
-
+
@@ -4060,7 +4103,7 @@
4970
other
-
+
@@ -4068,7 +4111,7 @@
0420
other
-
+
@@ -4076,7 +4119,7 @@
4822
other
-
+
@@ -4084,7 +4127,7 @@
8729
other
-
+
@@ -4092,7 +4135,7 @@
0210
other
-
+
@@ -4100,7 +4143,7 @@
0199
other
-
+
@@ -4108,7 +4151,7 @@
2149
other
-
+
@@ -4116,7 +4159,7 @@
0740
other
-
+
@@ -4124,7 +4167,7 @@
0192
other
-
+
@@ -4132,7 +4175,7 @@
0661
other
-
+
@@ -4140,7 +4183,7 @@
0190
other
-
+
@@ -4148,7 +4191,7 @@
0191
other
-
+
@@ -4156,7 +4199,7 @@
8725
other
-
+
@@ -4164,7 +4207,7 @@
8724
other
-
+
@@ -4172,7 +4215,7 @@
0194
other
-
+
@@ -4180,7 +4223,7 @@
0195
other
-
+
@@ -4188,7 +4231,7 @@
1348
other
-
+
@@ -4196,7 +4239,7 @@
1349
other
-
+
@@ -4204,7 +4247,7 @@
1220
liquidity
-
+
@@ -4212,7 +4255,7 @@
1340
other
-
+
@@ -4220,7 +4263,7 @@
4180
other
-
+
@@ -4228,7 +4271,7 @@
2714
other
-
+
@@ -4236,7 +4279,7 @@
2451
other
-
+
@@ -4244,7 +4287,7 @@
2450
other
-
+
@@ -4252,7 +4295,7 @@
4948
other
-
+
@@ -4260,7 +4303,7 @@
8700
other
-
+
@@ -4268,7 +4311,7 @@
3770
other
-
+
@@ -4276,7 +4319,7 @@
4980
other
-
+
@@ -4284,7 +4327,7 @@
1870
other
-
+
@@ -4292,7 +4335,7 @@
8110
other
-
+
@@ -4300,7 +4343,7 @@
1879
other
-
+
@@ -4308,7 +4351,7 @@
4945
other
-
+
@@ -4316,7 +4359,7 @@
1502
other
-
+
@@ -4324,7 +4367,7 @@
3200
other
-
+
@@ -4332,7 +4375,7 @@
4940
other
-
+
@@ -4340,7 +4383,7 @@
1503
other
-
+
@@ -4348,7 +4391,7 @@
4826
other
-
+
@@ -4356,7 +4399,7 @@
4824
other
-
+
@@ -4364,7 +4407,7 @@
4530
other
-
+
@@ -4372,7 +4415,7 @@
1645
other
-
+
@@ -4380,7 +4423,7 @@
4820
other
-
+
@@ -4388,7 +4431,7 @@
2118
other
-
+
@@ -4396,7 +4439,7 @@
2119
other
-
+
@@ -4404,7 +4447,7 @@
1500
other
-
+
@@ -4412,7 +4455,7 @@
0065
other
-
+
@@ -4420,7 +4463,7 @@
1506
other
-
+
@@ -4428,7 +4471,7 @@
1507
other
-
+
@@ -4436,7 +4479,7 @@
1504
other
-
+
@@ -4444,7 +4487,7 @@
1505
other
-
+
@@ -4452,7 +4495,7 @@
2110
other
-
+
@@ -4460,7 +4503,7 @@
8611
other
-
+
@@ -4468,7 +4511,7 @@
1508
other
-
+
@@ -4476,7 +4519,7 @@
2113
other
-
+
@@ -4484,7 +4527,7 @@
2115
other
-
+
@@ -4492,7 +4535,7 @@
2116
other
-
+
@@ -4500,7 +4543,7 @@
8591
other
-
+
@@ -4508,7 +4551,7 @@
1110
liquidity
-
+
@@ -4516,7 +4559,7 @@
2620
other
-
+
@@ -4524,7 +4567,7 @@
2626
other
-
+
@@ -4532,7 +4575,7 @@
0060
other
-
+
@@ -4540,7 +4583,7 @@
2625
other
-
+
@@ -4548,7 +4591,7 @@
8310
other
-
+
@@ -4556,7 +4599,7 @@
0963
other
-
+
@@ -4564,7 +4607,7 @@
8575
other
-
+
@@ -4572,7 +4615,7 @@
8576
other
-
+
@@ -4580,7 +4623,7 @@
8570
other
-
+
@@ -4588,7 +4631,7 @@
0966
other
-
+
@@ -4596,7 +4639,7 @@
0965
other
-
+
@@ -4604,7 +4647,7 @@
1910
other
-
+
@@ -4612,7 +4655,7 @@
0969
other
-
+
@@ -4620,7 +4663,7 @@
8579
other
-
+
@@ -4628,7 +4671,7 @@
4655
other
-
+
@@ -4636,7 +4679,7 @@
8595
other
-
+
@@ -4644,7 +4687,7 @@
1773
other
-
+
@@ -4652,7 +4695,7 @@
3440
other
-
+
@@ -4660,7 +4703,7 @@
4985
other
-
+
@@ -4668,7 +4711,7 @@
4664
other
-
+
@@ -4676,7 +4719,7 @@
2020
other
-
+
@@ -4684,7 +4727,7 @@
8590
other
-
+
@@ -4692,7 +4735,7 @@
2750
other
-
+
@@ -4700,7 +4743,7 @@
4666
other
-
+
@@ -4708,7 +4751,7 @@
4650
other
-
+
@@ -4716,7 +4759,7 @@
2405
other
-
+
@@ -4724,7 +4767,7 @@
0499
other
-
+
@@ -4732,7 +4775,7 @@
0498
other
-
+
@@ -4740,7 +4783,7 @@
0490
other
-
+
@@ -4748,7 +4791,7 @@
3746
other
-
+
@@ -4756,7 +4799,7 @@
4590
other
-
+
@@ -4764,7 +4807,7 @@
4760
other
-
+
@@ -4772,7 +4815,7 @@
4910
other
-
+
@@ -4780,7 +4823,7 @@
0799
other
-
+
@@ -4788,7 +4831,7 @@
1970
other
-
+
@@ -4796,7 +4839,7 @@
4199
other
-
+
@@ -4804,7 +4847,7 @@
0400
other
-
+
@@ -4812,7 +4855,7 @@
4165
other
-
+
@@ -4820,7 +4863,7 @@
4160
other
-
+
@@ -4828,7 +4871,7 @@
1960
other
-
+
@@ -4836,7 +4879,7 @@
1470
receivable
-
+
@@ -4844,7 +4887,7 @@
1610
payable
-
+
@@ -4852,7 +4895,7 @@
4168
other
-
+
@@ -4860,7 +4903,7 @@
3970
other
-
+
@@ -4868,7 +4911,7 @@
8925
other
-
+
@@ -4876,7 +4919,7 @@
1471
other
-
+
@@ -4884,7 +4927,7 @@
4152
other
-
+
@@ -4892,7 +4935,7 @@
8921
other
-
+
@@ -4900,7 +4943,7 @@
8920
other
-
+
@@ -4908,7 +4951,7 @@
8929
other
-
+
@@ -4916,7 +4959,7 @@
8760
other
-
+
@@ -4924,7 +4967,7 @@
8648
other
-
+
@@ -4932,7 +4975,7 @@
8140
other
-
+
@@ -4940,7 +4983,7 @@
0380
other
-
+
@@ -4948,7 +4991,7 @@
0220
other
-
+
@@ -4956,7 +4999,7 @@
8915
other
-
+
@@ -4964,7 +5007,7 @@
8818
other
-
+
@@ -4972,7 +5015,7 @@
7100
other
-
+
@@ -4980,7 +5023,7 @@
4128
other
-
+
@@ -4988,7 +5031,7 @@
1558
other
-
+
@@ -4996,7 +5039,7 @@
1501
other
-
+
@@ -5004,7 +5047,7 @@
1478
other
-
+
@@ -5012,7 +5055,7 @@
8574
other
-
+
@@ -5020,7 +5063,7 @@
1570
other
-
+
@@ -5028,7 +5071,7 @@
4710
other
-
+
@@ -5036,7 +5079,7 @@
3745
other
-
+
@@ -5044,7 +5087,7 @@
8769
other
-
+
@@ -5052,7 +5095,7 @@
1680
other
-
+
@@ -5060,7 +5103,7 @@
1768
other
-
+
@@ -5068,7 +5111,7 @@
1769
other
-
+
@@ -5076,7 +5119,7 @@
8640
other
-
+
@@ -5084,7 +5127,7 @@
1762
other
-
+
@@ -5092,7 +5135,7 @@
1763
other
-
+
@@ -5100,7 +5143,7 @@
1760
other
-
+
@@ -5108,7 +5151,7 @@
0700
other
-
+
@@ -5116,7 +5159,7 @@
1766
other
-
+
@@ -5124,7 +5167,7 @@
1767
other
-
+
@@ -5132,7 +5175,7 @@
1764
other
-
+
@@ -5140,7 +5183,7 @@
1765
other
-
+
@@ -5148,7 +5191,7 @@
4301
other
-
+
@@ -5156,7 +5199,7 @@
4289
other
-
+
@@ -5164,7 +5207,7 @@
0039
other
-
+
@@ -5172,7 +5215,7 @@
0038
other
-
+
@@ -5180,7 +5223,7 @@
2713
other
-
+
@@ -5188,7 +5231,7 @@
0035
other
-
+
@@ -5196,7 +5239,7 @@
8625
other
-
+
@@ -5204,7 +5247,7 @@
0030
other
-
+
@@ -5212,7 +5255,7 @@
8150
other
-
+
@@ -5220,7 +5263,7 @@
4570
other
-
+
@@ -5228,7 +5271,7 @@
2711
other
-
+
@@ -5236,7 +5279,7 @@
8808
other
-
+
@@ -5244,7 +5287,7 @@
1300
other
-
+
@@ -5252,7 +5295,7 @@
8780
other
-
+
@@ -5260,7 +5303,7 @@
3552
other
-
+
@@ -5268,7 +5311,7 @@
4909
other
-
+
@@ -5276,7 +5319,7 @@
1547
other
-
+
@@ -5284,7 +5327,7 @@
1545
other
-
+
@@ -5292,7 +5335,7 @@
1542
other
-
+
@@ -5300,7 +5343,7 @@
1543
other
-
+
@@ -5308,7 +5351,7 @@
1540
other
-
+
@@ -5316,7 +5359,7 @@
0755
other
-
+
@@ -5324,7 +5367,7 @@
4676
other
-
+
@@ -5332,7 +5375,7 @@
3120
other
-
+
@@ -5340,7 +5383,7 @@
4674
other
-
+
@@ -5348,7 +5391,7 @@
4673
other
-
+
@@ -5356,7 +5399,7 @@
4672
other
-
+
@@ -5364,7 +5407,7 @@
1548
other
-
+
@@ -5372,7 +5415,7 @@
1549
other
-
+
@@ -5380,7 +5423,7 @@
8710
other
-
+
@@ -5388,7 +5431,7 @@
0140
other
-
+
@@ -5396,7 +5439,7 @@
0145
other
-
+
@@ -5404,7 +5447,7 @@
0631
other
-
+
@@ -5412,7 +5455,7 @@
0146
other
-
+
@@ -5420,7 +5463,7 @@
0149
other
-
+
@@ -5428,7 +5471,7 @@
0148
other
-
+
@@ -5436,7 +5479,7 @@
1461
other
-
+
@@ -5444,7 +5487,7 @@
1460
other
-
+
@@ -5452,7 +5495,7 @@
1315
other
-
+
@@ -5460,7 +5503,7 @@
2709
other
-
+
@@ -5468,7 +5511,7 @@
1312
other
-
+
@@ -5476,7 +5519,7 @@
1311
other
-
+
@@ -5484,7 +5527,7 @@
1310
other
-
+
@@ -5492,7 +5535,7 @@
2705
other
-
+
@@ -5500,7 +5543,7 @@
2707
other
-
+
@@ -5508,7 +5551,7 @@
2700
other
-
+
@@ -5516,7 +5559,7 @@
4886
other
-
+
@@ -5524,7 +5567,7 @@
4887
other
-
+
@@ -5532,7 +5575,7 @@
2389
other
-
+
@@ -5540,7 +5583,7 @@
1020
liquidity
-
+
@@ -5548,7 +5591,7 @@
4875
other
-
+
@@ -5556,7 +5599,7 @@
4874
other
-
+
@@ -5564,7 +5607,7 @@
2649
other
-
+
@@ -5572,7 +5615,7 @@
0616
other
-
+
@@ -5580,7 +5623,7 @@
4871
other
-
+
@@ -5588,7 +5631,7 @@
0640
other
-
+
@@ -5596,7 +5639,7 @@
3400
other
-
+
@@ -5604,7 +5647,7 @@
4872
other
-
+
@@ -5612,7 +5655,7 @@
4879
other
-
+
@@ -5620,7 +5663,7 @@
1820
other
-
+
@@ -5628,7 +5671,7 @@
2140
other
-
+
@@ -5636,7 +5679,7 @@
2792
other
-
+
@@ -5644,7 +5687,7 @@
4975
other
-
+
@@ -5652,7 +5695,7 @@
2790
other
-
+
@@ -5660,7 +5703,7 @@
8731
other
-
+
@@ -5668,7 +5711,7 @@
1380
other
-
+
@@ -5676,7 +5719,7 @@
2794
other
-
+
@@ -5684,7 +5727,7 @@
8980
other
-
+
@@ -5692,7 +5735,7 @@
8516
other
-
+
@@ -5700,7 +5743,7 @@
4700
other
-
+
@@ -5708,7 +5751,7 @@
4668
other
-
+
@@ -5716,7 +5759,7 @@
1920
other
-
+
@@ -5724,7 +5767,7 @@
8515
other
-
+
@@ -5732,7 +5775,7 @@
8320
other
-
+
@@ -5740,7 +5783,7 @@
4280
other
-
+
@@ -5748,7 +5791,7 @@
0520
other
-
+
@@ -5756,7 +5799,7 @@
8609
other
-
+
@@ -5764,7 +5807,7 @@
8510
other
-
+
@@ -5772,7 +5815,7 @@
0525
other
-
+
@@ -5780,7 +5823,7 @@
0910
other
-
+
@@ -5788,7 +5831,7 @@
4120
other
-
+
@@ -5796,7 +5839,7 @@
4127
other
-
+
@@ -5804,7 +5847,7 @@
4126
other
-
+
@@ -5812,7 +5855,7 @@
4125
other
-
+
@@ -5820,7 +5863,7 @@
4124
other
-
+
@@ -5828,7 +5871,7 @@
2666
other
-
+
@@ -5836,7 +5879,7 @@
2660
other
-
+
@@ -5844,7 +5887,7 @@
0159
other
-
+
@@ -5852,7 +5895,7 @@
0880
other
-
+
@@ -5860,7 +5903,7 @@
8960
other
-
+
@@ -5868,7 +5911,7 @@
1775
other
-
+
@@ -5876,7 +5919,7 @@
4882
other
-
+
@@ -5884,7 +5927,7 @@
1776
other
-
+
@@ -5892,7 +5935,7 @@
8518
other
-
+
@@ -5900,7 +5943,7 @@
0764
other
-
+
@@ -5908,7 +5951,7 @@
1771
other
-
+
@@ -5916,7 +5959,7 @@
1567
other
-
+
@@ -5924,7 +5967,7 @@
1746
other
-
+
@@ -5932,7 +5975,7 @@
1770
other
-
+
@@ -5940,7 +5983,7 @@
0299
other
-
+
@@ -5948,7 +5991,7 @@
1641
other
-
+
@@ -5956,7 +5999,7 @@
1640
payable
-
+
@@ -5964,7 +6007,7 @@
4750
other
-
+
@@ -5972,7 +6015,7 @@
0290
other
-
+
@@ -5980,7 +6023,7 @@
0731
other
-
+
@@ -5988,7 +6031,7 @@
1722
other
-
+
@@ -5996,7 +6039,7 @@
1648
other
-
+
@@ -6004,7 +6047,7 @@
1720
other
-
+
@@ -6012,7 +6055,7 @@
1721
other
-
+
@@ -6020,7 +6063,7 @@
8817
other
-
+
@@ -6028,7 +6071,7 @@
0595
other
-
+
@@ -6036,7 +6079,7 @@
0590
other
-
+
@@ -6044,7 +6087,7 @@
0985
other
-
+
@@ -6052,7 +6095,7 @@
0984
other
-
+
@@ -6060,7 +6103,7 @@
0986
other
-
+
@@ -6068,7 +6111,7 @@
0980
other
-
+
@@ -6076,7 +6119,7 @@
0983
other
-
+
@@ -6084,7 +6127,7 @@
0450
other
-
+
@@ -6092,7 +6135,7 @@
0178
other
-
+
@@ -6100,7 +6143,7 @@
0179
other
-
+
@@ -6108,7 +6151,7 @@
8100
other
-
+
@@ -6116,7 +6159,7 @@
8748
other
-
+
@@ -6124,7 +6167,7 @@
0170
other
-
+
@@ -6132,7 +6175,7 @@
3750
other
-
+
@@ -6140,7 +6183,7 @@
8745
other
-
+
@@ -6148,7 +6191,7 @@
8743
other
-
+
@@ -6156,7 +6199,7 @@
0175
other
-
+
@@ -6164,7 +6207,7 @@
0176
other
-
+
@@ -6172,7 +6215,7 @@
0177
other
-
+
@@ -6180,7 +6223,7 @@
4632
other
-
+
@@ -6188,7 +6231,7 @@
4631
other
-
+
@@ -6196,7 +6239,7 @@
4630
other
-
+
@@ -6204,7 +6247,7 @@
4637
other
-
+
@@ -6212,7 +6255,7 @@
3000
other
-
+
@@ -6220,7 +6263,7 @@
4635
other
-
+
@@ -6228,7 +6271,7 @@
4638
other
-
+
@@ -6236,7 +6279,7 @@
2200
other
-
+
@@ -6244,7 +6287,7 @@
1371
other
-
+
@@ -6252,7 +6295,7 @@
1588
other
-
+
@@ -6260,7 +6303,7 @@
2203
other
-
+
@@ -6268,7 +6311,7 @@
2204
other
-
+
@@ -6276,7 +6319,7 @@
0180
other
-
+
@@ -6284,7 +6327,7 @@
2206
other
-
+
@@ -6292,7 +6335,7 @@
1370
other
-
+
@@ -6300,7 +6343,7 @@
2208
other
-
+
@@ -6308,7 +6351,7 @@
2209
other
-
+
@@ -6316,7 +6359,7 @@
1580
other
-
+
@@ -6324,7 +6367,7 @@
1581
other
-
+
@@ -6332,7 +6375,7 @@
0189
other
-
+
@@ -6340,7 +6383,7 @@
1587
other
-
+
@@ -6348,7 +6391,7 @@
1584
other
-
+
@@ -6356,7 +6399,7 @@
1585
other
-
+
@@ -6364,7 +6407,7 @@
0770
other
-
+
@@ -6372,7 +6415,7 @@
0771
other
-
+
@@ -6380,7 +6423,7 @@
0777
other
-
+
@@ -6388,7 +6431,7 @@
0774
other
-
+
@@ -6396,7 +6439,7 @@
2150
other
-
+
@@ -6404,7 +6447,7 @@
0670
other
-
+
@@ -6412,7 +6455,7 @@
8105
other
-
+
@@ -6420,7 +6463,7 @@
0350
other
-
+
@@ -6428,7 +6471,7 @@
1210
liquidity
-
+
@@ -6436,7 +6479,7 @@
4270
other
-
+
@@ -6444,7 +6487,7 @@
0001
other
-
+
@@ -6452,7 +6495,7 @@
1352
other
-
+
@@ -6460,7 +6503,7 @@
1350
other
-
+
@@ -6468,7 +6511,7 @@
1355
other
-
+
@@ -6476,7 +6519,7 @@
4780
other
-
+
@@ -6484,7 +6527,7 @@
1860
other
-
+
@@ -6492,7 +6535,7 @@
4810
other
-
+
@@ -6500,7 +6543,7 @@
1869
other
-
+
@@ -6508,7 +6551,7 @@
3725
other
-
+
@@ -6516,7 +6559,7 @@
3726
other
-
+
@@ -6524,7 +6567,7 @@
3727
other
-
+
@@ -6532,7 +6575,7 @@
3720
other
-
+
@@ -6540,7 +6583,7 @@
3722
other
-
+
@@ -6548,7 +6591,7 @@
3723
other
-
+
@@ -6556,7 +6599,7 @@
4930
other
-
+
@@ -6564,7 +6607,7 @@
4680
other
-
+
@@ -6572,7 +6615,7 @@
2895
other
-
+
@@ -6580,7 +6623,7 @@
2894
other
-
+
@@ -6588,7 +6631,7 @@
4833
other
-
+
@@ -6596,7 +6639,7 @@
4832
other
-
+
@@ -6604,7 +6647,7 @@
2891
other
-
+
@@ -6612,7 +6655,7 @@
2890
other
-
+
@@ -6620,7 +6663,7 @@
2893
other
-
+
@@ -6628,7 +6671,7 @@
2892
other
-
+
@@ -6636,7 +6679,7 @@
8589
other
-
+
@@ -6644,7 +6687,7 @@
0070
other
-
+
@@ -6652,7 +6695,7 @@
2109
other
-
+
@@ -6660,7 +6703,7 @@
2108
other
-
+
@@ -6668,7 +6711,7 @@
0075
other
-
+
@@ -6676,7 +6719,7 @@
1451
other
-
+
@@ -6684,7 +6727,7 @@
1100
liquidity
-
+
@@ -6692,7 +6735,7 @@
2103
other
-
+
@@ -6700,7 +6743,7 @@
1517
other
-
+
@@ -6708,7 +6751,7 @@
2100
other
-
+
@@ -6716,7 +6759,7 @@
2107
other
-
+
@@ -6724,7 +6767,7 @@
2106
other
-
+
@@ -6732,7 +6775,7 @@
2105
other
-
+
@@ -6740,7 +6783,7 @@
2104
other
-
+
@@ -6748,7 +6791,7 @@
2734
other
-
+
@@ -6756,7 +6799,7 @@
2735
other
-
+
@@ -6764,7 +6807,7 @@
2736
other
-
+
@@ -6772,7 +6815,7 @@
2730
other
-
+
@@ -6780,7 +6823,7 @@
2731
other
-
+
@@ -6788,7 +6831,7 @@
2732
other
-
+
@@ -6796,7 +6839,7 @@
2733
other
-
+
@@ -6804,7 +6847,7 @@
2738
other
-
+
@@ -6812,7 +6855,7 @@
2739
other
-
+
@@ -6820,7 +6863,7 @@
0767
other
-
+
@@ -6828,7 +6871,7 @@
0956
other
-
+
@@ -6836,7 +6879,7 @@
0957
other
-
+
@@ -6844,7 +6887,7 @@
0955
other
-
+
@@ -6852,7 +6895,7 @@
0950
other
-
+
@@ -6860,7 +6903,7 @@
4993
other
-
+
@@ -6868,7 +6911,7 @@
1810
other
-
+
@@ -6876,7 +6919,7 @@
3430
other
-
+
@@ -6884,7 +6927,7 @@
3435
other
-
+
@@ -6892,7 +6935,7 @@
2740
other
-
+
@@ -6900,7 +6943,7 @@
2743
other
-
+
@@ -6908,7 +6951,7 @@
2742
other
-
+
@@ -6916,7 +6959,7 @@
2744
other
-
+
@@ -6924,7 +6967,7 @@
2747
other
-
+
@@ -6932,7 +6975,7 @@
2746
other
-
+
@@ -6940,7 +6983,7 @@
4840
other
-
+
@@ -6948,7 +6991,7 @@
4841
other
-
+
@@ -6956,7 +6999,7 @@
4842
other
-
+
@@ -6964,7 +7007,7 @@
4843
other
-
+
@@ -6972,7 +7015,7 @@
4167
other
-
+
@@ -6980,7 +7023,7 @@
4100
other
-
+
@@ -6988,7 +7031,7 @@
8315
other
-
+
@@ -6996,7 +7039,7 @@
0781
other
-
+
@@ -7004,7 +7047,7 @@
0780
other
-
+
@@ -7012,7 +7055,7 @@
0787
other
-
+
@@ -7020,7 +7063,7 @@
0784
other
-
+
@@ -7028,7 +7071,7 @@
4790
other
-
+
@@ -7036,7 +7079,7 @@
1609
other
-
+
@@ -7044,7 +7087,7 @@
4150
other
-
+
@@ -7052,7 +7095,7 @@
0410
other
-
+
@@ -7060,7 +7103,7 @@
3540
other
-
+
@@ -7068,7 +7111,7 @@
4925
other
-
+
@@ -7076,7 +7119,7 @@
4155
other
-
+
@@ -7084,7 +7127,7 @@
1601
payable
-
+
@@ -7092,7 +7135,7 @@
1600
payable
-
+
@@ -7100,7 +7143,7 @@
8720
other
-
+
@@ -7108,7 +7151,7 @@
1605
payable
-
+
@@ -7116,7 +7159,7 @@
1607
payable
-
+
@@ -7124,7 +7167,7 @@
1606
payable
-
+
@@ -7132,7 +7175,7 @@
8950
other
-
+
@@ -7140,7 +7183,7 @@
8910
other
-
+
@@ -7148,7 +7191,7 @@
8819
other
-
+
@@ -7156,7 +7199,7 @@
1574
other
-
+
@@ -7164,7 +7207,7 @@
8853
other
-
+
@@ -7172,7 +7215,7 @@
8852
other
-
+
@@ -7180,7 +7223,7 @@
0550
other
-
+
@@ -7188,7 +7231,7 @@
4955
other
-
+
@@ -7196,7 +7239,7 @@
3980
other
-
+
@@ -7204,7 +7247,7 @@
8337
other
-
+
@@ -7212,7 +7255,7 @@
1788
other
-
+
@@ -7220,7 +7263,7 @@
1789
other
-
+
@@ -7228,7 +7271,7 @@
1780
other
-
+
@@ -7236,7 +7279,7 @@
1781
other
-
+
@@ -7244,7 +7287,7 @@
1782
other
-
+
@@ -7252,7 +7295,7 @@
1783
other
-
+
@@ -7260,7 +7303,7 @@
1784
other
-
+
@@ -7268,7 +7311,7 @@
1785
other
-
+
@@ -7276,7 +7319,7 @@
1786
other
-
+
@@ -7284,7 +7327,7 @@
1787
other
-
+
@@ -7292,7 +7335,7 @@
7110
other
-
+
@@ -7300,7 +7343,7 @@
4169
other
-
+
@@ -7308,7 +7351,7 @@
4288
other
-
+
@@ -7316,7 +7359,7 @@
4290
other
-
+
@@ -7324,7 +7367,7 @@
2323
other
-
+
@@ -7332,7 +7375,7 @@
1774
other
-
+
@@ -7340,7 +7383,7 @@
1777
other
-
+
@@ -7348,7 +7391,7 @@
2320
other
-
+
@@ -7356,7 +7399,7 @@
2327
other
-
+
@@ -7364,7 +7407,7 @@
2326
other
-
+
@@ -7372,7 +7415,7 @@
2325
other
-
+
@@ -7380,7 +7423,7 @@
1772
other
-
+
@@ -7388,7 +7431,7 @@
8930
other
-
+
@@ -7396,7 +7439,7 @@
7050
other
-
+
@@ -7404,7 +7447,7 @@
2328
other
-
+
@@ -7412,7 +7455,7 @@
1779
other
-
+
@@ -7420,7 +7463,7 @@
1778
other
-
+
@@ -7428,7 +7471,7 @@
4140
other
-
+
@@ -7436,7 +7479,7 @@
8924
other
-
+
@@ -7444,7 +7487,7 @@
8746
other
-
+
@@ -7452,7 +7495,7 @@
8931
other
-
+
@@ -7460,7 +7503,7 @@
0300
other
-
+
@@ -7468,7 +7511,7 @@
3760
other
-
+
@@ -7476,7 +7519,7 @@
4138
other
-
+
@@ -7484,7 +7527,7 @@
3764
other
-
+
@@ -7492,7 +7535,7 @@
0120
other
-
+
@@ -7500,7 +7543,7 @@
0040
other
-
+
@@ -7508,7 +7551,7 @@
3769
other
-
+
@@ -7516,7 +7559,7 @@
8829
other
-
+
@@ -7524,7 +7567,7 @@
0129
other
-
+
@@ -7532,7 +7575,7 @@
8630
other
-
+
@@ -7540,7 +7583,7 @@
3135
other
-
+
@@ -7548,7 +7591,7 @@
4560
other
-
+
@@ -7556,7 +7599,7 @@
3130
other
-
+
@@ -7564,7 +7607,7 @@
1561
other
-
+
@@ -7572,7 +7615,7 @@
8801
other
-
+
@@ -7580,7 +7623,7 @@
1290
other
-
+
@@ -7588,7 +7631,7 @@
0535
other
-
+
@@ -7596,7 +7639,7 @@
1551
other
-
+
@@ -7604,7 +7647,7 @@
1550
other
-
+
@@ -7612,7 +7655,7 @@
1555
other
-
+
@@ -7620,7 +7663,7 @@
8932
other
-
+
@@ -7628,7 +7671,7 @@
1557
other
-
+
@@ -7636,7 +7679,7 @@
1556
other
-
+
@@ -7644,7 +7687,7 @@
1559
other
-
+
@@ -7652,7 +7695,7 @@
2490
other
-
+
@@ -7660,7 +7703,7 @@
2493
other
-
+
@@ -7668,7 +7711,7 @@
2492
other
-
+
@@ -7676,7 +7719,7 @@
2494
other
-
+
@@ -7684,7 +7727,7 @@
2990
other
-
+
@@ -7692,7 +7735,7 @@
0600
other
-
+
@@ -7700,7 +7743,7 @@
0601
other
-
+
@@ -7708,7 +7751,7 @@
2501
other
-
+
@@ -7716,7 +7759,7 @@
2390
other
-
+
@@ -7724,7 +7767,7 @@
0605
other
-
+
@@ -7732,7 +7775,7 @@
1410
receivable
-
+
@@ -7740,7 +7783,7 @@
2255
other
-
+
@@ -7748,7 +7791,7 @@
1295
other
-
+
@@ -7756,7 +7799,7 @@
4640
other
-
+
@@ -7764,7 +7807,7 @@
2250
other
-
+
@@ -7772,7 +7815,7 @@
1322
other
-
+
@@ -7780,7 +7823,7 @@
1320
other
-
+
@@ -7788,7 +7831,7 @@
1321
other
-
+
@@ -7796,7 +7839,7 @@
1327
other
-
+
@@ -7804,7 +7847,7 @@
1325
other
-
+
@@ -7812,7 +7855,7 @@
1329
other
-
+
@@ -7820,7 +7863,7 @@
4852
other
-
+
@@ -7828,7 +7871,7 @@
8519
other
-
+
@@ -7836,7 +7879,7 @@
4670
other
-
+
@@ -7844,7 +7887,7 @@
0870
other
-
+
@@ -7852,7 +7895,7 @@
8135
other
-
+
@@ -7860,7 +7903,7 @@
4200
other
-
+
@@ -7868,7 +7911,7 @@
0920
other
-
+
@@ -7876,7 +7919,7 @@
8130
other
-
+
@@ -7884,7 +7927,7 @@
4800
other
-
+
@@ -7892,7 +7935,7 @@
1568
other
-
+
@@ -7900,7 +7943,7 @@
4636
other
-
+
@@ -7908,7 +7951,7 @@
4805
other
-
+
@@ -7916,7 +7959,7 @@
4806
other
-
+
@@ -7924,7 +7967,7 @@
4876
other
-
+
@@ -7932,7 +7975,7 @@
1850
other
-
+
@@ -7940,7 +7983,7 @@
4809
other
-
+
@@ -7948,7 +7991,7 @@
4949
other
-
+
@@ -7956,7 +7999,7 @@
1525
other
-
+
@@ -7964,7 +8007,7 @@
1526
other
-
+
@@ -7972,7 +8015,7 @@
1527
other
-
+
@@ -7980,7 +8023,7 @@
2176
other
-
+
@@ -7988,7 +8031,7 @@
1521
other
-
+
@@ -7996,7 +8039,7 @@
1250
liquidity
-
+
@@ -8004,7 +8047,7 @@
4965
other
-
+
@@ -8012,7 +8055,7 @@
0761
other
-
+
@@ -8020,7 +8063,7 @@
1528
other
-
+
@@ -8028,7 +8071,7 @@
1529
other
-
+
@@ -8036,7 +8079,7 @@
4961
other
-
+
@@ -8044,7 +8087,7 @@
1390
other
-
+
@@ -8052,7 +8095,7 @@
2600
other
-
+
@@ -8060,7 +8103,7 @@
8705
other
-
+
@@ -8068,7 +8111,7 @@
2375
other
-
+
@@ -8076,7 +8119,7 @@
1930
other
-
+
@@ -8084,7 +8127,7 @@
0900
other
-
+
@@ -8092,7 +8135,7 @@
4110
other
-
+
@@ -8100,7 +8143,7 @@
8945
other
-
+
@@ -8108,7 +8151,7 @@
4873
other
-
+
@@ -8116,7 +8159,7 @@
2205
other
-
+
@@ -8124,7 +8167,7 @@
4890
other
-
+
@@ -8132,7 +8175,7 @@
7080
other
-
+
@@ -8140,7 +8183,7 @@
7090
other
-
+
@@ -8148,7 +8191,7 @@
0518
other
-
+
@@ -8156,7 +8199,7 @@
0519
other
-
+
@@ -8164,7 +8207,7 @@
0516
other
-
+
@@ -8172,7 +8215,7 @@
0517
other
-
+
@@ -8180,7 +8223,7 @@
3505
other
-
+
@@ -8188,7 +8231,7 @@
0510
other
-
+
@@ -8196,7 +8239,7 @@
1582
other
-
+
@@ -8204,7 +8247,7 @@
1583
other
-
+
@@ -8212,7 +8255,7 @@
2679
other
-
+
@@ -8220,7 +8263,7 @@
0999
other
-
+
@@ -8228,7 +8271,7 @@
4998
other
-
+
@@ -8236,7 +8279,7 @@
8918
other
-
+
@@ -8244,7 +8287,7 @@
4663
other
-
+
@@ -8252,7 +8295,7 @@
8614
other
-
+
@@ -8260,7 +8303,7 @@
1739
other
-
+
@@ -8268,7 +8311,7 @@
1738
other
-
+
@@ -8276,7 +8319,7 @@
1635
other
-
+
@@ -8284,7 +8327,7 @@
1980
other
-
+
@@ -8292,7 +8335,7 @@
4999
other
-
+
@@ -8300,7 +8343,7 @@
1638
other
-
+
@@ -8308,7 +8351,7 @@
1730
other
-
+
@@ -8316,7 +8359,7 @@
1733
other
-
+
@@ -8324,7 +8367,7 @@
1732
other
-
+
@@ -8332,7 +8375,7 @@
1735
other
-
+
@@ -8340,7 +8383,7 @@
1734
other
-
+
@@ -8348,7 +8391,7 @@
1737
other
-
+
@@ -8356,7 +8399,7 @@
1736
other
-
+
@@ -8364,7 +8407,7 @@
0580
other
-
+
@@ -8372,7 +8415,7 @@
8820
other
-
+
@@ -8380,7 +8423,7 @@
8827
other
-
+
@@ -8388,7 +8431,7 @@
0460
other
-
+
@@ -8396,7 +8439,7 @@
1195
liquidity
-
+
@@ -8404,7 +8447,7 @@
1446
receivable
-
+
@@ -8412,7 +8455,7 @@
0240
other
-
+
@@ -8420,7 +8463,7 @@
3600
other
-
+
@@ -8428,7 +8471,7 @@
8770
other
-
+
@@ -8436,7 +8479,7 @@
0160
other
-
+
@@ -8444,7 +8487,7 @@
0165
other
-
+
@@ -8452,7 +8495,7 @@
1595
other
-
+
@@ -8460,7 +8503,7 @@
1594
other
-
+
@@ -8468,7 +8511,7 @@
1597
other
-
+
@@ -8476,7 +8519,7 @@
1596
other
-
+
@@ -8484,7 +8527,7 @@
1590
other
-
+
@@ -8492,7 +8535,7 @@
1593
other
-
+
@@ -8500,7 +8543,7 @@
1592
other
-
+
@@ -8508,7 +8551,7 @@
1599
other
-
+
@@ -8516,7 +8559,7 @@
1598
other
-
+
@@ -8524,7 +8567,7 @@
4600
other
-
+
@@ -8532,7 +8575,7 @@
2213
other
-
+
@@ -8540,7 +8583,7 @@
2212
other
-
+
@@ -8548,7 +8591,7 @@
2210
other
-
+
@@ -8556,7 +8599,7 @@
4865
other
-
+
@@ -8564,7 +8607,7 @@
2216
other
-
+
@@ -8572,7 +8615,7 @@
2215
other
-
+
@@ -8580,7 +8623,7 @@
2214
other
-
+
@@ -8588,7 +8631,7 @@
2219
other
-
+
@@ -8596,7 +8639,7 @@
2218
other
-
+
@@ -8604,7 +8647,7 @@
8735
other
-
+
@@ -8612,7 +8655,7 @@
1748
other
-
+
@@ -8620,7 +8663,7 @@
1749
other
-
+
@@ -8628,7 +8671,7 @@
1744
other
-
+
@@ -8636,7 +8679,7 @@
1745
other
-
+
@@ -8644,7 +8687,7 @@
2350
other
-
+
@@ -8652,7 +8695,7 @@
1747
other
-
+
@@ -8660,7 +8703,7 @@
1740
other
-
+
@@ -8668,7 +8711,7 @@
1741
other
-
+
@@ -8676,7 +8719,7 @@
1742
other
-
+
@@ -8684,7 +8727,7 @@
1743
other
-
+
@@ -8692,7 +8735,7 @@
0015
other
-
+
@@ -8700,7 +8743,7 @@
4366
other
-
+
@@ -8708,7 +8751,7 @@
4360
other
-
+
@@ -8716,7 +8759,7 @@
0010
other
-
+
@@ -8724,7 +8767,7 @@
2430
other
-
+
@@ -8732,7 +8775,7 @@
1200
liquidity
-
+
@@ -8740,7 +8783,7 @@
4240
other
-
+
@@ -8748,7 +8791,7 @@
4396
other
-
+
@@ -8756,7 +8799,7 @@
3736
other
-
+
@@ -8764,7 +8807,7 @@
3735
other
-
+
@@ -8772,7 +8815,7 @@
1890
other
-
+
@@ -8780,7 +8823,7 @@
3731
other
-
+
@@ -8788,7 +8831,7 @@
3730
other
-
+
@@ -8796,7 +8839,7 @@
4920
other
-
+
@@ -8804,7 +8847,7 @@
2130
other
-
+
@@ -8812,7 +8855,7 @@
4510
other
-
+
@@ -8820,7 +8863,7 @@
3100
other
-
+
@@ -8828,7 +8871,7 @@
4994
other
-
+
@@ -8836,7 +8879,7 @@
2139
other
-
+
@@ -8844,7 +8887,7 @@
1447
receivable
-
+
@@ -8852,7 +8895,7 @@
1569
other
-
+
@@ -8860,7 +8903,7 @@
1445
other
-
+
@@ -8868,7 +8911,7 @@
4995
other
-
+
@@ -8876,7 +8919,7 @@
1658
other
-
+
@@ -8884,7 +8927,7 @@
1560
other
-
+
@@ -8892,7 +8935,7 @@
0085
other
-
+
@@ -8900,7 +8943,7 @@
2505
other
-
+
@@ -8908,7 +8951,7 @@
1563
other
-
+
@@ -8916,7 +8959,7 @@
0080
other
-
+
@@ -8924,7 +8967,7 @@
1565
other
-
+
@@ -8932,7 +8975,7 @@
1566
other
-
+
@@ -8940,7 +8983,7 @@
2500
other
-
+
@@ -8948,7 +8991,7 @@
2726
other
-
+
@@ -8956,7 +8999,7 @@
2725
other
-
+
@@ -8964,7 +9007,7 @@
2723
other
-
+
@@ -8972,7 +9015,7 @@
4990
other
-
+
@@ -8980,7 +9023,7 @@
0110
other
-
+
@@ -8988,7 +9031,7 @@
2720
other
-
+
@@ -8996,7 +9039,7 @@
4991
other
-
+
@@ -9004,7 +9047,7 @@
2710
other
-
+
@@ -9012,7 +9055,7 @@
1562
other
-
+
@@ -9020,7 +9063,7 @@
0949
other
-
+
@@ -9028,7 +9071,7 @@
0948
other
-
+
@@ -9036,7 +9079,7 @@
0940
other
-
+
@@ -9044,7 +9087,7 @@
0943
other
-
+
@@ -9052,7 +9095,7 @@
8410
other
-
+
@@ -9060,7 +9103,7 @@
0701
other
-
+
@@ -9068,7 +9111,7 @@
0947
other
-
+
@@ -9076,7 +9119,7 @@
1716
other
-
+
@@ -9084,7 +9127,7 @@
3780
other
-
+
@@ -9092,7 +9135,7 @@
1761
other
-
+
@@ -9100,7 +9143,7 @@
1800
other
-
+
@@ -9108,7 +9151,7 @@
4390
other
-
+
@@ -9116,7 +9159,7 @@
0310
other
-
+
@@ -9124,7 +9167,7 @@
8990
other
-
+
@@ -9132,7 +9175,7 @@
3420
other
-
+
@@ -9140,7 +9183,7 @@
2170
other
-
+
@@ -9148,7 +9191,7 @@
3425
other
-
+
@@ -9156,7 +9199,7 @@
4397
other
-
+
@@ -9164,7 +9207,7 @@
4996
other
-
+
@@ -9172,7 +9215,7 @@
4997
other
-
+
@@ -9180,7 +9223,7 @@
2000
other
-
+
@@ -9188,7 +9231,7 @@
2001
other
-
+
@@ -9196,7 +9239,7 @@
4992
other
-
+
@@ -9204,7 +9247,7 @@
0705
other
-
+
@@ -9212,7 +9255,7 @@
1360
liquidity
-
+
@@ -9220,7 +9263,7 @@
2005
other
-
+
@@ -9228,7 +9271,7 @@
8340
other
-
+
@@ -9236,7 +9279,7 @@
4855
other
-
+
@@ -9244,7 +9287,7 @@
4854
other
-
+
@@ -9252,7 +9295,7 @@
4853
other
-
+
@@ -9260,7 +9303,7 @@
4580
other
-
+
@@ -9268,7 +9311,7 @@
4851
other
-
+
@@ -9276,10 +9319,10 @@
4850
other
-
+
-
+
K9VKS1
Vortragskonten
@@ -9287,7 +9330,7 @@
view
-
+
9000
Saldenvorträge- Sachkonten
@@ -9296,7 +9339,7 @@
other
-
+
9001
Saldenvorträge
@@ -9305,7 +9348,7 @@
other
-
+
9008
Saldenvorträge Debitoren
@@ -9314,7 +9357,7 @@
other
-
+
9009
Saldenvorträge Kreditoren
@@ -9323,7 +9366,7 @@
other
-
+
9060
Offene Posten aus 1990
@@ -9332,7 +9375,7 @@
other
-
+
9069
Offene Posten aus 1999
@@ -9341,7 +9384,7 @@
other
-
+
9070
Offene Posten aus 2000
@@ -9350,7 +9393,7 @@
other
-
+
9071
Offene Posten aus 2001
@@ -9359,7 +9402,7 @@
other
-
+
9072
Offene Posten aus 2002
@@ -9368,7 +9411,7 @@
other
-
+
9073
Offene Posten aus 2003
@@ -9377,7 +9420,7 @@
other
-
+
9074
Offene Posten aus 2004
@@ -9386,7 +9429,7 @@
other
-
+
9075
Offene Posten aus 2005
@@ -9395,7 +9438,7 @@
other
-
+
9076
Offene Posten aus 2006
@@ -9404,7 +9447,7 @@
other
-
+
9077
Offene Posten aus 2007
@@ -9431,7 +9474,7 @@
other
-
+
9090
Summenvortragskonto
@@ -9440,7 +9483,7 @@
other
-
+
9091
Offene Posten aus 1991
@@ -9449,7 +9492,7 @@
other
-
+
9092
Offene Posten aus 1992
@@ -9458,7 +9501,7 @@
other
-
+
9093
Offene Posten aus 1993
@@ -9467,7 +9510,7 @@
other
-
+
9094
Offene Posten aus 1994
@@ -9476,7 +9519,7 @@
other
-
+
9095
Offene Posten aus 1995
@@ -9485,7 +9528,7 @@
other
-
+
9096
Offene Posten aus 1996
@@ -9494,7 +9537,7 @@
other
-
+
9097
Offene Posten aus 1997
@@ -9503,7 +9546,7 @@
other
-
+
9098
Offene Posten aus 1998
@@ -9512,7 +9555,7 @@
other
-
+
K9VKS2
Statistische Konten für Betriebswirtschaftliche Auswertungen (BWA)
@@ -9520,7 +9563,7 @@
view
-
+
9101
Verkaufstage
@@ -9529,7 +9572,7 @@
other
-
+
9102
Anzahl der Barkunden
@@ -9538,7 +9581,7 @@
other
-
+
9103
Beschäftigte Personen
@@ -9547,7 +9590,7 @@
other
-
+
9104
Unbezahlte Personen
@@ -9556,7 +9599,7 @@
other
-
+
9105
Verkaufskräfte
@@ -9565,7 +9608,7 @@
other
-
+
9106
Geschäftsraum m2
@@ -9574,7 +9617,7 @@
other
-
+
9107
Verkaufsraum m2
@@ -9583,7 +9626,7 @@
other
-
+
9116
Anzahl Rechnungen
@@ -9592,7 +9635,7 @@
other
-
+
9117
Anzahl Kreditkunden monatlich
@@ -9601,7 +9644,7 @@
other
-
+
9118
Anzahl Kreditkunden aufgelaufen
@@ -9610,7 +9653,7 @@
other
-
+
9120
Erweiterungsinvestitionen
@@ -9619,7 +9662,7 @@
other
-
+
9135
Auftragseingang im Geschäftsjahr
@@ -9628,7 +9671,7 @@
other
-
+
9140
Auftragsbestand
@@ -9637,7 +9680,7 @@
other
-
+
9190
Gegenkonto für statistische Mengeneinheiten Konten 9101-9107 und Konten 9116-9118
@@ -9646,7 +9689,7 @@
other
-
+
9199
Gegenkonto zu Konten 9120- 9135-9140
@@ -9655,7 +9698,7 @@
other
-
+
K9VKS3
Statistische Konten für den Kennziffernteil der Bilanz
@@ -9663,7 +9706,7 @@
view
-
+
9200
Beschäftigte Personen
@@ -9672,7 +9715,7 @@
other
-
+
9209
Gegenkonto zu 9200
@@ -9681,7 +9724,7 @@
other
-
+
9210
Produktive Löhne
@@ -9690,7 +9733,7 @@
other
-
+
9219
Gegenkonto zu 9210
@@ -9699,7 +9742,7 @@
other
-
+
K9VKS4
Statistische Konten zur informativen Angabe des gezeichneten Kapitals in anderer Währung
@@ -9707,7 +9750,7 @@
view
-
+
K9VKS41
Gezeichnetes Kapital in DM
@@ -9715,7 +9758,7 @@
view
-
+
9220
Gezeichnetes Kapital in DM (Art. 42 Abs. 3 S. 1 EGHGB)
@@ -9724,7 +9767,7 @@
other
-
+
K9VKS42
Gezeichnetes Kapital in Euro
@@ -9732,7 +9775,7 @@
view
-
+
9221
Gezeichnetes Kapital in Euro (Art. 42 Abs. 3 S. 2 EGHGB)
@@ -9741,7 +9784,7 @@
other
-
+
9229
Gegenkonto zu 9220-9221
@@ -9750,7 +9793,7 @@
other
-
+
K9VKS5
Passive Rechnungsabgrenzung
@@ -9758,7 +9801,7 @@
view
-
+
9230
Baukostenzuschüsse
@@ -9767,7 +9810,7 @@
other
-
+
9232
Investitionszulagen
@@ -9776,7 +9819,7 @@
other
-
+
9234
Investitionszuschüsse
@@ -9785,7 +9828,7 @@
other
-
+
9239
Gegenkonto zu Konten 9230- 9238
@@ -9794,7 +9837,7 @@
other
-
+
9240
Investitionsverbindlichkeiten bei den Leistungsverbindlichkeiten
@@ -9803,7 +9846,7 @@
other
-
+
9241
Investitionsverbindlichkeiten aus Sachanlagenkäufen bei Leistungsverbindlichkeiten
@@ -9812,7 +9855,7 @@
other
-
+
9242
Investitionsverbindlichkeiten aus Käufen von immateriellen Vermögensgegenständen bei Leistungsverbindlichkeiten
@@ -9821,7 +9864,7 @@
other
-
+
9243
Investitionsverbindlichkeiten aus Käufen von Finanzanlagen bei Leistungsverbindlichkeiten
@@ -9830,7 +9873,7 @@
other
-
+
9244
Gegenkonto zu Konto 9240-43
@@ -9839,7 +9882,7 @@
other
-
+
9245
Forderungen aus Sachanlagenverkäufen bei sonstigen Vermögensgegenständen
@@ -9848,7 +9891,7 @@
other
-
+
9246
Forderungen aus Verkäufen immaterielle Vermögensgegenstände bei sonstigen Vermögensgegenständen
@@ -9857,7 +9900,7 @@
other
-
+
9247
Forderungen aus Verkäufen von Finanzanlagen bei sonstigen Vermögensgegenständen
@@ -9866,7 +9909,7 @@
other
-
+
9249
Gegenkonto zu Konto 9245-47
@@ -9875,7 +9918,7 @@
other
-
+
K9VKS6
Eigenkapitalersetzende Gesellschafterdarlehen
@@ -9883,7 +9926,7 @@
view
-
+
9250
Eigenkapitalersetzende Gesellschafterdarlehen
@@ -9892,7 +9935,7 @@
other
-
+
9255
Ungesicherte Gesellschafterdarlehen mit Restlaufzeit größer 5 Jahre
@@ -9901,7 +9944,7 @@
other
-
+
9259
Gegenkonto zu 9250 und 9255
@@ -9910,7 +9953,7 @@
other
-
+
K9VKS7
Aufgliederung der Rückstellungen
@@ -9918,7 +9961,7 @@
view
-
+
9260
Kurzfristige Rückstellungen
@@ -9927,7 +9970,7 @@
other
-
+
9262
Mittelfristige Rückstellungen
@@ -9936,7 +9979,7 @@
other
-
+
9264
Langfristige Rückstellungen- außer Pensionen
@@ -9945,7 +9988,7 @@
other
-
+
9269
Gegenkonto zu Konto 9260 - 9268
@@ -9954,7 +9997,7 @@
other
-
+
K9VKS8
Statistische Konten für in der Bilanz auszuweisende Haftungsverhältnisse
@@ -9962,7 +10005,7 @@
view
-
+
9270
Gegenkonto zu 9271 - 9279 (Soll-Buchung)
@@ -9971,7 +10014,7 @@
other
-
+
9271
Verbindlichkeiten aus der Begebung und übertragung von Wechseln
@@ -9980,7 +10023,7 @@
other
-
+
9272
Verbindlichkeiten aus der Begebung und übertragung von Wechseln gegenüber verbundenen Unternehmen
@@ -9989,7 +10032,7 @@
other
-
+
9273
Verbindlichkeiten aus Bürgschaften- Wechsel- und Scheckbürgschaften
@@ -9998,7 +10041,7 @@
other
-
+
9274
Verbindlichkeiten aus Bürgschaften- Wechsel- und Scheckbürgschaften gegenüber verbundenen Unternehmen
@@ -10007,7 +10050,7 @@
other
-
+
9275
Verbindlichkeiten aus Gewährleistungsverträgen
@@ -10016,7 +10059,7 @@
other
-
+
9276
Verbindlichkeiten aus Gewährleistungsverträgen gegenüber verbundenen Unternehmen
@@ -10025,7 +10068,7 @@
other
-
+
9277
Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten
@@ -10034,7 +10077,7 @@
other
-
+
9278
Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten gegenüber verbundenen Unternehmen
@@ -10043,7 +10086,7 @@
other
-
+
9279
Verpflichtungen aus Treuhandvermögen
@@ -10052,7 +10095,7 @@
other
-
+
K9VKS9
Statistische Konten für die im Anhang anzugebenden sonstigen finanziellen Verpflichtungen
@@ -10060,7 +10103,7 @@
view
-
+
9280
Gegenkonto zu 9281-9284
@@ -10069,7 +10112,7 @@
other
-
+
9281
Verpflichtungen aus Miet- und Leasingsverträgen
@@ -10078,7 +10121,7 @@
other
-
+
9282
Verpflichtungen aus Miet- und Leasingsverträgen gegenüber verbundenen Unternehmen
@@ -10087,7 +10130,7 @@
other
-
+
9283
Andere Verpflichtungen gemäß § 285 Nr. 3 HGB
@@ -10096,7 +10139,7 @@
other
-
+
9284
Andere Verpflichtungen gemäß § 285 Nr. 3 HGB gegenüber verbundenen Unternehmen
@@ -10105,7 +10148,7 @@
other
-
+
K9VKSa
Statistische Konten für 4 Abs. 3 EStG
@@ -10113,7 +10156,7 @@
view
-
+
9287
Zinsen bei Buchungen über Debitoren bei § 4 Abs. 3 EStG
@@ -10122,7 +10165,7 @@
other
-
+
9288
Mahngebühren bei Buchungen über Debitoren bei § 4 Abs. 3 EStG
@@ -10131,7 +10174,7 @@
other
-
+
9289
Gegenkonto zu 9287 und 9288
@@ -10140,7 +10183,7 @@
other
-
+
9290
Statistisches Konto steuerfreie Auslagen
@@ -10149,7 +10192,7 @@
other
-
+
9291
Gegenkonto zu 9290
@@ -10158,7 +10201,7 @@
other
-
+
9292
Statistisches Konto Fremdgeld
@@ -10167,7 +10210,7 @@
other
-
+
9293
Gegenkonto zu 9292
@@ -10176,7 +10219,7 @@
other
-
+
K9VKSa1
Einlagen stiller Gesellschafter
@@ -10184,7 +10227,7 @@
view
-
+
9295
Einlagen stiller Gesellschafter
@@ -10193,7 +10236,7 @@
other
-
+
K9VKSa2
Steuerrechtlicher Ausgleichsposten
@@ -10201,7 +10244,7 @@
view
-
+
9297
Steuerrechtlicher Ausgleichsposten
@@ -10210,7 +10253,7 @@
other
-
+
K9VKSb
Privat Teilhafter (für Verrechnung Gesellschafterdarlehen mit Eigenkapitalcharakter- Konto 9840-9849)
@@ -10218,7 +10261,7 @@
view
-
+
9400
Privatentnahmen allgemein
@@ -10227,7 +10270,7 @@
other
-
+
9410
Privatsteuern
@@ -10236,7 +10279,7 @@
other
-
+
9420
Sonderausgaben beschränkt abzugsfähig
@@ -10245,7 +10288,7 @@
other
-
+
9430
Sonderausgaben unbeschränkt abzugsfähig
@@ -10254,7 +10297,7 @@
other
-
+
9440
Zuwendungen- Spenden
@@ -10263,7 +10306,7 @@
other
-
+
9450
Außergewöhnliche Belastungen
@@ -10272,7 +10315,7 @@
other
-
+
9460
Grundstücksaufwand
@@ -10281,7 +10324,7 @@
other
-
+
9470
Grundstücksertrag
@@ -10290,7 +10333,7 @@
other
-
+
9480
Unentgeltliche Wertabgaben
@@ -10299,7 +10342,7 @@
other
-
+
9490
Privateinlagen
@@ -10308,7 +10351,7 @@
other
-
+
K9VKSc
Statistische Konten für die Kapitalkontenentwicklung
@@ -10316,7 +10359,7 @@
view
-
+
9500
Anteil für Konto Vollhafter 2000
@@ -10325,7 +10368,7 @@
other
-
+
9501
Anteil für Konto Vollhafter 2001
@@ -10334,7 +10377,7 @@
other
-
+
9502
Anteil für Konto Vollhafter 2002
@@ -10343,7 +10386,7 @@
other
-
+
9503
Anteil für Konto Vollhafter 2003
@@ -10352,7 +10395,7 @@
other
-
+
9504
Anteil für Konto Vollhafter 2004
@@ -10361,7 +10404,7 @@
other
-
+
9505
Anteil für Konto Vollhafter 2005
@@ -10370,7 +10413,7 @@
other
-
+
9506
Anteil für Konto Vollhafter 2006
@@ -10379,7 +10422,7 @@
other
-
+
9507
Anteil für Konto Vollhafter 2007
@@ -10388,7 +10431,7 @@
other
-
+
9508
Anteil für Konto Vollhafter 2008
@@ -10397,7 +10440,7 @@
other
-
+
9509
Anteil für Konto Vollhafter 2009
@@ -10406,7 +10449,7 @@
other
-
+
9510
Anteil für Konto Vollhafter 2010
@@ -10415,7 +10458,7 @@
other
-
+
9511
Anteil für Konto Vollhafter 2011
@@ -10424,7 +10467,7 @@
other
-
+
9512
Anteil für Konto Vollhafter 2012
@@ -10433,7 +10476,7 @@
other
-
+
9513
Anteil für Konto Vollhafter 2013
@@ -10442,7 +10485,7 @@
other
-
+
9514
Anteil für Konto Vollhafter 2014
@@ -10451,7 +10494,7 @@
other
-
+
9515
Anteil für Konto Vollhafter 2015
@@ -10460,7 +10503,7 @@
other
-
+
9516
Anteil für Konto Vollhafter 2016
@@ -10469,7 +10512,7 @@
other
-
+
9517
Anteil für Konto Vollhafter 2017
@@ -10478,7 +10521,7 @@
other
-
+
9518
Anteil für Konto Vollhafter 2018
@@ -10487,7 +10530,7 @@
other
-
+
9519
Anteil für Konto Vollhafter 2019
@@ -10496,7 +10539,7 @@
other
-
+
9520
Anteil für Konto Vollhafter 2020
@@ -10505,7 +10548,7 @@
other
-
+
9521
Anteil für Konto Vollhafter 2021
@@ -10514,7 +10557,7 @@
other
-
+
9522
Anteil für Konto Vollhafter 2022
@@ -10523,7 +10566,7 @@
other
-
+
9523
Anteil für Konto Vollhafter 2023
@@ -10532,7 +10575,7 @@
other
-
+
9524
Anteil für Konto Vollhafter 2024
@@ -10541,7 +10584,7 @@
other
-
+
9525
Anteil für Konto Vollhafter 2025
@@ -10550,7 +10593,7 @@
other
-
+
9526
Anteil für Konto Vollhafter 2026
@@ -10559,7 +10602,7 @@
other
-
+
9527
Anteil für Konto Vollhafter 2027
@@ -10568,7 +10611,7 @@
other
-
+
9528
Anteil für Konto Vollhafter 2028
@@ -10577,7 +10620,7 @@
other
-
+
9529
Anteil für Konto Vollhafter 2029
@@ -10586,7 +10629,7 @@
other
-
+
9530
Anteil für Konto Vollhafter 9810
@@ -10595,7 +10638,7 @@
other
-
+
9531
Anteil für Konto Vollhafter 9811
@@ -10604,7 +10647,7 @@
other
-
+
9532
Anteil für Konto Vollhafter 9812
@@ -10613,7 +10656,7 @@
other
-
+
9533
Anteil für Konto Vollhafter 9813
@@ -10622,7 +10665,7 @@
other
-
+
9534
Anteil für Konto Vollhafter 9814
@@ -10631,7 +10674,7 @@
other
-
+
9535
Anteil für Konto Vollhafter 9815
@@ -10640,7 +10683,7 @@
other
-
+
9536
Anteil für Konto Vollhafter 9816
@@ -10649,7 +10692,7 @@
other
-
+
9537
Anteil für Konto Vollhafter 9817
@@ -10658,7 +10701,7 @@
other
-
+
9538
Anteil für Konto Vollhafter 9818
@@ -10667,7 +10710,7 @@
other
-
+
9539
Anteil für Konto Vollhafter 9819
@@ -10676,7 +10719,7 @@
other
-
+
9540
Anteil für Konto Vollhafter 0060
@@ -10685,7 +10728,7 @@
other
-
+
9541
Anteil für Konto Vollhafter 0061
@@ -10694,7 +10737,7 @@
other
-
+
9542
Anteil für Konto Vollhafter 0062
@@ -10703,7 +10746,7 @@
other
-
+
9543
Anteil für Konto Vollhafter 0063
@@ -10712,7 +10755,7 @@
other
-
+
9544
Anteil für Konto Vollhafter 0064
@@ -10721,7 +10764,7 @@
other
-
+
9545
Anteil für Konto Vollhafter 0065
@@ -10730,7 +10773,7 @@
other
-
+
9546
Anteil für Konto Vollhafter 0066
@@ -10739,7 +10782,7 @@
other
-
+
9547
Anteil für Konto Vollhafter 0067
@@ -10748,7 +10791,7 @@
other
-
+
9548
Anteil für Konto Vollhafter 0068
@@ -10757,7 +10800,7 @@
other
-
+
9549
Anteil für Konto Vollhafter 0069
@@ -10766,7 +10809,7 @@
other
-
+
9550
Anteil für Konto Teilhafter 2050
@@ -10775,7 +10818,7 @@
other
-
+
9551
Anteil für Konto Teilhafter 2051
@@ -10784,7 +10827,7 @@
other
-
+
9552
Anteil für Konto Teilhafter 2052
@@ -10793,7 +10836,7 @@
other
-
+
9553
Anteil für Konto Teilhafter 2053
@@ -10802,7 +10845,7 @@
other
-
+
9554
Anteil für Konto Teilhafter 2054
@@ -10811,7 +10854,7 @@
other
-
+
9555
Anteil für Konto Teilhafter 2055
@@ -10820,7 +10863,7 @@
other
-
+
9556
Anteil für Konto Teilhafter 2056
@@ -10829,7 +10872,7 @@
other
-
+
9557
Anteil für Konto Teilhafter 2057
@@ -10838,7 +10881,7 @@
other
-
+
9558
Anteil für Konto Teilhafter 2058
@@ -10847,7 +10890,7 @@
other
-
+
9559
Anteil für Konto Teilhafter 2059
@@ -10856,7 +10899,7 @@
other
-
+
9560
Anteil für Konto Teilhafter 2060
@@ -10865,7 +10908,7 @@
other
-
+
9561
Anteil für Konto Teilhafter 2061
@@ -10874,7 +10917,7 @@
other
-
+
9562
Anteil für Konto Teilhafter 2062
@@ -10883,7 +10926,7 @@
other
-
+
9563
Anteil für Konto Teilhafter 2063
@@ -10892,7 +10935,7 @@
other
-
+
9564
Anteil für Konto Teilhafter 2064
@@ -10901,7 +10944,7 @@
other
-
+
9565
Anteil für Konto Teilhafter 2065
@@ -10910,7 +10953,7 @@
other
-
+
9566
Anteil für Konto Teilhafter 2066
@@ -10919,7 +10962,7 @@
other
-
+
9567
Anteil für Konto Teilhafter 2067
@@ -10928,7 +10971,7 @@
other
-
+
9568
Anteil für Konto Teilhafter 2068
@@ -10937,7 +10980,7 @@
other
-
+
9569
Anteil für Konto Teilhafter 2069
@@ -10946,7 +10989,7 @@
other
-
+
9570
Anteil für Konto Teilhafter 2070
@@ -10955,7 +10998,7 @@
other
-
+
9571
Anteil für Konto Teilhafter 2071
@@ -10964,7 +11007,7 @@
other
-
+
9572
Anteil für Konto Teilhafter 2072
@@ -10973,7 +11016,7 @@
other
-
+
9573
Anteil für Konto Teilhafter 2073
@@ -10982,7 +11025,7 @@
other
-
+
9574
Anteil für Konto Teilhafter 2074
@@ -10991,7 +11034,7 @@
other
-
+
9575
Anteil für Konto Teilhafter 2075
@@ -11000,7 +11043,7 @@
other
-
+
9576
Anteil für Konto Teilhafter 2076
@@ -11009,7 +11052,7 @@
other
-
+
9577
Anteil für Konto Teilhafter 2077
@@ -11018,7 +11061,7 @@
other
-
+
9578
Anteil für Konto Teilhafter 2078
@@ -11027,7 +11070,7 @@
other
-
+
9579
Anteil für Konto Teilhafter 2079
@@ -11036,7 +11079,7 @@
other
-
+
9580
Anteil für Konto Vollhafter 9820
@@ -11045,7 +11088,7 @@
other
-
+
9581
Anteil für Konto Vollhafter 9821
@@ -11054,7 +11097,7 @@
other
-
+
9582
Anteil für Konto Vollhafter 9822
@@ -11063,7 +11106,7 @@
other
-
+
9583
Anteil für Konto Vollhafter 9823
@@ -11072,7 +11115,7 @@
other
-
+
9584
Anteil für Konto Vollhafter 9824
@@ -11081,7 +11124,7 @@
other
-
+
9585
Anteil für Konto Vollhafter 9825
@@ -11090,7 +11133,7 @@
other
-
+
9586
Anteil für Konto Vollhafter 9826
@@ -11099,7 +11142,7 @@
other
-
+
9587
Anteil für Konto Vollhafter 9827
@@ -11108,7 +11151,7 @@
other
-
+
9588
Anteil für Konto Vollhafter 9828
@@ -11117,7 +11160,7 @@
other
-
+
9589
Anteil für Konto Vollhafter 9829
@@ -11126,7 +11169,7 @@
other
-
+
9590
Anteil für Konto Teilhafter 0080
@@ -11135,7 +11178,7 @@
other
-
+
9591
Anteil für Konto Teilhafter 0081
@@ -11144,7 +11187,7 @@
other
-
+
9592
Anteil für Konto Teilhafter 0082
@@ -11153,7 +11196,7 @@
other
-
+
9593
Anteil für Konto Teilhafter 0083
@@ -11162,7 +11205,7 @@
other
-
+
9594
Anteil für Konto Teilhafter 0084
@@ -11171,7 +11214,7 @@
other
-
+
9595
Anteil für Konto Teilhafter 0085
@@ -11180,7 +11223,7 @@
other
-
+
9596
Anteil für Konto Teilhafter 0086
@@ -11189,7 +11232,7 @@
other
-
+
9597
Anteil für Konto Teilhafter 0087
@@ -11198,7 +11241,7 @@
other
-
+
9598
Anteil für Konto Teilhafter 0088
@@ -11207,7 +11250,7 @@
other
-
+
9599
Anteil für Konto Teilhafter 0089
@@ -11216,7 +11259,7 @@
other
-
+
9600
Name des Gesellschafters Vollhafter
@@ -11225,7 +11268,7 @@
other
-
+
9610
Tätigkeitsvergütung Vollhafter
@@ -11234,7 +11277,7 @@
other
-
+
9620
Tantieme Vollhafter
@@ -11243,7 +11286,7 @@
other
-
+
9630
Darlehensverzinsung Vollhafter
@@ -11252,7 +11295,7 @@
other
-
+
9640
Gebrauchsüberlassung Vollhafter
@@ -11261,7 +11304,7 @@
other
-
+
9650
Sonstige Vergütungen Vollhafter
@@ -11270,7 +11313,7 @@
other
-
+
9690
Restanteil Vollhafter
@@ -11279,7 +11322,7 @@
other
-
+
9700
Name des Gesellschafters Teillhafter
@@ -11288,7 +11331,7 @@
other
-
+
9710
Tätigkeitsvergütung Teillhafter
@@ -11297,7 +11340,7 @@
other
-
+
9720
Tantieme Teillhafter
@@ -11306,7 +11349,7 @@
other
-
+
9730
Darlehensverzinsung Teillhafter
@@ -11315,7 +11358,7 @@
other
-
+
9740
Gebrauchsüberlassung Teillhafter
@@ -11324,7 +11367,7 @@
other
-
+
9750
Sonstige Vergütungen Teillhafter
@@ -11333,7 +11376,7 @@
other
-
+
9780
Anteil für Konto 9840-49 Teilhafter
@@ -11342,7 +11385,7 @@
other
-
+
9790
Restanteil Teillhafter
@@ -11351,7 +11394,7 @@
other
-
+
9800
Lösch- und Korrekturschlüssel
@@ -11360,7 +11403,7 @@
other
-
+
9801
Lösch- und Korrekturschlüssel
@@ -11369,7 +11412,7 @@
other
-
+
K9VKSd
Kapital Personenhandelsgesellschaft Vollhafter
@@ -11377,7 +11420,7 @@
view
-
+
9810
Gesellschafter-Darlehen
@@ -11386,7 +11429,7 @@
other
-
+
9820
Verlust-/ Vortragskonto
@@ -11395,7 +11438,7 @@
other
-
+
9830
Verrechnungskonto für Einzahlungsverpflichtungen
@@ -11404,7 +11447,7 @@
other
-
+
K9VKSe
Kapital Personenhandelsgesellschaft Teilhafter
@@ -11412,7 +11455,7 @@
view
-
+
9840
Gesellschafter-Darlehen
@@ -11421,7 +11464,7 @@
other
-
+
9850
Verrechnungskonto für Einzahlungsverpflichtungen
@@ -11430,7 +11473,7 @@
other
-
+
K9VKSf
Einzahlungsverpflichtungen im Bereich der Forderungen
@@ -11438,7 +11481,7 @@
view
-
+
9860
Einzahlungsverpflichtungen persönlich haftender Gesellschafter
@@ -11447,7 +11490,7 @@
other
-
+
9870
Einzahlungsverpflichtungen Kommanditisten
@@ -11456,7 +11499,7 @@
other
-
+
K9VKSg
Ausgleichsposten für aktivierte eigene Anteile und Bilanzierungshilfen
@@ -11464,7 +11507,7 @@
view
-
+
9880
Ausgleichsposten für aktivierte eigene Anteile
@@ -11473,7 +11516,7 @@
other
-
+
9882
Ausgleichsposten für aktivierte Bilanzierungshilfen
@@ -11482,7 +11525,7 @@
other
-
+
K9VKSh
Nicht durch Vermögenseinlagen gedeckte Entnahmen
@@ -11490,7 +11533,7 @@
view
-
+
9883
Nicht durch Vermögenseinlagen gedeckte Entnahmen persönlich haftender Gesellschafter
@@ -11499,7 +11542,7 @@
other
-
+
9884
Nicht durch Vermögenseinlagen gedeckte Entnahmen Kommanditisten
@@ -11508,7 +11551,7 @@
other
-
+
K9VKSi
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen
@@ -11516,7 +11559,7 @@
view
-
+
9885
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen persönlich haftender Gesellschafter
@@ -11525,7 +11568,7 @@
other
-
+
9886
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen Kommanditisten
@@ -11534,7 +11577,7 @@
other
-
+
K9VKSj
Steueraufwand der Gesellschafter
@@ -11542,7 +11585,7 @@
view
-
+
9887
Steueraufwand der Gesellschafter
@@ -11551,7 +11594,7 @@
other
-
+
9889
Gegenkonto zu 9887
@@ -11560,7 +11603,7 @@
other
-
+
K9VKSk
Statistische Konten für Gewinnzuschlag
@@ -11568,7 +11611,7 @@
view
-
+
9890
Statistische Konten für den Gewinnzuschlag nach §§ 6b- 6c und 7g EStG (Haben-Buchung)
@@ -11577,7 +11620,7 @@
other
-
+
9891
Statistische Konten für den Gewinnzuschlag- Gegenkonto zu 9890
@@ -11586,7 +11629,7 @@
other
-
+
K9VKSl
Vorsteuer-/Umsatzsteuerkonten zur Korrektur der Forderungen/ Verbindlichkeiten (EüR)
@@ -11594,7 +11637,7 @@
view
-
+
9893
Umsatzsteuer in den Forderungen zum allgemeinen Umsatzsteuersatz (EüR)
@@ -11603,7 +11646,7 @@
other
-
+
9894
Umsatzsteuer in den Forderungen zum ermäßigten Umsatzsteuersatz (EüR)
@@ -11612,7 +11655,7 @@
other
-
+
9895
Gegenkonto 9893-9894 für die Aufteilung der Umsatzsteuersatz (EüR)
@@ -11621,7 +11664,7 @@
other
-
+
9896
Vorsteuer in den Verbindlichkeiten zum allgemeinen Umsatzsteuersatz (EüR)
@@ -11630,7 +11673,7 @@
other
-
+
9897
Vorsteuer in den Verbindlichkeiten zum ermäßigten Umsatzsteuersatz (EüR)
@@ -11639,7 +11682,7 @@
other
-
+
9899
Gegenkonto 9896-9897 für die Aufteilung der Vorsteuer (EüR)
@@ -11648,7 +11691,7 @@
other
-
+
9900
SO Commitment
@@ -11657,7 +11700,7 @@
other
-
+
K9VKSm
Statistische Konten zu § 4 (4a) EStG
@@ -11665,7 +11708,7 @@
view
-
+
9910
Gegenkonto zur Minderung der Entnahmen §4 (4a) EStG
@@ -11674,7 +11717,7 @@
other
-
+
9911
Minderung der Entnahmen §4 (4a) EStG (Haben)
@@ -11683,7 +11726,7 @@
other
-
+
9912
Erhöhung der Entnahmen §4 (4a) EStG
@@ -11692,7 +11735,7 @@
other
-
+
9913
Gegenkonto zur Erhöhung der Entnahmen §4 (4a) EStG (Haben)
@@ -11701,7 +11744,7 @@
other
-
+
K9VKSn
Statistische konten für Kinderbetreuungskosten
@@ -11709,7 +11752,7 @@
view
-
+
9918
Kinderbetreuungskosten (wie Betriebsausgaben steuerlich anzusetzender Betrag)
@@ -11718,7 +11761,7 @@
other
-
+
9919
Gegenkonto zu 9918 (Haben)
@@ -11727,7 +11770,7 @@
other
-
+
K9VKSo
Statistische Konten für den GuV-Ausweis in "Gutschrift bzw. Belastung auf Verbindlichkeitskonten" bei den Zuordnungstabellen für PersHG nach KapCoRiLiG
@@ -11735,7 +11778,7 @@
view
-
+
9980
Anteil für Verbindlichkeitskonten
@@ -11744,7 +11787,7 @@
other
-
+
9981
Verrechnungskonto für Anteil Verbindlichkeitskonten
diff --git a/addons/l10n_de/account_chart_skr04.xml b/addons/l10n_de/account_chart_skr04.xml
index b3315ce3b50..728b340267f 100644
--- a/addons/l10n_de/account_chart_skr04.xml
+++ b/addons/l10n_de/account_chart_skr04.xml
@@ -2,7 +2,7 @@
-
+
skr04
Deutscher Kontenplan SKR04
@@ -17,7 +17,7 @@
view
-
+
BA
Bilanz - Aktiva
@@ -25,7 +25,7 @@
view
-
+
BP
Bilanz - Passiva
@@ -41,7 +41,7 @@
view
-
+
GVA
Gewinn u. Verlust - Aufwendungen
@@ -49,7 +49,7 @@
view
-
+
GVE
Gewinn u. Verlust - Erträge
@@ -57,7 +57,7 @@
view
-
+
K0BA
Anlagevermögen
@@ -65,7 +65,7 @@
view
-
+
K1BA
Umlaufvermögen
@@ -73,7 +73,7 @@
view
-
+
K2BP
Eigenkapital
@@ -81,7 +81,7 @@
view
-
+
K3BP
Fremdkapital
@@ -89,7 +89,7 @@
view
-
+
K4GVE
Betriebliche Erträge
@@ -97,7 +97,7 @@
view
-
+
K7GVE
Weitere Erträge
@@ -105,7 +105,7 @@
view
-
+
K5GVA
Betriebliche Aufwendungen
@@ -113,7 +113,7 @@
view
-
+
K6GVA
Betriebliche Aufwendungen
@@ -121,7 +121,7 @@
view
-
+
K7GVA
Weitere Aufwendungen
@@ -129,7 +129,7 @@
view
-
+
VKS
Vortrags- Kapital- und Statistische Konten
@@ -137,7 +137,7 @@
view
-
+
K0BA1
Ausstehende Einlagen auf das gezeichnete Kapital
@@ -145,7 +145,7 @@
view
-
+
K0BA11
Ausstehende Einlagen auf das gezeichnete Kapital
@@ -153,25 +153,25 @@
view
-
+
0001
Ausstehende Einlagen auf das gezeichnete Kapital- nichteingefordert (Aktivausweis)
other
-
+
-
+
0040
Ausstehende Einlagen auf das gezeichnete Kapital- eingefordert (Aktivausweis)
other
-
+
-
+
K0BA12
Sonstige Aktiva oder sonstige Passiva
@@ -179,367 +179,367 @@
view
-
+
0050
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0051
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0052
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0053
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0054
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0055
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0056
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0057
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0058
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0059
Ausstehende Einlagen auf das Komplementär-Kapital- nicht eingefordert
other
-
+
-
+
0060
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0061
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0062
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0063
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0064
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0065
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0066
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0067
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0068
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0069
Ausstehende Einlagen auf das Komplementär-Kapital- eingefordert
other
-
+
-
+
0070
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0071
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0072
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0073
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0074
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0075
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0076
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0077
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0078
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0079
Ausstehende Einlagen auf das Kommandit-Kapital- nicht eingefordert
other
-
+
-
+
0080
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0081
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0082
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0083
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0084
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0085
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0086
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0087
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0088
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
0089
Ausstehende Einlagen auf das Kommandit-Kapital- eingefordert
other
-
+
-
+
K0BA2
Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
@@ -547,7 +547,7 @@
view
-
+
K0BA21
Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
@@ -555,16 +555,16 @@
view
-
+
0095
Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
other
-
+
-
+
K0BA22
Aufwendungen für die Währungsumstellung auf den Euro
@@ -572,16 +572,16 @@
view
-
+
0096
Aufwendungen für die Währungsumstellung auf den Euro
other
-
+
-
+
K0BA3
Anlagevermögen Immaterielle Vermögensgegenstände
@@ -589,7 +589,7 @@
view
-
+
K0BA31
Konzessionen- gewerbliche Schutzrechte und ähnliche Rechte und Werte sowie Lizenzen an solchen Rechten und Werten
@@ -597,61 +597,61 @@
view
-
+
0100
Konzessionen- gewerbliche Schutzrechte und ähnliche Rechte und Werte sowie Lizenzen an solchen Rechten und Werten
view
-
+
-
+
0110
Konzessionen
other
-
+
-
+
0120
Gewerbliche Schutzrechte
other
-
+
-
+
0130
ähnliche Rechte und Werte
other
-
+
-
+
0135
EDV-Software
other
-
+
-
+
0140
Lizenzen an gewerblichen Schutzrechten und ähnlichen Rechten und Werten
other
-
+
-
+
K0BA32
Geschäfts- oder Firmenwert
@@ -659,16 +659,16 @@
view
-
+
0150
Geschäfts- oder Firmenwert
other
-
+
-
+
K0BA33
Verschmelzungsmehrwert
@@ -676,16 +676,16 @@
view
-
+
0160
Verschmelzungsmehrwert
other
-
+
-
+
K0BA34
Geleistete Anzahlungen
@@ -693,25 +693,25 @@
view
-
+
0170
Geleistete Anzahlungen auf immaterielle Vermögensgegenstände
other
-
+
-
+
0179
Anzahlungen auf Geschäfts- oder Firmenwert
other
-
+
-
+
K0BA4
Sachanlagen
@@ -719,7 +719,7 @@
view
-
+
K0BA41
Grundstücke- grundstücksgleiche Rechte und Bauten einschließlich der Bauten auf fremden Grundstücken
@@ -727,277 +727,277 @@
view
-
+
0200
Grundstücke- grundstücksgleiche Rechte und Bauten einschließlich der Bauten auf fremden Grundstücken
view
-
+
-
+
0210
Grundstücke und grundstücksgleiche Rechte ohne Bauten
other
-
+
-
+
0215
Unbebaute Grundstücke
other
-
+
-
+
0220
Grundstücksgleiche Rechte (Erbbaurecht- Dauerwohnrecht)
other
-
+
-
+
0225
Grundstücke mit Substanzverzehr
other
-
+
-
+
0229
Grundstücksanteil des häuslichen Arbeitszimmers
other
-
+
-
+
0230
Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten
other
-
+
-
+
0235
Grundstückswerte eigener bebauter Grundstücke
other
-
+
-
+
0240
Geschäftsbauten
other
-
+
-
+
0250
Fabrikbauten
other
-
+
-
+
0260
Andere Bauten
other
-
+
-
+
0270
Garagen
other
-
+
-
+
0280
Außenanlagen für Geschäfts- Fabrik- und andere Bauten
other
-
+
-
+
0285
Hof- und Wegebefestigungen
other
-
+
-
+
0290
Einrichtungen für Geschäfts-Fabrik und andere Bauten
other
-
+
-
+
0300
Wohnbauten
other
-
+
-
+
0305
Garagen
other
-
+
-
+
0310
Außenanlagen
other
-
+
-
+
0315
Hof- und Wegebefestigungen
other
-
+
-
+
0320
Einrichtungen für Wohnbauten
other
-
+
-
+
0329
Gebäudeteile des häuslischen Arbeitszimmers
other
-
+
-
+
0330
Bauten auf fremden Grundstücken
other
-
+
-
+
0340
Geschäftsbauten
other
-
+
-
+
0350
Fabrikbauten
other
-
+
-
+
0360
Wohnbauten
other
-
+
-
+
0370
Andere Bauten
other
-
+
-
+
0380
Garagen
other
-
+
-
+
0390
Außenanlagen
other
-
+
-
+
0395
Hof- und Wegebefestigungen
other
-
+
-
+
0398
Einrichtungen für Geschäfts-Fabrik und andere Bauten
other
-
+
-
+
K0BA42
Technische Anlagen und Maschinen
@@ -1005,52 +1005,52 @@
view
-
+
0400
Technische Anlagen und Maschinen
view
-
+
-
+
0420
Technische Anlagen
other
-
+
-
+
0440
Maschinen
other
-
+
-
+
0460
Maschinen gebundene Werkzeuge
other
-
+
-
+
0470
Betriebsvorrichtungen
other
-
+
-
+
K0BA43
Andere Anlagen- Betriebs- und Geschäftsaustattung
@@ -1058,115 +1058,115 @@
view
-
+
0500
Andere Anlagen- Betriebs- und Geschäftsaustattung
view
-
+
-
+
0510
Andere Anlagen
other
-
+
-
+
0520
Pkw
other
-
+
-
+
0540
Lkw
other
-
+
-
+
0560
Sonstige Transportmittel
other
-
+
-
+
0620
Werkzeuge
other
-
+
-
+
0640
Ladeneinrichtungen
other
-
+
-
+
0650
Büroeinrichtungen
other
-
+
-
+
0660
Gerüst- und Schalungsmaterial
other
-
+
-
+
0670
Geringwertige Wirtschaftsgüter bis 410 Euro
other
-
+
-
+
0680
Einbauten in fremde Grundstücke
other
-
+
-
+
0690
Sonstige Betriebs- und Geschäftsausstattung
other
-
+
-
+
K0BA44
Geleistete Anzahlungen und Anlagen im Bau
@@ -1174,133 +1174,133 @@
view
-
+
0700
Geleistete Anzahlungen und Anlagen im Bau
view
-
+
-
+
0705
Anzahlungen auf Grundstücke und grundstücksgleiche Rechte ohne Bauten
other
-
+
-
+
0710
Geschäfts- Fabrik- und andere Bauten im Bau auf eingenen Grundstücken
other
-
+
-
+
0720
Anzahlungen auf Geschäfts- Fabrik-und andere Bauten auf eigenen Grundstücken und grundstücksgleichen Rechten
other
-
+
-
+
0725
Wohnbauten im Bau
other
-
+
-
+
0735
Anzahlungen auf Wohnbauten auf eigenen Grundstücken und grundstücksgleichen Rechten
other
-
+
-
+
0740
Geschäfts- Fabrik- und andere Bauten im Bau auf fremden Grundstücken
other
-
+
-
+
0750
Anzahlungen auf Geschäfts- Fabrik- und andere Bauten auf fremden Grundstücken
other
-
+
-
+
0755
Wohnbauten im Bau
other
-
+
-
+
0765
Anzahlungen auf Wohnbauten auf fremden Grundstücken
other
-
+
-
+
0770
Technische Anlagen und Maschinen im Bau
other
-
+
-
+
0780
Anzahlungen auf technische Anlagen und Maschinen
other
-
+
-
+
0785
Andere Anlagen- Betriebs- und Geschäftsaustattung im Bau
other
-
+
-
+
0795
Anzahlungen auf andere Anlagen- Betriebs und Geschäftsausstattung
other
-
+
-
+
K0BA5
Finanzanlagen
@@ -1308,7 +1308,7 @@
view
-
+
K0BA51
Anteile an verbundenen Unternehmen
@@ -1316,25 +1316,25 @@
view
-
+
0800
Anteile an verbundenen Unternehmen
other
-
+
-
+
0809
Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft
other
-
+
-
+
K0BA52
Ausleihungen an verbundene Unternehmen
@@ -1342,16 +1342,16 @@
view
-
+
0810
Ausleihungen an verbundene Unternehmen
other
-
+
-
+
K0BA53
Beteiligungen
@@ -1359,61 +1359,61 @@
view
-
+
0820
Beteiligungen
view
-
+
-
+
0829
Beteiligungen einer GmbH Co. KG an einer Komplementär GmbH
other
-
+
-
+
0830
Typisch stille Beteiligungen
other
-
+
-
+
0840
Atypisch stille Beteiligungen
other
-
+
-
+
0850
Andere Beteiligungen an Kapitalgesellschaften
other
-
+
-
+
0860
Andere Beteilgungen an Personengesellschaften
other
-
+
-
+
K0BA54
Ausleihungen an Unternehmen- mit denen ein Beteiligungsverhältnis besteht
@@ -1421,16 +1421,16 @@
view
-
+
0880
Ausleihungen an Unternehmen- mit denen ein Beteiligungsverhältnis besteht
other
-
+
-
+
K0BA55
Wertpapiere des Anlagevermögens
@@ -1438,34 +1438,34 @@
view
-
+
0900
Wertpapiere des Anlagevermögens
view
-
+
-
+
0910
Wertpapiere mit Gewinnbeteiligungsansprüchen- die dem Halbeinkünfteverfahren unterliegen
other
-
+
-
+
0920
Festverzinsliche Wertpapiere
other
-
+
-
+
K0BA56
Sonstige Ausleihungen
@@ -1473,43 +1473,43 @@
view
-
+
0930
Sonstige Ausleihungen
view
-
+
-
+
0940
Darlehen
other
-
+
-
+
0960
Ausleihungen an Gesellschafter
other
-
+
-
+
0970
Ausleihungen an nahe stehende Personen
other
-
+
-
+
K0BA57
Genossenschaftsanteile
@@ -1517,16 +1517,16 @@
view
-
+
0980
Genossenschaftsanteile zum langfristigen Verbleib
other
-
+
-
+
K0BA58
Rückdeckungsansprüche aus Lebensversicherungen
@@ -1534,16 +1534,16 @@
view
-
+
0990
Rückdeckungsansprüche aus Lebensversicherungen zum langfristigen Verbleib
other
-
+
-
+
K1BA1
Vorräte
@@ -1551,7 +1551,7 @@
view
-
+
K1BA11
Roh- Hilfs- und Betriebsstoffe
@@ -1559,367 +1559,367 @@
view
-
+
1000
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1001
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1002
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1003
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1004
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1005
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1006
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1007
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1008
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1009
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1010
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1011
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1012
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1013
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1014
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1015
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1016
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1017
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1018
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1019
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1020
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1021
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1022
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1023
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1024
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1025
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1026
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1027
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1028
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1029
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1030
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1031
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1032
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1033
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1034
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1035
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1036
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1037
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1038
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
1039
Roh- Hilfs- und Betriebsstoffe (Bestand)
other
-
+
-
+
K1BA12
Unfertige Erzeugnisse- unfertige Leistungen
@@ -1927,457 +1927,457 @@
view
-
+
1040
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1041
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1042
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1043
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1044
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1045
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1046
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1047
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1048
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1049
Unfertige Erzeugnisse- unfertige Leistungen (Bestand)
other
-
+
-
+
1050
Unfertige Erzeugnisse
other
-
+
-
+
1051
Unfertige Erzeugnisse
other
-
+
-
+
1052
Unfertige Erzeugnisse
other
-
+
-
+
1053
Unfertige Erzeugnisse
other
-
+
-
+
1054
Unfertige Erzeugnisse
other
-
+
-
+
1055
Unfertige Erzeugnisse
other
-
+
-
+
1056
Unfertige Erzeugnisse
other
-
+
-
+
1057
Unfertige Erzeugnisse
other
-
+
-
+
1058
Unfertige Erzeugnisse
other
-
+
-
+
1059
Unfertige Erzeugnisse
other
-
+
-
+
1060
Unfertige Erzeugnisse
other
-
+
-
+
1061
Unfertige Erzeugnisse
other
-
+
-
+
1062
Unfertige Erzeugnisse
other
-
+
-
+
1063
Unfertige Erzeugnisse
other
-
+
-
+
1064
Unfertige Erzeugnisse
other
-
+
-
+
1065
Unfertige Erzeugnisse
other
-
+
-
+
1066
Unfertige Erzeugnisse
other
-
+
-
+
1067
Unfertige Erzeugnisse
other
-
+
-
+
1068
Unfertige Erzeugnisse
other
-
+
-
+
1069
Unfertige Erzeugnisse
other
-
+
-
+
1070
Unfertige Erzeugnisse
other
-
+
-
+
1071
Unfertige Erzeugnisse
other
-
+
-
+
1072
Unfertige Erzeugnisse
other
-
+
-
+
1073
Unfertige Erzeugnisse
other
-
+
-
+
1074
Unfertige Erzeugnisse
other
-
+
-
+
1075
Unfertige Erzeugnisse
other
-
+
-
+
1076
Unfertige Erzeugnisse
other
-
+
-
+
1077
Unfertige Erzeugnisse
other
-
+
-
+
1078
Unfertige Erzeugnisse
other
-
+
-
+
1079
Unfertige Erzeugnisse
other
-
+
-
+
1080
Unfertige Leistungen
other
-
+
-
+
1081
Unfertige Leistungen
other
-
+
-
+
1082
Unfertige Leistungen
other
-
+
-
+
1083
Unfertige Leistungen
other
-
+
-
+
1084
Unfertige Leistungen
other
-
+
-
+
1085
Unfertige Leistungen
other
-
+
-
+
1086
Unfertige Leistungen
other
-
+
-
+
1087
Unfertige Leistungen
other
-
+
-
+
1088
Unfertige Leistungen
other
-
+
-
+
1089
Unfertige Leistungen
other
-
+
-
+
K1BA13
In Ausführung befindliche Bauaufträge
@@ -2385,52 +2385,52 @@
view
-
+
1090
In Ausführung befindliche Bauaufträge
other
-
+
-
+
1091
In Ausführung befindliche Bauaufträge
other
-
+
-
+
1092
In Ausführung befindliche Bauaufträge
other
-
+
-
+
1093
In Ausführung befindliche Bauaufträge
other
-
+
-
+
1094
In Ausführung befindliche Bauaufträge
other
-
+
-
+
K1BA14
In Arbeit befindliche Aufträge
@@ -2438,52 +2438,52 @@
view
-
+
1095
In Arbeit befindliche Aufträge
other
-
+
-
+
1096
In Arbeit befindliche Aufträge
other
-
+
-
+
1097
In Arbeit befindliche Aufträge
other
-
+
-
+
1098
In Arbeit befindliche Aufträge
other
-
+
-
+
1099
In Arbeit befindliche Aufträge
other
-
+
-
+
K1BA15
Fertige Erzeugnisse und Waren
@@ -2491,727 +2491,727 @@
view
-
+
1100
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1101
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1102
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1103
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1104
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1105
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1106
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1107
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1108
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1109
Fertige Erzeugnisse und Waren (Bestand)
other
-
+
-
+
1110
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1111
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1112
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1113
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1114
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1115
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1116
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1117
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1118
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1119
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1120
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1121
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1122
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1123
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1124
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1125
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1126
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1127
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1128
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1129
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1130
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1131
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1132
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1133
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1134
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1135
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1136
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1137
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1138
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1139
Fertige Erzeugnisse (Bestand)
other
-
+
-
+
1140
Waren (Bestand)
other
-
+
-
+
1141
* Lager Bestandswert Korrektur
other
-
+
-
+
1142
* Lager Differenzkorrektur Gewinn / Verlust
other
-
+
-
+
1143
* Lager Differenzkorrektur Marktwert
other
-
+
-
+
1144
* Lager Bestand Zwischenkonto
other
-
+
-
+
1145
Waren (Bestand)
other
-
+
-
+
1146
Waren (Bestand)
other
-
+
-
+
1147
Waren (Bestand)
other
-
+
-
+
1148
Waren (Bestand)
other
-
+
-
+
1149
Waren (Bestand)
other
-
+
-
+
1150
Waren (Bestand)
other
-
+
-
+
1151
Waren (Bestand)
other
-
+
-
+
1152
Waren (Bestand)
other
-
+
-
+
1153
Waren (Bestand)
other
-
+
-
+
1154
Waren (Bestand)
other
-
+
-
+
1155
Waren (Bestand)
other
-
+
-
+
1156
Waren (Bestand)
other
-
+
-
+
1157
Waren (Bestand)
other
-
+
-
+
1158
Waren (Bestand)
other
-
+
-
+
1159
Waren (Bestand)
other
-
+
-
+
1160
Waren (Bestand)
other
-
+
-
+
1161
Waren (Bestand)
other
-
+
-
+
1162
Waren (Bestand)
other
-
+
-
+
1163
Waren (Bestand)
other
-
+
-
+
1164
Waren (Bestand)
other
-
+
-
+
1165
Waren (Bestand)
other
-
+
-
+
1166
Waren (Bestand)
other
-
+
-
+
1167
Waren (Bestand)
other
-
+
-
+
1168
Waren (Bestand)
other
-
+
-
+
1169
Waren (Bestand)
other
-
+
-
+
1170
Waren (Bestand)
other
-
+
-
+
1171
Waren (Bestand)
other
-
+
-
+
1172
Waren (Bestand)
other
-
+
-
+
1173
Waren (Bestand)
other
-
+
-
+
1174
Waren (Bestand)
other
-
+
-
+
1175
Waren (Bestand)
other
-
+
-
+
1176
Waren (Bestand)
other
-
+
-
+
1177
Waren (Bestand)
other
-
+
-
+
1178
Waren (Bestand)
other
-
+
-
+
1179
Waren (Bestand)
other
-
+
-
+
K1BA16
Geleistete Anzahlungen
@@ -3219,52 +3219,52 @@
view
-
+
1180
Geleistete Anzahlungen auf Vorräte
view
-
+
-
+
1181
Geleistete Anzahlungen 7% Vorsteuer
other
-
+
-
+
1184
Geleistete Anzahlungen 16% Vorsteuer
other
-
+
-
+
1185
Geleistete Anzahlungen 15% Vorsteuer
other
-
+
-
+
1186
Geleistete Anzahlungen 19% Vorsteuer
other
-
+
-
+
K1BA17
Erhaltene Anzahlungen auf Bestellungen
@@ -3272,16 +3272,16 @@
view
-
+
1190
Erhaltene Anzahlungen auf Bestellungen (
other
-
+
-
+
K1BA2
Forderungen und sonstige Vermögensgegenstände
@@ -3289,7 +3289,7 @@
view
-
+
K1BA21
Forderungen aus Lieferungen und Leistungen oder sonstige Verbindlichkeiten
@@ -3297,205 +3297,205 @@
view
-
+
1200
Forderungen aus Lieferungen und Leistungen
view
-
+
-
+
1206
Forderungen aus Dienstleistungen
receivable
-
+
-
+
1210
Forderungen aus Lieferungen und Leistungen ohne Kontokorent
view
-
+
-
+
1211
Forderungen aus Lieferungen und Leistungen ohne Kontokorent
other
-
+
-
+
1212
Forderungen aus Lieferungen und Leistungen ohne Kontokorent
other
-
+
-
+
1213
Forderungen aus Lieferungen und Leistungen ohne Kontokorent
other
-
+
-
+
1214
Forderungen aus Lieferungen und Leistungen ohne Kontokorent
other
-
+
-
+
1215
Forderungen aus Lieferungen und Leistungen zum allgemeinen Umsatzsteuersatz oder eines Kleinunternehmers (EüR)
receivable
-
+
-
+
1216
Forderungen aus Lieferungen und Leistungen zum ermäßigten Umsatzsteuersatz (EüR)
receivable
-
+
-
+
1217
Forderungen aus steuerfreien oder nicht steuerbaren Lieferungen und Leistungen (EüR)
receivable
-
+
-
+
1218
Forderungen aus Lieferungen und Leistungen nach Durchschnittssätzen gemäß §24 UStG (EüR)
receivable
-
+
-
+
1219
Gegenkonto 1215-1218 bei Aufteilung der Forderungen nach Steuersätzen (EüR)
receivable
-
+
-
+
1220
Forderungen nach §11 Abs. 1 Satz 2 EStG für § 4/3 EStG
receivable
-
+
-
+
1221
Forderungen aus Lieferungen und Leistungen ohne Kontokorent - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1225
Forderungen aus Lieferungen und Leistungen ohne Kontokorent - Restlaufzeit größer 1 Jahr.
other
-
+
-
+
1230
Wechsel aus Lieferungen und Leistungen
other
-
+
-
+
1231
Wechsel aus Lieferungen und Leistungen Restlaufzeit bis 1 Jahr
other
-
+
-
+
1232
Wechsel aus Lieferungen und Leistungen Restlaufzeit größer 1 Jahr
other
-
+
-
+
1235
Wechsel aus Lieferungen und Leistungen- bundesbankfähig.
other
-
+
-
+
1240
Zweifelhafte Forderungen
other
-
+
-
+
1241
Zweifelhafte Forderungen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1245
Zweifelhafte Forderungen - Restlaufzeit größer 1 Jahr
other
-
+
-
+
K1BA22
Forderungen aus Lieferungen und Leistungen H-Saldo
@@ -3503,79 +3503,79 @@
view
-
+
1246
Einzelwertberechtigungen zu Forderungen mit einer Restlaufzeit bis zu 1 Jahr
other
-
+
-
+
1247
Einzelwertberechtigungen zu Forderungen mit einer Restlaufzeit von mehr als 1 Jahr
other
-
+
-
+
1248
Pauschalwertberichtigung zu Forderung mit einer Restlaufzeit bis zu 1 Jahr
other
-
+
-
+
1249
Pauschalwertberichtigung zu Forderung mit einer Restlaufzeit von mehr als 1 Jahr
other
-
+
-
+
1250
Forderungen aus Lieferungen und Leistungen gegen Gesellschafter
receivable
-
+
-
+
1251
Forderungen aus Lieferungen und Leistungen gegen Gesellschafter - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1255
Forderungen aus Lieferungen und Leistungen gegen Gesellschafter - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1258
Gegenkonto zu sonstigen Vermögensgegenständen bei Buchungen über Debitorenkonto
other
-
+
-
+
K1BA23
Forderungen aus Lieferungen und Leistungen H-Saldo oder sonstige Verbindlichkeiten S-Saldo
@@ -3583,16 +3583,16 @@
view
-
+
1259
Gegenkonto 1221-1229- 1240-1245- 1250-1257- 1270-1279- 1290-1297 bei Aufteilung Debitorenkonto
other
-
+
-
+
K1BA24
Forderungen gegen verbundene Unternehmen oder Verbindlichkeiten gegenüber verbundenen Unternehmen
@@ -3600,97 +3600,97 @@
view
-
+
1260
Forderungen gegen verbundene Unternehmen
view
-
+
-
+
1261
Forderungen gegen verbundene Unternehmen - Restlaufzeit bis 1 Jahr.
other
-
+
-
+
1265
Forderungen gegen verbundene Unternehmen - Restlaufzeit größer 1 Jahr.
other
-
+
-
+
1266
Besitzwechsel gegen verbundene Unternehmen
other
-
+
-
+
1267
Besitzwechsel gegen verbundene Unternehmen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1268
Besitzwechsel gegen verbundene Unternehmen - Restlaufzeit größer Jahr
other
-
+
-
+
1269
Besitzwechsel gegen verbundene Unternehmen- bundesbankfähig
other
-
+
-
+
1270
Forderungen aus Lieferungen und Leistungen gegen verbundenen Unternehmen
receivable
-
+
-
+
1271
Forderungen aus Lieferungen und Leistungen gegen verbundenen Unternehmen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1275
Forderungen aus Lieferungen und Leistungen gegen verbundenen Unternehmen - Restlaufzeit größer 1 Jahr
other
-
+
-
+
K1BA25
Forderungen gegen verbundene Unternehmen H-Saldo
@@ -3698,25 +3698,25 @@
view
-
+
1276
Wertberichtigungen zu Forderungen mit einer Restlaufzeit bis zu 1 Jahr gegen verbundene Unternehmen
other
-
+
-
+
1277
Wertberichtigungen zu Forderungen mit einer Restlaufzeit von mehr als 1 Jahr gegen verbundene Unternehmen
other
-
+
-
+
K1BA26
Forderungen geg. Untern.- m. d. e. Beteiligungsverhältnis besteht od. Verbindl. gegen Untern. - mit denen ein Beteiligungsverhältnis besteht
@@ -3724,97 +3724,97 @@
view
-
+
1280
Forderungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht
view
-
+
-
+
1281
Forderungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1285
Forderungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1286
Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht
other
-
+
-
+
1287
Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1288
Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1289
Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht- bundesbankfähig
other
-
+
-
+
1290
Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht
receivable
-
+
-
+
1291
Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1295
Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit größer 1 Jahr
other
-
+
-
+
K1BA27
Forderungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht H-Saldo
@@ -3822,25 +3822,25 @@
view
-
+
1296
Wertberichtigungen zu Forderungen mit einer Restlaufzeit bis zu 1 Jahr gegen Unternhemen- mit denen ein Beteiligungsverhältnis besteht
other
-
+
-
+
1297
Wertberichtigungen zu Forderungen mit einer Restlaufzeit von mehr als 1 Jahr gegen Unternhemen- mit denen ein Beteiligungsverhältnis besteht
other
-
+
-
+
K1BA28
Eingeforderte- noch ausstehende Kapitaleinlagen
@@ -3848,16 +3848,16 @@
view
-
+
1298
Ausstehende Einlagen auf das gezeichnete Kapital- eingefordert (Forderungen- nicht eingeforderte ausstehende Einlagen s. Konto 2910)
other
-
+
-
+
K1BA29
Eingeforderte Nachschüsse
@@ -3865,16 +3865,16 @@
view
-
+
1299
Eingeforderte Nachschüsse (gegenkonto 2929)
other
-
+
-
+
K1BA2a
Sonstige Vermögensgegenstände
@@ -3882,196 +3882,196 @@
view
-
+
1300
Sonstige Vermögensgegenstände
view
-
+
-
+
1301
Sonstige Vermögensgegenstände - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1305
Sonstige Vermögensgegenstände - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1310
Forderungen gegen Vorstandsmitglieder und Geschäftsführer
other
-
+
-
+
1311
Forderungen gegen Vorstandsmitglieder und Geschäftsführer - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1315
Forderungen gegen Vorstandsmitglieder und Geschäftsführer - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1320
Forderung gegen Aufsichtsrats- und Beirats- Mitglieder
other
-
+
-
+
1321
Forderung gegen Aufsichtsrats- und Beirats- Mitglieder - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1325
Forderung gegen Aufsichtsrats- und Beirats- Mitglieder - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1330
Forderungen gegen Gesellschafter
other
-
+
-
+
1331
Forderungen gegen Gesellschafter - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1335
Forderungen gegen Gesellschafter - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1340
Forderungen gegen Personal aus Lohn- und Gehaltsabrechnung
other
-
+
-
+
1341
Forderungen gegen Personal aus Lohn- und Gehaltsabrechnung - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1345
Forderungen gegen Personal aus Lohn- und Gehaltsabrechnung - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1350
Kautionen
other
-
+
-
+
1351
Kautionen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1355
Kautionen - Restlaufzeit größer 1 Jar
other
-
+
-
+
1360
Darlehen
other
-
+
-
+
1361
Darlehen - Restlaufzeit bis 1 jahr
other
-
+
-
+
1365
Darlehen - Restlaufzeit größer 1 jahr
other
-
+
-
+
K1BA2b
Sonstige Vermögensgegenstände oder sonstige Verbindlichkeiten
@@ -4079,511 +4079,511 @@
view
-
+
1370
Durchlaufende Posten
other
-
+
-
+
1374
Fremdgeld
other
-
+
-
+
1375
Agenturwarenabrechnung
other
-
+
-
+
1376
Nachträglich abziehbare Vorsteuer- § 15a Abs. 2 UStG
other
-
+
-
+
1377
Zurückzuzahlende Vorsteuer- § 15a Abs. 2 UStG
other
-
+
-
+
1378
Ansprüche aus Rückdeckungsversicherungen
other
-
+
-
+
1390
GmbH-Anteile zum kurzfristigen Verbleib
other
-
+
-
+
1395
Genossenschaftsanteile zum kurzfristigen Verbleib
other
-
+
-
+
1396
Nachträglich abziehbare Vorsteuer- § 15a Abs. 1 UStG- bewegliche Wirtschaftsgüter
other
-
+
-
+
1397
Zurückzuzahlende Vorsteuer- § 15a Abs. 1 UStG- bewegliche Wirtschaftsgüter
other
-
+
-
+
1398
Natürlich abziehbare Vorsteuer- § 15a Abs. 1 UStG- unbewegliche Wirtschaftsgüter
other
-
+
-
+
1399
Zurückzahlende Vorsteuer- § 15a Abs. 1 UStG- unbewegliche Wirtschaftsgüter
other
-
+
-
+
1400
Abziehbare Vorsteuer
other
-
+
-
+
1401
Abziehbare Vorsteuer 7%
other
-
+
-
+
1402
Abziehbare Vorsteuer aus innergemeinschaftlichem Erwerb
other
-
+
-
+
1403
Abziehbare Vorsteuer aus innergemeinschaftlichem Erwerb 16%
other
-
+
-
+
1404
Abziehbare Vorsteuer aus innergemeinschaftlichem Erwerb 19%
other
-
+
-
+
1405
Abziehbare Vorsteuer 16%
other
-
+
-
+
1406
Abziehbare Vorsteuer 19%
other
-
+
-
+
1407
Abziehbare Vorsteuer nach § 13b UStG 19%
other
-
+
-
+
1408
Abziehbare Vorsteuer nach § 13b UStG
other
-
+
-
+
1409
Abziehbare Vorsteuer nach § 13b UStG 16%
other
-
+
-
+
1410
Aufzuteilende Vorsteuer
other
-
+
-
+
1411
Aufzuteilende Vorsteuer 7%
other
-
+
-
+
1412
Aufzuteilende Vorsteuer aus innergemeinschaftlichem Erwerb
other
-
+
-
+
1413
Aufzuteilende Vorsteuer aus innergemeinschaftlichem Erwerb 19%
other
-
+
-
+
1415
Aufzuteilende Vorsteuer 16%
other
-
+
-
+
1416
Aufzuteilende Vorsteuer 19%
other
-
+
-
+
1417
Aufzuteilende Vorsteuer nach §§ 13a/13b UStG
other
-
+
-
+
1418
Aufzuteilende Vorsteuer nach §§ 13a/13b UStG 16%
other
-
+
-
+
1419
Aufzuteilende Vorsteuer nach §§ 13a/13b UStG 19%
other
-
+
-
+
1420
Umsatzsteuerforderung
other
-
+
-
+
1421
Umsatzsteuerforderungen laufendes Jahr
other
-
+
-
+
1422
Umsatzsteuerforderungen Vorjahr
other
-
+
-
+
1425
Umsatzsteuerforderungen frühere Jahre
other
-
+
-
+
1427
Forderungen aus einrichteten Verbrauchsteuern
other
-
+
-
+
1431
Abziehbare Vorsteuer aus der Auslagerung von Gegenständen aus einem Unsatzsteuerlager
other
-
+
-
+
1432
Abziehbare Vorsteuer aus innergemeinschaftlichem Erwerb von Neufahrzeugen von Lieferanten ohne Ust-Identifikationsnummer
other
-
+
-
+
1433
Bezahlte Einfuhrumsatzsteuer
other
-
+
-
+
1434
Vorsteuer im Folgejahr abziehbar
other
-
+
-
+
1435
Steuerüberzahlungen
other
-
+
-
+
1440
Steuererstattungsanspruch gegenüber andere EG-Ländern
other
-
+
-
+
1450
Körperschaftsteuerrückforderung
other
-
+
-
+
1452
Körperschaftsteuerguthaben nach § 37 KStG - Restlaufzeit bis 1 Jahr
other
-
+
-
+
1453
Körperschaftsteuerguthaben nach § 37 KStG - Restlaufzeit größer 1 Jahr
other
-
+
-
+
1456
Forderungen an das Finanzamt aus abgeführtem Bauabzugsbetrag
other
-
+
-
+
1460
Geldtransit
liquidity
-
+
-
+
1480
Gegenkonto Vorsteuer § 4/3 EStG
other
-
+
-
+
1481
Auflösung Vorsteuer aus Vorjahr § 4/3 EStG
other
-
+
-
+
1482
Vorsteuer aus Investitionen § 4/3 EStG
other
-
+
-
+
1483
Gegenkonto für Vorsteuer nach Durchschnittssätzen für § 4 Abs. 3 EStG
other
-
+
-
+
1484
Vorsteuer nach allgemeinen Durchschnittssätzen UStVA Kz. 63
other
-
+
-
+
1485
Verrechnungskonto Gewinnermittlung § 4/3 EStG- ergebniswirksam
other
-
+
-
+
1486
Verrechnungskonto Gewinnermittlung § 4/3 EStG- nicht ergebniswirksam
other
-
+
-
+
1487
Wirtschaftsgüter des Umlaufvermögens gemäß §4 Abs. 3 Satz 4 EStG
other
-
+
-
+
1490
Verrechnungskonto Ist-Versteuerung
other
-
+
-
+
K1BA2c
Sonstige Verbindlichkeiten S-Saldo
@@ -4591,25 +4591,25 @@
view
-
+
1495
Verrechnungskonto erhaltene Anzahlungen bei Buchungen über Debitorenkonto
other
-
+
-
+
1498
überleitungskonto Kostenstellen
other
-
+
-
+
K1BA3
Wertpapiere
@@ -4617,7 +4617,7 @@
view
-
+
K1BA31
Anteile an verbundenen Unternehmen
@@ -4625,25 +4625,25 @@
view
-
+
1500
Anteile an verbundenen Unternehmen (Umlaufvermögen)
other
-
+
-
+
1504
Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft
other
-
+
-
+
K1BA32
Eigene Anteile
@@ -4651,16 +4651,16 @@
view
-
+
1505
Eigene Anteile
other
-
+
-
+
K1BA33
Sonstige Wertpapiere
@@ -4668,43 +4668,43 @@
view
-
+
1510
Sonstige Wertpapiere
view
-
+
-
+
1520
Finanzwechsel
other
-
+
-
+
1525
Andere Wertpapiere mit unwesentlichen Wertschwankungen im Sinne Textziffer 18 DRS 2
other
-
+
-
+
1530
Wertpapieranlagen im Rahmen der Kurzfristigen Finanzdisposition
other
-
+
-
+
K1BA4
Kassenbestand- Bundesbankguthaben- Guthaben bei Kreditinstituten und Schecks
@@ -4712,7 +4712,7 @@
view
-
+
K1BA41
Kassenbestand- Bundesbankguthaben- Guthaben bei Kreditinstituten und Schecks
@@ -4720,43 +4720,43 @@
view
-
+
1550
Schecks
other
-
+
-
+
1600
Kasse
view
-
+
-
+
1610
Nebenkasse 1
liquidity
-
+
-
+
1620
Nebenkasse 2
liquidity
-
+
-
+
K1BA42
Kassenbestand - Bundesbankguthaben - Guthaben b. Kreditinstit. u. Schecks o. Verbindlichk. geg. Kreditinstituten
@@ -4764,123 +4764,123 @@
view
-
+
1700
Postbank
liquidity
-
+
-
+
1710
Postbank 1
liquidity
-
+
-
+
1720
Postbank 2
liquidity
-
+
-
+
1730
Postbank 3
liquidity
-
+
-
+
1780
LZB-Guthaben
liquidity
-
+
-
+
1790
Bundesbankguthaben
liquidity
-
+
-
+
1800
Bank
liquidity
-
+
-
-
+
+
1810
Bank 1
liquidity
-
+
-
+
1820
Bank 2
liquidity
-
+
-
+
1830
Bank 3
liquidity
-
+
-
+
1840
Bank 4
liquidity
-
+
-
+
1850
Bank 5
liquidity
-
+
-
+
1890
Finanzmittelanlagen im Rahmen der Kurzfristigen Finanzdisposition
other
-
+
@@ -4889,9 +4889,9 @@
other
-
+
-
+
K1BA5
Abgrenzungsposten
@@ -4899,7 +4899,7 @@
view
-
+
K1BA51
Rechnungsabgrenzungsposten
@@ -4907,43 +4907,43 @@
view
-
+
1900
Aktive Rechnungsabgrenzung
view
-
+
-
+
1920
Als Aufwand berücksichtigte Zölle und Verbrauchsteuern auf Vorräte
other
-
+
-
+
1930
Als Aufwand berücksichtigte Umstazsteuer auf Anzahlungen
other
-
+
-
+
1940
Damnum/Disagio
other
-
+
-
+
K1BA52
Abgrenzung latenter Steuern
@@ -4951,16 +4951,16 @@
view
-
+
1950
Abgrenzung aktive latente Steuern
other
-
+
-
+
K2BP1
Kapital Vollhafter / Einzelunternehmer
@@ -4968,43 +4968,43 @@
view
-
+
2000
Festkapital
other
-
+
-
+
2010
Variables Kapital
other
-
+
-
+
2020
Gesellschafter-Darlehen
other
-
+
-
+
2030
(zur freien Verfügung )
other
-
+
-
+
K2BP2
Kapital Teilhaber
@@ -5012,43 +5012,43 @@
view
-
+
2050
Kommandit-Kapital
other
-
+
-
+
2060
Verlustausgleichskonto
other
-
+
-
+
2070
Gesellschafter-Darlehen
other
-
+
-
+
2080
(zur freien Verfügung )
other
-
+
-
+
K2BP3
Privat Vollhafter/ Einzelunternehmer
@@ -5056,115 +5056,115 @@
view
-
+
2100
Privatentnahmen allgemein
other
-
+
-
+
2130
Unentgeltliche Wertabgaben
other
-
+
-
+
2150
Privatsteuern
other
-
+
-
+
2180
Privateinlagen
other
-
+
-
+
2200
Sonderausgaben beschränkt abzugsfähig
other
-
+
-
+
2230
Sonderausgaben unbeschränkt abzugsfähig
other
-
+
-
+
2250
Zuwendungen- Spenden
other
-
+
-
+
2280
Ausgewöhnliche Belastungen
other
-
+
-
+
2300
Grundstücksaufwand
other
-
+
-
+
2349
Grundstücksaufwand (Umsatzsteuerschlüssel möglich)
other
-
+
-
+
2350
Grundstücksertrag
other
-
+
-
+
2399
Grundstücksertrag ( Umsatzsteuerschlüssel möglich)
other
-
+
-
+
K2BP4
Privat Teilhafter
@@ -5172,97 +5172,97 @@
view
-
+
2500
Privatentnahmen allgemein
other
-
+
-
+
2530
Unentgeltliche Wertabgaben
other
-
+
-
+
2550
Privatsteuern
other
-
+
-
+
2580
Privateinlagen
other
-
+
-
+
2600
Sonderausgaben beschränkt abzugsfähig
other
-
+
-
+
2630
Sonderausgaben unbeschränkt abzugsfähig
other
-
+
-
+
2650
Zuwendungen- Spenden
other
-
+
-
+
2680
Ausgewöhnliche Belastungen
other
-
+
-
+
2700
Grundstücksaufwand
other
-
+
-
+
2750
Grundstücksertrag
other
-
+
-
+
K2BP5
Gezeichnetes Kapital
@@ -5270,7 +5270,7 @@
view
-
+
K2BP51
Gezeichnetes Kapital
@@ -5278,16 +5278,16 @@
view
-
+
2900
Gezeichnetes Kapital
other
-
+
-
+
K2BP52
Nicht eingeforderte ausstehende Einlagen
@@ -5295,16 +5295,16 @@
view
-
+
2910
Ausstehende Einlagen auf das gezeichnete Kapital- nicht eingefordert (Passivausweis- von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konto 1298)
other
-
+
-
+
K2BP6
Kapitalrücklage
@@ -5312,7 +5312,7 @@
view
-
+
K2BP61
Kapitalrücklage
@@ -5320,61 +5320,61 @@
view
-
+
2920
Kapitalrücklage
view
-
+
-
+
2925
Kapitalrücklage durch Ausgabe von Anteilen über Nennbetrag
other
-
+
-
+
2926
Kapitalrücklage durch Ausgabe von Schuldverschreibungen für Wandlungsrechte und Optionsrechte zum Erwerb von Anteilen
other
-
+
-
+
2927
Kapitalrücklage durch Zuzahlungen gegen Gewährung eines Vorzugs für Anteile
other
-
+
-
+
2928
Andere Zuzahlungen in das Eigenkapital
other
-
+
-
+
2929
Eingefordertes Nachschusskapital (Gegenkonto 1299)
other
-
+
-
+
K2BP7
Gewinnrücklagen
@@ -5382,7 +5382,7 @@
view
-
+
K2BP71
Gesetzliche Rücklagen
@@ -5390,16 +5390,16 @@
view
-
+
2930
Gesetzliche Rücklagen
other
-
+
-
+
K2BP72
Rücklage für Eigene Anteile
@@ -5407,16 +5407,16 @@
view
-
+
2940
Rücklage für Eigene Anteile
other
-
+
-
+
K2BP73
Satzungsmäßige Rücklagen
@@ -5424,16 +5424,16 @@
view
-
+
2950
Satzungsmäßige Rücklagen
other
-
+
-
+
K2BP74
Andere Gewinnrücklagen
@@ -5441,25 +5441,25 @@
view
-
+
2960
Andere Gewinnrücklagen
view
-
+
-
+
2962
Eigenkapitalanteil von Wertaufholungen
other
-
+
-
+
K2BP8
Gewinnvortrag / Verlustvortrag vor Verwendung
@@ -5467,7 +5467,7 @@
view
-
+
K2BP81
Gewinnvortrag / Verlustvortrag
@@ -5475,25 +5475,25 @@
view
-
+
2970
Gewinnvortrag vor Verwendung
other
-
+
-
+
2978
Verlustvortrag vor Verwendung
other
-
+
-
+
K2BP82
Vortrag auf neue Rechnung
@@ -5501,16 +5501,16 @@
view
-
+
2979
Vortrag auf neue Rechnung (Bilanz)
other
-
+
-
+
K2BP9
Sonderposten mit Rücklageanteil
@@ -5518,7 +5518,7 @@
view
-
+
K2BP91
Sonderposten mit Rücklageanteil
@@ -5526,52 +5526,52 @@
view
-
+
2980
Sonderposten mit Rücklageanteil steuerfreie Rücklagen
other
-
+
-
+
2981
Sonderposten mit Rücklageanteil nach § 6b EStG
other
-
+
-
+
2982
Sonderposten mit Rücklageanteil nach Abschnitt 35 EStG
other
-
+
-
+
2983
Sonderposten mit Rücklageanteil nach § 6d EStG
other
-
+
-
+
2984
Sonderposten mit Rücklageanteil nach § 1 EntwLStG
other
-
+
-
+
K2BP92
Sonderposten aus der Währungsumstellung auf den Euro
@@ -5579,133 +5579,133 @@
view
-
+
2985
Sonderposten aus der Währungsumstellung auf den Euro
other
-
+
-
+
2986
Sonderposten mit Rücklageanteil nach § 7d EStG
other
-
+
-
+
2987
Sonderposten mit Rücklageanteil nach § 79 EStDV
other
-
+
-
+
2988
Sonderposten mit Rücklageanteil nach § 80 EStDV
other
-
+
-
+
2989
Sonderposten mit Rücklageanteil nach § 52 Abs. 16 EStG
other
-
+
-
+
2990
Sonderposten mit Rücklageanteil- Sonderabschreibung
other
-
+
-
+
2991
Sonderposten mit Rücklageanteil nach § 82a EStDV
other
-
+
-
+
2992
Sonderposten mit Rücklageanteil nach § 82d EStDV
other
-
+
-
+
2993
Sonderposten mit Rücklageanteil nach § 82e EStDV
other
-
+
-
+
2994
Sonderposten mit Rücklageanteil nach § 14 BerlinFG
other
-
+
-
+
2995
Sonderposten mit Rücklageanteil für Förderung nach § 3 ZonenRFG / §4-6 FördergebietsG
other
-
+
-
+
2996
Sonderposten mit Rücklageanteil nach § 4d EStG
other
-
+
-
+
2997
Sonderposten mit Rücklageanteil nach § 7g Abs. 1 EStG
other
-
+
-
+
2998
Sonderposten mit Rücklageanteil nach § 7g Abs. 3 u. 7 EStG
other
-
+
-
+
K2BP93
Sonderposten für Zuschüsse und Zulagen
@@ -5713,16 +5713,16 @@
view
-
+
2999
Sonderposten für Zuschüsse und Zulagen
other
-
+
-
+
K3BP1
Rückstellungen
@@ -5730,7 +5730,7 @@
view
-
+
K3BP11
Rückstellungen für Pensionen und ähnliche Verpflichtungen
@@ -5738,34 +5738,34 @@
view
-
+
3000
Rückstellungen für Pensionen und ähnliche Verpflichtungen
view
-
+
-
+
3010
Pensionsrückstellungen
other
-
+
-
+
3015
Rückstellungen für Pensionsähnliche Verpflichtungen
other
-
+
-
+
K3BP12
Steuerrückstellungen
@@ -5773,43 +5773,43 @@
view
-
+
3020
Steuerrückstellungen
view
-
+
-
+
3030
Gewerbesteuerrückstellung
other
-
+
-
+
3040
Körperschaftsteuerrückstellung
other
-
+
-
+
3060
Rückstellung für latente Steuern
other
-
+
-
+
K3BP13
Sonstige Rückstellungen
@@ -5817,106 +5817,106 @@
view
-
+
3070
Sonstige Rückstellungen
view
-
+
-
+
3074
Rückstellungen für Personelkosten
other
-
+
-
+
3075
Rückstellungen für unterlassene Aufwendungenn für Instandhaltung- Nachholung in den ersten drei Monaten
other
-
+
-
+
3080
Rückstellungen für unterlassene Aufwendungenn für Instandhaltung- Nachholung innerhalb des 4. bis 12. Monats
other
-
+
-
+
3085
Rückstellungen für Abraum- und Abfallbeseitigung
other
-
+
-
+
3090
Rückstellungen für Gewährleistungen (Gegenkonto 6790)
other
-
+
-
+
3092
Rückstellungen für drohende Verluste aus schwebenden Geschäften
other
-
+
-
+
3095
Rückstellungen für Abschluss- und Prüfungskosten
other
-
+
-
+
3096
Rückstellungen zur Erfüllung der Aufbewahrungspflichten
other
-
+
-
+
3098
Aufwandsrückstellungen gemäß § 249 Abs. 2 HGB
other
-
+
-
+
3099
Rückstellungen für Umweltschutz
other
-
+
-
+
K3BP2
Verbindlichkeiten
@@ -5924,7 +5924,7 @@
view
-
+
K3BP21
Anleihen
@@ -5932,79 +5932,79 @@
view
-
+
3100
Anleihen- nicht konvertibel
view
-
+
-
+
3101
Anleihen- nicht konvertibel Restlaufzeit bis 1 Jahr
other
-
+
-
+
3105
Anleihen- nicht konvertibel Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3110
Anleihen- nicht konvertibel Restlaufzeit größer 5 Jahre
other
-
+
-
+
3120
Anleihen- konvertibel
other
-
+
-
+
3121
Anleihen- konvertibel Restlaufzeit bis 1 Jahr
other
-
+
-
+
3125
Anleihen- konvertibel Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3130
Anleihen- konvertibel Restlaufzeit größer 5 Jahr
other
-
+
-
+
K3BP22
Verbindlichkeiten gegenüber Kreditinstituten oder Kassenbestand- Bundesbankguthaben- Guthaben bei Kreditinstituten und Schecks
@@ -6012,88 +6012,88 @@
view
-
+
3150
Verbindlichkeiten gegenüber Kreditinstituten
view
-
+
-
+
3151
Verbindlichkeiten gegenüber Kreditinstituten Restlaufzeit bis 1 Jahr
other
-
+
-
+
3160
Verbindlichkeiten gegenüber Kreditinstituten Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3170
Verbindlichkeiten gegenüber Kreditinstituten Restlaufzeit größer 5 Jahre
other
-
+
-
+
3180
Verbindlichkeiten gegenüber Kreditinstituten aus Teilzahlungsverträgen
other
-
+
-
+
3181
Verbindlichkeiten gegenüber Kreditinstituten aus Teilzahlungsverträgen Restlaufzeit bis 1 Jahr
other
-
+
-
+
3190
Verbindlichkeiten gegenüber Kreditinstituten aus Teilzahlungsverträgen Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3200
Verbindlichkeiten gegenüber Kreditinstituten aus Teilzahlungsverträgen Restlaufzeit größer 5 Jahre
other
-
+
-
+
3210
(frei- in Bilanz kein Restlaufzeit vermerkt)
other
-
+
-
+
K3BP23
Verbindlichkeiten gegenüber Kreditinstituten
@@ -6101,16 +6101,16 @@
view
-
+
3249
Gegenkonto 3159-3209 bei Aufteilung der Konten 3210-3248
other
-
+
-
+
K3BP24
Erhaltene Anzahlungen auf Bestellungen
@@ -6118,79 +6118,79 @@
view
-
+
3250
Erhaltene Anzahlungen auf Bestellungen
view
-
+
-
+
3260
Erhaltene Anzahlungen 7% USt
other
-
+
-
+
3270
Erhaltene Anzahlungen 16% USt
other
-
+
-
+
3271
Erhaltene Anzahlungen 15% USt
other
-
+
-
+
3272
Erhaltene- versteuerte Anzahlungen 19% Ust (Verbindlichkeiten)
other
-
+
-
+
3280
Erhaltene Anzahlungen Restlaufzeit bis 1 Jahr
other
-
+
-
+
3284
Erhaltene Anzahlungen Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3285
Erhaltene Anzahlungen Restlaufzeit größer 5 Jahre
other
-
+
-
+
K3BP25
Verbindlichkeiten aus Lieferungen und Leistungen oder sonstige Vermögensgegenstände
@@ -6198,142 +6198,142 @@
view
-
+
3300
Verbindlichkeiten aus Lieferungen und Leistungen
view
-
+
-
+
3301
Lieferanten Verbindlichkeiten Dienstleistungen
payable
-
+
-
+
3305
Verbindlichkeiten aus Lieferungen und Leistungen zum allgemeinen Umsatzsteuersatz (EüR)
payable
-
+
-
+
3306
Verbindlichkeiten aus Lieferungen und Leistungen zum ermäßigten Umsatzsteuersatz (EüR)
payable
-
+
-
+
3307
Verbindlichkeiten aus Lieferungen und Leistungen ohne Vorsteuer (EüR)
payable
-
+
-
+
3309
Gegenkonto 3305-3307 bei Aufteilung der Verbindlichkeiten nach Steuersätzen (EüR)
other
-
+
-
+
3310
Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent
other
-
+
-
+
3334
Verbindlichkeiten aus Lieferungen und Leistungen für Investitionen für § 4/3 EStG
payable
-
+
-
+
3335
Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent Restlaufzeit bis 1 Jahr
other
-
+
-
+
3337
Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3338
Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent Restlaufzeit größer 5 Jahre
other
-
+
-
+
3340
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern
payable
-
+
-
+
3341
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern Restlaufzeit bis 1 Jahr
other
-
+
-
+
3345
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3348
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Gesellschaftern Restlaufzeit größer 5 Jahre
other
-
+
-
+
K3BP26
Verbindlichkeiten aus Lieferungen und Leistungen S-Saldo oder sonstige Vermögensgegenstände H-Saldo
@@ -6341,16 +6341,16 @@
view
-
+
3349
Gegenkonto 3335-3348- 3420-3449- 3470-3499 bei Aufteilung Kreditorenkonto
other
-
+
-
+
K3BP27
Verbindlichkeiten aus der Annahme gezogener Wechsel und aus der Ausstellung eigener Wechsel
@@ -6358,43 +6358,43 @@
view
-
+
3350
Verbindlichkeiten aus der Annahme gezogener Wechsel und aus der Ausstellung eigener Wechsel
view
-
+
-
+
3351
Verbindlichkeiten aus der Annahme gezogener Wechsel und aus der Ausstellung eigener Wechsel Restlaufzeit bis 1 Jahr
other
-
+
-
+
3380
Verbindlichkeiten aus der Annahme gezogener Wechsel und aus der Ausstellung eigener Wechsel Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3390
Verbindlichkeiten aus der Annahme gezogener Wechsel und aus der Ausstellung eigener Wechsel Restlaufzeit größer 5 Jahre
other
-
+
-
+
K3BP28
Verbindlichkeiten gegenüber verbundenen Unternehmen oder Forderungen gegen verbundene Unternehmen
@@ -6402,79 +6402,79 @@
view
-
+
3400
Verbindlichkeiten gegenüber verbundenen Unternehmen
view
-
+
-
+
3401
Verbindlichkeiten gegenüber verbundenen Unternehmen Restlaufzeit bis 1 Jahr
other
-
+
-
+
3405
Verbindlichkeiten gegenüber verbundenen Unternehmen Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3410
Verbindlichkeiten gegenüber verbundenen Unternehmen Restlaufzeit größer 5 Jahre
other
-
+
-
+
3420
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen
payable
-
+
-
+
3421
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen Restlaufzeit bis 1 Jahr
other
-
+
-
+
3425
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3430
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber verbundenen Unternehmen Restlaufzeit größer 5 Jahre
other
-
+
-
+
K3BP29
Verbindlichkeiten gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht oder Forderungen gegen Unternehmen- mit denen ein Beteiligungsverhältnis besteht
@@ -6482,79 +6482,79 @@
view
-
+
3450
Verbindlichkeiten gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht
view
-
+
-
+
3451
Verbindlichkeiten gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht Restlaufzeit bis 1 Jahr
other
-
+
-
+
3455
Verbindlichkeiten gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3460
Verbindlichkeiten gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht Restlaufzeit größer 5 Jahre
other
-
+
-
+
3470
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht
payable
-
+
-
+
3471
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3475
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3480
Verbindlichkeiten aus Lieferungen und Leistungen gegenüber Unternehmen- mit denen ein Beteiligungsverhältnis besteht - Restlaufzeit größer 5 Jahre
other
-
+
-
+
K3BP2a
Sonstige Verbindlichkeiten
@@ -6562,313 +6562,313 @@
view
-
+
3500
Sonstige Verbindlichkeiten
view
-
+
-
+
3501
Sonstige Verbindlichkeiten - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3504
Sonstige Verbindlichkeiten - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3507
Sonstige Verbindlichkeiten - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3509
Sonstige Verbindlichkeiten z.B. nach § 11 Abs. 2 Satz 2 EStG für § 4/3 EStG
other
-
+
-
+
3510
Verbindlichkeiten gegenüber Gesellschaftern
other
-
+
-
+
3511
Verbindlichkeiten gegenüber Gesellschaftern - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3514
Verbindlichkeiten gegenüber Gesellschaftern - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3517
Verbindlichkeiten gegenüber Gesellschaftern - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3519
Verbindlichkeiten gegenüber Gesellschaftern für offene Ausschüttungen
other
-
+
-
+
3520
Darlehen typisch stiller Gesellschaftler
other
-
+
-
+
3521
Darlehen typisch stiller Gesellschaftler - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3524
Darlehen typisch stiller Gesellschaftler - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3527
Darlehen typisch stiller Gesellschaftler - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3530
Darlehen atypisch stiller Gesellschaftler
other
-
+
-
+
3531
Darlehen atypisch stiller Gesellschaftler - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3534
Darlehen atypisch stiller Gesellschaftler - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3537
Darlehen atypisch stiller Gesellschaftler - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3540
Partiarische Darlehen
other
-
+
-
+
3541
Partiarische Darlehen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3544
Partiarische Darlehen - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3547
Partiarische Darlehen - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3550
Erhaltene Kautionen
other
-
+
-
+
3551
Erhaltene Kautionen - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3554
Erhaltene Kautionen - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3557
Erhaltene Kautionen - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3560
Darlehen
other
-
+
-
+
3561
Darlehen - Restlaufzeit bis 1 jahr
other
-
+
-
+
3564
Darlehen - Restlaufzeit 1 bis 5 jahre
other
-
+
-
+
3567
Darlehen - Restlaufzeit größer 5 jahre
other
-
+
-
+
3570
(frei- in Bilanz kein Restlaufzeit vermerkt)
other
-
+
-
+
3599
Gegenkonto 3500-3569 bei Aufteilung der Konten 3570-3598
other
-
+
-
+
3600
Agenturwarenabrechnungen
other
-
+
-
+
3610
Kreditkartenabrechnung
other
-
+
-
+
K3BP2b
Sonstige Vermögensgegenstände oder sonstige Verbindlichkeiten
@@ -6876,25 +6876,25 @@
view
-
+
3620
Gewinnverfügungskonto stille Gesellschafter
other
-
+
-
+
3630
Sonstige Verrechnungskonten (Interimskonto)
other
-
+
-
+
K3BP2c
Sonstige Vermögensgegenstände H-Saldo
@@ -6902,304 +6902,304 @@
view
-
+
3695
Verrechnungskonto geleistete Anzahlungen bei Buchung über Kreditorenkonto
other
-
+
-
+
3700
Verbindlichkeiten aus Betriebssteuern und -abgaben
other
-
+
-
+
3701
Verbindlichkeiten aus Betriebssteuern und -abgaben - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3710
Verbindlichkeiten aus Betriebssteuern und -abgaben - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3715
Verbindlichkeiten aus Betriebssteuern und -abgaben - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3720
Verbindlichkeiten aus Lohn und Gehalt
other
-
+
-
+
3725
Verbindlichkeiten für Einbehaltungen von Arbeitnehmern
other
-
+
-
+
3726
Verbindlichkeiten an das Finanzamt aus abzuführendem Bauabzugsbetrag
other
-
+
-
+
3730
Verbindlichkeiten aus Lohn- und Kirchensteuer
other
-
+
-
+
3740
Verbindlichkeiten im Rahmen der sozialen Sicherheit
other
-
+
-
+
3741
Verbindlichkeiten im Rahmen der sozialen Sicherheit - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3750
Verbindlichkeiten im Rahmen der sozialen Sicherheit - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3755
Verbindlichkeiten im Rahmen der sozialen Sicherheit - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3759
Voraussichtliche Beitragsschuld gegenüber den Sozialversicherungsträgern
other
-
+
-
+
3760
Verbindlichkeiten aus Einbehaltungen (KapESt und Solz auf KapESt)
other
-
+
-
+
3761
Verbindlichkeiten für Verbrauchsteuern
other
-
+
-
+
3770
Verbindlichkeiten aus Vermögensbildung
other
-
+
-
+
3771
Verbindlichkeiten aus Vermögensbildung - Restlaufzeit bis 1 Jahr
other
-
+
-
+
3780
Verbindlichkeiten aus Vermögensbildung - Restlaufzeit 1 bis 5 Jahre
other
-
+
-
+
3785
Verbindlichkeiten aus Vermögensbildung - Restlaufzeit größer 5 Jahre
other
-
+
-
+
3790
Lohn- und Gehaltsverrechnungskonto
view
-
+
-
+
3791
Lohn- und Gehaltsverrechnung § 11 Abs. 2 EStG für § a Abs. 3 EStG
other
-
+
-
+
3796
Verbindlichkeiten im Rahmen der sozialen Sicherheit (für § 4/3 EStG)
other
-
+
-
+
3800
Umsatzsteuer
other
-
+
-
+
3801
Umsatzsteuer 7%
other
-
+
-
+
3802
Umsatzsteuer aus innergemeinschaftlichem Erwerb
other
-
+
-
+
3803
Umsatzsteuer aus innergemeinschaftlichem Erwerb 16%
other
-
+
-
+
3804
Umsatzsteuer aus innergemeinschaftlichem Erwerb 19%
other
-
+
-
+
3805
Umsatzsteuer 16%
other
-
+
-
+
3806
Umsatzsteuer 19%
other
-
+
-
+
3807
Umsatzsteuer aus im Inland steuerpflichtigen EG-Lieferungen
other
-
+
-
+
3808
Umsatzsteuer aus im Inland steuerpflichtigen EG-Lieferungen 19%
other
-
+
-
+
3809
Umsatzsteuer aus innergemeinschaftlichem Erwerb ohne Vorsteuerabzug
other
-
+
-
+
K3BP2d
Steuerrückstellungen oder sonstige Vermögensgegenstände
@@ -7207,214 +7207,214 @@
view
-
+
3810
Umsatzsteuer nicht fällig
other
-
+
-
+
3811
Umsatzsteuer nicht fällig 7%
other
-
+
-
+
3812
Umsatzsteuer nicht fällig aus im Inland steuerpflichtigen EG-Lieferungen
other
-
+
-
+
3813
Umsatzsteuer nicht fällig aus im Inland steuerpflichtigen EG-Lieferungen 16%
other
-
+
-
+
3814
Umsatzsteuer nicht fällig aus im Inland steuerpflichtigen EG-Lieferungen 19%
other
-
+
-
+
3815
Umsatzsteuer nicht fällig 16%
other
-
+
-
+
3816
Umsatzsteuer nicht fällig 19%
other
-
+
-
+
3817
Umsatzsteuer aus im anderen EG-Land steuerpflichtigen Lieferungen
other
-
+
-
+
3818
Umsatzsteuer aus im anderen EG-Land steuerpflichtigen sonstigen Leistungen/Werlieferungen
other
-
+
-
+
3820
Umsatzsteuer- Vorauszahlungen
other
-
+
-
+
3830
Umsatzsteuer- Vorauszahlungen 1/11
other
-
+
-
+
3832
Nachsteuer- UStVA Kz. 65
other
-
+
-
+
3834
Umsatzsteuer aus innergemeinschaftlichem Erwerb von Neufahrzeugen von Lieferanten ohne Umsatzsteuer-Identifikationsnummer
other
-
+
-
+
3835
Umsatzsteuer nach §13b UStG
other
-
+
-
+
3836
Umsatzsteuer nach §13b UStG 16%
other
-
+
-
+
3837
Umsatzsteuer nach §13b UStG 19%
other
-
+
-
+
3839
Umsatzsteuer aus der Auslagerung von Gegenständen aus einem Umsatzsteuerlager
other
-
+
-
+
3840
Umsatzsteuer laufendes Jahr
other
-
+
-
+
3841
Umsatzsteuer Vorjahr
other
-
+
-
+
3845
Umsatzsteuer frühere Jahre
other
-
+
-
+
3850
Einfuhrumsatzsteuer aufgeschoben bis
other
-
+
-
+
3851
In Rechnung unrichtig oder unberechtigt ausgewiesene Steuerbeträge- UStVA Kz. 69
other
-
+
-
+
3854
Steuerzahlungen an andere EG-Länder
other
-
+
-
+
K3BP3
Rechnungsabgrenzungsposten
@@ -7422,7 +7422,7 @@
view
-
+
K3BP31
Rechnungsabgrenzungsposten
@@ -7430,16 +7430,16 @@
view
-
+
3900
Passive Rechnungsabgrenzung
other
-
+
-
+
K3BP32
Sonstige Passiva oder sontige Aktiva
@@ -7447,16 +7447,16 @@
view
-
+
3950
Abgrenzungen zur unterjährigen Kostenverrechnung für BWA
other
-
+
-
+
K4GVE1
Umsatzerlöse
@@ -7464,7 +7464,7 @@
view
-
+
K4GVE11
Umsatzerlöse
@@ -7472,358 +7472,358 @@
view
-
+
4000
Umsatzerlöse (zur fr. Verfügung)
other
-
+
-
+
4100
Steuerfreie Umsätze §4 Nr. 8 ff. UStG
other
-
+
-
+
4105
Steuerfreie Umsätze nach § 4 Nr. 12 UStG (Vermietung und Verpackung)
other
-
+
-
+
4110
Sonstige steuerfreie Umsätze Inland
other
-
+
-
+
4120
Steuerfreie Umsätze §4 Nr. 1a UStG
other
-
+
-
+
4125
Steuerfreie innergemeinschaftliche Lieferungen §4 Nr. 1b UStG
other
-
+
-
+
4130
Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften § 25b abs. UStG
other
-
+
-
+
4135
Steuerfreie innergemeinschaftliche Lieferungen von Neufahrzeugen an Abnehmer ohne Umsatzsteuer-Identifikationsnummer
other
-
+
-
+
4140
Steuerfreie Umsätze offshore etc.
other
-
+
-
+
4150
Sonstige steuerfreie Umsätze (z.B. § 4 Nr. 2-7 UStG)
other
-
+
-
+
4160
Steuerfreie Umsätze ohne Vorsteuerabzug zum Gesamtumsatz gehörend
other
-
+
-
+
4180
Erlöse. Die mit den Durchschnittssätzen des § 24 UStG versteuert werden
other
-
+
-
+
4185
Erlöse als Kleinunternehmer i.S.d. § 19 Abs. 1 UStG
other
-
+
-
+
4186
Erlöse aus Geldspielautomaten 19% USt
other
-
+
-
+
4187
Erlöse aus Geldspielautomaten 16% USt
other
-
+
-
+
4200
Erlöse
other
-
+
-
+
4300
Erlöse 7% USt
other
-
+
-
+
4310
Erlöse aus im Inland steuerpflichtigen EG-Lieferungen 7% USt
other
-
+
-
+
4315
Erlöse aus im Inland steuerpflichtigen EG-Lieferungen 19% USt
other
-
+
-
+
4320
Erlöse aus im anderen EG-Land steuerpflichtigen Lieferungen
other
-
+
-
+
4330
Erlöse aus im Inland steuerpflichtigen EG-Lieferungen 16% USt
other
-
+
-
+
4337
Erlöse aus Leistungen- für die der Leistungsempfänger die Umsatzsteuer nach § 13b UStG schuldet
other
-
+
-
+
4338
Erlöse aus im Drittland steuerbaren Leistungen- im Inland ncht steuerbare Umsätze
other
-
+
-
+
4339
Erlöse aus im anderen EG-Land steuerbaren Leistungen- im Inland nicht steuerbare Umsätze
other
-
+
-
+
4340
Erlöse 16% USt
other
-
+
-
+
4400
Erlöse 19% USt
other
-
+
-
+
4401
* Vorausberechnete Einnahmen
other
-
+
-
+
4402
* Sonstige Einnahmen
other
-
+
-
+
4403
* Konto Kasse Ertrag
other
-
+
-
+
4410
Erlöse 19% USt
other
-
+
-
+
4499
Nicht abgerechnete Einnahmen
other
-
+
-
+
4510
Erlöse Abfallverwertung
other
-
+
-
+
4520
Erlöse Leergut
other
-
+
-
+
4560
Provisionsumsätze
other
-
+
-
+
4564
Provisionsumsätze- steuerfrei (§4 Nr. 8 ff. UStG)
other
-
+
-
+
4565
Provisionsumsätze- steuerfrei (§4 Nr. 5 UStG)
other
-
+
-
+
4566
Provisionsumsätze 7% USt
other
-
+
-
+
4568
Provisionsumsätze 16% USt
other
-
+
-
+
4569
Provisionsumsätze 19% USt
other
-
+
-
+
K4GVE12
Sotige betriebliche Erträge
@@ -7831,61 +7831,61 @@
view
-
+
4570
Provision- sonstige Erträge
other
-
+
-
+
4574
Provision- sonstige Erträge steuerfrei (§ 4 Nr. 8 ff. UStG)
other
-
+
-
+
4575
Provision- sonstige Erträge steuerfrei (§ 4 Nr. 5 UStG)
other
-
+
-
+
4576
Provision- sonstige Erträge 7% USt
other
-
+
-
+
4578
Provision- sonstige Erträge 16% USt
other
-
+
-
+
4579
Provision- sonstige Erträge 19% USt
other
-
+
-
+
K4GVE2
Statistische Konten EüR
@@ -7893,7 +7893,7 @@
view
-
+
K4GVE21
Umsatzerlöse
@@ -7901,97 +7901,97 @@
view
-
+
4580
Statistisches Konto Erlöse zum allgemeinen Umsatzsteuersatz (EüR)
other
-
+
-
+
4581
Statistisches Konto Erlöse zum ermäßigten Umsatzsteuersatz (EüR)
other
-
+
-
+
4582
Statistisches konto Erlöse steuerfrei und nicht steuerbar (EüR)
other
-
+
-
+
4589
Gegenkonto 4580-4582 bei Aufteilung der Erlöse nach Steuersätzen (EüR)
other
-
+
-
+
4600
Unentgeltliche Wertabgaben
other
-
+
-
+
4605
Entnahme von Gegensänden ohne USt
other
-
+
-
+
4610
Entnahme durh Unternehmer für Zwecke außerhalb des Unternehmens (Waren) 7% USt
other
-
+
-
+
4619
Entnahme durch Unternehmer für Zwecke außerhalb des Unternehmens (Waren) ohne USt
other
-
+
-
+
4620
Entnahme durch den Unternehmer für Zwecke außerhalb des Unternehmens (Waren) 19% USt
other
-
+
-
+
4627
Entnahme durch den Unternehmer für Zwecke außerhalb des Unternehmens (Waren) 16% USt
other
-
+
-
+
K4GVE22
Sonstige betriebliche Erträge
@@ -7999,466 +7999,466 @@
view
-
+
4630
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 7% USt
other
-
+
-
+
4637
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens ohne USt
other
-
+
-
+
4638
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens ohne USt (Telefon-Nutzung)
other
-
+
-
+
4639
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens ohne USt (Kfz-Nutzung)
other
-
+
-
+
4640
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 19% USt
other
-
+
-
+
4645
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 19% USt (Kfz-Nutzung)
other
-
+
-
+
4646
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 19% USt (Telefon-Nutzung)
other
-
+
-
+
4647
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 16% USt
other
-
+
-
+
4648
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 16% USt (Kfz-Nutzung)
other
-
+
-
+
4649
Verwendung von Gegenständen für Zwecke außerhalb des Unternehmens 16% USt (Telefon-Nutzung)
other
-
+
-
+
4650
Unentgeltliche Erbringung einer sonstigen Leistung 7% USt
other
-
+
-
+
4659
Unentgeltliche Erbringung einer sostigen Leistung ohne USt
other
-
+
-
+
4660
Unentgeltliche Erbringung einer sostigen Leistung 19% USt
other
-
+
-
+
4667
Unentgeltliche Erbringung einer sostigen Leistung 16% USt
other
-
+
-
+
4670
Unentgeltliche Zuwendung von Waren 7% USt
other
-
+
-
+
4679
Unentgeltliche Zuwendung von Waren ohne USt
other
-
+
-
+
4680
Unentgeltliche Zuwendung von Waren 19% USt
other
-
+
-
+
4685
Unentgeltliche Zuwendung von Waren 16% USt
other
-
+
-
+
4686
Unentgeltliche Zuwendung von Gegenständen 19% USt
other
-
+
-
+
4688
Unentgeltliche Zuwendung von Gegenständen 16% USt
other
-
+
-
+
4689
Unentgeltliche Zuwendung von Gegenständen ohne USt
other
-
+
-
+
4690
Nicht steuerbare umsätze (Innenumsätze)
other
-
+
-
+
4695
Umsatzsteuervergütung
other
-
+
-
+
4700
Erlösschmälerungen
other
-
+
-
+
4705
Erlösschmälerungen aus steuerfreien Umsätzen § 4 Nr. 1a UStG
other
-
+
-
+
4710
Erlösschmälerungen 7 % USt
other
-
+
-
+
4720
Erlösschmälerungen 19 % USt
other
-
+
-
+
4723
Erlösschmälerungen 16 % USt
other
-
+
-
+
4724
Erlösschmälerungen aus steuerfreien innergemeinschaftlichen Lieferungen
other
-
+
-
+
4725
Erlösschmälerung aus im Inland steuerpflichtigen EG-lieferungen 7 % USt
other
-
+
-
+
4726
Erlösschmälerung aus im Inland steuerpflichtigen EG-lieferungen 19% USt
other
-
+
-
+
4727
Erlösschmälerung aus im anderen EG-lieferungen steuerpflichtigen Lieferungen
other
-
+
-
+
4729
Erlösschmälerung aus im Inland steuerpflichtigen EG-lieferungen 16% USt
other
-
+
-
+
4730
Gewährte Skonti
other
-
+
-
+
4731
Gewährte Skonti 7 % USt
other
-
+
-
+
4735
Gewährte Skonti 16 % USt
other
-
+
-
+
4736
Gewährte Skonti 19 % USt
other
-
+
-
+
4741
Gewährte Skonti aus Leistungen- für die der Leistungsempfänger die umsatzsteuer nach § 13b UStG schuldet
other
-
+
-
+
4743
Gewährte Skonti aus steuerfreien innergemeinschaftlichen Lieferungen § 4 Nr. 1b UStG
other
-
+
-
+
4745
Gewährte Skonti aus im Inland steuerpflichtigen EG-Lieferungen
other
-
+
-
+
4746
Gewährte Skonti aus im Inland steuerpflichtigen EG-Lieferungen 7 % USt
other
-
+
-
+
4748
Gewährte Skonti aus im Inland steuerpflichtigen EG-Lieferungen 19 % USt
other
-
+
-
+
4749
Gewährte Skonti aus im Inland steuerpflichtigen EG-Lieferungen 16 % USt
other
-
+
-
+
4750
Gewährte Boni 7 % USt
other
-
+
-
+
4760
Gewährte Boni 19 % USt
other
-
+
-
+
4762
Gewährte Boni 16 % USt
other
-
+
-
+
4769
Gewährte Boni
other
-
+
-
+
4770
Gewährte Rabatte
other
-
+
-
+
4780
Gewährte Rabatte 7 % USt
other
-
+
-
+
4790
Gewährte Rabatte 19 % USt
other
-
+
-
+
4792
Gewährte Rabatte 16 % USt
other
-
+
-
+
K4GVE3
Erhöhung oder Verminderung des Bestands an fertigen und unfertige Erzeugnissen
@@ -8466,7 +8466,7 @@
view
-
+
K4GVE31
Erhöhung des Bestands an fertigen und unfertigen Erzeugnissen oder Verminderung des Bestands an fertigen und unfertigen Erzeugnissen
@@ -8474,34 +8474,34 @@
view
-
+
4800
Bestandsveränderungen - fertige Erzeugnisse
other
-
+
-
+
4810
Bestandsveränderungen - unfertige Erzeugnisse
other
-
+
-
+
4815
Bestandsveränderungen - unfertige Leistungen
other
-
+
-
+
K4GVE32
Erhöhung des Bestands in Ausführung befindlicher Bauafträge oder Verminderung des Bestands in Ausführung befindlicher Bauaufträge
@@ -8509,16 +8509,16 @@
view
-
+
4816
Bestandsveränderungen in Ausführung befindliche Bauaufträge
other
-
+
-
+
K4GVE33
Erhöhung des Bestands in Arbeit befindlicher Aufträge oder Verminderung des Bestands in Arbeit befindlicher Aufträge
@@ -8526,16 +8526,16 @@
view
-
+
4818
Bestandsveränderungen in Arbeit befindlicher Aufträge
other
-
+
-
+
K4GVE4
Andere aktivierte Eigenleistungen
@@ -8543,7 +8543,7 @@
view
-
+
K4GVE41
Andere aktivierte Eigenleistungen
@@ -8551,16 +8551,16 @@
view
-
+
4820
Andere aktivierte Eigenleistungen
other
-
+
-
+
K4GVE5
Sonstige betriebliche Erträge
@@ -8568,7 +8568,7 @@
view
-
+
K4GVE51
Sonstige betriebliche Erträge
@@ -8576,664 +8576,664 @@
view
-
+
4830
Sonstige betriebliche Erträge
other
-
+
-
+
4834
Sonstige Erträge betrieblich und regelmäßig 16% USt
other
-
+
-
+
4835
Sonstige Erträge betrieblich und regelmäßig
other
-
+
-
+
4836
Sonstige Erträge betrieblich und regelmäßig 19% USt
other
-
+
-
+
4837
Sonstige Erträge betriebsfremd und regelmäßig
other
-
+
-
+
4839
Sonstige Erträge unregelmßig
other
-
+
-
+
4840
Erträge aus Kursdifferenzen
other
-
+
-
+
4843
Erträge aus Bewertung Finanzmittelfonds
other
-
+
-
+
4844
Erlöse aus Verkäufen Sachanlagevermögen steuerfrei § 4 Nr. 1a UStG (bei Buchgewinn)
other
-
+
-
+
4845
Erlöse aus Verkäufen Sachanlagevermögen 19% USt (bei Buchgewinn)
other
-
+
-
+
4846
Erlöse aus Verkäufen Sachanlagevermögen 16% USt (bei Buchgewinn)
other
-
+
-
+
4848
Erlöse aus Verkäufen Sachanlagevermögen steuerfrei § 4 Nr. 1b UStG (bei Buchgewinn)
other
-
+
-
+
4849
Erlöse aus Verkäufen Sachanlagevermögen (bei Buchgewinn)
other
-
+
-
+
4850
Erlöse aus Verkauf immaterieller Vermögensgegenstände (bei Buchgewinn)
other
-
+
-
+
4851
Erlöse aus Verkäufen Finanzanlagen (bei Buchgewinn)
other
-
+
-
+
4852
Erlöse aus Verkäufen Finanzanlagen 100% / 50% steuerfrei (inlandische Kap.Ges.)(bei Buchgewinn)
other
-
+
-
+
4855
Anlagenabgänge Sachanlagen (Restbuchwert bei Buchgewinn)
other
-
+
-
+
4856
Anlagenabgänge immaterielle Vermögensgegenstände (Restbuchwert bei Buchgewinn)
other
-
+
-
+
4857
Anlagenabgänge Finanzanlagen (Restbuchwert bei Buchgewinn)
other
-
+
-
+
4858
Anlagenabgänge Finanzanlagen 100% / 50% steuerfrei (inländische Kap. Ges.)(Restbuchwert bei Buchgewinn)
other
-
+
-
+
4860
Grundstückserträge
other
-
+
-
+
4865
Erlöse aus Verkauen von Wirtschaftsgütern des Umlaufvermögens 19% USt für § 4 Abs. 3 Satz 4 EStG
other
-
+
-
+
4866
Erlöse aus Verkauen von Wirtschaftsgütern des Umlaufvermögens- umsatzsteuerfrei § 4 Nr. 8 ff UStG i. V. m. § 4 Abs. 3 Satz 4 EStG
other
-
+
-
+
4867
Erl. a. Verk. v. Wirtschaftsg. d. Umlaufv.- umsatzsteuerf. § 4 Nr. 8 ff UStG i. V. m. § 4 Abs. 3 Satz 4 EStG- 100%/50% steuerf.(inlandische Kap. Ges.)
other
-
+
-
+
4869
Erlöse aus Verkäufen von Wirtschaftsgütern des Umlaufvermögens nach § 4 Abs. 3 Satz 4 EStG
other
-
+
-
+
4871
Nicht realisierbare Waehrungsdifferenzen
other
-
+
-
+
4872
Realisierte Waehrungsdifferenzen
other
-
+
-
+
4873
Produkt Rechnung Preisdifferenz
other
-
+
-
+
4874
Realisierte Waehrungsdifferenzen
other
-
+
-
+
4875
Ertraege a. Waehrungsumstellung auf Euro
other
-
+
-
+
4877
Bank Waehrungsverlust (Konto)
other
-
+
-
+
4878
Waehrungsdifferenz zum Kontenausgleich
other
-
+
-
+
4879
Nicht realisierbare Waehrungsdifferenzen
other
-
+
-
+
4881
Bank Bewertungsertrag
other
-
+
-
+
4882
Rundungsdifferenzen
other
-
+
-
+
4883
Kassendifferenzen
other
-
+
-
+
4900
Erträge aus dem Abgang von Gegenständen des Anlagevermögens
other
-
+
-
+
4901
Erträge aus der Veräußerung vo Anteilen an Kapitalgesellschaften 100% / 50% steuerfrei (inlandische Kap. Ges.)
other
-
+
-
+
4905
Erträge aus dem abgang von Gegenständen des Umlaufvermögens außer Vorräte
other
-
+
-
+
4906
Erträge aus dem abgang von Gegenständen des Umlaufvermögens (außer Vorräte) 100% / 50%steuerfrei (inlandische Kap.Ges.)
other
-
+
-
+
4910
Erträge aus Zuschreibungen des Sachanlagevermögens
other
-
+
-
+
4911
Erträge aus Zuschreibungen des immateriellen Anlagevermögens
other
-
+
-
+
4912
Erträge aus Zuschreibungen des Finanzanlagevermögens
other
-
+
-
+
4913
Erträge aus Zuschreibungen des Finanzanlagevermögens 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
4914
Erträge aus Zuschreibungen des anderen Anlagevermögens 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
4915
Erträge aus Zuschreibungen des Umlaufvermögens außer Vorräten
other
-
+
-
+
4916
Erträge aus Zuschreibungen des Umlaufvermögens 100% / 50% steuerfrei (inlandische Kap. Ges.)
other
-
+
-
+
4920
Erträge aus der Herabsetzung der Pauschalwertberichtigung zu Forderungen
other
-
+
-
+
4923
Erträge aus der Herabsetzung der Einzelwertberichtigung zu Forderungen
other
-
+
-
+
4925
Erträge aus abgeschriebenen Forderungen
other
-
+
-
+
4930
Erträge aus der Auflösung von Rückstellungen
other
-
+
-
+
4932
Erträge aus der steuerlich niedrigeren Bewertung von Rückstellungen
other
-
+
-
+
4933
Erträge aus der steuerlich niedrigeren Bewertung von Verbindlichkeiten
other
-
+
-
+
4934
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil (Existenzgründerrücklage)
other
-
+
-
+
4935
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil (steuerfreie Rücklage)
other
-
+
-
+
4936
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil (Ansparabschreibungen)
other
-
+
-
+
4937
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil (Sonderabschreibungen)
other
-
+
-
+
4938
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil (aus der Währungsumstellung auf den Euro)
other
-
+
-
+
4939
Erträge aus der Auflösung von Sonderposten mit Rücklageanteil nach § 52 Abs. 16 EStG
other
-
+
-
+
4940
Verrechnete sonstige Sachbezüge (keine Waren)
other
-
+
-
+
4941
Sachbezüge 7% USt (Waren)
other
-
+
-
+
4944
Sachbezüge 16% USt (Waren)
other
-
+
-
+
4945
Sachbezüge 19% USt (Waren)
other
-
+
-
+
4946
Verrechnete sonstige Sachbezüge
other
-
+
-
+
4947
Verrechnete sonstige Sachbezüge 19 % USt ( z.B. Kfz-Gestellung)
other
-
+
-
+
4948
Verrechnete sonstige Sachbezüge 16 % USt ( z.B. Kfz-Gestellung)
other
-
+
-
+
4949
Verrechnete sonstige Sachbezüge ohne Umsatzsteuer
other
-
+
-
+
4960
Periodenfremde Erträge (soweit nicht außerordentlich)
other
-
+
-
+
4970
Versicherungsentschädigungen
other
-
+
-
+
4975
Investitionszuschüsse (steuerpflichtig)
other
-
+
-
+
4980
Investitionszulagen (steuerfrei)
other
-
+
-
+
4981
steuerfreie Erträge aus der Auflösung von Sonderposten mit Rücklageanteil
other
-
+
-
+
4982
Sonstige steuerfreie Betriebseinnahmen
other
-
+
-
+
K5GVA1
Material- und Stoffverbrauch
@@ -9241,7 +9241,7 @@
view
-
+
K5GVA11
Aufwendungen für Roh- Hilfs- und Betriebsstoffe und für bezogene Waren
@@ -9249,16 +9249,16 @@
view
-
+
5000
Aufwendungen für Roh- Hilfs- und Betriebsstoffe und für bezogene Waren
other
-
+
-
+
K5GVA2
Materialaufwand
@@ -9266,7 +9266,7 @@
view
-
+
K5GVA21
Aufwendungen für Roh- Hilfs- und Betriebsstoffe und für bezogene Waren
@@ -9274,547 +9274,547 @@
view
-
+
5100
Einkauf von Roh- Hilfs- und Betriebsstoffen
other
-
+
-
+
5190
Energiestoffe (Fertigung)
other
-
+
-
+
5200
Wareneingang
other
-
+
-
+
5300
Wareneingang 7 % Vorsteuer
other
-
+
-
+
5340
Wareneingang 16 % Vorsteuer
other
-
+
-
+
5400
Wareneingang 19 % Vorsteuer
other
-
+
-
+
5401
* Produkt Ausgaben
other
-
+
-
+
5402
* Produkt Vertriebsausgaben
other
-
+
-
+
5403
* Konto Kasse Aufwand
other
-
+
-
+
5420
Innergemeinschaftlicher Erwerb 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5425
Innergemeinschaftlicher Erwerb 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5430
Innergemeinschaftlicher Erwerb ohne Vorsteuerabzug- 7% Umsatzsteuer
other
-
+
-
+
5433
Innergemeinschaftlicher Erwerb 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5435
Innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 19% Umsatzsteuer
other
-
+
-
+
5436
Innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 16% Umsatzsteuer
other
-
+
-
+
5440
Innergemeinschaftlicher Erwerb von Neufahrzeugen von Lieferanten ohne Umsatzsteuer-Identifikationsnummer 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5441
Innergemeinschaftlicher Erwerb von Neufahrzeugen von Lieferanten ohne Umsatzsteuer-Identifikationsnummer 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5500
Wareneingang 5 % Vorsteuer
other
-
+
-
+
5505
Wareneingang 5-5 % Vorsteuer
other
-
+
-
+
5530
Wareneingang 9 % Vorsteuer
other
-
+
-
+
5540
Wareneingang 10-7 % Vorsteuer
other
-
+
-
+
5550
Steuerfreier innergemeinschaftlicher Erwerb
other
-
+
-
+
5559
Steuerfreie Einfuhren
other
-
+
-
+
5560
Waren aus einem Umsatzsteuerlager- § 13a UStG 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5565
Waren aus einem Umsatzsteuerlager- § 13a UStG 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5566
Waren aus einem Umsatzsteuerlager- § 13a UStG 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5600
Nicht abziehbare Vorsteuer
other
-
+
-
+
5610
Nicht abziehbare Vorsteuer 7%
other
-
+
-
+
5650
Nicht abziehbare Vorsteuer 16%
other
-
+
-
+
5660
Nicht abziehbare Vorsteuer 19%
other
-
+
-
+
5700
Nachlässe
other
-
+
-
+
5710
Nachlässe 7 % Vorsteuer
other
-
+
-
+
5720
Nachlässe 19 % Vorsteuer
other
-
+
-
+
5722
Nachlässe 16 % Vorsteuer
other
-
+
-
+
5723
Nachlässe 15 % Vorsteuer
other
-
+
-
+
5724
Nachlässe aus innergemeinschaftlichem Erwerb 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5725
Nachlässe aus innergemeinschaftlichem Erwerb 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5726
Nachlässe aus innergemeinschaftlichem Erwerb 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5727
Nachlässe aus innergemeinschaftlichem Erwerb 15% Vorsteuer und 15% Umsatzsteuer
other
-
+
-
+
5730
Erhaltene Skonti
other
-
+
-
+
5731
Erhaltene Skonti 7% Vorsteuer
other
-
+
-
+
5735
Erhaltene Skonti 16% Vorsteuer
other
-
+
-
+
5736
Erhaltene Skonti 19% Vorsteuer
other
-
+
-
+
5745
Erhaltene Skonti aus steuerpflichtigem innergemeinschaftlichem Erwerb
other
-
+
-
+
5746
Erhaltene Skonti aus steuerpflichtigem innergemeinschaftlichem Erwerb 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5748
Erhaltene Skonti aus steuerpflichtigem innergemeinschaftlichem Erwerb 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5749
Erhaltene Skonti aus steuerpflichtigem innergemeinschaftlichem Erwerb 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5750
Erhaltene Boni 7% Vorsteuer
other
-
+
-
+
5760
Erhaltene Boni 19% Vorsteuer
other
-
+
-
+
5764
Erhaltene Boni 16% Vorsteuer
other
-
+
-
+
5769
Erhaltene Boni
other
-
+
-
+
5770
Erhaltene Rabatte
other
-
+
-
+
5780
Erhaltene Rabatte 7% Vorsteuer
other
-
+
-
+
5790
Erhaltene Rabatte 19% Vorsteuer
other
-
+
-
+
5794
Erhaltene Rabatte 16% Vorsteuer
other
-
+
-
+
5800
Bezugsnebenkosten
other
-
+
-
+
5820
Leergut
other
-
+
-
+
5840
Zölle und Einfuhrabgaben
other
-
+
-
+
5860
Verrechnete Stoffkosten (Gegenkonto 5000-99)
other
-
+
-
+
5880
Bestandsveränderungen Roh- Hilfs- und Betriebsstoffe/Waren
other
-
+
-
+
K5GVA3
Aufwendungen für bezogene Leistungen
@@ -9822,7 +9822,7 @@
view
-
+
K5GVA31
Aufwendungen für bezogene Leistungen
@@ -9830,16 +9830,16 @@
view
-
+
5900
Fremdleistungen
other
-
+
-
+
K5GVA4
Umsätze- für die als Leistungsempfänger die Steuer nach § 13b Abs. 2 UStG geschuldet wird
@@ -9847,7 +9847,7 @@
view
-
+
K5GVA41
Aufwendungen für bezogene Leistungen
@@ -9855,151 +9855,151 @@
view
-
+
5910
Bauleistungen eines im Inland ansässigen Unternehmers 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5915
Leistungen eines im Ausland ansässigen Unternehmers 7% Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5920
Bauleistungen eines im Inland ansässigen Unternehmers 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5922
Bauleistungen eines im Inland ansässigen Unternehmers 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5925
Leistungen eines im Ausland ansässigen Unternehmers 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5927
Leistungen eines im Ausland ansässigen Unternehmers 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5930
Bauleistungen eines im Inland ansässigen Unternehmers ohne Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5935
Leistungen eines im Ausland ansässigen Unternehmers ohne Vorsteuer und 7% Umsatzsteuer
other
-
+
-
+
5940
Bauleistungen eines im Inland ansässigen Unternehmers ohne Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5942
Bauleistungen eines im Inland ansässigen Unternehmers ohne Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5945
Leistungen eines im Ausland ansässigen Unternehmers ohne Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5947
Leistungen eines im Ausland ansässigen Unternehmers ohne Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5950
Erhaltene Skonti aus Leistungen- für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird
other
-
+
-
+
5951
Erhaltene Skonti aus Leistungen- für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird 19% Vorsteuer und 19% Umsatzsteuer
other
-
+
-
+
5952
Erhaltene Skonti aus Leistungen- für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird 16% Vorsteuer und 16% Umsatzsteuer
other
-
+
-
+
5953
Erhaltene Skonti aus Leistungen- für die als Leistungsempfänger die Steuer nach § 13b UStG geschuldet wird ohne Vorsteuer aber mit Umsatzsteuer
other
-
+
-
+
K6GVA1
Personalaufwand
@@ -10007,7 +10007,7 @@
view
-
+
K6GVA11
Löhne und Gehälter
@@ -10015,160 +10015,160 @@
view
-
+
6000
Löhne und Gehälter
other
-
+
-
+
6010
Löhne
other
-
+
-
+
6020
Gehälter
other
-
+
-
+
6024
Geschäftsführergehälter der GmbH-Gesellschafter
other
-
+
-
+
6026
Tantiemen
other
-
+
-
+
6027
Geschäftsführergehälter
other
-
+
-
+
6028
Vergütungen an angestellte Mitunternehmer § 15 EStG
other
-
+
-
+
6030
Aushilfslöhne
other
-
+
-
+
6040
Pauschale Steuer für Aushilfen
other
-
+
-
+
6045
Bedienungsgelder
other
-
+
-
+
6050
Ehegattengehalt
other
-
+
-
+
6060
Freiwillige soziale Aufwendungen- lohnsteuerpflichtig
other
-
+
-
+
6069
Pauschale Steuer auf sonstige Bezüge (z.B. Fahrkosten Zuschüsse)
other
-
+
-
+
6070
Krankengeldzuschüsse
other
-
+
-
+
6075
Zuschüsse der Agenturen für Arbeit (Haben)
other
-
+
-
+
6080
Vermögenswirksame Leistungen
other
-
+
-
+
6090
Fahrkostenerstattung Wohnung/Arbeitsstätte
other
-
+
-
+
K6GVA12
Soziale Abgaben und Aufwendungen für Altersversorgung und für Unterstützung
@@ -10176,106 +10176,106 @@
view
-
+
6100
Soziale Abgaben und Aufwendungen für Altersversorgung und für Unterstützung
view
-
+
-
+
6110
Gesetzliche soziale Aufwendungen
other
-
+
-
+
6118
Gesetzliche soziale Aufwendungen für Mitunternehmer § 15 EStG
other
-
+
-
+
6120
Beiträge zur Berufsgenossenschaft
other
-
+
-
+
6130
Freiwillige soziale Aufwendungen- lohnsteuerfrei
other
-
+
-
+
6140
Aufwendungen für Altersversorgung
other
-
+
-
+
6147
Pauschale Steuer auf sonstige Bezüge (z.B. Direktversicherungen)
other
-
+
-
+
6148
Aufwendungen für Altersversorgung für Mitunternehmer § 15 EStG
other
-
+
-
+
6150
Versorgungskassen
other
-
+
-
+
6160
Aufwendungen für Unterstützung
other
-
+
-
+
6170
Sonstige soziale Abgaben
other
-
+
-
+
K6GVA2
Abschreibungen auf immaterielle Vermögensgegenstände des Anlagevermögens und Sachanlagen sowie auf aktivierte Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
@@ -10283,7 +10283,7 @@
view
-
+
K6GVA21
Abschreibungen auf immaterielle Vermögensgegenstände des Anlagevermögens und Sachanlagen sowie auf aktivierte Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
@@ -10291,187 +10291,187 @@
view
-
+
6200
Abschreibungen auf immaterielle Vermögensgegenstände
other
-
+
-
+
6205
Abschreibungen auf den Geschäfts- oder Firmenwert
other
-
+
-
+
6210
Außerplanmäßige Abschreibungen auf immaterielle Vermögensgegenstände
other
-
+
-
+
6220
Abschreibungen auf Sachanlagen (ohne AfA auf Kfz und Gebäude)
other
-
+
-
+
6221
Abschreibungen auf Gebäude
other
-
+
-
+
6222
Abschreibungen auf Kfz
other
-
+
-
+
6223
Abschreibungen auf Gebäudeteil des häuslischen Arbeitszimmers
other
-
+
-
+
6230
Außerplanmäßige Abschreibungen auf Sachanlagen
other
-
+
-
+
6231
Absetzung für Außergewöhnliche technische und wirtschaftliche Abnutzung der Gebäude
other
-
+
-
+
6232
Absetzung für Außergewöhnliche technische und wirtschaftliche Abnutzung des Kfz
other
-
+
-
+
6233
Absetzung für Außergewöhnliche technische und wirtschaftliche Abnutzung sonstiger Wirtschaftsgüter
other
-
+
-
+
6240
Abschreibungen auf Sachanlagen auf Grund steuerlicher Sondervorschriften
other
-
+
-
+
6241
Sonderabschreibungen nach § 7g Abs. 1 u. 2 EStG (ohne Kfz)
other
-
+
-
+
6242
Sonderabschreibungen nach § 7g Abs. 1 u. 2 EStG (für Kfz)
other
-
+
-
+
6250
Kaufleasing
other
-
+
-
+
6260
Sofortabschreibungen geringwertiger Wirtschaftsgüter
other
-
+
-
+
6262
Abschreibungen auf aktivierte- geringwertige Wirtschaftsgüter
other
-
+
-
+
6266
Außerplanmaßige Abschreibungen auf aktivierte- geringwertige Wirtschaftsgüter
other
-
+
-
+
6268
Abschreibungen auf Aufwendungen für die Ingangsetzung und Erweiterung des Geschäftsbetriebs
other
-
+
-
+
6269
Abschreibungen auf Aufwendungen für die Währungsumstellung auf den Euro
other
-
+
-
+
K6GVA3
Abschreibungen a. Vermögensgeg. d. Umlaufvermögens- soweit diese die in der Kapitalgesellschaft üblichen Abschreibungen überschreiten
@@ -10479,7 +10479,7 @@
view
-
+
K6GVA31
Abschreibungen a. Vermögensgeg. d. Umlaufvermögens- soweit diese die in der Kapitalgesellschaft üblichen Abschreibungen überschreiten
@@ -10487,79 +10487,79 @@
view
-
+
6270
Abschreibungen auf Vermögensgegenstände des Umlaufvermögens (soweit unüblich hoch)
other
-
+
-
+
6272
Abschreibungen auf Umlaufvermögen- steuerrechtlich bedingt (soweit unüblich hoch)
other
-
+
-
+
6275
Vorwegnahme künftiger Wertschwankungen im Umlaufvermögen (soweit unüblich hoch)
other
-
+
-
+
6280
Forderungsverluste (soweit unüblich hoch)
other
-
+
-
+
6281
Forderungsverluste 7% USt (soweit unüblich hoch)
other
-
+
-
+
6285
Forderungsverluste 16% USt (soweit unüblich hoch)
other
-
+
-
+
6286
Forderungsverluste 19% USt (soweit unüblich hoch)
other
-
+
-
+
6287
Forderungsverluste 15% USt (soweit unüblich hoch)
other
-
+
-
+
K6GVA4
Sonstige betriebliche Aufwendungen
@@ -10567,7 +10567,7 @@
view
-
+
K6GVA41
Sonstige betriebliche Aufwendungen
@@ -10575,1447 +10575,1447 @@
view
-
+
6300
Sonstige betriebliche Aufwendungen
other
-
+
-
+
6303
Fremdleistungen / Fremdarbeiten
other
-
+
-
+
6304
Sonstige Aufwendungen betrieblich und Regelmäßig
other
-
+
-
+
6305
Raumkosten
other
-
+
-
+
6310
Mietekosten
other
-
+
-
+
6313
Gewerbesteuerlich zu berücksichtigende Miete § 8 GewStG
other
-
+
-
+
6314
Vergütungen an Mitunternehmer für die mietweise überlassung ihrer Wirtschaftsgüter § 15 EStG
other
-
+
-
+
6315
Pacht
other
-
+
-
+
6318
Gewerbesteuerlich zu berücksichtigende Pacht § 8 GewStG
other
-
+
-
+
6319
Vergütungen an Mitunternehmer für die Pachtweise überlassung ihrer Wirtschaftsgüter § 15 EStG
other
-
+
-
+
6320
Heizung
other
-
+
-
+
6325
Gas- Strom- Wasser
other
-
+
-
+
6330
Reinigung
other
-
+
-
+
6335
Instandhaltung betrieblicher Räume
other
-
+
-
+
6340
Abgaben für betrieblich genutzten Grundbesitz
other
-
+
-
+
6345
Sonstige Raumkosten
other
-
+
-
+
6348
Aufwendungen für ein häusliches Arbeitszimmer (abziehbarer Anteil)
other
-
+
-
+
6349
Aufwendungen für ein häusliches Arbeitszimmer (nicht abziehbarer Anteil)
other
-
+
-
+
6350
Grundstückaufwendungen- betrieblich
other
-
+
-
+
6352
Grundstückaufwendungen- sonstige neutrale
other
-
+
-
+
6390
Zuwendungen- Spenden- steuerlich nicht abziehbar
other
-
+
-
+
6391
Zuwendungen- Spenden für wissenschaftliche und kulturelle Zwecke
other
-
+
-
+
6392
Zuwendungen- Spenden für mildtätige Zwecke
other
-
+
-
+
6393
Zuwendungen- Spenden für kirchliche- religiöse und gemeinnützige Zwecke
other
-
+
-
+
6394
Zuwendungen- Spenden an politische Parteien
other
-
+
-
+
6395
Zuwendungen- Spenden an Stiftungen für gemeinnützige Zwecke i. S. d. § 52 Abs. 2 Nr. 1-3 AO
other
-
+
-
+
6396
Zuwendungen- Spenden an Stiftungen für gemeinnützige Zwecke i. S. d. § 52 Abs. 2 Nr. 4 AO
other
-
+
-
+
6397
Zuwendungen- Spenden an Stiftungen für Kirchliche- religiöse und gemeinnützige Zwecke
other
-
+
-
+
6398
Zuwendungen- Spenden an Stiftungen für wissenschaftliche- mitdtätige- kulturelle Zwecke
other
-
+
-
+
6400
Versicherungen
other
-
+
-
+
6405
Versicherungen für Gebäude
other
-
+
-
+
6410
Netto-Prämie für Rückdeckung künftiger Versorgungsleistungen
other
-
+
-
+
6420
Beiträge
other
-
+
-
+
6430
Sonstige Abgaben
other
-
+
-
+
6436
Steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder
other
-
+
-
+
6437
steuerlich nicht abzugsfähige Verspätungszuschläge und Zwangsgelder
other
-
+
-
+
6440
Ausgleichsabgabe i. S. d. Schwerbehindertengesetzes
other
-
+
-
+
6450
Reparaturen und Instandhaltung von Bauten
other
-
+
-
+
6460
Reparaturen und Instandhaltung von technischen Anlagen und Maschinen
other
-
+
-
+
6470
Reparaturen und Instandhaltung von Betriebs- und Geschäftsausstattung
other
-
+
-
+
6485
Reparaturen und Instandhaltung von anderen Anlagen
other
-
+
-
+
6490
Sonstige Reparaturen und Instandhaltung
other
-
+
-
+
6495
Wartungskosten für Hard- und Software
other
-
+
-
+
6498
Mietleasing
other
-
+
-
+
6499
Gewerbesteuerlich zu berücksichtigendes Mietleasing § 8 GewStG
other
-
+
-
+
6500
Fahrzeugkosten
other
-
+
-
+
6520
Kfz-Versicherungen
other
-
+
-
+
6530
Laufende Kfz-Betriebskosten
other
-
+
-
+
6540
kfz-Reparaturen
other
-
+
-
+
6550
Garagenmiete
other
-
+
-
+
6560
Leasingfahrzeugkosten
other
-
+
-
+
6570
Sonstige Kfz-kosten
other
-
+
-
+
6580
Mautgebühren
other
-
+
-
+
6590
Kfz-Kosten für betrieblich genutzte zum Privatvermögen gehörende Kraftfahrzeuge
other
-
+
-
+
6595
Fremdfahrzeugkosten
other
-
+
-
+
6600
Werbekosten
other
-
+
-
+
6610
Geschenke abzugsfähig
other
-
+
-
+
6620
Geschenke nicht abzugsfähig
other
-
+
-
+
6625
Geschenke ausschließlich betrieblich genutzt
other
-
+
-
+
6630
Repräsentationskosten
other
-
+
-
+
6640
Bewirtungskosten
other
-
+
-
+
6641
Sonstige eingeschränkt abziehbare Betriebsausgaben (abziehbarer Anteil)
other
-
+
-
+
6642
Sonstige eingeschränkt abziehbare Betriebsausgaben (nicht abziehbarer Anteil)
other
-
+
-
+
6643
Aufmerksamkeiten
other
-
+
-
+
6644
Nicht Abzugsfähige Bewirtungskosten
other
-
+
-
+
6645
Nicht Abzugsfähige Betriebsausgaben aus Werbe- und Repräsentationskosten (nicht abziehbarer Anteil)
other
-
+
-
+
6650
Reisekosten Arbeitnehmer
other
-
+
-
+
6652
Reisekosten Arbeitnehmer (nicht abziehbarer Anteil)
other
-
+
-
+
6660
Reisekosten Arbeitnehmer übernachtungsaufwand
other
-
+
-
+
6663
Reisekosten Arbeitnehmer Fahrkosten
other
-
+
-
+
6664
Reisekosten Arbeitnehmer Verpflegungsmehraufwand
other
-
+
-
+
6668
Kilometergelderstattung Arbeitnehmer
other
-
+
-
+
6670
Reisekosten Unternehmer
other
-
+
-
+
6672
Reisekosten Unternehmer (nicht abziehbarer anteil)
other
-
+
-
+
6673
Reisekosten Unternehmer Fahrkosten
other
-
+
-
+
6674
Reisekosten Unternehmer Verpflegungsmehraufwand
other
-
+
-
+
6680
Reisekosten Unternehmer übernachtungsaufwand
other
-
+
-
+
6688
Fahrten zwischen Wohnung und Arbeitsstätte (abziehbarer Anteil)
other
-
+
-
+
6689
Fahrten zwischen Wohnung und Arbeitsstätte (nicht abziehbarer Anteil)
other
-
+
-
+
6690
Fahrten zwischen Wohnung und Arbeitsstätte (Haben)
other
-
+
-
+
6700
Kosten der Warenabgabe
other
-
+
-
+
6710
Verpackungsmaterial
other
-
+
-
+
6740
Ausgangsfrachten
other
-
+
-
+
6760
Transportversicherungen
other
-
+
-
+
6770
Verkaufsprovisionen
other
-
+
-
+
6780
Fremdarbeiten (Vertrieb)
other
-
+
-
+
6790
Aufwand für Gewährleistung
other
-
+
-
+
6800
Porto
other
-
+
-
+
6805
Telefon
other
-
+
-
+
6810
Telefax und Internetkosten
other
-
+
-
+
6815
Bürobedarf
other
-
+
-
+
6820
Zeitschriften und Bücher
other
-
+
-
+
6821
Fortbildungskosten
other
-
+
-
+
6822
Freiwillige Sozialleistungen
other
-
+
-
+
6823
Vergütungen an Mitunternehmer § 15 EStG
other
-
+
-
+
6824
Haftungsvergütung an Mitunternehmer § 15 EStG
other
-
+
-
+
6825
Rechts- und Beratungskosten
other
-
+
-
+
6827
Abschluss- und Prüfungskosten
other
-
+
-
+
6830
Buchführungskosten
other
-
+
-
+
6835
Mieten für Einrichtungen
other
-
+
-
+
6839
Gewerbesteuerlich zu berücksichtigende Miete für Einrichtungen § 8 GewStG
other
-
+
-
+
6840
Mietleasing
other
-
+
-
+
6844
Gewerbesteuerlich zu berücksichtigendes Mietleasing § 8 GewStG
other
-
+
-
+
6845
Werkzeuge und Kleingeräte
other
-
+
-
+
6850
Sonstiger Betriebsbedarf
other
-
+
-
+
6855
Nebenkosten des Geldverkehrs
other
-
+
-
+
6856
Aufwendungen aus Anteilen an Kapitalgesellschaften 100% / 50% nicht abzugsfähig (inlandische Kap. Ges.)
other
-
+
-
+
6857
Aufwendungen aus der Veräußerung von Anteilen an Kapitalgesellschaften 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
6859
Aufwendungen für Abraum- und Abfallbeseitigung
other
-
+
-
+
6860
Nicht abziehbare Vorsteuer
other
-
+
-
+
6865
Nicht abziehbare Vorsteuer 7%
other
-
+
-
+
6870
Nicht abziehbare Vorsteuer 16%
other
-
+
-
+
6871
Nicht abziehbare Vorsteuer 19%
other
-
+
-
+
6875
Nicht abziehbare Hälfte der Aufsichtsratsvergütungen
other
-
+
-
+
6876
Abziehbare Aufsichtsratsvergütungen
other
-
+
-
+
6880
Aufwendungen aus Kursdifferenzen
other
-
+
-
+
6883
Aufwendungen aus Bewertung Finanzmittelfonds
other
-
+
-
+
6884
Erlöse aus Verkäufen Sachanlagevermögen steuerfrei § 4 Nr. 1a UStG (bei Buchverlust)
other
-
+
-
+
6885
Erlöse aus Verkäufen Sachanlagevermögen 19% USt (bei Buchverlust)
other
-
+
-
+
6886
Erlöse aus Verkäufen Sachanlagevermögen 16% USt (bei Buchverlust)
other
-
+
-
+
6888
Erlöse aus Verkäufen Sachanlagevermögen steuerfrei § 4 Nr. 1b UStG (bei Buchverlust)
other
-
+
-
+
6889
Erlöse aus Verkäufen Sachanlagevermögen (bei Buchverlust)
other
-
+
-
+
6890
Erlöse aus Verkäufen immaterieller Vermögensgegenstände (bei Buchverlust)
other
-
+
-
+
6891
Erlöse aus Verkäufen Finanzanlagen (bei Buchverlust)
other
-
+
-
+
6892
Erlöse aus Verkäufen Finanzanlagen 100% / 50% steuerfrei (inlandische Kap.Ges.)(bei Buchverlust)
other
-
+
-
+
6895
Anlagenabgänge Sachanlagen (Restbuchwert bei Buchverlust)
other
-
+
-
+
6896
Anlagenabgänge immaterielle Vermögensgegenstände (Restbuchwert bei Buchverlust)
other
-
+
-
+
6897
Anlagenabgänge Finanzanlagen (Restbuchwert bei Buchverlust)
other
-
+
-
+
6898
Anlagenabgänge Finanzanlagen 100% / 50% steuerfrei (inländische Kap. Ges.)(Restbuchwert bei Buchverlust)
other
-
+
-
+
6900
Verluste aus dem Abgang von Gegenständen des Anlagevermögens
other
-
+
-
+
6903
Verluste aus der Veräußerung von Anteilen an Kapitalgesellschaften 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
6905
Verluste aus dem Abgang von Gegenständen des Umlaufvermögens außer Vorräte
other
-
+
-
+
6906
Verluste aus dem Abgang von Gegenständen des Umlaufvermögens (außer Vorräte) 100% / 50% nicht anzugsfähig (inlandische Kap. Ges.)
other
-
+
-
+
6907
Abgang von Wirtschaftsgütern des Umlaufvermögens nach § 4 Abs. 3 Satz 4 EStG
other
-
+
-
+
6908
Abgang von Wirtschaftsgütern des Umlaufvermögens 100% / 50% nicht abzugsfähig (inlandische Kap. Ges.) nach § 4 Abs. 3 Satz 4 EStG
other
-
+
-
+
6910
Abschreibung auf Umlaufvermögen außer Vorräte und Wertpapieren des UV (übliche Höhe)
other
-
+
-
+
6912
Abschreibung auf Umlaufvermögen außer Vorräte und Wertpapieren des UV- steuerlich bedingt (übliche Höhe)
other
-
+
-
+
6915
Vorwegnahme künftiger Wertschwankungen im Umlaufvermögen außer Vorräte und Wertpapiere
other
-
+
-
+
6916
Aufwendungen aus der Zuschreibung von steuertlich niedriger bewerteten Verbindlichkeiten
other
-
+
-
+
6917
Aufwendungen aus der Zuschreibung von steuertlich niedriger bewerteten Rückstellungen
other
-
+
-
+
6920
Einstellungen in die Pauschalwertberichtigung zu Forderungen
other
-
+
-
+
6923
Einstellungen in die Einzelwertberichtigung zu Forderungen
other
-
+
-
+
6925
Einstellungen in Sonderposten mit Rücklageanteil (Steuerfreie Rücklagen)
other
-
+
-
+
6926
Einstellungen in Sonderposten mit Rücklageanteil (Ansparabschreibungen)
other
-
+
-
+
6927
Einstellungen in Sonderposten mit Rücklageanteil (Sonderabschreibungen)
other
-
+
-
+
6928
Einstellungen in Sonderposten mit Rücklageanteil (Existenzgründerrücklage)
other
-
+
-
+
6929
Einstellungen in Sonderposten mit Rücklageanteil (§ 52 Abs. 16 EStG)
other
-
+
-
+
6930
Forderungsverluste (übliche Höhe)
other
-
+
-
+
6931
Forderungsverluste 7 % USt (übliche Höhe)
other
-
+
-
+
6932
Forderungsverluste aus steuerfreien EG-Lieferungen (übliche Höhe)
other
-
+
-
+
6933
Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 7% USt (übliche Höhe)
other
-
+
-
+
6934
Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 16% USt (übliche Höhe)
other
-
+
-
+
6935
Forderungsverluste 16% USt (übliche Höhe)
other
-
+
-
+
6936
Forderungsverluste 19% USt (übliche Höhe)
other
-
+
-
+
6937
Forderungsverluste 15% USt (übliche Höhe)
other
-
+
-
+
6938
Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 19% USt (übliche Höhe)
other
-
+
-
+
6939
Forderungsverluste aus im Inland steuerpflichtigen EG-Lieferungen 15% USt (übliche Höhe)
other
-
+
-
+
6960
Periodenfremde Aufwendungen soweit nicht außerordentlich
other
-
+
-
+
6967
Sonstige Aufwendungen betrieblich und regelmäßig
other
-
+
-
+
6969
Sonstige Aufwendungen unregelmäßig
other
-
+
-
+
K6GVA5
Kalkulatorische Kosten
@@ -12023,7 +12023,7 @@
view
-
+
K6GVA51
Sonstige betriebliche Aufwendungen
@@ -12031,115 +12031,115 @@
view
-
+
6970
Kalkulatorischer Unternehmerlohn
other
-
+
-
+
6972
Kalkulatorische Miete/Pacht
other
-
+
-
+
6974
Kalkulatorische Zinsen
other
-
+
-
+
6976
Kalkulatorische Abschreibungen
other
-
+
-
+
6978
Kalkulatorische Wagnisse
other
-
+
-
+
6979
Kalkulatorischer Lohn für unentgeltliche Mitarbeiter
other
-
+
-
+
6980
Verrechneter kalkulatorischer Unternehmerlohn
other
-
+
-
+
6982
Verrechnete kalkulatorische Miete/Pacht
other
-
+
-
+
6984
Verrechnete kalkulatorische Zinsen
other
-
+
-
+
6986
Verrechnete kalkulatorische Abschreibungen
other
-
+
-
+
6988
Verrechnete kalkulatorische Wagnisse
other
-
+
-
+
6989
Verrechneter kalkulatorischer Lohn für unentgeltliche Mitarbeiter
other
-
+
-
+
K6GVA6
Kosten bei Anwendung des Umsatzkostenverfahrens
@@ -12147,7 +12147,7 @@
view
-
+
K6GVA61
Sonstige betriebliche Aufwendungen
@@ -12155,43 +12155,43 @@
view
-
+
6990
Herstellungskosten
other
-
+
-
+
6992
Verwaltungskosten
other
-
+
-
+
6994
Vertriebskosten
other
-
+
-
+
6999
Gegenkonto 6990-6998
other
-
+
-
+
K7GVE1
Erträge aus Beteiligungen
@@ -12199,7 +12199,7 @@
view
-
+
K7GVE11
Erträge aus Beteiligungen
@@ -12207,61 +12207,61 @@
view
-
+
7000
Erträge aus Beteiligungen
other
-
+
-
+
7005
Laufende Erträge aus Anteilen an Kapitalgesellschaften (Beteiligung) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7006
Laufende Erträge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7007
Gewinne aus Anteilen an nicht steuerbefreiten inländischen Kapitalgesellschaften § 9 Nr. 2a GewStG
other
-
+
-
+
7008
Gewinnanteile aus Mitunternehmerschaften § 9 GewStG
other
-
+
-
+
7009
Erträge aus Beteiligungen an verbundenen Unternehmen
other
-
+
-
+
K7GVE2
Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens
@@ -12269,7 +12269,7 @@
view
-
+
K7GVE21
Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens
@@ -12277,43 +12277,43 @@
view
-
+
7010
Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens
other
-
+
-
+
7014
Laufende Erträge aus Anteilen an Kapitalgesellschaften (Finanzanlagevermögen) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7015
Laufende Erträge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7019
Eträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens aus verbundenen Unternehmen
other
-
+
-
+
K7GVE3
Sonstige Zinsen und ähnliche Erträge
@@ -12321,7 +12321,7 @@
view
-
+
K7GVE31
Sonstige Zinsen und ähnliche Erträge
@@ -12329,124 +12329,124 @@
view
-
+
7100
Sonstige Zinsen und ähnliche Erträge
other
-
+
-
+
7102
Steuerfreie Aufzinsung des Körperschaftsteuerguthabens nach §37 KStG
other
-
+
-
+
7103
Laufende Erträge aus Anteilen an Kapitalgesellschaften (Umlaufvermögen) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7104
Laufende Erträge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inländische Kap. Ges.)
other
-
+
-
+
7105
Zinserträge § 233a AO
other
-
+
-
+
7106
Zinserträge § 233a AO Sonderfall anlage A KSt
other
-
+
-
+
7109
Sonstige Zinsen und ähnliche Erträge aus verbundenen Unternehmen
other
-
+
-
+
7110
Sonstige Zinserträge
other
-
+
-
+
7119
Sonstige Zinserträge aus verbundenen Unternehmen
other
-
+
-
+
7120
Zinsähnliche Erträge
other
-
+
-
+
7129
Zinsähnliche Erträge aus verbundenen Unternehmen
other
-
+
-
+
7130
Diskonterträge
other
-
+
-
+
7139
Diskonterträge aus verbundenen Unternehmen
other
-
+
-
+
K7GVE4
Erträge aus Verlustübernahme und auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabführungsvertrags erhaltene Gewinne
@@ -12454,7 +12454,7 @@
view
-
+
K7GVE41
Erträge aus Verlustübernahme
@@ -12462,16 +12462,16 @@
view
-
+
7190
Erträge aus Verlustübernahme
other
-
+
-
+
K7GVE42
Auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabführungsvertrags erhaltene
@@ -12479,25 +12479,25 @@
view
-
+
7192
Erhaltene Gewinne auf Grund einer Gewinngemeinschaft
other
-
+
-
+
7194
Erhaltene Gewinne auf Grund eines Gewinn- oder Teilgewinnabführungsvertrags
other
-
+
-
+
K7GVA1
Abschreibungen auf Finanzanlagen und auf Wertpapiere des Umlaufvermögens
@@ -12505,7 +12505,7 @@
view
-
+
K7GVA11
Abschreibungen auf Finanzanlagen und auf Wertpapiere des Umlaufvermögens
@@ -12513,79 +12513,79 @@
view
-
+
7200
Abschreibungen auf Finanzanlagen
other
-
+
-
+
7204
Abschreibungen auf Finanzanlagen 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
7208
Abschreibungen auf Grund von Verlustanteilen an Mitunternehmerschaften § 8 GewStG
other
-
+
-
+
7210
Abschreibungen auf Wertpapiere des Umlaufvermögens
other
-
+
-
+
7214
Abschreibungen auf Wertpapiere des Umlaufvermögens 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
7250
Abschreibungen auf Finanzanlagen auf Grund steuerlicher Sondervorschriften
other
-
+
-
+
7255
Abschreibungen auf Finanzanlagen auf Grund steuerlicher Sondervorschriften 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
7260
Vorwegnahme künftiger Wertschwankungen bei Wertpapieren des Umlaufvermögens
other
-
+
-
+
K7GVA2
Zinsen und ähnliche Aufwendungen
@@ -12593,7 +12593,7 @@
view
-
+
K7GVA21
Zinsen und ähnliche Aufwendungen
@@ -12601,205 +12601,205 @@
view
-
+
7300
Zinsen und ähnliche Aufwendungen
other
-
+
-
+
7303
Steuerlich abzugsfähige- andere Nebenleistungen zu steuern
other
-
+
-
+
7304
Steuerlich nicht abzugsfähige- andere Nebenleistungen zu steuern
other
-
+
-
+
7305
Zinsaufwendungen §§ 233a AO betriebliche Steuern
other
-
+
-
+
7306
Zinsaufwendungen §§ 233a bis 237 AO Personensteuern
other
-
+
-
+
7309
Zinsen und ähnliche Aufwendungen an verbundene Unternehmen
other
-
+
-
+
7310
Zinsaufwendungen für kurzfristige Verbindlichkeiten
other
-
+
-
+
7313
Nicht abzugsfähige Schuldzinsen gemäß § 4 Abs. 4a EStG (Hinzurechnungsbetrag)
other
-
+
-
+
7318
In Dauerschuldzinsen unqualifizierte Zinsen auf kurzfristige Verbindlichkeiten
other
-
+
-
+
7319
Zinsaufwendungen für kurzfristige Verbindlichkeiten an verbundene Unternehmen
other
-
+
-
+
7320
Zinsaufwendungen für langfristige Verbindlichkeiten
other
-
+
-
+
7325
Zinsaufwendungen für Gebäude- die zum Betriebsvermögen gehören
other
-
+
-
+
7326
Zinsen zur Finanzierung des Anlagevermögens
other
-
+
-
+
7327
Renten und dauernde Lasten aus Gründung/Erwerb §8 GewStG
other
-
+
-
+
7328
Zinsaufwendungen an Mitunternehmer für die Hingabe von Kapital § 15 EStG
other
-
+
-
+
7329
Zinsaufwendungen für langfristige Verbindlichkeiten an verbundene Unternehmen
other
-
+
-
+
7330
Zinsähnliche Aufwendungen
other
-
+
-
+
7339
Zinsähnliche Aufwendungen an verbundene Unternehmen
other
-
+
-
+
7340
Diskontaufwendungen
other
-
+
-
+
7349
Diskontaufwendungen an verbundene Unternehmen
other
-
+
-
+
7350
Zinsen und ähnliche Aufwendungen 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
7351
Zinsen und ähnliche Aufwendungen an verbundene Unternehmen 100% / 50% nicht abzugsfähig (inländische Kap. Ges.)
other
-
+
-
+
K7GVA3
Aufwendungen aus Verlustübernahme und auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabführungsvertrags abgeführte Gewinne
@@ -12807,7 +12807,7 @@
view
-
+
K7GVA31
Aufwendungen aus Verlustübernahme
@@ -12815,16 +12815,16 @@
view
-
+
7390
Aufwendungen aus Verlustübernahme
other
-
+
-
+
K7GVA32
Auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabführungsvertrags abgeführte Gewinne
@@ -12832,34 +12832,34 @@
view
-
+
7392
Abgeführte Gewinne auf Grund einer Gewinngemeinschaft
other
-
+
-
+
7394
Abgeführte Gewinne auf Grund eines Gewinn- oder Teilgewinnabführungsvertrags
other
-
+
-
+
7399
Abgeführte Gewinnanteile an stille Gesellschafter § 8 GewStG
other
-
+
-
+
K7GVE5
Außerordentliche Erträge
@@ -12867,7 +12867,7 @@
view
-
+
K7GVE51
Außerordentliche Erträge
@@ -12875,34 +12875,34 @@
view
-
+
7400
Außerordentliche Erträge
other
-
+
-
+
7401
Außerordentliche Erträge finanzwirksam
other
-
+
-
+
7450
Außerordentliche Erträge nicht finanzwirksam
other
-
+
-
+
K7GVA4
Außerordentliche Aufwendungen
@@ -12910,7 +12910,7 @@
view
-
+
K7GVA41
Außerordentliche Aufwendungen
@@ -12918,34 +12918,34 @@
view
-
+
7500
Außerordentliche Aufwendungen
other
-
+
-
+
7501
Außerordentliche Aufwendungen finanzwirksam
other
-
+
-
+
7550
Außerordentliche Aufwendungen nicht finanzwirksam
other
-
+
-
+
K7GVA5
Steuern vom Einkommen und Ertrag
@@ -12953,7 +12953,7 @@
view
-
+
K7GVA51
Steuern vom Einkommen und Ertrag
@@ -12961,169 +12961,169 @@
view
-
+
7600
Körperschaftssteuer
other
-
+
-
+
7603
Körperschaftssteuer für Vorjahr
other
-
+
-
+
7604
Körperschaftssteuererstattungen für Vorjahre
other
-
+
-
+
7605
Körperschaftssteuererstattung für Vorjahre nach §37 KStG
other
-
+
-
+
7607
Solidaritätszuschlagerstattungen für Vorjahre
other
-
+
-
+
7608
Solidaritätszuschlag
other
-
+
-
+
7609
Solidaritätszuschlag für Vorjahre
other
-
+
-
+
7610
Gewerbesteuer
other
-
+
-
+
7630
Kapitalertragsteuer 25%
other
-
+
-
+
7632
Kapitalertragsteuer 20%
other
-
+
-
+
7633
Anrechenbarer Solidaritätszuschlag auf Kapitalertragsteuer 25%
other
-
+
-
+
7634
Anrechenbarer Solidaritätszuschlag auf Kapitalertragsteuer 20%
other
-
+
-
+
7635
Zinsabschlagsteuer
other
-
+
-
+
7368
Anrechenbarer Solidaritätszuschlag auf Zinsabschlagsteuer
other
-
+
-
+
7639
Anzurechnende ausländische Quellensteuer
other
-
+
-
+
7640
Steuernachzahlungen Vorjahre für Steuern vom Einkommen und Ertrag
other
-
+
-
+
7642
Steuererstattungen Vorjahre für Steuern vom Einkommen und Ertrag
other
-
+
-
+
7644
Erträge aus der Auflösung von Rückstellungen für Steuern vom Einkommen und Ertrag
other
-
+
-
+
K7GVA6
Sonstige Steuern
@@ -13131,7 +13131,7 @@
view
-
+
K7GVA61
Sonstige Steuern
@@ -13139,79 +13139,79 @@
view
-
+
7650
Sonstige Steuern
other
-
+
-
+
7675
Verbrauchsteuer
other
-
+
-
+
7678
ökosteuer
other
-
+
-
+
7680
Grundsteuer
other
-
+
-
+
7685
Kfz-Steuer
other
-
+
-
+
7690
Steuernachzahkungen Vorjahre für sonstige Steuern
other
-
+
-
+
7692
Steuererstattungen Vorjahre für sonstige Steuern
other
-
+
-
+
7694
Erträge aus der Auflösung von Rückstellungen für sonstige Steuern
other
-
+
-
+
K7GVE6
Gewinnvortrag
@@ -13219,16 +13219,16 @@
view
-
+
7700
Gewinnvortrag nach Verwendung
other
-
+
-
+
K7GVA7
Verlustvortrag
@@ -13236,16 +13236,16 @@
view
-
+
7720
Verlustvortrag nach Verwendung
other
-
+
-
+
K7GVE7
Entnahme aus der Kapitalrücklage
@@ -13253,16 +13253,16 @@
view
-
+
7730
Entnahme aus der Kapitalrücklage
other
-
+
-
+
K7GVE8
Entnahme aus Gewinnrücklagen
@@ -13270,7 +13270,7 @@
view
-
+
K7GVE81
Entnahme aus Gewinnrücklagen aus der gesetzlichen Rücklage
@@ -13278,16 +13278,16 @@
view
-
+
7735
Entnahme aus Gewinnrücklagen aus der gesetzlichen Rücklage
other
-
+
-
+
K7GVE82
Entnahme aus Gewinnrücklagen aus der Rücklage für eigene Anteile
@@ -13295,16 +13295,16 @@
view
-
+
7740
Entnahme aus Gewinnrücklagen aus der Rücklage für eigene Anteile
other
-
+
-
+
K7GVE83
Entnahme aus Gewinnrücklagen aus satzungsmäßigen Rücklage
@@ -13312,16 +13312,16 @@
view
-
+
7745
Entnahme aus Gewinnrücklagen aus satzungsmäßigen Rücklage
other
-
+
-
+
K7GVE84
Entnahme aus Gewinnrücklagen aus anderen Gewinnrücklagen
@@ -13329,16 +13329,16 @@
view
-
+
7750
Entnahme aus Gewinnrücklagen aus anderen Gewinnrücklagen
other
-
+
-
+
K7GVE85
Erträge aus Kapitalherabsetzung
@@ -13346,16 +13346,16 @@
view
-
+
7755
Erträge aus Kapitalherabsetzung
other
-
+
-
+
K7GVE86
Einstellungen in die Kapitalrücklage nach den Vorschriften über die Vereinfachte Kapitalherabsetzung
@@ -13363,16 +13363,16 @@
view
-
+
7760
Einstellungen in die Kapitalrücklage nach den Vorschriften über die Vereinfachte Kapitalherabsetzung
other
-
+
-
+
K7GVA8
Einstellung in Gewinnrücklagen
@@ -13380,7 +13380,7 @@
view
-
+
K7GVA81
Einstellung in Gewinnrücklagen in die gesetzliche Rücklage
@@ -13388,16 +13388,16 @@
view
-
+
7765
Einstellung in die gesetzliche Rücklage
other
-
+
-
+
K7GVA82
Einstellung in Gewinnrücklagen in die Rücklage für eigene Anteile
@@ -13405,16 +13405,16 @@
view
-
+
7770
Einstellung in die Rücklage für eigene Anteile
other
-
+
-
+
K7GVA83
Einstellung in Gewinnrücklagen in satzungmäßige Rücklage
@@ -13422,16 +13422,16 @@
view
-
+
7775
Einstellung in satzungmäßige Rücklage
other
-
+
-
+
K7GVA84
Einstellung in Gewinnrücklagen in andere Gewinnrücklagen
@@ -13439,16 +13439,16 @@
view
-
+
7780
Einstellung in andere Gewinnrücklagen
other
-
+
-
+
K7GVA85
Ausschüttung
@@ -13456,16 +13456,16 @@
view
-
+
7790
Vorabausschüttung
other
-
+
-
+
K7GVA86
Vortrag auf neue Rechnung
@@ -13473,16 +13473,16 @@
view
-
+
7795
Vortrag auf neue Rechnung (GuV)
other
-
+
-
+
K7GVA87
Sonstige betriebliche Aufwendungen
@@ -13490,16 +13490,16 @@
view
-
+
7800
(zu freien Verfügung)
other
-
+
-
+
K7GVA88
Sonstige betriebliche Erträge oder sonstige betriebliche Aufwendungen
@@ -13507,16 +13507,16 @@
view
-
+
7990
Aufwendungen/Erträge aus Umrechnungsdifferenzen
other
-
+
-
+
K9VKS1
Vortragskonten
@@ -13524,7 +13524,7 @@
view
-
+
9000
Saldenvorträge- Sachkonten
@@ -13533,7 +13533,7 @@
other
-
+
9001
Saldenvorträge
@@ -13542,7 +13542,7 @@
other
-
+
9008
Saldenvorträge Debitoren
@@ -13551,7 +13551,7 @@
other
-
+
9009
Saldenvorträge Kreditoren
@@ -13560,7 +13560,7 @@
other
-
+
9060
Offene Posten aus 1990
@@ -13569,7 +13569,7 @@
other
-
+
9069
Offene Posten aus 1999
@@ -13578,7 +13578,7 @@
other
-
+
9070
Offene Posten aus 2000
@@ -13587,7 +13587,7 @@
other
-
+
9071
Offene Posten aus 2001
@@ -13596,7 +13596,7 @@
other
-
+
9072
Offene Posten aus 2002
@@ -13605,7 +13605,7 @@
other
-
+
9073
Offene Posten aus 2003
@@ -13614,7 +13614,7 @@
other
-
+
9074
Offene Posten aus 2004
@@ -13623,7 +13623,7 @@
other
-
+
9075
Offene Posten aus 2005
@@ -13632,7 +13632,7 @@
other
-
+
9076
Offene Posten aus 2006
@@ -13641,7 +13641,7 @@
other
-
+
9077
Offene Posten aus 2007
@@ -13668,7 +13668,7 @@
other
-
+
9090
Summenvortragskonto
@@ -13677,7 +13677,7 @@
other
-
+
9091
Offene Posten aus 1991
@@ -13686,7 +13686,7 @@
other
-
+
9092
Offene Posten aus 1992
@@ -13695,7 +13695,7 @@
other
-
+
9093
Offene Posten aus 1993
@@ -13704,7 +13704,7 @@
other
-
+
9094
Offene Posten aus 1994
@@ -13713,7 +13713,7 @@
other
-
+
9095
Offene Posten aus 1995
@@ -13722,7 +13722,7 @@
other
-
+
9096
Offene Posten aus 1996
@@ -13731,7 +13731,7 @@
other
-
+
9097
Offene Posten aus 1997
@@ -13740,7 +13740,7 @@
other
-
+
9098
Offene Posten aus 1998
@@ -13749,7 +13749,7 @@
other
-
+
K9VKS2
Statistische Konten für Betriebswirtschaftliche Auswertungen (BWA)
@@ -13757,7 +13757,7 @@
view
-
+
9101
Verkaufstage
@@ -13766,7 +13766,7 @@
other
-
+
9102
Anzahl der Barkunden
@@ -13775,7 +13775,7 @@
other
-
+
9103
Beschäftigte Personen
@@ -13784,7 +13784,7 @@
other
-
+
9104
Unbezahlte Personen
@@ -13793,7 +13793,7 @@
other
-
+
9105
Verkaufskräfte
@@ -13802,7 +13802,7 @@
other
-
+
9106
Geschäftsraum m2
@@ -13811,7 +13811,7 @@
other
-
+
9107
Verkaufsraum m2
@@ -13820,7 +13820,7 @@
other
-
+
9116
Anzahl Rechnungen
@@ -13829,7 +13829,7 @@
other
-
+
9117
Anzahl Kreditkunden monatlich
@@ -13838,7 +13838,7 @@
other
-
+
9118
Anzahl Kreditkunden aufgelaufen
@@ -13847,7 +13847,7 @@
other
-
+
9120
Erweiterungsinvestitionen
@@ -13856,7 +13856,7 @@
other
-
+
9135
Auftragseingang im Geschäftsjahr
@@ -13865,7 +13865,7 @@
other
-
+
9140
Auftragsbestand
@@ -13874,7 +13874,7 @@
other
-
+
9190
Gegenkonto für statistische Mengeneinheiten Konten 9101-9107 und Konten 9116-9118
@@ -13883,7 +13883,7 @@
other
-
+
9199
Gegenkonto zu Konten 9120- 9135-9140
@@ -13892,7 +13892,7 @@
other
-
+
K9VKS3
Statistische Konten für den Kennziffernteil der Bilanz
@@ -13900,7 +13900,7 @@
view
-
+
9200
Beschäftigte Personen
@@ -13909,7 +13909,7 @@
other
-
+
9209
Gegenkonto zu 9200
@@ -13918,7 +13918,7 @@
other
-
+
9210
Produktive Löhne
@@ -13927,7 +13927,7 @@
other
-
+
9219
Gegenkonto zu 9210
@@ -13936,7 +13936,7 @@
other
-
+
K9VKS4
Statistische Konten zur informativen Angabe des gezeichneten Kapitals in anderer Währung
@@ -13944,7 +13944,7 @@
view
-
+
K9VKS41
Gezeichnetes Kapital in DM
@@ -13952,7 +13952,7 @@
view
-
+
9220
Gezeichnetes Kapital in DM (Art. 42 Abs. 3 S. 1 EGHGB)
@@ -13961,7 +13961,7 @@
other
-
+
K9VKS42
Gezeichnetes Kapital in Euro
@@ -13969,7 +13969,7 @@
view
-
+
9221
Gezeichnetes Kapital in Euro (Art. 42 Abs. 3 S. 2 EGHGB)
@@ -13978,7 +13978,7 @@
other
-
+
9229
Gegenkonto zu 9220-9221
@@ -13987,7 +13987,7 @@
other
-
+
K9VKS5
Passive Rechnungsabgrenzung
@@ -13995,7 +13995,7 @@
view
-
+
9230
Baukostenzuschüsse
@@ -14004,7 +14004,7 @@
other
-
+
9232
Investitionszulagen
@@ -14013,7 +14013,7 @@
other
-
+
9234
Investitionszuschüsse
@@ -14022,7 +14022,7 @@
other
-
+
9239
Gegenkonto zu Konten 9230- 9238
@@ -14031,7 +14031,7 @@
other
-
+
9240
Investitionsverbindlichkeiten bei den Leistungsverbindlichkeiten
@@ -14040,7 +14040,7 @@
other
-
+
9241
Investitionsverbindlichkeiten aus Sachanlagenkäufen bei Leistungsverbindlichkeiten
@@ -14049,7 +14049,7 @@
other
-
+
9242
Investitionsverbindlichkeiten aus Käufen von immateriellen Vermögensgegenständen bei Leistungsverbindlichkeiten
@@ -14058,7 +14058,7 @@
other
-
+
9243
Investitionsverbindlichkeiten aus Käufen von Finanzanlagen bei Leistungsverbindlichkeiten
@@ -14067,7 +14067,7 @@
other
-
+
9244
Gegenkonto zu Konto 9240-43
@@ -14076,7 +14076,7 @@
other
-
+
9245
Forderungen aus Sachanlagenverkäufen bei sonstigen Vermögensgegenständen
@@ -14085,7 +14085,7 @@
other
-
+
9246
Forderungen aus Verkäufen immaterielle Vermögensgegenstände bei sonstigen Vermögensgegenständen
@@ -14094,7 +14094,7 @@
other
-
+
9247
Forderungen aus Verkäufen von Finanzanlagen bei sonstigen Vermögensgegenständen
@@ -14103,7 +14103,7 @@
other
-
+
9249
Gegenkonto zu Konto 9245-47
@@ -14112,7 +14112,7 @@
other
-
+
K9VKS6
Eigenkapitalersetzende Gesellschafterdarlehen
@@ -14120,7 +14120,7 @@
view
-
+
9250
Eigenkapitalersetzende Gesellschafterdarlehen
@@ -14129,7 +14129,7 @@
other
-
+
9255
Ungesicherte Gesellschafterdarlehen mit Restlaufzeit größer 5 Jahre
@@ -14138,7 +14138,7 @@
other
-
+
9259
Gegenkonto zu 9250 und 9255
@@ -14147,7 +14147,7 @@
other
-
+
K9VKS7
Aufgliederung der Rückstellungen
@@ -14155,7 +14155,7 @@
view
-
+
9260
Kurzfristige Rückstellungen
@@ -14164,7 +14164,7 @@
other
-
+
9262
Mittelfristige Rückstellungen
@@ -14173,7 +14173,7 @@
other
-
+
9264
Langfristige Rückstellungen- außer Pensionen
@@ -14182,7 +14182,7 @@
other
-
+
9269
Gegenkonto zu Konto 9260 - 9268
@@ -14191,7 +14191,7 @@
other
-
+
K9VKS8
Statistische Konten für in der Bilanz auszuweisende Haftungsverhältnisse
@@ -14199,7 +14199,7 @@
view
-
+
9270
Gegenkonto zu 9271 - 9279 (Soll-Buchung)
@@ -14208,7 +14208,7 @@
other
-
+
9271
Verbindlichkeiten aus der Begebung und übertragung von Wechseln
@@ -14217,7 +14217,7 @@
other
-
+
9272
Verbindlichkeiten aus der Begebung und übertragung von Wechseln gegenüber verbundenen Unternehmen
@@ -14226,7 +14226,7 @@
other
-
+
9273
Verbindlichkeiten aus Bürgschaften- Wechsel- und Scheckbürgschaften
@@ -14235,7 +14235,7 @@
other
-
+
9274
Verbindlichkeiten aus Bürgschaften- Wechsel- und Scheckbürgschaften gegenüber verbundenen Unternehmen
@@ -14244,7 +14244,7 @@
other
-
+
9275
Verbindlichkeiten aus Gewährleistungsverträgen
@@ -14253,7 +14253,7 @@
other
-
+
9276
Verbindlichkeiten aus Gewährleistungsverträgen gegenüber verbundenen Unternehmen
@@ -14262,7 +14262,7 @@
other
-
+
9277
Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten
@@ -14271,7 +14271,7 @@
other
-
+
9278
Haftung aus der Bestellung von Sicherheiten für fremde Verbindlichkeiten gegenüber verbundenen Unternehmen
@@ -14280,7 +14280,7 @@
other
-
+
9279
Verpflichtungen aus Treuhandvermögen
@@ -14289,7 +14289,7 @@
other
-
+
K9VKS9
Statistische Konten für die im Anhang anzugebenden sonstigen finanziellen Verpflichtungen
@@ -14297,7 +14297,7 @@
view
-
+
9280
Gegenkonto zu 9281-9284
@@ -14306,7 +14306,7 @@
other
-
+
9281
Verpflichtungen aus Miet- und Leasingsverträgen
@@ -14315,7 +14315,7 @@
other
-
+
9282
Verpflichtungen aus Miet- und Leasingsverträgen gegenüber verbundenen Unternehmen
@@ -14324,7 +14324,7 @@
other
-
+
9283
Andere Verpflichtungen gemäß § 285 Nr. 3 HGB
@@ -14333,7 +14333,7 @@
other
-
+
9284
Andere Verpflichtungen gemäß § 285 Nr. 3 HGB gegenüber verbundenen Unternehmen
@@ -14342,7 +14342,7 @@
other
-
+
K9VKSa
Statistische Konten für 4 Abs. 3 EStG
@@ -14350,7 +14350,7 @@
view
-
+
9287
Zinsen bei Buchungen über Debitoren bei § 4 Abs. 3 EStG
@@ -14359,7 +14359,7 @@
other
-
+
9288
Mahngebühren bei Buchungen über Debitoren bei § 4 Abs. 3 EStG
@@ -14368,7 +14368,7 @@
other
-
+
9289
Gegenkonto zu 9287 und 9288
@@ -14377,7 +14377,7 @@
other
-
+
9290
Statistisches Konto steuerfreie Auslagen
@@ -14386,7 +14386,7 @@
other
-
+
9291
Gegenkonto zu 9290
@@ -14395,7 +14395,7 @@
other
-
+
9292
Statistisches Konto Fremdgeld
@@ -14404,7 +14404,7 @@
other
-
+
9293
Gegenkonto zu 9292
@@ -14413,7 +14413,7 @@
other
-
+
K9VKSa1
Einlagen stiller Gesellschafter
@@ -14421,7 +14421,7 @@
view
-
+
9295
Einlagen stiller Gesellschafter
@@ -14430,7 +14430,7 @@
other
-
+
K9VKSa2
Steuerrechtlicher Ausgleichsposten
@@ -14438,7 +14438,7 @@
view
-
+
9297
Steuerrechtlicher Ausgleichsposten
@@ -14447,7 +14447,7 @@
other
-
+
K9VKSb
Privat Teilhafter (für Verrechnung Gesellschafterdarlehen mit Eigenkapitalcharakter- Konto 9840-9849)
@@ -14455,7 +14455,7 @@
view
-
+
9400
Privatentnahmen allgemein
@@ -14464,7 +14464,7 @@
other
-
+
9410
Privatsteuern
@@ -14473,7 +14473,7 @@
other
-
+
9420
Sonderausgaben beschränkt abzugsfähig
@@ -14482,7 +14482,7 @@
other
-
+
9430
Sonderausgaben unbeschränkt abzugsfähig
@@ -14491,7 +14491,7 @@
other
-
+
9440
Zuwendungen- Spenden
@@ -14500,7 +14500,7 @@
other
-
+
9450
Außergewöhnliche Belastungen
@@ -14509,7 +14509,7 @@
other
-
+
9460
Grundstücksaufwand
@@ -14518,7 +14518,7 @@
other
-
+
9470
Grundstücksertrag
@@ -14527,7 +14527,7 @@
other
-
+
9480
Unentgeltliche Wertabgaben
@@ -14536,7 +14536,7 @@
other
-
+
9490
Privateinlagen
@@ -14545,7 +14545,7 @@
other
-
+
K9VKSc
Statistische Konten für die Kapitalkontenentwicklung
@@ -14553,7 +14553,7 @@
view
-
+
9500
Anteil für Konto Vollhafter 2000
@@ -14562,7 +14562,7 @@
other
-
+
9501
Anteil für Konto Vollhafter 2001
@@ -14571,7 +14571,7 @@
other
-
+
9502
Anteil für Konto Vollhafter 2002
@@ -14580,7 +14580,7 @@
other
-
+
9503
Anteil für Konto Vollhafter 2003
@@ -14589,7 +14589,7 @@
other
-
+
9504
Anteil für Konto Vollhafter 2004
@@ -14598,7 +14598,7 @@
other
-
+
9505
Anteil für Konto Vollhafter 2005
@@ -14607,7 +14607,7 @@
other
-
+
9506
Anteil für Konto Vollhafter 2006
@@ -14616,7 +14616,7 @@
other
-
+
9507
Anteil für Konto Vollhafter 2007
@@ -14625,7 +14625,7 @@
other
-
+
9508
Anteil für Konto Vollhafter 2008
@@ -14634,7 +14634,7 @@
other
-
+
9509
Anteil für Konto Vollhafter 2009
@@ -14643,7 +14643,7 @@
other
-
+
9510
Anteil für Konto Vollhafter 2010
@@ -14652,7 +14652,7 @@
other
-
+
9511
Anteil für Konto Vollhafter 2011
@@ -14661,7 +14661,7 @@
other
-
+
9512
Anteil für Konto Vollhafter 2012
@@ -14670,7 +14670,7 @@
other
-
+
9513
Anteil für Konto Vollhafter 2013
@@ -14679,7 +14679,7 @@
other
-
+
9514
Anteil für Konto Vollhafter 2014
@@ -14688,7 +14688,7 @@
other
-
+
9515
Anteil für Konto Vollhafter 2015
@@ -14697,7 +14697,7 @@
other
-
+
9516
Anteil für Konto Vollhafter 2016
@@ -14706,7 +14706,7 @@
other
-
+
9517
Anteil für Konto Vollhafter 2017
@@ -14715,7 +14715,7 @@
other
-
+
9518
Anteil für Konto Vollhafter 2018
@@ -14724,7 +14724,7 @@
other
-
+
9519
Anteil für Konto Vollhafter 2019
@@ -14733,7 +14733,7 @@
other
-
+
9520
Anteil für Konto Vollhafter 2020
@@ -14742,7 +14742,7 @@
other
-
+
9521
Anteil für Konto Vollhafter 2021
@@ -14751,7 +14751,7 @@
other
-
+
9522
Anteil für Konto Vollhafter 2022
@@ -14760,7 +14760,7 @@
other
-
+
9523
Anteil für Konto Vollhafter 2023
@@ -14769,7 +14769,7 @@
other
-
+
9524
Anteil für Konto Vollhafter 2024
@@ -14778,7 +14778,7 @@
other
-
+
9525
Anteil für Konto Vollhafter 2025
@@ -14787,7 +14787,7 @@
other
-
+
9526
Anteil für Konto Vollhafter 2026
@@ -14796,7 +14796,7 @@
other
-
+
9527
Anteil für Konto Vollhafter 2027
@@ -14805,7 +14805,7 @@
other
-
+
9528
Anteil für Konto Vollhafter 2028
@@ -14814,7 +14814,7 @@
other
-
+
9529
Anteil für Konto Vollhafter 2029
@@ -14823,7 +14823,7 @@
other
-
+
9530
Anteil für Konto Vollhafter 9810
@@ -14832,7 +14832,7 @@
other
-
+
9531
Anteil für Konto Vollhafter 9811
@@ -14841,7 +14841,7 @@
other
-
+
9532
Anteil für Konto Vollhafter 9812
@@ -14850,7 +14850,7 @@
other
-
+
9533
Anteil für Konto Vollhafter 9813
@@ -14859,7 +14859,7 @@
other
-
+
9534
Anteil für Konto Vollhafter 9814
@@ -14868,7 +14868,7 @@
other
-
+
9535
Anteil für Konto Vollhafter 9815
@@ -14877,7 +14877,7 @@
other
-
+
9536
Anteil für Konto Vollhafter 9816
@@ -14886,7 +14886,7 @@
other
-
+
9537
Anteil für Konto Vollhafter 9817
@@ -14895,7 +14895,7 @@
other
-
+
9538
Anteil für Konto Vollhafter 9818
@@ -14904,7 +14904,7 @@
other
-
+
9539
Anteil für Konto Vollhafter 9819
@@ -14913,7 +14913,7 @@
other
-
+
9540
Anteil für Konto Vollhafter 0060
@@ -14922,7 +14922,7 @@
other
-
+
9541
Anteil für Konto Vollhafter 0061
@@ -14931,7 +14931,7 @@
other
-
+
9542
Anteil für Konto Vollhafter 0062
@@ -14940,7 +14940,7 @@
other
-
+
9543
Anteil für Konto Vollhafter 0063
@@ -14949,7 +14949,7 @@
other
-
+
9544
Anteil für Konto Vollhafter 0064
@@ -14958,7 +14958,7 @@
other
-
+
9545
Anteil für Konto Vollhafter 0065
@@ -14967,7 +14967,7 @@
other
-
+
9546
Anteil für Konto Vollhafter 0066
@@ -14976,7 +14976,7 @@
other
-
+
9547
Anteil für Konto Vollhafter 0067
@@ -14985,7 +14985,7 @@
other
-
+
9548
Anteil für Konto Vollhafter 0068
@@ -14994,7 +14994,7 @@
other
-
+
9549
Anteil für Konto Vollhafter 0069
@@ -15003,7 +15003,7 @@
other
-
+
9550
Anteil für Konto Teilhafter 2050
@@ -15012,7 +15012,7 @@
other
-
+
9551
Anteil für Konto Teilhafter 2051
@@ -15021,7 +15021,7 @@
other
-
+
9552
Anteil für Konto Teilhafter 2052
@@ -15030,7 +15030,7 @@
other
-
+
9553
Anteil für Konto Teilhafter 2053
@@ -15039,7 +15039,7 @@
other
-
+
9554
Anteil für Konto Teilhafter 2054
@@ -15048,7 +15048,7 @@
other
-
+
9555
Anteil für Konto Teilhafter 2055
@@ -15057,7 +15057,7 @@
other
-
+
9556
Anteil für Konto Teilhafter 2056
@@ -15066,7 +15066,7 @@
other
-
+
9557
Anteil für Konto Teilhafter 2057
@@ -15075,7 +15075,7 @@
other
-
+
9558
Anteil für Konto Teilhafter 2058
@@ -15084,7 +15084,7 @@
other
-
+
9559
Anteil für Konto Teilhafter 2059
@@ -15093,7 +15093,7 @@
other
-
+
9560
Anteil für Konto Teilhafter 2060
@@ -15102,7 +15102,7 @@
other
-
+
9561
Anteil für Konto Teilhafter 2061
@@ -15111,7 +15111,7 @@
other
-
+
9562
Anteil für Konto Teilhafter 2062
@@ -15120,7 +15120,7 @@
other
-
+
9563
Anteil für Konto Teilhafter 2063
@@ -15129,7 +15129,7 @@
other
-
+
9564
Anteil für Konto Teilhafter 2064
@@ -15138,7 +15138,7 @@
other
-
+
9565
Anteil für Konto Teilhafter 2065
@@ -15147,7 +15147,7 @@
other
-
+
9566
Anteil für Konto Teilhafter 2066
@@ -15156,7 +15156,7 @@
other
-
+
9567
Anteil für Konto Teilhafter 2067
@@ -15165,7 +15165,7 @@
other
-
+
9568
Anteil für Konto Teilhafter 2068
@@ -15174,7 +15174,7 @@
other
-
+
9569
Anteil für Konto Teilhafter 2069
@@ -15183,7 +15183,7 @@
other
-
+
9570
Anteil für Konto Teilhafter 2070
@@ -15192,7 +15192,7 @@
other
-
+
9571
Anteil für Konto Teilhafter 2071
@@ -15201,7 +15201,7 @@
other
-
+
9572
Anteil für Konto Teilhafter 2072
@@ -15210,7 +15210,7 @@
other
-
+
9573
Anteil für Konto Teilhafter 2073
@@ -15219,7 +15219,7 @@
other
-
+
9574
Anteil für Konto Teilhafter 2074
@@ -15228,7 +15228,7 @@
other
-
+
9575
Anteil für Konto Teilhafter 2075
@@ -15237,7 +15237,7 @@
other
-
+
9576
Anteil für Konto Teilhafter 2076
@@ -15246,7 +15246,7 @@
other
-
+
9577
Anteil für Konto Teilhafter 2077
@@ -15255,7 +15255,7 @@
other
-
+
9578
Anteil für Konto Teilhafter 2078
@@ -15264,7 +15264,7 @@
other
-
+
9579
Anteil für Konto Teilhafter 2079
@@ -15273,7 +15273,7 @@
other
-
+
9580
Anteil für Konto Vollhafter 9820
@@ -15282,7 +15282,7 @@
other
-
+
9581
Anteil für Konto Vollhafter 9821
@@ -15291,7 +15291,7 @@
other
-
+
9582
Anteil für Konto Vollhafter 9822
@@ -15300,7 +15300,7 @@
other
-
+
9583
Anteil für Konto Vollhafter 9823
@@ -15309,7 +15309,7 @@
other
-
+
9584
Anteil für Konto Vollhafter 9824
@@ -15318,7 +15318,7 @@
other
-
+
9585
Anteil für Konto Vollhafter 9825
@@ -15327,7 +15327,7 @@
other
-
+
9586
Anteil für Konto Vollhafter 9826
@@ -15336,7 +15336,7 @@
other
-
+
9587
Anteil für Konto Vollhafter 9827
@@ -15345,7 +15345,7 @@
other
-
+
9588
Anteil für Konto Vollhafter 9828
@@ -15354,7 +15354,7 @@
other
-
+
9589
Anteil für Konto Vollhafter 9829
@@ -15363,7 +15363,7 @@
other
-
+
9590
Anteil für Konto Teilhafter 0080
@@ -15372,7 +15372,7 @@
other
-
+
9591
Anteil für Konto Teilhafter 0081
@@ -15381,7 +15381,7 @@
other
-
+
9592
Anteil für Konto Teilhafter 0082
@@ -15390,7 +15390,7 @@
other
-
+
9593
Anteil für Konto Teilhafter 0083
@@ -15399,7 +15399,7 @@
other
-
+
9594
Anteil für Konto Teilhafter 0084
@@ -15408,7 +15408,7 @@
other
-
+
9595
Anteil für Konto Teilhafter 0085
@@ -15417,7 +15417,7 @@
other
-
+
9596
Anteil für Konto Teilhafter 0086
@@ -15426,7 +15426,7 @@
other
-
+
9597
Anteil für Konto Teilhafter 0087
@@ -15435,7 +15435,7 @@
other
-
+
9598
Anteil für Konto Teilhafter 0088
@@ -15444,7 +15444,7 @@
other
-
+
9599
Anteil für Konto Teilhafter 0089
@@ -15453,7 +15453,7 @@
other
-
+
9600
Name des Gesellschafters Vollhafter
@@ -15462,7 +15462,7 @@
other
-
+
9610
Tätigkeitsvergütung Vollhafter
@@ -15471,7 +15471,7 @@
other
-
+
9620
Tantieme Vollhafter
@@ -15480,7 +15480,7 @@
other
-
+
9630
Darlehensverzinsung Vollhafter
@@ -15489,7 +15489,7 @@
other
-
+
9640
Gebrauchsüberlassung Vollhafter
@@ -15498,7 +15498,7 @@
other
-
+
9650
Sonstige Vergütungen Vollhafter
@@ -15507,7 +15507,7 @@
other
-
+
9690
Restanteil Vollhafter
@@ -15516,7 +15516,7 @@
other
-
+
9700
Name des Gesellschafters Teillhafter
@@ -15525,7 +15525,7 @@
other
-
+
9710
Tätigkeitsvergütung Teillhafter
@@ -15534,7 +15534,7 @@
other
-
+
9720
Tantieme Teillhafter
@@ -15543,7 +15543,7 @@
other
-
+
9730
Darlehensverzinsung Teillhafter
@@ -15552,7 +15552,7 @@
other
-
+
9740
Gebrauchsüberlassung Teillhafter
@@ -15561,7 +15561,7 @@
other
-
+
9750
Sonstige Vergütungen Teillhafter
@@ -15570,7 +15570,7 @@
other
-
+
9780
Anteil für Konto 9840-49 Teilhafter
@@ -15579,7 +15579,7 @@
other
-
+
9790
Restanteil Teillhafter
@@ -15588,7 +15588,7 @@
other
-
+
9800
Lösch- und Korrekturschlüssel
@@ -15597,7 +15597,7 @@
other
-
+
9801
Lösch- und Korrekturschlüssel
@@ -15606,7 +15606,7 @@
other
-
+
K9VKSd
Kapital Personenhandelsgesellschaft Vollhafter
@@ -15614,7 +15614,7 @@
view
-
+
9810
Gesellschafter-Darlehen
@@ -15623,7 +15623,7 @@
other
-
+
9820
Verlust-/ Vortragskonto
@@ -15632,7 +15632,7 @@
other
-
+
9830
Verrechnungskonto für Einzahlungsverpflichtungen
@@ -15641,7 +15641,7 @@
other
-
+
K9VKSe
Kapital Personenhandelsgesellschaft Teilhafter
@@ -15649,7 +15649,7 @@
view
-
+
9840
Gesellschafter-Darlehen
@@ -15658,7 +15658,7 @@
other
-
+
9850
Verrechnungskonto für Einzahlungsverpflichtungen
@@ -15667,7 +15667,7 @@
other
-
+
K9VKSf
Einzahlungsverpflichtungen im Bereich der Forderungen
@@ -15675,7 +15675,7 @@
view
-
+
9860
Einzahlungsverpflichtungen persönlich haftender Gesellschafter
@@ -15684,7 +15684,7 @@
other
-
+
9870
Einzahlungsverpflichtungen Kommanditisten
@@ -15693,7 +15693,7 @@
other
-
+
K9VKSg
Ausgleichsposten für aktivierte eigene Anteile und Bilanzierungshilfen
@@ -15701,7 +15701,7 @@
view
-
+
9880
Ausgleichsposten für aktivierte eigene Anteile
@@ -15710,7 +15710,7 @@
other
-
+
9882
Ausgleichsposten für aktivierte Bilanzierungshilfen
@@ -15719,7 +15719,7 @@
other
-
+
K9VKSh
Nicht durch Vermögenseinlagen gedeckte Entnahmen
@@ -15727,7 +15727,7 @@
view
-
+
9883
Nicht durch Vermögenseinlagen gedeckte Entnahmen persönlich haftender Gesellschafter
@@ -15736,7 +15736,7 @@
other
-
+
9884
Nicht durch Vermögenseinlagen gedeckte Entnahmen Kommanditisten
@@ -15745,7 +15745,7 @@
other
-
+
K9VKSi
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen
@@ -15753,7 +15753,7 @@
view
-
+
9885
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen persönlich haftender Gesellschafter
@@ -15762,7 +15762,7 @@
other
-
+
9886
Verrechnungskonto für nicht durch Vermögenseinlagen gedeckte Entnahmen Kommanditisten
@@ -15771,7 +15771,7 @@
other
-
+
K9VKSj
Steueraufwand der Gesellschafter
@@ -15779,7 +15779,7 @@
view
-
+
9887
Steueraufwand der Gesellschafter
@@ -15788,7 +15788,7 @@
other
-
+
9889
Gegenkonto zu 9887
@@ -15797,7 +15797,7 @@
other
-
+
K9VKSk
Statistische Konten für Gewinnzuschlag
@@ -15805,7 +15805,7 @@
view
-
+
9890
Statistische Konten für den Gewinnzuschlag nach §§ 6b- 6c und 7g EStG (Haben-Buchung)
@@ -15814,7 +15814,7 @@
other
-
+
9891
Statistische Konten für den Gewinnzuschlag- Gegenkonto zu 9890
@@ -15823,7 +15823,7 @@
other
-
+
K9VKSl
Vorsteuer-/Umsatzsteuerkonten zur Korrektur der Forderungen/ Verbindlichkeiten (EüR)
@@ -15831,7 +15831,7 @@
view
-
+
9893
Umsatzsteuer in den Forderungen zum allgemeinen Umsatzsteuersatz (EüR)
@@ -15840,7 +15840,7 @@
other
-
+
9894
Umsatzsteuer in den Forderungen zum ermäßigten Umsatzsteuersatz (EüR)
@@ -15849,7 +15849,7 @@
other
-
+
9895
Gegenkonto 9893-9894 für die Aufteilung der Umsatzsteuersatz (EüR)
@@ -15858,7 +15858,7 @@
other
-
+
9896
Vorsteuer in den Verbindlichkeiten zum allgemeinen Umsatzsteuersatz (EüR)
@@ -15867,7 +15867,7 @@
other
-
+
9897
Vorsteuer in den Verbindlichkeiten zum ermäßigten Umsatzsteuersatz (EüR)
@@ -15876,7 +15876,7 @@
other
-
+
9899
Gegenkonto 9896-9897 für die Aufteilung der Vorsteuer (EüR)
@@ -15885,7 +15885,7 @@
other
-
+
9900
SO Commitment
@@ -15894,7 +15894,7 @@
other
-
+
K9VKSm
Statistische Konten zu § 4 (4a) EStG
@@ -15902,7 +15902,7 @@
view
-
+
9910
Gegenkonto zur Minderung der Entnahmen §4 (4a) EStG
@@ -15911,7 +15911,7 @@
other
-
+
9911
Minderung der Entnahmen §4 (4a) EStG (Haben)
@@ -15920,7 +15920,7 @@
other
-
+
9912
Erhöhung der Entnahmen §4 (4a) EStG
@@ -15929,7 +15929,7 @@
other
-
+
9913
Gegenkonto zur Erhöhung der Entnahmen §4 (4a) EStG (Haben)
@@ -15938,7 +15938,7 @@
other
-
+
K9VKSn
Statistische konten für Kinderbetreuungskosten
@@ -15946,7 +15946,7 @@
view
-
+
9918
Kinderbetreuungskosten (wie Betriebsausgaben steuerlich anzusetzender Betrag)
@@ -15955,7 +15955,7 @@
other
-
+
9919
Gegenkonto zu 9918 (Haben)
@@ -15964,7 +15964,7 @@
other
-
+
K9VKSo
Statistische Konten für den GuV-Ausweis in "Gutschrift bzw. Belastung auf Verbindlichkeitskonten" bei den Zuordnungstabellen für PersHG nach KapCoRiLiG
@@ -15972,7 +15972,7 @@
view
-
+
9980
Anteil für Verbindlichkeitskonten
@@ -15981,7 +15981,7 @@
other
-
+
9981
Verrechnungskonto für Anteil Verbindlichkeitskonten
diff --git a/addons/l10n_mx/account_chart.xml b/addons/l10n_mx/account_chart.xml
index 9a86600101f..146ebd7b95e 100644
--- a/addons/l10n_mx/account_chart.xml
+++ b/addons/l10n_mx/account_chart.xml
@@ -1,8 +1,8 @@
-
-
+
+
@@ -59,7 +59,7 @@
liability
balance
-
+
0
@@ -67,7 +67,7 @@
view
-
+
1000
@@ -421,10 +421,10 @@
4450
-
+
- other
-
+ receivable
+
Ganancia en Paridad Cambiaria
@@ -575,12 +575,12 @@
5530
-
+
other
Derecho de Frente
-
+
@@ -702,10 +702,10 @@
5810
-
+
- other
-
+ payable
+
Pérdidas Paridad Cambiaria
@@ -721,6 +721,6 @@
-
+
diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index 44a2f1e30bd..44646a07ead 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -58,7 +58,11 @@ Note: If you need demo data, you can install the marketing_campaign_crm_demo mod
"security/ir.model.access.csv"
],
'demo_xml': [
+ 'marketing_campaign_demo.xml',
],
+ 'test': [
+ 'test/marketing_campaign.yml',
+ ],
'installable': True,
'active': False,
'certificate' : '00421723279617928365',
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index 82832134c27..4e6f6a5227e 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -164,11 +164,12 @@ Normal - the campaign runs normally and automatically sends all emails and repor
self.write(cr, uid, ids, {'state': 'cancelled'})
return True
-
+ # dead code
def signal(self, cr, uid, model, res_id, signal, run_existing=True, context=None):
record = self.pool.get(model).browse(cr, uid, res_id, context)
return self._signal(cr, uid, record, signal, run_existing, context)
+ #dead code
def _signal(self, cr, uid, record, signal, run_existing=True, context=None):
if not signal:
raise ValueError('signal cannot be False')
@@ -461,6 +462,7 @@ class marketing_campaign_activity(osv.osv):
return super(marketing_campaign_activity, self).search(cr, uid, args,
offset, limit, order, context, count)
+ #dead code
def _process_wi_report(self, cr, uid, activity, workitem, context=None):
service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
(report_data, format) = service.create(cr, uid, [], {}, {})
@@ -481,6 +483,7 @@ class marketing_campaign_activity(osv.osv):
activity.email_template_id.id,
workitem.res_id, context=context)
+ #dead code
def _process_wi_action(self, cr, uid, activity, workitem, context=None):
if context is None:
context = {}
@@ -670,7 +673,7 @@ class marketing_campaign_workitem(osv.osv):
def _process_one(self, cr, uid, workitem, context=None):
if workitem.state != 'todo':
- return
+ return False
activity = workitem.activity_id
proxy = self.pool.get(workitem.object_id.model)
@@ -707,7 +710,7 @@ class marketing_campaign_workitem(osv.osv):
if result:
# process _chain
- workitem = workitem.browse(context)[0] # reload
+ workitem = workitem.browse(context=context)[0] # reload
date = datetime.strptime(workitem.date, DT_FMT)
for transition in activity.to_ids:
@@ -784,11 +787,7 @@ class marketing_campaign_workitem(osv.osv):
res = {}
wi_obj = self.browse(cr, uid, ids[0], context=context)
if wi_obj.activity_id.type == 'email':
- data_obj = self.pool.get('ir.model.data')
- data_id = data_obj._get_id(cr, uid, 'email_template', 'email_template_preview_form')
- view_id = 0
- if data_id:
- view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
+ view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'email_template', 'email_template_preview_form')
res = {
'name': _('Email Preview'),
'view_type': 'form',
@@ -796,7 +795,7 @@ class marketing_campaign_workitem(osv.osv):
'res_model': 'email_template.preview',
'view_id': False,
'context': context,
- 'views': [(view_id, 'form')],
+ 'views': [(view_id and view_id[1] or 0, 'form')],
'type': 'ir.actions.act_window',
'target': 'new',
'nodestroy':True,
diff --git a/addons/marketing_campaign/marketing_campaign_demo.xml b/addons/marketing_campaign/marketing_campaign_demo.xml
new file mode 100644
index 00000000000..aaf5a98c6bc
--- /dev/null
+++ b/addons/marketing_campaign/marketing_campaign_demo.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+ Template for New Partner
+ info@tinyerp.com
+ Welcome in OpenERP Partner Channel!
+ ${object.email or ''}
+
+ Hello, We are very happy to send Welcome message.
+
+
+ Template for Silver Partner
+ info@tinyerp.com
+ Congratulation! You become now our Silver Partner.
+ ${object.email or ''}
+
+ Hello, We are happy to announce that you now become our Silver Partner.
+
+
+
+ Template for Gold Partner
+ info@tinyerp.com
+ Congratulation! You become our Gold Partner.
+ ${object.email or ''}
+
+ Hello, We are happy to announce that you become our Gold Partner.
+
+
+
+
+
+
+ OpenERP Partner Channel
+
+ active
+
+
+
+
+
+ New Partner
+
+
+ object.credit_limit < 10000
+ True
+
+
+
+ Silver Partner
+
+ object.credit_limit >= 10000 and object.credit_limit < 50000
+ True
+
+
+
+
+ Gold Partner
+ object.credit_limit >= 100000
+
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Partners
+ [('name','like','Agrolait')]
+ res.partner
+
+
+
+ OpenERP Partner
+ create_date
+
+
+
+
+
+
diff --git a/addons/marketing_campaign/test/marketing_campaign.yml b/addons/marketing_campaign/test/marketing_campaign.yml
new file mode 100644
index 00000000000..1b7a7fa2ae3
--- /dev/null
+++ b/addons/marketing_campaign/test/marketing_campaign.yml
@@ -0,0 +1,151 @@
+-
+ In order to test process of compaign, I start compaign.
+-
+ !workflow {model: marketing.campaign, action: state_running_set, ref: marketing_campaign_openerppartnerchannel}
+-
+ I check the campaign on Running mode after started.
+-
+ !assert {model: marketing.campaign, id: marketing_campaign_openerppartnerchannel}:
+ - state == 'running'
+-
+ I start this segment after assinged campaign.
+-
+ !workflow {model: marketing.campaign.segment, action: state_running_set, ref: marketing_campaign_segment0}
+-
+ I check the segment on Running mode after started.
+-
+ !assert {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
+ - state == 'running'
+-
+ I synchronized segment manually to see all step of activity and process covered on this campaign.
+-
+ !python {model: marketing.campaign.segment}: |
+ segment_id = self.browse(cr ,uid ,ref("marketing_campaign_segment0") ,context)
+ assert segment_id.date_next_sync, 'Next Synchronization date is not calculated.'
+ self.synchroniz(cr, uid, [ref("marketing_campaign_segment0")])
+-
+ I cancel Marketing Workitems.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel'))])
+ self.button_cancel(cr, uid, ids)
+ record = self.browse(cr, uid, ids[0])
+ assert record.state == 'cancelled' or record.state == 'done' , 'Marketing Workitem shoud be in cancel state.'
+-
+ I set Marketing Workitems in draft state.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel'))])
+ self.button_draft(cr, uid, ids)
+ record = self.browse(cr, uid, ids[0])
+ assert record.state == 'todo' or record.state == 'done' , 'Marketing Workitem shoud be in draft state.'
+-
+ I check followup detail of first activity.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
+ assert ids, 'Followup item is not created for first activity.'
+ work_item_id = self.browse(cr ,uid ,ids[0] ,context)
+ assert work_item_id.res_name, 'Resource Name is not defined.'
+-
+ I process followup of first activity.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
+ self.process(cr, uid, ids)
+ record = self.browse(cr, uid, ids)[0]
+ assert record.state == "done", "Followup item should be closed after process."
+-
+ I check followup detail of second activity after process of first activity.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
+ assert ids, 'Followup item is not created for second activity.'
+-
+ Now I increase credit limit of customer
+-
+ !python {model: res.partner}: |
+ self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':41000}, context=context)
+-
+ I process followup of second activity after set draft.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
+ self.button_draft(cr, uid, ids, context=context)
+ self.process(cr, uid, ids, context=context)
+ record = self.browse(cr, uid, ids[0], context=context)
+ assert record.state == "done", "Followup item should be closed after process."
+-
+ I check followup detail of third activity after process of second activity.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+ assert ids, 'Followup item is not created for third activity.'
+-
+ Now I increase credit limit of customer
+-
+ !python {model: res.partner}: |
+ self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':151000}, context=context)
+-
+ I process followup of third activity after set draft.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+ self.button_draft(cr, uid, ids, context=context)
+ self.process(cr, uid, ids, context=context)
+ record = self.browse(cr, uid, ids[0], context=context)
+ assert record.state == "done", "Followup item should be closed after process."
+-
+ I print workitem report.
+-
+ !python {model: marketing.campaign.workitem}: |
+ ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+ ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+ self.preview(cr, uid, ids)
+-
+ I cancel segmentation because of some activity.
+-
+ !workflow {model: marketing.campaign.segment, action: state_cancel_set, ref: marketing_campaign_segment0}
+-
+ I check the segmentation is canceled.
+-
+ !assert {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
+ - state == 'cancelled'
+-
+ I reopen the segmentation.
+-
+ !workflow {model: marketing.campaign.segment, action: state_draft_set, ref: marketing_campaign_segment0}
+-
+ !workflow {model: marketing.campaign.segment, action: state_running_set, ref: marketing_campaign_segment0}
+-
+ I check the segment on Running mode after started.
+-
+ !assert {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
+ - state == 'running'
+-
+ I close segmentation After completion of all activity.
+-
+ !workflow {model: marketing.campaign.segment, action: state_done_set, ref: marketing_campaign_segment0}
+-
+ I check the segmentation is done.
+-
+ !assert {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
+ - state == 'done'
+-
+ I close this campaing.
+-
+ !workflow {model: marketing.campaign.segment, action: state_done_set, ref: marketing_campaign_openerppartnerchannel}
+-
+ I check the campaing is done.
+-
+ !assert {model: marketing.campaign.segment, id: marketing_campaign_openerppartnerchannel}:
+ - state == 'done'
+
diff --git a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
index abf29f2c011..989d11e6ffd 100644
--- a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
@@ -58,7 +58,7 @@
For OpenERP Discovery Day on May 2010
-
+
Thanks for subscribing to the OpenERP Discovery Day
info@tinyerp.com
@@ -72,7 +72,7 @@
For OpenERP Discovery Day
-
+
Thanks for buying the OpenERP book
info@tinyerp.com
@@ -91,7 +91,6 @@
info@tinyerp.com
-
Hello, We have very good offer that might suit you.
For our gold partners,We are arranging free technical training on june,2010.
@@ -157,6 +156,7 @@
OpenERP OnDemand Free Trial 2010
+ active
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index 588ba103f04..b1f5a549c44 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -92,13 +92,9 @@ Dashboard provided by this module:
'mrp_demo.xml',
],
'test': [
- 'test/mrp_procurement.yml',
- 'test/mrp_packs.yml',
- 'test/mrp_phantom_bom.yml',
- 'test/mrp_production_order.yml',
- 'test/mrp_production_cancel.yml',
- 'test/mrp_report.yml',
-
+ 'test/order_demo.yml',
+ 'test/order_process.yml',
+ 'test/cancel_order.yml',
],
'installable': True,
'application': True,
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index dea664f6fd6..c8f0b6b7e21 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -62,8 +62,6 @@ class mrp_workcenter(osv.osv):
}
def on_change_product_cost(self, cr, uid, ids, product_id, context=None):
- if context is None:
- context = {}
value = {}
if product_id:
@@ -253,8 +251,7 @@ class mrp_bom(osv.osv):
all_prod.append(bom.product_id.id)
lines = bom.bom_lines
if lines:
- newboms = [a for a in lines if a not in boms]
- res = res and check_bom(newboms)
+ res = res and check_bom([bom_id for bom_id in lines if bom_id not in boms])
return res
return check_bom(boms)
@@ -269,14 +266,9 @@ class mrp_bom(osv.osv):
@param product_id: Changed product_id
@return: Dictionary of changed values
"""
- if context is None:
- context = {}
- context['lang'] = self.pool.get('res.users').browse(cr,uid,uid).context_lang
-
if product_id:
prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
- v = {'name': prod.name, 'product_uom': prod.uom_id.id}
- return {'value': v}
+ return {'value': {'name': prod.name, 'product_uom': prod.uom_id.id}}
return {}
def _bom_find(self, cr, uid, product_id, product_uom, properties=[]):
@@ -320,6 +312,7 @@ class mrp_bom(osv.osv):
phantom = False
if bom.type == 'phantom' and not bom.bom_lines:
newbom = self._bom_find(cr, uid, bom.product_id.id, bom.product_uom.id, properties)
+
if newbom:
res = self._bom_explode(cr, uid, self.browse(cr, uid, [newbom])[0], factor*bom.product_qty, properties, addthis=True, level=level+10)
result = result + res[0]
@@ -361,8 +354,6 @@ class mrp_bom(osv.osv):
def copy_data(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
- if context is None:
- context = {}
bom_data = self.read(cr, uid, id, [], context=context)
default.update({'name': bom_data['name'] + ' ' + _('Copy'), 'bom_id':False})
return super(mrp_bom, self).copy_data(cr, uid, id, default, context=context)
@@ -497,8 +488,7 @@ class mrp_production(osv.osv):
_order = 'priority desc, date_planned asc';
def _check_qty(self, cr, uid, ids, context=None):
- orders = self.browse(cr, uid, ids, context=context)
- for order in orders:
+ for order in self.browse(cr, uid, ids, context=context):
if order.product_qty <= 0:
return False
return True
@@ -508,14 +498,10 @@ class mrp_production(osv.osv):
]
def unlink(self, cr, uid, ids, context=None):
- productions = self.read(cr, uid, ids, ['state'])
- unlink_ids = []
- for s in productions:
- if s['state'] in ['draft','cancel']:
- unlink_ids.append(s['id'])
- else:
- raise osv.except_osv(_('Invalid action !'), _('Cannot delete a manufacturing order in the state \'%s\'!') % s['state'])
- return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
+ for production in self.browse(cr, uid, ids, context=context):
+ if production.state not in ('draft', 'cancel'):
+ raise osv.except_osv(_('Invalid action !'), _('Cannot delete a manufacturing order in state \'%s\'') % production.state)
+ return super(mrp_production, self).unlink(cr, uid, ids, context=context)
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
@@ -577,8 +563,7 @@ class mrp_production(osv.osv):
return {'value': {
'routing_id': False
}}
- bom_pool = self.pool.get('mrp.bom')
- bom_point = bom_pool.browse(cr, uid, bom_id, context=context)
+ bom_point = self.pool.get('mrp.bom').browse(cr, uid, bom_id, context=context)
routing_id = bom_point.routing_id.id or False
result = {
'routing_id': routing_id
@@ -592,7 +577,7 @@ class mrp_production(osv.osv):
self.write(cr, uid, ids, {'state': 'picking_except'})
return True
- def action_compute(self, cr, uid, ids, properties=[]):
+ def action_compute(self, cr, uid, ids, properties=[], context=None):
""" Computes bills of material of a product.
@param properties: List containing dictionaries of properties.
@return: No. of products.
@@ -747,7 +732,7 @@ class mrp_production(osv.osv):
# if qtys we have to consume is more than qtys available to consume
prod_name = scheduled.product_id.name_get()[0][1]
raise osv.except_osv(_('Warning!'), _('You are going to consume total %s quantities of "%s".\nBut you can consume upto total %s quantities.' % (qty, prod_name, qty_avail)))
- if qty < 0.0:
+ if qty <= 0.0:
# we already have more qtys consumed than we need
continue
@@ -855,119 +840,169 @@ class mrp_production(osv.osv):
def _get_auto_picking(self, cr, uid, production):
return True
- def action_confirm(self, cr, uid, ids):
- """ Confirms production order.
- @return: Newly generated picking Id.
- """
- picking_id = False
- proc_ids = []
- seq_obj = self.pool.get('ir.sequence')
- pick_obj = self.pool.get('stock.picking')
- move_obj = self.pool.get('stock.move')
- proc_obj = self.pool.get('procurement.order')
+ def _make_production_line_procurement(self, cr, uid, production_line, shipment_move_id, context=None):
wf_service = netsvc.LocalService("workflow")
- for production in self.browse(cr, uid, ids):
- if not production.product_lines:
- self.action_compute(cr, uid, [production.id])
- production = self.browse(cr, uid, [production.id])[0]
- routing_loc = None
- pick_type = 'internal'
- address_id = False
- if production.bom_id.routing_id and production.bom_id.routing_id.location_id:
- routing_loc = production.bom_id.routing_id.location_id
- if routing_loc.usage <> 'internal':
- pick_type = 'out'
- address_id = routing_loc.address_id and routing_loc.address_id.id or False
- routing_loc = routing_loc.id
- pick_name = seq_obj.get(cr, uid, 'stock.picking.' + pick_type)
- picking_id = pick_obj.create(cr, uid, {
- 'name': pick_name,
- 'origin': (production.origin or '').split(':')[0] + ':' + production.name,
- 'type': pick_type,
- 'move_type': 'one',
- 'state': 'auto',
- 'address_id': address_id,
- 'auto_picking': self._get_auto_picking(cr, uid, production),
- 'company_id': production.company_id.id,
- })
-
- source = production.product_id.product_tmpl_id.property_stock_production.id
- data = {
- 'name':'PROD:' + production.name,
- 'date': production.date_planned,
- 'product_id': production.product_id.id,
- 'product_qty': production.product_qty,
- 'product_uom': production.product_uom.id,
- 'product_uos_qty': production.product_uos and production.product_uos_qty or False,
- 'product_uos': production.product_uos and production.product_uos.id or False,
- 'location_id': source,
- 'location_dest_id': production.location_dest_id.id,
- 'move_dest_id': production.move_prod_id.id,
- 'state': 'waiting',
- 'company_id': production.company_id.id,
- }
- res_final_id = move_obj.create(cr, uid, data)
-
- self.write(cr, uid, [production.id], {'move_created_ids': [(6, 0, [res_final_id])]})
- moves = []
- for line in production.product_lines:
- move_id = False
- newdate = production.date_planned
- if line.product_id.type in ('product', 'consu'):
- res_dest_id = move_obj.create(cr, uid, {
- 'name':'PROD:' + production.name,
- 'date': production.date_planned,
- 'product_id': line.product_id.id,
- 'product_qty': line.product_qty,
- 'product_uom': line.product_uom.id,
- 'product_uos_qty': line.product_uos and line.product_uos_qty or False,
- 'product_uos': line.product_uos and line.product_uos.id or False,
- 'location_id': routing_loc or production.location_src_id.id,
- 'location_dest_id': source,
- 'move_dest_id': res_final_id,
- 'state': 'waiting',
- 'company_id': production.company_id.id,
- })
- moves.append(res_dest_id)
- move_id = move_obj.create(cr, uid, {
- 'name':'PROD:' + production.name,
- 'picking_id':picking_id,
- 'product_id': line.product_id.id,
- 'product_qty': line.product_qty,
- 'product_uom': line.product_uom.id,
- 'product_uos_qty': line.product_uos and line.product_uos_qty or False,
- 'product_uos': line.product_uos and line.product_uos.id or False,
- 'date': newdate,
- 'move_dest_id': res_dest_id,
- 'location_id': production.location_src_id.id,
- 'location_dest_id': routing_loc or production.location_src_id.id,
- 'state': 'waiting',
- 'company_id': production.company_id.id,
- })
- proc_id = proc_obj.create(cr, uid, {
- 'name': (production.origin or '').split(':')[0] + ':' + production.name,
- 'origin': (production.origin or '').split(':')[0] + ':' + production.name,
- 'date_planned': newdate,
- 'product_id': line.product_id.id,
- 'product_qty': line.product_qty,
- 'product_uom': line.product_uom.id,
- 'product_uos_qty': line.product_uos and line.product_qty or False,
- 'product_uos': line.product_uos and line.product_uos.id or False,
- 'location_id': production.location_src_id.id,
- 'procure_method': line.product_id.procure_method,
- 'move_id': move_id,
+ procurement_order = self.pool.get('procurement.order')
+ production = production_line.production_id
+ location_id = production.location_src_id.id
+ date_planned = production.date_planned
+ procurement_name = (production.origin or '').split(':')[0] + ':' + production.name
+ procurement_id = procurement_order.create(cr, uid, {
+ 'name': procurement_name,
+ 'origin': procurement_name,
+ 'date_planned': date_planned,
+ 'product_id': production_line.product_id.id,
+ 'product_qty': production_line.product_qty,
+ 'product_uom': production_line.product_uom.id,
+ 'product_uos_qty': production_line.product_uos and production_line.product_qty or False,
+ 'product_uos': production_line.product_uos and production_line.product_uos.id or False,
+ 'location_id': location_id,
+ 'procure_method': production_line.product_id.procure_method,
+ 'move_id': shipment_move_id,
'company_id': production.company_id.id,
})
- wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
- proc_ids.append(proc_id)
- wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
- self.write(cr, uid, [production.id], {'picking_id': picking_id, 'move_lines': [(6,0,moves)], 'state':'confirmed'})
+ wf_service.trg_validate(uid, procurement_order._name, procurement_id, 'button_confirm', cr)
+ return procurement_id
+
+ def _make_production_internal_shipment_line(self, cr, uid, production_line, shipment_id, parent_move_id, destination_location_id=False, context=None):
+ stock_move = self.pool.get('stock.move')
+ production = production_line.production_id
+ date_planned = production.date_planned
+ # Internal shipment is created for Stockable and Consumer Products
+ if production_line.product_id.type not in ('product', 'consu'):
+ return False
+ move_name = _('PROD: %s') % production.name
+ source_location_id = production.location_src_id.id
+ if not destination_location_id:
+ destination_location_id = source_location_id
+ return stock_move.create(cr, uid, {
+ 'name': move_name,
+ 'picking_id': shipment_id,
+ 'product_id': production_line.product_id.id,
+ 'product_qty': production_line.product_qty,
+ 'product_uom': production_line.product_uom.id,
+ 'product_uos_qty': production_line.product_uos and production_line.product_uos_qty or False,
+ 'product_uos': production_line.product_uos and production_line.product_uos.id or False,
+ 'date': date_planned,
+ 'move_dest_id': parent_move_id,
+ 'location_id': source_location_id,
+ 'location_dest_id': destination_location_id,
+ 'state': 'waiting',
+ 'company_id': production.company_id.id,
+ })
+
+ def _make_production_internal_shipment(self, cr, uid, production, context=None):
+ ir_sequence = self.pool.get('ir.sequence')
+ stock_picking = self.pool.get('stock.picking')
+ routing_loc = None
+ pick_type = 'internal'
+ address_id = False
+
+ # Take routing address as a Shipment Address.
+ # If usage of routing location is a internal, make outgoing shipment otherwise internal shipment
+ if production.bom_id.routing_id and production.bom_id.routing_id.location_id:
+ routing_loc = production.bom_id.routing_id.location_id
+ if routing_loc.usage <> 'internal':
+ pick_type = 'out'
+ address_id = routing_loc.address_id and routing_loc.address_id.id or False
+
+ # Take next Sequence number of shipment base on type
+ pick_name = ir_sequence.get(cr, uid, 'stock.picking.' + pick_type)
+
+ picking_id = stock_picking.create(cr, uid, {
+ 'name': pick_name,
+ 'origin': (production.origin or '').split(':')[0] + ':' + production.name,
+ 'type': pick_type,
+ 'move_type': 'one',
+ 'state': 'auto',
+ 'address_id': address_id,
+ 'auto_picking': self._get_auto_picking(cr, uid, production),
+ 'company_id': production.company_id.id,
+ })
+ production.write({'picking_id': picking_id}, context=context)
+ return picking_id
+
+ def _make_production_produce_line(self, cr, uid, production, context=None):
+ stock_move = self.pool.get('stock.move')
+ source_location_id = production.product_id.product_tmpl_id.property_stock_production.id
+ destination_location_id = production.location_dest_id.id
+ move_name = _('PROD: %s') + production.name
+ data = {
+ 'name': move_name,
+ 'date': production.date_planned,
+ 'product_id': production.product_id.id,
+ 'product_qty': production.product_qty,
+ 'product_uom': production.product_uom.id,
+ 'product_uos_qty': production.product_uos and production.product_uos_qty or False,
+ 'product_uos': production.product_uos and production.product_uos.id or False,
+ 'location_id': source_location_id,
+ 'location_dest_id': destination_location_id,
+ 'move_dest_id': production.move_prod_id.id,
+ 'state': 'waiting',
+ 'company_id': production.company_id.id,
+ }
+ move_id = stock_move.create(cr, uid, data, context=context)
+ production.write({'move_created_ids': [(6, 0, [move_id])]}, context=context)
+ return move_id
+
+ def _make_production_consume_line(self, cr, uid, production_line, parent_move_id, source_location_id=False, context=None):
+ stock_move = self.pool.get('stock.move')
+ production = production_line.production_id
+ # Internal shipment is created for Stockable and Consumer Products
+ if production_line.product_id.type not in ('product', 'consu'):
+ return False
+ move_name = _('PROD: %s') % production.name
+ destination_location_id = production.product_id.product_tmpl_id.property_stock_production.id
+ if not source_location_id:
+ source_location_id = production.location_src_id.id
+ move_id = stock_move.create(cr, uid, {
+ 'name': move_name,
+ 'date': production.date_planned,
+ 'product_id': production_line.product_id.id,
+ 'product_qty': production_line.product_qty,
+ 'product_uom': production_line.product_uom.id,
+ 'product_uos_qty': production_line.product_uos and production_line.product_uos_qty or False,
+ 'product_uos': production_line.product_uos and production_line.product_uos.id or False,
+ 'location_id': source_location_id,
+ 'location_dest_id': destination_location_id,
+ 'move_dest_id': parent_move_id,
+ 'state': 'waiting',
+ 'company_id': production.company_id.id,
+ })
+ production.write({'move_lines': [(4, move_id)]}, context=context)
+ return move_id
+
+ def action_confirm(self, cr, uid, ids, context=None):
+ """ Confirms production order.
+ @return: Newly generated Shipment Id.
+ """
+ shipment_id = False
+ wf_service = netsvc.LocalService("workflow")
+ uncompute_ids = filter(lambda x:x, [not x.product_lines and x.id or False for x in self.browse(cr, uid, ids, context=context)])
+ self.action_compute(cr, uid, uncompute_ids, context=context)
+ for production in self.browse(cr, uid, ids, context=context):
+ shipment_id = self._make_production_internal_shipment(cr, uid, production, context=context)
+ produce_move_id = self._make_production_produce_line(cr, uid, production, context=context)
+
+ # Take routing location as a Source Location.
+ source_location_id = production.location_src_id.id
+ if production.bom_id.routing_id and production.bom_id.routing_id.location_id:
+ source_location_id = production.bom_id.routing_id.location_id.id
+
+ for line in production.product_lines:
+ consume_move_id = self._make_production_consume_line(cr, uid, line, produce_move_id, source_location_id=source_location_id, context=context)
+ shipment_move_id = self._make_production_internal_shipment_line(cr, uid, line, shipment_id, consume_move_id,\
+ destination_location_id=source_location_id, context=context)
+ self._make_production_line_procurement(cr, uid, line, shipment_move_id, context=context)
+
+ wf_service.trg_validate(uid, 'stock.picking', shipment_id, 'button_confirm', cr)
+ production.write({'state':'confirmed'}, context=context)
message = _("Manufacturing order '%s' is scheduled for the %s.") % (
production.name,
datetime.strptime(production.date_planned,'%Y-%m-%d %H:%M:%S').strftime('%m/%d/%Y'),
)
self.log(cr, uid, production.id, message)
- return picking_id
+ return shipment_id
def force_production(self, cr, uid, ids, *args):
""" Assigns products.
diff --git a/addons/mrp/mrp_demo.xml b/addons/mrp/mrp_demo.xml
index d19a99a12ca..547bf298315 100644
--- a/addons/mrp/mrp_demo.xml
+++ b/addons/mrp/mrp_demo.xml
@@ -5,6 +5,32 @@
+
+
+ normal
+ ASML - HOUR
+ Costing Account For Hours of Assembly.
+
+
+
+ normal
+ ASML - Cycle
+ Costing Account For Cycle of Assembly.
+
+
+
+
+ Assembly Service
+
+
+
+ 0.1
+
+
+ service
+ Assembly Service Cost
+
+
- [1]
Assembly Line 1
- [2]
Custom Assembly Line
- [3]
Component Manufacturing
@@ -154,18 +192,38 @@
Short time assembly
2
+ 5
long time assembly
5
+ 2
+ 15
+
+
+
+ Testing
+ 1
+ 10
+
+
+
+
+
+ Packing
+ 0.5
+ 5
+
+
0.5
3
+ 5
assembly main + processor + fan
@@ -214,7 +272,7 @@
- RAM on demand
+ RAM512 on demand
18
1.0
@@ -254,12 +312,12 @@
- RAM on demand
+ RAM256 on demand
36
1.0
phantom
-
+
@@ -267,42 +325,28 @@
38
1.0
+
-
+
KIT
- Kit Mouse
+ Kit Keyboard + Mouse
40
1.0
- normal
+ phantom
-
-
-
- Keyboard
- 42
-
- 1.0
-
-
-
-
- Mouse
- 44
-
- 1.0
-
-
+
+
Moon PC
45
1.0
-
+
Mainboard ASUStek A7N8X
@@ -502,6 +546,35 @@
+
+
+ KIT
+ 15
+ Kit Keyboard + Mouse
+
+ 1.0
+ normal
+
+
+
+
+ Mouse
+ 121
+
+ 1.0
+
+
+
+
+
+ Keyboard
+ 123
+
+ 1.0
+
+
+
+
Regular processor config
111
@@ -536,176 +609,496 @@
Kit Keyboard + Mouse
1.0
- normal
+ phantom
-
- Mouse
- 121
-
- 1.0
-
-
-
-
- Keyboard
- 123
-
- 1.0
-
-
-
-
+
+
Default BOM for Shelf of 100cm
SHE100
- 129
+ 10
- 1.0
+ 1.0
+
+
+
+
+
+
+ Side Panel
+ 101
+
+
+ 2.0
+
Assembly Section
- 123
+ 102
- 4.0
-
-
-
-
- Side Panel
- 125
-
-
- 2.0
-
-
-
-
- Metal Cleats
- 127
-
-
- 12.0
-
+ 4.0
+
+ phantom
- 131
+ 103
- 1.0
+ 1.0
Rear panel SHE100
+ phantom
- 133
+ 104
- 3.0
- Shelf 100
+ 3.0
+ RCK100
+ phantom
+
+
+
+
+ 133
+
+
+ 1.0
+ RCK100
+
+
+ 1331
+
+
+
+ 1.0
+ phantom
+ SPAN100
+
+
+ 1332
+
+
+
+ 4.0
+ METC000
+
+
+
+ 135
+
+
+ 1.0
+ SPAN100
+
+
+ 1351
+
+
+
+ 0.083
+ WOOD010
+
+
+
+ Assembly Section
+ 123
+
+
+ 1.0
+
+
- 135
+ 1231
-
- 1.0
-
- Wood Lintel 4m
+ 0.25
+
+ Wood Lintel 0.25m
+
+
+ 131
+
+
+ 1.0
+ Rear panel SHE100
+
+
+
+ 1311
+
+
+
+ 0.25
+ WOOD002 0.25m
+
+
Default BOM for Shelf of 200cm
SHE200
- 137
-
+ 137
+
- 1.0
-
-
-
- Default BOM for KIT Shelf of 100cm
- SHE100KIT
- 139
-
-
- 1.0
- phantom
-
-
-
- Assembly Section
- 143
-
-
- 4.0
-
-
-
-
- Side Panel
- 145
-
-
- 2.0
-
+ 1.0
+
- 147
-
+ 147
+
- 1.0
+ 1.0
Rear panel SHE200
Assembly Section
- 149
+ 149
- 4.0
+ 4.0
Side Panel
- 151
+ 151
- 2.0
+ 2.0
- 153
+ 153
- 3.0
+ 3.0
Shelf 200
Metal Cleats
- 155
+ 155
- 12.0
+ 12.0
+
+
+ Default BOM for KIT Shelf of 100cm
+ SHE100KIT
+ 139
+
+
+ 1.0
+ phantom
+
+
+
+
+
+ Assembly Section
+ 143
+
+
+ 4.0
+
+
+
+
+ Side Panel
+ 145
+
+
+ 2.0
+
+
+
+
+
+
+ Dozen
+
+ bigger
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+ Fluid
+
+
+ Litre
+
+ 1.0
+
+
+
+ Orange Juice
+ make_to_order
+ produce
+ product
+
+
+
+
+
+ Orange
+ make_to_stock
+ buy
+ product
+
+
+
+
+
+
+ 1.0
+
+
+
+
+ Sugar
+ make_to_stock
+ buy
+ product
+
+
+
+
+
+
+
+ 2.0
+
+
+
+ Water
+ make_to_order
+ buy
+ consu
+
+
+
+
+
+
+
+ 2.0
+
+
+
+ 200
+
+
+ 1.0
+ Orange Juice
+ phantom
+
+
+
+ 201
+
+
+ 0.5
+ Orange
+ normal
+
+
+
+ 202
+
+
+ 0.02
+ Sugar
+ normal
+
+
+
+ 203
+
+
+ 0.80
+ Water
+ normal
+
+
+
+
+
+ 10.0
+ 5.0
+ 1
+
+
+
+
+
+
+
+ 4.0
+ 2.0
+ 1
+ max
+
+
+
+
+
+
+
+
+
+ 100.00
+
+
+
+
+ Shirt
+ make_to_stock
+ produce
+ product
+
+
+
+
+
+ Cloth
+ make_to_order
+ buy
+ product
+
+
+
+
+
+
+
+ 300.0
+
+
+
+ Shirt Buttons
+ make_to_stock
+ buy
+ product
+
+
+
+
+
+
+
+ 100.0
+
+
+ 300
+
+
+ 1.0
+ Shirt
+
+
+
+ 301
+
+
+ 1.0
+ Cloth
+ normal
+
+
+
+ 302
+
+
+ 8.0
+ Shirt Buttons
+ normal
+
+
+
+
+
+
+ 50.0
+ 10.0
+ 1
+ max
+
+
+
+
+
+
+
+
+
+
@@ -714,11 +1107,9 @@
-
-
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index eb1070ac941..080456d17e8 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -317,7 +317,7 @@
-
+
subflow.done
diff --git a/addons/mrp/product.py b/addons/mrp/product.py
index c3f9ee855df..1bc3bb749ce 100644
--- a/addons/mrp/product.py
+++ b/addons/mrp/product.py
@@ -25,37 +25,9 @@ from tools.translate import _
class product_product(osv.osv):
_inherit = "product.product"
-
- def get_product_accounts(self, cr, uid, product_id, context=None):
- """ To get the stock input account, stock output account and stock journal related to product.
- @param product_id: product id
- @return: dictionary which contains information regarding stock input account, stock output account and stock journal
- """
- product_obj = self.pool.get('product.product').browse(cr, uid, product_id, False)
- res = super(product_product,self).get_product_accounts(cr, uid, product_id, context=context)
- stock_input_acc = product_obj.property_stock_account_input and product_obj.property_stock_account_input.id or False
- if not stock_input_acc:
- stock_input_acc = product_obj.categ_id.property_stock_account_input_categ and product_obj.categ_id.property_stock_account_input_categ.id or False
-
- stock_output_acc = product_obj.property_stock_account_output and product_obj.property_stock_account_output.id or False
- if not stock_output_acc:
- stock_output_acc = product_obj.categ_id.property_stock_account_output_categ and product_obj.categ_id.property_stock_account_output_categ.id or False
-
- journal_id = product_obj.categ_id.property_stock_journal and product_obj.categ_id.property_stock_journal.id or False
-
- res.update({'stock_account_input': stock_input_acc})
- res.update({'stock_account_output': stock_output_acc})
- res.update({'stock_journal': journal_id})
-
- return res
-
-
_columns = {
"bom_ids": fields.one2many('mrp.bom', 'product_id','Bill of Materials'),
}
-
-# Removed do_change_standard_price for the fix of lp:747056
-
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
diff --git a/addons/mrp/test/cancel_order.yml b/addons/mrp/test/cancel_order.yml
new file mode 100644
index 00000000000..d10b8c1780b
--- /dev/null
+++ b/addons/mrp/test/cancel_order.yml
@@ -0,0 +1,25 @@
+-
+ I first confirm order for shirt.
+-
+ !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_shirt}
+-
+ In order to cancel the production order, I first cancel its picking.
+-
+ !function {model: stock.picking, name: action_cancel}:
+ - model: mrp.production
+ eval: "[obj(ref('mrp_production_shirt')).picking_id.id]"
+-
+ Now I cancel the production order.
+-
+ !workflow {model: mrp.production, action: button_cancel, ref: mrp_production_shirt}
+-
+ Now I check that the production order is cancelled.
+-
+ !assert {model: mrp.production, id: mrp_production_shirt}:
+ - state == 'cancel'
+-
+ I remove cancelled production order.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shirt"), context=context)
+ self.unlink(cr, uid, [order.id])
diff --git a/addons/mrp/test/mrp_packs.yml b/addons/mrp/test/mrp_packs.yml
deleted file mode 100644
index 800d4f56476..00000000000
--- a/addons/mrp/test/mrp_packs.yml
+++ /dev/null
@@ -1,103 +0,0 @@
--
- In order to test the Packs in OpenERP, we will try to sell a "Pack of 24
- beers" which is composed of 24 "Beers" and a "Beers Pack".
--
- I start by creating the Beers product.
--
- !record {model: product.product, id: product_product_beers0}:
- categ_id: product.cat1
- name: Beers
- procure_method: make_to_stock
- seller_ids:
- - delay: 1
- name: base.res_partner_agrolait
- min_qty: 2.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I create the "Beers Pack" product.
--
- !record {model: product.product, id: product_product_beerspack0}:
- categ_id: product.cat1
- name: Beers Pack
- procure_method: make_to_stock
- seller_ids:
- - delay: 1
- name: base.res_partner_asus
- min_qty: 2.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I create the "Pack of 24 beers" product
--
- !record {model: product.product, id: product_product_packofbeers0}:
- categ_id: product.cat1
- name: Pack of 24 Beers
- procure_method: make_to_order
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I define the Phantom Bill of Material for the "Pack of 24 beers"
--
- !record {model: mrp.bom, id: mrp_bom_packofbeers0}:
- bom_lines:
- - company_id: base.main_company
- name: Beers
- product_id: product_product_beers0
- product_qty: 24.0
- product_uom: product.product_uom_unit
- type: normal
- - company_id: base.main_company
- name: Beers Pack
- product_id: product_product_beerspack0
- product_qty: 1.0
- product_uom: product.product_uom_unit
- type: normal
- name: Pack of 24 Beers
- product_id: product_product_packofbeers0
- product_qty: 1.0
- product_uom: product.product_uom_unit
- type: phantom
--
- As all my data are created, I will create an outgoing order picking for a
- "Pack of 24 Beers"
--
- !record {model: stock.picking, id: picking_out}:
- address_id: base.res_partner_address_tang
- company_id: base.main_company
- invoice_state: none
- move_lines:
- - company_id: base.main_company
- location_dest_id: stock.stock_location_customers
- location_id: stock.stock_location_stock
- name: Pack of 24 Beers
- product_id: product_product_packofbeers0
- product_qty: 2.0
- product_uom: product.product_uom_unit
- move_type: direct
- type: out
--
- I validate the newly created picking.
--
- !python {model: stock.picking}: |
- self.draft_validate(cr, uid, [ref("picking_out")], {
- "active_ids": [ref("stock.menu_action_picking_tree")],
- "active_id": ref("stock.menu_action_picking_tree"), }
- )
--
- I check that my Picking of a "Pack of 24 beers" has been automatically
- converted to a picking of 24 beers and a pack of beer, so that my
- stock of beers remains exact.
--
- !assert {model: stock.picking, id: picking_out, string: pack_of_beer_splitted}:
- - len(move_lines) >= 2
- - move_lines[0].product_id.id <> move_lines[1].product_id.id
- - move_lines[0].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
- - move_lines[1].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
-
diff --git a/addons/mrp/test/mrp_phantom_bom.yml b/addons/mrp/test/mrp_phantom_bom.yml
deleted file mode 100644
index ca29b24ea23..00000000000
--- a/addons/mrp/test/mrp_phantom_bom.yml
+++ /dev/null
@@ -1,273 +0,0 @@
--
- In order to test the mrp phantom bom type in OpenERP, I will create products
- and then I will create Phantom bom structure for those products.
--
- I create BOM category fluid for Orange Juice
--
- !record {model: product.uom.categ, id: product_uom_categ_fluid}:
- name: Fluid
--
- I create the products required to produce some orange juices with Oranges, Sugar and Water.
--
- !record {model: product.uom, id: product_uom_litre0}:
- category_id: product_uom_categ_fluid
- factor: 1.0
- name: Litre
- rounding: 0.01
--
- I create record for product Orange Juice.
--
- !record {model: product.product, id: product_product_orangejuice0}:
- categ_id: product.cat1
- name: Orange Juice
- procure_method: make_to_order
- supply_method: produce
- type: product
- uom_id: product_uom_litre0
- uom_po_id: product_uom_litre0
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
--
- I create record for product Orange.
--
- !record {model: product.product, id: product_product_orange0}:
- categ_id: product.cat1
- name: Orange
- procure_method: make_to_stock
- seller_ids:
- - delay: 1
- name: base.res_partner_asus
- min_qty: 1.0
- product_uom: product.product_uom_kgm
- supply_method: buy
- type: product
- uom_id: product.product_uom_kgm
- uom_po_id: product.product_uom_kgm
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
--
- I create record for product Sugar.
--
- !record {model: product.product, id: product_product_sugar0}:
- categ_id: product.cat1
- name: Sugar
- procure_method: make_to_stock
- seller_ids:
- - delay: 1
- name: base.res_partner_desertic_hispafuentes
- min_qty: 2.0
- product_uom: product.product_uom_kgm
- supply_method: buy
- type: product
- uom_id: product.product_uom_kgm
- uom_po_id: product.product_uom_kgm
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
--
- I create record for product Water.
--
- !record {model: product.product, id: product_product_water0}:
- categ_id: product.cat1
- name: Water
- procure_method: make_to_order
- seller_ids:
- - delay: 1
- name: base.res_partner_agrolait
- product_uom: product_uom_litre0
- min_qty: 2.0
- supply_method: buy
- type: consu
- uom_id: product_uom_litre0
- uom_po_id: product_uom_litre0
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
--
- I define the BoM to produce an orange juice.
--
- !record {model: mrp.bom, id: mrp_bom_orangejuice0}:
- company_id: base.main_company
- name: Orange Juice
- product_efficiency: 1.0
- product_id: product_product_orangejuice0
- product_qty: 1.0
- product_uom: product_uom_litre0
- type: phantom
--
- changes UOM and name if product change.
--
- !python {model: mrp.bom}: |
- production_id = self.browse(cr, uid, [ref('mrp_bom_orangejuice0')], context=context)[0]
- self.onchange_product_id(cr, uid, [ref('mrp_bom_orangejuice0')], production_id.product_id.id, False)
--
- I create bom lines for BoM for Orange Juice.
--
- !record {model: mrp.bom, id: mrp_bom_orangejuice0}:
- bom_lines:
- - bom_id: mrp_bom_orangejuice0
- company_id: base.main_company
- name: Orange
- product_efficiency: 1.0
- product_id: product_product_orange0
- product_qty: 0.5
- product_uom: product.product_uom_kgm
- type: normal
- - bom_id: mrp_bom_orangejuice0
- company_id: base.main_company
- name: Sugar
- product_efficiency: 1.0
- product_id: product_product_sugar0
- product_qty: 0.02
- product_uom: product.product_uom_kgm
- type: normal
- - bom_id: mrp_bom_orangejuice0
- company_id: base.main_company
- name: Water
- product_efficiency: 1.0
- product_id: product_product_water0
- product_qty: 0.80000000000000004
- product_uom: product_uom_litre0
- type: normal
--
- I define Minimum stock rules for my stockable product "Orange".
--
- !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
- company_id: base.main_company
- location_id: stock.stock_location_stock
- logic: max
- name: OP/00002
- product_id: product_product_orange0
- product_max_qty: 10.0
- product_min_qty: 5.0
- product_uom: product.product_uom_kgm
- qty_multiple: 1
- warehouse_id: stock.warehouse0
--
- I define Minimum stock rules for my stockable product "Sugar".
--
- !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op1}:
- company_id: base.main_company
- location_id: stock.stock_location_stock
- logic: max
- name: OP/00003
- product_id: product_product_sugar0
- product_max_qty: 4.0
- product_min_qty: 2.0
- product_uom: product.product_uom_kgm
- qty_multiple: 1
- warehouse_id: stock.warehouse0
--
- I want to produce 100 litres of Orange juice. I am creating a manufacturing order for this.
- I want to see how much quantities of sub products I need, to produce the Orange juice.
--
- I compute the data. I get the bill of material of Orange juice and list of
- scheduled products according to my bom.
--
- !record {model: mrp.production, id: mrp_production_mo0}:
- company_id: base.main_company
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_output
- location_src_id: stock.stock_location_stock
- product_id: product_product_orangejuice0
- product_qty: 100.0
- product_uom: product_uom_litre0
--
- Creating an mrp.production record. Computing Bills of materials.
--
- !record {model: mrp.production, id: mrp_production_mo0}:
- bom_id: mrp.mrp_bom_orangejuice0
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_output
- location_src_id: stock.stock_location_stock
- product_id: mrp.product_product_orangejuice0
- product_lines:
- - name: Orange
- product_id: mrp.product_product_orange0
- product_qty: 50.0
- product_uom: product.product_uom_kgm
- production_id: mrp_production_mo0
- - name: Sugar
- product_id: mrp.product_product_sugar0
- product_qty: 2.0
- product_uom: product.product_uom_kgm
- production_id: mrp_production_mo0
- - name: Water
- product_id: mrp.product_product_water0
- product_qty: 80.0
- product_uom: mrp.product_uom_litre0
- production_id: mrp_production_mo0
- product_qty: 100.0
- product_uom: mrp.product_uom_litre0
--
- I confirm the order.
--
- !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo0}
--
- I am checking Procurement orders. There are 3 orders generated for Oranges, Sugar and Water.
--
- !python {model: procurement.order}: |
- proc_ids = self.search(cr, uid, [('product_id','in',[ref('product_product_orange0'),ref('product_product_sugar0'),ref('product_product_water0')])])
- assert proc_ids, 'No Procurements!'
--
- The scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
--
- I am checking Internal picking. I see one picking for Orange juice and its
- stock moves for Oranges, Sugar and Water made correctly.
--
- !python {model: stock.picking}: |
- pick_ids = self.search(cr, uid, [('type','=','internal')])
- assert pick_ids, 'No Internal Pickings!'
--
- According to minimum stock rules. I have 2 purchase orders for
- Sugar with 6 Kg from Axelor and Orange 60 Kg from ASUStek.
--
- I confirm the purchase order of Sugar and Orange.
--
- !python {model: purchase.order}: |
- import netsvc
- purch_ids = self.search(cr, uid, [('state','=','draft')])
- assert purch_ids, 'No Purchase Orders were made!'
- wf_service = netsvc.LocalService("workflow")
- for p_id in purch_ids:
- wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
--
- I see two incoming pickings for Orange and Sugar, and receive them.
--
- !python {model: stock.picking}: |
- pick_ids = self.search(cr, uid, [('type','=','in')])
- assert pick_ids, 'No Incoming Shipments found!'
- stock_partial_picking = self.pool.get('stock.partial.picking')
- for pick_id in pick_ids:
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick_id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- Again the scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
--
- I check my internal picking of "Orange Juice" is done.
--
- !python {model: stock.picking}: |
- pick_ids = self.search(cr, uid, [('type','=','internal'),('state','=','done')])
- assert pick_ids, 'Internal Picking is not done yet!'
--
- I check my manufacturing order for "Orange Juice" is ready or not.
--
- !python {model: mrp.production}: |
- prod_ids = self.search(cr, uid, [('state','=','ready'),('id','=',ref('mrp_production_mo0'))])
- assert prod_ids, 'Manufacturing order is not ready!'
--
- I start the production order.
--
- !workflow {model: mrp.production, action: button_produce, ref: mrp_production_mo0}
diff --git a/addons/mrp/test/mrp_procurement.yml b/addons/mrp/test/mrp_procurement.yml
deleted file mode 100644
index f5bcf4f767a..00000000000
--- a/addons/mrp/test/mrp_procurement.yml
+++ /dev/null
@@ -1,278 +0,0 @@
--
- In order to test the flow of procurement orders. I will put some orders with
- different procurement methods. I have installed sale, mrp and purchase modules.
--
- I am creating products.
--
- I create record for product Shirt.
--
- !record {model: product.product, id: product_product_shirt0}:
- categ_id: product.cat1
- cost_method: standard
- list_price: 350.0
- mes_type: fixed
- name: Shirt
- procure_method: make_to_stock
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
- seller_delay: '1'
- standard_price: 300.0
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
- volume: 0.0
- warranty: 0.0
- weight: 0.0
- weight_net: 0.0
--
- I create record for product Cloth.
--
- !record {model: product.product, id: product_product_cloth0}:
- categ_id: product.cat1
- cost_method: standard
- mes_type: fixed
- name: Cloth
- procure_method: make_to_order
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
- seller_delay: '1'
- seller_ids:
- - delay: 1
- name: base.res_partner_maxtor
- product_uom: product.product_uom_unit
- min_qty: 300.0
- standard_price: 1.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
- volume: 0.0
- warranty: 0.0
- weight: 0.0
- weight_net: 0.0
--
- I create record for product Buttons.
--
- !record {model: product.product, id: product_product_buttons0}:
- categ_id: product.cat1
- cost_method: standard
- mes_type: fixed
- name: Buttons
- procure_method: make_to_stock
- property_stock_inventory: stock.location_inventory
- property_stock_procurement: stock.location_procurement
- property_stock_production: stock.location_production
- seller_delay: '1'
- seller_ids:
- - delay: 1
- name: base.res_partner_asus
- product_uom: product.product_uom_kgm
- min_qty: 100.0
- standard_price: 1.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_kgm
- uom_po_id: product.product_uom_kgm
- volume: 0.0
- warranty: 0.0
- weight: 0.0
- weight_net: 0.0
--
- I am creating bills of material for 'Shirt'.
--
- I create bills of material for Shirt.
--
- !record {model: mrp.bom, id: mrp_bom_shirt0}:
- bom_lines:
- - company_id: base.main_company
- name: Cloth
- product_efficiency: 1.0
- product_id: product_product_cloth0
- product_qty: 1.0
- product_uom: product.product_uom_unit
- product_uos_qty: 0.0
- sequence: 0.0
- type: normal
- - company_id: base.main_company
- name: Buttons
- product_efficiency: 1.0
- product_id: product_product_buttons0
- product_qty: 8.0
- product_uom: product.product_uom_kgm
- product_uos_qty: 0.0
- sequence: 0.0
- type: normal
- company_id: base.main_company
- name: Shirt
- product_efficiency: 1.0
- product_id: product_product_shirt0
- product_qty: 1.0
- product_uom: product.product_uom_unit
- product_uos_qty: 0.0
- sequence: 0.0
- type: normal
--
- I create minimum stock rule for product Buttons
--
- !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
- company_id: base.main_company
- location_id: stock.stock_location_stock
- logic: max
- name: OP/00007
- product_id: mrp.product_product_buttons0
- product_max_qty: 50.0
- product_min_qty: 10.0
- product_uom: product.product_uom_kgm
- qty_multiple: 1
- warehouse_id: stock.warehouse0
--
- I create a procurement order for product Shirt.
--
- !record {model: procurement.order, id: procurement_order_shirt0}:
- name: 'PROC: Shirt'
- product_id: product_product_shirt0
- product_qty: 5.00
- location_id: stock.stock_location_stock
- product_uom: product.product_uom_unit
--
- I confirm the procurement order.
--
- !workflow {model: procurement.order, action: button_confirm, ref: procurement_order_shirt0}
--
- I run the procurement.
--
- !workflow {model: procurement.order, action: button_check, ref: procurement_order_shirt0}
--
- I see that there is a manufacturing order for Shirt.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- order_ids = self.search(cr, uid, [('product_id','=',ref('product_product_shirt0'))])
- assert order_ids, 'No Manufacturing Order.'
--
- I also check that there are two more procurement orders for sub products Cloth and Buttons.
--
- !python {model: procurement.order}: |
- from tools.translate import _
- proc_ids = self.search(cr, uid, [('product_id','in',[ref('product_product_cloth0'),ref('product_product_buttons0')])])
- assert proc_ids, 'No Procurements.'
--
- The scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
--
- I check that there is one purchase order for Cloth.
--
- !python {model: purchase.order}: |
- purch_ids = self.search(cr, uid, [('partner_id.name','=','Maxtor')])
- assert purch_ids, 'No Purchase Orders.'
--
- I confirm purchase order for Cloth.
--
- !python {model: purchase.order}: |
- import netsvc
- purch_ids = self.search(cr, uid, [('partner_id.name','=','Maxtor')])
- wf_service = netsvc.LocalService("workflow")
- for p_id in purch_ids:
- wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
-
--
- I confirm purchase order for Buttons.
--
- !python {model: purchase.order}: |
- import netsvc
- purch_ids = self.search(cr, uid, [('partner_id.name','=','ASUStek')])
- wf_service = netsvc.LocalService("workflow")
- for p_id in purch_ids:
- wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
-
--
- I Check incoming shipments for cloth. And receive products.
--
- !python {model: stock.picking}: |
- pick_ids = self.search(cr, uid, [('address_id.name','=','Wong'),('state','=','assigned')])
- assert pick_ids, 'No Incoming Shipments found!'
- stock_partial_picking = self.pool.get('stock.partial.picking')
- for pick_id in pick_ids:
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick_id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I Check incoming shipments for buttons and receive products.
--
- !python {model: stock.picking}: |
- pick_ids = self.search(cr, uid, [('address_id.name','=','Tang'),('state','=','assigned')])
- assert pick_ids, 'No Incoming Shipments found!'
- stock_partial_picking = self.pool.get('stock.partial.picking')
- for pick_id in pick_ids:
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick_id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- Run scheduler again.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
--
- Check state of manufacturing order for Shirt.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- order_ids = self.search(cr, uid, [('product_id','=',ref('product_product_shirt0')),('state','=','ready')])
- assert order_ids, 'No Manufacturing Order in Ready state.'
--
- I start production order for Shirt.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- import netsvc
- prod_ids = self.search(cr, uid, [('state','=','ready')])
- assert prod_ids, _('No Ready Manufacturing Orders found!')
- wf_service = netsvc.LocalService("workflow")
- for p_id in prod_ids:
- wf_service.trg_validate(uid, 'mrp.production', p_id, 'button_produce', cr)
--
- I create record for producing products with quantity 5.00.
--
- !record {model: mrp.product.produce, id: mrp_product_produce0}:
- product_qty: 2.00
- mode: 'consume_produce'
--
- I produce 2 products with 5.00 quantities each.
--
- !python {model: mrp.product.produce}: |
- prod_obj = self.pool.get('mrp.production')
- prod_ids = prod_obj.search(cr, uid, [('product_id.name','=','Shirt')])
- self.do_produce(cr, uid, [ref('mrp_product_produce0')], context={'active_ids': prod_ids})
--
- I create record for remaining products with quantity 35.00.
--
- !record {model: stock.move.consume, id: stock_move_consume0}:
- product_id: product_product_buttons0
- product_qty: 35.00
- product_uom: product.product_uom_unit
- location_id: stock.stock_location_stock
--
- I produce remaining product Buttons with 35.00 quantity.
--
- !python {model: stock.move.consume}: |
- from tools.translate import _
- stock_obj = self.pool.get('stock.move')
- stock_ids = stock_obj.search(cr, uid, [('product_id.name','=','Buttons')])
- self.do_move_consume(cr, uid, [ref('stock_move_consume0')], context={'active_ids': stock_ids})
--
- And finally production order is done.
--
- !python {model: mrp.product.produce}: |
- prod_obj = self.pool.get('mrp.production')
- prod_ids = prod_obj.search(cr, uid, [('product_id.name','=','Shirt')])
- self.do_produce(cr, uid, [ref('mrp_product_produce0')], context={'active_ids': prod_ids})
-
diff --git a/addons/mrp/test/mrp_production_cancel.yml b/addons/mrp/test/mrp_production_cancel.yml
deleted file mode 100644
index 1dc20a215d1..00000000000
--- a/addons/mrp/test/mrp_production_cancel.yml
+++ /dev/null
@@ -1,29 +0,0 @@
--
- In order to test the manufacturing order in Openerp,
- I am creating one manufacturing order
--
- !record {model: mrp.production, id: mrp_production_mo1}:
- company_id: base.main_company
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_stock
- location_src_id: stock.stock_location_stock
- product_id: product.product_product_pc1
- name: MO/01234
- product_qty: 5.0
- product_uom: product.product_uom_unit
- product_uos_qty: 0.0
--
- I confirm the order.
--
- !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}
--
- In order to cancel the MO, I first cancel its picking.
--
- !python {model: stock.picking}: |
- mrp_obj = self.pool.get('mrp.production')
- mo = mrp_obj.browse(cr, uid, ref("mrp_production_mo1"))
- self.action_cancel(cr, uid, [mo.picking_id.id], context=None)
--
- Then I Cancel the production order and related stock moves.
--
- !workflow {model: mrp.production, action: button_cancel, ref: mrp_production_mo1}
\ No newline at end of file
diff --git a/addons/mrp/test/mrp_production_order.yml b/addons/mrp/test/mrp_production_order.yml
deleted file mode 100644
index 57d75e1c1a5..00000000000
--- a/addons/mrp/test/mrp_production_order.yml
+++ /dev/null
@@ -1,119 +0,0 @@
--
- In order to test the manufacturing order working with procurements I will use
- some products with different supply method and procurement method, also check
- the bills of material for the products.
--
- I am creating one manufacturing order.
--
- !record {model: mrp.production, id: mrp_production_mo1}:
- company_id: base.main_company
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_stock
- location_src_id: stock.stock_location_stock
- product_id: product.product_product_pc1
- name: MO/0123
- product_qty: 5.0
- product_uom: product.product_uom_unit
- product_uos_qty: 0.0
--
- I compute the data.
--
- !python {model: mrp.production}: |
- self.action_compute(cr, uid, [ref("mrp_production_mo1")])
--
- I confirm the order.
--
- !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}
--
- I create record for changing production quantity to 6.00
--
- !record {model: change.production.qty, id: mrp_production_qty}:
- product_qty: 6.0
--
- Changes the Quantity of Product.
--
- !python {model: change.production.qty}: |
- context = {"lang": 'en_US', "active_model":"mrp.production", "active_ids": [ref("mrp_production_mo1")], "tz": False, "active_id":ref('mrp_production_mo1')}
- self.default_get(cr, uid, ["product_qty"], context)
- self.change_prod_qty(cr, uid, [ref("mrp_production_qty")], context=context)
--
- I check now quantity of the production order is 6 or not.
--
- !assert {model: mrp.production, id: mrp_production_mo1}:
- - product_qty == 6
--
- I am checking Procurement orders for components of PC1.
--
- !python {model: procurement.order}: |
- from tools.translate import _
- production_obj = self.pool.get('mrp.production')
- production = production_obj.browse(cr, uid, ref('mrp_production_mo1'))
- product_ids = map(lambda x:x.product_id.id, production.move_lines)
- proc_ids = self.search(cr, uid, [('product_id','in',product_ids)])
- assert proc_ids, _('No Procurements!')
--
- The scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
--
- I am checking Internal picking.
--
- !python {model: stock.picking}: |
- from tools.translate import _
- pick_ids = self.search(cr, uid, [('type','=','internal')])
- assert pick_ids, _('No Internal Pickings!')
--
- I see that there is a manufacturing order for the sub product CPU_GEN with ready state and I start production of it.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- order_ids = self.search(cr, uid, [('state','=','ready'), ('product_id', '=', ref('product.product_product_cpu_gen'))])
- assert order_ids, _('No manufacturing order in Ready state!')
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- for order in order_ids:
- wf_service.trg_validate(uid, 'mrp.production', order, 'button_produce', cr)
--
- I create record for producing products with quantity 1.00.
--
- !record {model: mrp.product.produce, id: mrp_product_produce0}:
- product_qty: 1.00
- mode: 'consume_produce'
--
- I produce the product.
--
- !python {model: mrp.product.produce}: |
- prod_obj = self.pool.get('mrp.production')
- prod_ids = prod_obj.search(cr, uid, [('state','=','in_production'), ('product_id', '=', ref('product.product_product_cpu_gen'))])
- self.do_produce(cr, uid, [ref('mrp_product_produce0')], context={'active_ids': prod_ids})
--
- Now the manufacturing order for subproduct CPU_GEN is done and manufacturing
- order for PC1 is in ready state.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- prod_ids = self.search(cr, uid, [('state','=','done'), ('product_id', '=', ref('product.product_product_cpu_gen'))])
- assert prod_ids, _('Manufacturing order for CPU_GEN is yet not done!')
--
- I start producing the product PC1.
--
- !workflow {model: mrp.production, action: button_produce, ref: mrp_production_mo1}
--
- I create record for producing products with quantity 6.00.
--
- !record {model: mrp.product.produce, id: mrp_product_produce1}:
- product_qty: 6.00
- mode: 'consume_produce'
--
- Finally my production order is done.
--
- !python {model: mrp.product.produce}: |
- context = {"lang": 'en_US', "active_model":"mrp.production", "active_ids": [ref("mrp_production_mo1")], "tz": False, "active_id":ref('mrp_production_mo1')}
- self.do_produce(cr, uid, [ref('mrp_product_produce1')], context=context)
--
- I check now the production order for PC1 is done.
--
- !assert {model: mrp.production, id: mrp_production_mo1}:
- - state == 'done'
diff --git a/addons/mrp/test/mrp_report.yml b/addons/mrp/test/mrp_report.yml
deleted file mode 100644
index 48126b5edcd..00000000000
--- a/addons/mrp/test/mrp_report.yml
+++ /dev/null
@@ -1,38 +0,0 @@
--
- In order to test the PDF reports defined on a MRP, we will print a BOM Structure Report
--
- !python {model: mrp.bom}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.bom.structure').create(cr, uid, [ref('mrp.mrp_bom_0'),ref('mrp.mrp_bom_1'),ref('mrp.mrp_bom_2'),ref('mrp.mrp_bom_23'),ref('mrp.mrp_bom_1901'),ref('mrp.mrp_bom_assemblysection0'),ref('mrp.mrp_bom_sidepanel0'),ref('mrp.mrp_bom_defaultbomforshelfofcm1'),ref('mrp.mrp_bom_sidepanel3')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'mrp-bom_structure_report.'+format), 'wb+').write(data)
-
--
- In order to test the PDF reports defined on a MRP, we will print Production Order Report
--
- !python {model: mrp.production}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.mrp.production.order').create(cr, uid, [ref('mrp.mrp_production_mo1')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'mrp-production_order_report.'+format), 'wb+').write(data)
-
--
- Print Product Price Report through the wizard
--
- !python {model: product.product}: |
- ctx={}
- ctx.update({'model': 'product.product','active_ids': [1,2,3,5]})
- data_dict = {'number': 1}
- from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_view_mrp_product_price_wizard',wiz_data=data_dict, context=ctx, our_module='mrp')
-
--
- Print Work Center Load Report through the wizard
--
- !python {model: mrp.workcenter}: |
- ctx={}
- ctx.update({'model': 'mrp.workcenter','active_ids': [ref('mrp_workcenter_0'),ref('mrp_workcenter_1')]})
- data_dict = {'time_unit': 'day', 'measure_unit': 'hours'}
- from tools import test_reports
- test_reports.try_report_action(cr, uid, 'action_mrp_workcenter_load_wizard',wiz_data=data_dict, context=ctx, our_module='mrp')
-
diff --git a/addons/mrp/test/order_demo.yml b/addons/mrp/test/order_demo.yml
new file mode 100644
index 00000000000..9c7b8720904
--- /dev/null
+++ b/addons/mrp/test/order_demo.yml
@@ -0,0 +1,27 @@
+-
+ In order to test process of production order, I create Bill of material of Shelf 100cm.
+-
+ !record {model: mrp.bom, id: mrp_bom_defaultbomforshelfofcm0}:
+ product_id: product.product_product_shelfofcm0
+-
+ !record {model: mrp.bom, id: mrp_bom_assemblysection1}:
+ routing_id: mrp.mrp_routing_0
+-
+ !record {model: mrp.bom, id: mrp_bom_rearpanelarm1}:
+ routing_id: mrp.mrp_routing_0
+-
+ I create Production Order of Shelf 100cm to produce 5.0 Dozen PCE.
+-
+ !record {model: mrp.production, id: mrp_production_shelf100cm}:
+ location_src_id: stock.stock_location_stock
+ location_dest_id: stock.stock_location_output
+ product_id: product.product_product_shelfofcm0
+ bom_id: mrp_bom_defaultbomforshelfofcm0
+ routing_id: mrp.mrp_routing_1
+ product_uom: product.product_uom_dozen
+ product_qty: 5.0
+-
+ !record {model: mrp.workcenter, id: mrp_workcenter_0}:
+ product_id: product.product_assembly
+
+
diff --git a/addons/mrp/test/order_process.yml b/addons/mrp/test/order_process.yml
new file mode 100644
index 00000000000..0c970d7d196
--- /dev/null
+++ b/addons/mrp/test/order_process.yml
@@ -0,0 +1,309 @@
+-
+ I compute the production order.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
+ order.action_compute(context=context)
+-
+ I check production lines after compute.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
+ assert len(order.product_lines) == 5, "Production lines are not generated proper."
+ factor = 12.0*5.0
+ sidepanel = False
+ woodlintelm = False
+ woodmm0 = False
+ woodmm10 = False
+ metalcleats = False
+ for line in order.product_lines:
+ if line.product_id.id == ref('product.product_product_sidepanel0'): #SIDEPAN 2 PCE
+ assert not sidepanel, "Production line is already generated for SIDEPAN."
+ assert line.product_qty == (2.0*factor), "Qty is not correspond."
+ assert line.product_uom.id == ref('product.product_uom_unit'), "UOM is not correspond"
+ sidepanel = True
+ elif line.product_id.id == ref('product.product_product_woodlintelm0'): #LIN40 4*0.25 Meter
+ assert not woodlintelm, "Production line is already generated for LIN40."
+ assert line.product_qty == (4*0.25*factor), "Qty is not correspond."
+ assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
+ woodlintelm = True
+ elif line.product_id.id == ref('product.product_product_woodmm0'): #WOOD002 0.25 m
+ assert not woodmm0, "Production line is already generated for WOOD002."
+ assert line.product_qty == (0.25*factor), "Qty is not correspond."
+ assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
+ woodmm0 = True
+ elif line.product_id.id == ref('product.product_product_metalcleats0'): #METC000 4*3 PCE
+ assert not metalcleats, "Production line is already generated for METC000."
+ assert line.product_qty == (4*3*factor), "Qty is not correspond."
+ assert line.product_uom.id == ref('product.product_uom_unit'), "UOM is not correspond"
+ metalcleats = True
+ elif line.product_id.id == ref('product.product_product_woodmm10'): #WOOD010 0.083*3 m
+ assert not woodmm10, "Production line is already generated for WOOD010."
+ assert line.product_qty == (0.083*3*factor), "Qty is not correspond."
+ assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
+ woodmm10 = True
+ else:
+ raise AssertionError('unknown order line: %s' % line)
+ assert sidepanel, "Production line is not generated for SIDEPAN."
+ assert woodlintelm, "Production line is not generated for LIN40."
+ assert woodmm0, "Production line is not generated for WOOD002."
+ assert metalcleats, "Production line is not generated for METC000."
+ assert woodmm10, "Production line is not generated for WOOD010."
+
+-
+ Now I check workcenter lines.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
+ assert len(order.workcenter_lines), "Workcenter lines are not generated proper."
+ for line in order.workcenter_lines:
+ wc = line.workcenter_id
+ hours = ((wc.time_start or 0.0)+(wc.time_stop or 0.0)+line.cycle*(wc.time_cycle or 0.0)) * (wc.time_efficiency or 1.0)
+ factor = 5*12
+ d, m = divmod(factor, wc.capacity_per_cycle)
+ cycle = (d + (m and 1.0 or 0.0))
+ if line.name == "Short time assembly - Assembly Section":
+ assert line.sequence, "Sequence is not correspond: %s" % (line.name)
+ assert line.cycle == (4*cycle), "Cycle is not correspond: %s" % (line.name)
+ assert line.hour == (2*cycle*4 + hours), "Hours is not correspond: %s"% (line.name)
+ elif line.name == "Short time assembly - Rear Panel SHE100":
+ assert line.sequence, "Sequence is not correspond: %s" % (line.name)
+ assert line.cycle == (1*cycle), "Cycle is not correspond: %s" % (line.name)
+ assert line.hour == (2*cycle + hours), "Hours is not correspond: %s"% (line.name)
+ elif line.name == "long time assembly - Shelf of 100cm":
+ assert line.sequence, "Sequence is not correspond: %s" % (line.name)
+ assert line.cycle == (2*cycle), "Cycle is not correspond: %s" % (line.name)
+ assert line.hour == (5*cycle + hours), "Hours is not correspond: %s"% (line.name)
+ elif line.name == "Testing - Shelf of 100cm":
+ assert line.sequence, "Sequence is not correspond: %s" % (line.name)
+ assert line.cycle == (1*cycle), "Cycle is not correspond: %s" % (line.name)
+ assert line.hour == (1*cycle + hours), "Hours is not correspond: %s"% (line.name)
+ elif line.name == "Packing - Shelf of 100cm":
+ assert line.sequence, "Sequence is not correspond: %s" % (line.name)
+ assert line.cycle == (1*cycle), "Cycle is not correspond: %s" % (line.name)
+ assert line.hour == (0.5*cycle + hours), "Hours is not correspond: %s"% (line.name)
+ else:
+ raise AssertionError('unknown workcenter line: %s' % line)
+-
+ I confirm the Production Order.
+-
+ !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_shelf100cm}
+-
+ I check details of Produce Move of Production Order to trace Final Product.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.state == 'confirmed', "Production order should be confirmed."
+ assert order.move_created_ids, "Trace Record is not created for Final Product."
+ move = order.move_created_ids[0]
+ source_location_id = order.product_id.product_tmpl_id.property_stock_production.id
+ assert move.date == order.date_planned, "Planned date is not correspond."
+ assert move.product_id.id == order.product_id.id, "Product is not correspond."
+ assert move.product_uom.id == order.product_uom.id, "UOM is not correspond."
+ assert move.product_qty == order.product_qty, "Qty is not correspond."
+ assert move.product_uos_qty == order.product_uos and order.product_uos_qty or order.product_qty, "UOS qty is not correspond."
+ if order.product_uos:
+ assert move.product_uos.id == order.product_uos.id, "UOS is not correspond."
+ assert move.location_id.id == source_location_id, "Source Location is not correspond."
+ assert move.location_dest_id.id == order.location_dest_id.id, "Destination Location is not correspond."
+ routing_loc = None
+ if order.bom_id.routing_id and order.bom_id.routing_id.location_id:
+ routing_loc = order.bom_id.routing_id.location_id.id
+ date_planned = order.date_planned
+ for move_line in order.move_lines:
+ for order_line in order.product_lines:
+ if move_line.product_id.type not in ('product', 'consu'):
+ continue
+ if move_line.product_id.id == order_line.product_id.id:
+ assert move_line.date == date_planned, "Planned date is not correspond in 'To consume line'."
+ assert move_line.product_qty == order_line.product_qty, "Qty is not correspond in 'To consume line'."
+ assert move_line.product_uom.id == order_line.product_uom.id, "UOM is not correspond in 'To consume line'."
+ assert move_line.product_uos_qty == order_line.product_uos and order_line.product_uos_qty or order_line.product_qty, "UOS qty is not correspond in 'To consume line'."
+ if order_line.product_uos:
+ assert move_line.product_uos.id == order_line.product_uos.id, "UOS is not correspond in 'To consume line'."
+ assert move_line.location_id.id == routing_loc or order.location_src_id.id, "Source location is not correspond in 'To consume line'."
+ assert move_line.location_dest_id.id == source_location_id, "Destination Location is not correspond in 'To consume line'."
+
+-
+ I check details of an Internal Shipment after confirmed production order to bring components in Raw Materials Location.
+-
+ !python {model: mrp.production}: |
+ procurement = self.pool.get('procurement.order')
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.picking_id, 'Internal Shipment should be created!'
+
+ routing_loc = None
+ pick_type = 'internal'
+ address_id = False
+ if order.bom_id.routing_id and order.bom_id.routing_id.location_id:
+ routing_loc = order.bom_id.routing_id.location_id
+ if routing_loc.usage <> 'internal':
+ pick_type = 'out'
+ address_id = routing_loc.address_id and routing_loc.address_id.id or False
+ routing_loc = routing_loc.id
+ assert order.picking_id.type == pick_type, "Shipment should be Internal."
+ assert order.picking_id.address_id.id == address_id, "Shipment Address is not correspond with Adderss of Routing Location."
+ date_planned = order.date_planned
+ for move_line in order.picking_id.move_lines:
+ for order_line in order.product_lines:
+ if move_line.product_id.type not in ('product', 'consu'):
+ continue
+ if move_line.product_id.id == order_line.product_id.id:
+ assert move_line.date == date_planned, "Planned date is not correspond."
+ assert move_line.product_qty == order_line.product_qty, "Qty is not correspond."
+ assert move_line.product_uom.id == order_line.product_uom.id, "UOM is not correspond."
+ assert move_line.product_uos_qty == order_line.product_uos and order_line.product_uos_qty or order_line.product_qty, "UOS qty is not correspond."
+ if order_line.product_uos:
+ assert move_line.product_uos.id == order_line.product_uos.id, "UOS is not correspond."
+ assert move_line.location_id.id == order.location_src_id.id, "Source location is not correspond."
+ assert move_line.location_dest_id.id == routing_loc or order.location_src_id.id, "Destination Location is not correspond."
+ procurement_ids = procurement.search(cr, uid, [('move_id','=',move_line.id)])
+ assert procurement_ids, "Procurement should be created for shipment line of raw materials."
+ shipment_procurement = procurement.browse(cr, uid, procurement_ids[0], context=context)
+ assert shipment_procurement.date_planned == date_planned, "Planned date is not correspond in procurement."
+ assert shipment_procurement.product_id.id == order_line.product_id.id, "Product is not correspond in procurement."
+ assert shipment_procurement.product_qty == order_line.product_qty, "Qty is not correspond in procurement."
+ assert shipment_procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond in procurement."
+ assert shipment_procurement.product_uos_qty == order_line.product_uos and order_line.product_uos_qty or order_line.product_qty, "UOS qty is not correspond in procurement."
+ if order_line.product_uos:
+ assert shipment_procurement.product_uos.id == order_line.product_uos.id, "UOS is not correspond in procurement."
+ assert shipment_procurement.location_id.id == order.location_src_id.id, "Location is not correspond in procurement."
+ assert shipment_procurement.procure_method == order_line.product_id.procure_method, "Procure method is not correspond in procurement."
+
+-
+ I change production qty with 3 Dozen Shelf 100cm.
+-
+ !python {model: change.production.qty}: |
+ context.update({'active_id': ref('mrp_production_shelf100cm')})
+-
+ !record {model: change.production.qty, id: mrp_production_qty}:
+ product_qty: 3.0
+-
+ !python {model: change.production.qty}: |
+ self.change_prod_qty(cr, uid, [ref("mrp_production_qty")], context=context)
+-
+ I check qty after changed in production order.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.product_qty == 3, "Qty is not changed in order."
+ move = order.move_created_ids[0]
+ assert move.product_qty == order.product_qty, "Qty is not changed in move line."
+-
+ I run scheduler.
+-
+ !python {model: procurement.order}: |
+ self.run_scheduler(cr, uid)
+-
+ The production order is Waiting Goods, I forcefully done internal shipment.
+-
+ !python {model: mrp.production}: |
+ self.force_production(cr, uid, [ref("mrp_production_shelf100cm")])
+-
+ I check that production order in ready state after forcefully done internal shipment.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.state == 'ready', 'Production order should be in Ready State.'
+ assert order.picking_id.state == 'done', 'Internal shipment should be done.'
+-
+ Now I start production.
+-
+ !workflow {model: mrp.production, action: button_produce, ref: mrp_production_shelf100cm}
+-
+ I check that production order in production state after start production.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.state == 'in_production', 'Production order should be in production State.'
+-
+ I consume raw materials and put one material in scrap location due to waste it.
+-
+ !python {model: mrp.production}: |
+ scrap_location_ids = self.pool.get('stock.location').search(cr, uid, [('scrap_location','=',True)])
+ scrap_location_id = scrap_location_ids[0]
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ for move in order.move_lines:
+ move.action_consume(move.product_qty)
+ if move.product_id.id == ref("product.product_product_metalcleats0"):
+ move.action_scrap(5.0, scrap_location_id)
+-
+ I produce product.
+-
+ !python {model: mrp.product.produce}: |
+ context.update({'active_id': ref('mrp_production_shelf100cm')})
+-
+ !record {model: mrp.product.produce, id: mrp_product_produce1}:
+ mode: 'consume_produce'
+-
+ !python {model: mrp.product.produce}: |
+ self.do_produce(cr, uid, [ref('mrp_product_produce1')], context=context)
+-
+ I check production order after produced.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ assert order.state == 'done', "Production order should be closed."
+-
+ I check Total Costs at End of Production.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ account_analytic_line = self.pool.get('account.analytic.line')
+ def rounding(f, r):
+ import math
+ if not r:
+ return f
+ return math.ceil(f / r) * r
+
+ for wc_line in order.workcenter_lines:
+ wc = wc_line.workcenter_id
+ accounts = [wc.costs_hour_account_id, wc.costs_cycle_account_id]
+ cost_per_cyle = wc_line.cycle * wc.costs_cycle
+ cost_per_hours = wc_line.hour * wc.costs_hour
+ if accounts and wc.costs_journal_id and wc.costs_general_account_id and (cost_per_cyle or cost_per_hours):
+ line_ids = account_analytic_line.search(cr, uid, [('name','ilike',wc_line.name)])
+ assert line_ids, 'Costs lines are not generated.'
+ for line in account_analytic_line.browse(cr, uid, line_ids, context=context):
+ if wc.costs_hour_account_id and line.account_id.id == wc.costs_hour_account_id.id:
+ assert rounding(line.unit_amount, 3) == rounding(wc_line.hour, 3), "Cost Unit Amount is not correspond."
+ assert rounding(line.amount, 3) == rounding(cost_per_hours, 3), "Cost amount is not correspond."
+ elif wc.costs_cycle_account_id and line.account_id.id == wc.costs_cycle_account_id.id:
+ assert rounding(line.unit_amount, 3) == rounding(wc_line.cycle, 3), "Cost Unit Amount is not correspond."
+ assert rounding(line.amount, 3) == rounding(cost_per_cyle, 3), "Cost Amount is not correspond."
+ else:
+ raise AssertionError('unknown cost line: %s' % line)
+ assert line.general_account_id.id == wc.costs_general_account_id.id, "General Account is not correspond."
+ assert line.journal_id.id == wc.costs_journal_id.id, "Account Journal is not correspond."
+ assert line.product_id.id == wc.product_id.id, "Product is not correspond."
+ assert line.product_uom_id.id == wc.product_id.uom_id.id, "UOM is not correspond."
+
+-
+ I print a "BOM Structure".
+-
+ !python {model: mrp.production}: |
+ import netsvc, tools, os
+ order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
+ (data, format) = netsvc.LocalService('report.bom.structure').create(cr, uid, [order.bom_id.id], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'mrp-bom_structure_report.'+format), 'wb+').write(data)
+
+-
+ I print "Production Order".
+-
+ !python {model: mrp.production}: |
+ import netsvc, tools, os
+ (data, format) = netsvc.LocalService('report.mrp.production.order').create(cr, uid, [ref("mrp_production_shelf100cm")], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'mrp-production_order_report.'+format), 'wb+').write(data)
+
+-
+ I print "Work Center Load Report".
+-
+ !python {model: mrp.workcenter}: |
+ ctx = context.copy()
+ ctx.update({'model': 'mrp.workcenter','active_ids': [ref('mrp_workcenter_0'),ref('mrp_workcenter_1')]})
+ data_dict = {'time_unit': 'day', 'measure_unit': 'hours'}
+ from tools import test_reports
+ test_reports.try_report_action(cr, uid, 'action_mrp_workcenter_load_wizard',wiz_data=data_dict, context=ctx, our_module='mrp')
+
diff --git a/addons/mrp/wizard/mrp_product_produce.py b/addons/mrp/wizard/mrp_product_produce.py
index dc9a235ff63..db4d6e77691 100644
--- a/addons/mrp/wizard/mrp_product_produce.py
+++ b/addons/mrp/wizard/mrp_product_produce.py
@@ -60,22 +60,11 @@ class mrp_product_produce(osv.osv_memory):
}
def do_produce(self, cr, uid, ids, context=None):
- """ To check the product type
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param ids: the ID or list of IDs if we want more than one
- @param context: A standard dictionary
- @return:
- """
- if context is None:
- context = {}
- prod_obj = self.pool.get('mrp.production')
- move_ids = context.get('active_ids', [])
- for data in self.browse(cr, uid, ids, context=context):
- for move_id in move_ids:
- prod_obj.action_produce(cr, uid, move_id,
- data.product_qty, data.mode, context=context)
+ production_id = context.get('active_id', False)
+ assert production_id, "Production Id should be specified in context as a Active ID"
+ data = self.browse(cr, uid, ids[0], context=context)
+ self.pool.get('mrp.production').action_produce(cr, uid, production_id,
+ data.product_qty, data.mode, context=context)
return {}
mrp_product_produce()
diff --git a/addons/mrp_operations/__openerp__.py b/addons/mrp_operations/__openerp__.py
index caa33cc6556..10d82cfb8c4 100644
--- a/addons/mrp_operations/__openerp__.py
+++ b/addons/mrp_operations/__openerp__.py
@@ -65,8 +65,11 @@ So that we can compare the theoretic delay and real delay.
'process/mrp_operation_process.xml',
'mrp_operations_workflow_instance.xml'
],
- 'demo_xml': ['mrp_operation_data.xml'],
- 'test': ['test/mrp_operations.yml', 'test/mrp_operations_report.yml','test/mrp_operation_test.yml'],
+ 'demo_xml': ['mrp_operation_data.xml',
+ 'mrp_operations_demo.yml'],
+ 'test': [
+ 'test/workcenter_operations.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0056233813133',
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index e6f5aa00f28..7bdb883e98e 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -350,6 +350,7 @@ class mrp_production(osv.osv):
if l.production_id and (l.production_id.date_start < po.date_finished):
self.write(cr, uid, [l.production_id.id], {'date_start': po.date_finished})
break
+ return True
def write(self, cr, uid, ids, vals, context=None, update=True, mini=True):
@@ -371,13 +372,13 @@ class mrp_production(osv.osv):
pass
return result
- def action_compute(self, cr, uid, ids, properties=[]):
+ def action_compute(self, cr, uid, ids, properties=[], context=None):
""" Computes bills of material of a product and planned date of work order.
@param properties: List containing dictionaries of properties.
@return: No. of products.
"""
- result = super(mrp_production, self).action_compute(cr, uid, ids, properties=properties)
- self._compute_planned_workcenter(cr, uid, ids, context={})
+ result = super(mrp_production, self).action_compute(cr, uid, ids, properties=properties, context=context)
+ self._compute_planned_workcenter(cr, uid, ids, context=context)
return result
mrp_production()
diff --git a/addons/mrp_operations/mrp_operations_demo.yml b/addons/mrp_operations/mrp_operations_demo.yml
new file mode 100644
index 00000000000..7bfef8a4c7b
--- /dev/null
+++ b/addons/mrp_operations/mrp_operations_demo.yml
@@ -0,0 +1,24 @@
+-
+ !record {model: mrp.production, id: mrp_production_op}:
+ location_src_id: stock.stock_location_stock
+ product_id: product.product_product_cpu3
+ product_qty: 5.0
+ allow_reorder: True
+-
+ !record {model: mrp.production, id: mrp_production_op1}:
+ location_src_id: stock.stock_location_stock
+ product_id: product.product_product_cpu3
+ product_qty: 2.0
+-
+ !function {model: mrp.production, name: action_compute, id: mrp_production_op1}:
+ - model: mrp.production
+ eval: "[obj(ref('mrp_production_op1')).id]"
+-
+ !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_op1}
+-
+ !record {model: mrp.production, id: mrp_production_mo1}:
+ location_src_id: stock.stock_location_stock
+ product_id: product.product_product_cpu_gen
+ product_qty: 5.0
+-
+ !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}
diff --git a/addons/mrp_operations/test/mrp_operation_test.yml b/addons/mrp_operations/test/mrp_operation_test.yml
deleted file mode 100644
index 9cb81abebde..00000000000
--- a/addons/mrp_operations/test/mrp_operation_test.yml
+++ /dev/null
@@ -1,56 +0,0 @@
--
- In order to test mrp_operations module in OpenERP,
- I create a production order.
--
- !record {model: mrp.production, id: mrp_production_mo1}:
- company_id: base.main_company
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_stock
- location_src_id: stock.stock_location_stock
- name: MO/01234567
- product_id: product.product_product_pc1
- product_qty: 5.0
- product_uom: product.product_uom_unit
- product_uos_qty: 5.0
--
- Now I confirm the production order.
--
- !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}
--
- I check that there is one Work order generated related to the production order.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- order_id = self.search(cr, uid, [('production_id','=', ref('mrp_production_mo1')),('state','=','draft')])
- assert order_id, _('No work order defined for this production order!')
--
- The scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[('state','=','confirmed')]"
--
- I am checking Internal picking.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- pick_ids = self.browse(cr, uid, ref("mrp_production_mo1"))
- assert pick_ids.picking_id.id, _('No Internal Picking generated!')
--
- In order to cancel the MO, first cancel its picking
--
- !python {model: stock.picking}: |
- mrp_obj = self.pool.get('mrp.production')
- mo = mrp_obj.browse(cr, uid, ref("mrp_production_mo1"))
- self.action_cancel(cr, uid, [mo.picking_id.id], context=None)
--
- Then cancel The Manufacturing order.
--
- !workflow {model: mrp.production, action: button_cancel, ref: mrp_production_mo1}
--
- I check that there is one Work order generated related to the production order that is cancelled or not.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- order_id = self.search(cr, uid, [('production_id','=', ref('mrp_production_mo1')),('state','=','cancel')])
- assert order_id, _('Work order is not cancelled for this production order!')
diff --git a/addons/mrp_operations/test/mrp_operations.yml b/addons/mrp_operations/test/mrp_operations.yml
deleted file mode 100644
index ce6aac5cdbf..00000000000
--- a/addons/mrp_operations/test/mrp_operations.yml
+++ /dev/null
@@ -1,158 +0,0 @@
--
- In order to test mrp_operations module in OpenERP I will put a Production order
- and check its effects on Work orders.
--
- I create a production order.
--
- !record {model: mrp.production, id: mrp_production_mo0}:
- company_id: base.main_company
- date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
- location_dest_id: stock.stock_location_stock
- location_src_id: stock.stock_location_stock
- name: MO/0123456
- product_id: product.product_product_pc1
- product_qty: 5.0
- product_uom: product.product_uom_unit
- product_uos_qty: 5.0
- allow_reorder: True
--
- I am computing the data.
--
- !python {model: mrp.production}: |
- self.action_compute(cr, uid, [ref("mrp_production_mo0")], {"lang": "en_US", "tz":
- False, "search_default_current": 1, "active_model": "ir.ui.menu", "active_ids":
- [ref("mrp.menu_mrp_production_action")], "active_id": ref("mrp.menu_mrp_production_action"),
- })
--
- Now I confirm my production order.
--
- !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo0}
--
- I check that there is one Work order generated related to my production order.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- order_id = self.search(cr, uid, [('production_id','=', ref('mrp_production_mo0')),('state','=','draft')])
- assert order_id, _('No Work order define for this production order!')
--
- The scheduler runs.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[('state','=','confirmed')]"
--
- I am checking Internal picking.
--
- !python {model: stock.picking}: |
- from tools.translate import _
- pick_ids = self.search(cr, uid, [('state','!=','done'),('type','=','internal')])
- assert pick_ids, _('No Internal Pickings!')
--
- I see that there is a manufacturing order for the sub product CPU_GEN of PC1 with ready state.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- order_ids = self.search(cr, uid, [('state','=','ready'),('origin','like','%MO/0123456')])
- assert order_ids, _('No new manufacturing order!')
--
- I check that there one more work order created for new production order.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- prod_obj = self.pool.get('mrp.production')
- prod_order_ids = prod_obj.search(cr, uid, [('state','=','ready'),('origin','like','%MO/0123456')])
- workorder_id = self.search(cr, uid, [('production_id','=', prod_order_ids[0]),('state','=','draft')])
- assert workorder_id, _('No Work order define for this production order!')
--
- I start the second production order of the CPU_GEN product.
--
- !python {model: mrp.production}: |
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- prod_order_ids = self.search(cr, uid, [('state','=','ready'),('origin','like','%MO/0123456')])
- for po in prod_order_ids:
- wf_service.trg_validate(uid, 'mrp.production', po, 'button_produce', cr)
--
- I am creating a mrp.product.produce record
--
- !record {model: mrp.product.produce, id: mrp_product_produce_0}:
- mode: consume_produce
- product_qty: 5.0
--
- I produce the product CPU_GEN.
--
- !python {model: mrp.product.produce}: |
- prod_obj = self.pool.get('mrp.production')
- prod_order_ids = prod_obj.search(cr, uid, [('origin','like','%MO/0123456')])
- self.do_produce(cr, uid, [ref("mrp_product_produce_0")], {"lang": "en_US", "tz":
- False, "search_default_current": 1, "active_model": "mrp.production", "active_ids":
- prod_order_ids, "active_id": prod_order_ids[0], })
--
- I check that my production order and its related work order is in done state.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- prod_obj = self.pool.get('mrp.production')
- prod_order_ids = prod_obj.search(cr, uid, [('origin','like','%MO/0123456')])
- assert prod_order_ids, _('Workorder not found')
- workorder_id = self.search(cr, uid, [('production_id','=', prod_order_ids[0])])
- workorder_bro = self.browse(cr, uid, workorder_id[0])
- assert workorder_bro.state == 'done', _('Work order is not done! It is %s') % workorder_bro.state
--
- Now I check my original production order is now ready.
--
- !python {model: mrp.production}: |
- from tools.translate import _
- prod_ids = self.search(cr, uid, [('id','=',ref('mrp_production_mo0')),('state','=','ready')])
- assert prod_ids, _('Production order is not ready!')
--
- I check that both internal pickings are done.
--
- !python {model: stock.picking}: |
- from tools.translate import _
- pick_ids = self.search(cr, uid, [('state','=','done'),('type','=','internal')])
- assert pick_ids, _('Internal pickings are not done!')
--
- Now I start my first production order.
--
- !workflow {model: mrp.production, action: button_produce, ref: mrp_production_mo0}
--
- I check that the related work order is in progress state.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- order_id = self.search(cr, uid, [('production_id','=', ref('mrp_production_mo0')),('state','=','startworking')])
- assert order_id, _('Work order not started yet!')
--
- I am creating a mrp.product.produce record.
--
- !record {model: mrp.product.produce, id: mrp_product_produce_0}:
- mode: consume_produce
- product_qty: 5.0
--
- I produce the product PC1.
--
- !python {model: mrp.product.produce}: |
- prod_obj = self.pool.get('mrp.production')
- prod_order_ids = prod_obj.search(cr, uid, [('state','=','in_production')])
- self.do_produce(cr, uid, [ref("mrp_product_produce_0")], {"lang": "en_US", "tz":
- False, "search_default_current": 1, "active_model": "mrp.production", "active_ids":
- [ref("mrp_production_mo0")], "active_id": ref("mrp_production_mo0"), })
--
- I check the related work order is done.
--
- !python {model: mrp.production.workcenter.line}: |
- from tools.translate import _
- order_id = self.search(cr, uid, [('production_id','=', ref('mrp_production_mo0')),('state','=','done')])
- assert order_id, _('Work order not done yet!')
--
- Calculates start date for stock moves finding interval from resource calendar.
--
- !python {model: mrp.production}: |
- self._move_pass(cr, uid, [ref('mrp_production_mo0')], context=None)
--
- Calculates planned end date of production order.
--
- !python {model: mrp.production}: |
- mo = self.browse(cr, uid, ref("mrp_production_mo0"))
- self._production_date_end(cr, uid, [ref("mrp_production_mo0")], mo.date_planned, False, context=None)
diff --git a/addons/mrp_operations/test/mrp_operations_report.yml b/addons/mrp_operations/test/mrp_operations_report.yml
deleted file mode 100644
index f0a646adf4e..00000000000
--- a/addons/mrp_operations/test/mrp_operations_report.yml
+++ /dev/null
@@ -1,17 +0,0 @@
--
- In order to test the PDF reports defined on a MRP Operations, we will print a Barcode Report
--
- !python {model: mrp_operations.operation.code}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.mrp.code.barcode').create(cr, uid, [ref('mrp_operations.mrp_op_1'),ref('mrp_operations.mrp_op_2'),ref('mrp_operations.mrp_op_3'),ref('mrp_operations.mrp_op_4'),ref('mrp_operations.mrp_op_5')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-barcode_report.'+format), 'wb+').write(data)
-
--
- In order to test the PDF reports defined on a MRP Operations, we will print Workcenter's Barcode Report
--
- !python {model: mrp.workcenter}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.mrp.wc.barcode').create(cr, uid, [ref('mrp.mrp_workcenter_0'),ref('mrp.mrp_workcenter_1')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-workcenter_barcode_report.'+format), 'wb+').write(data)
diff --git a/addons/mrp_operations/test/workcenter_operations.yml b/addons/mrp_operations/test/workcenter_operations.yml
new file mode 100644
index 00000000000..23fbe15c37d
--- /dev/null
+++ b/addons/mrp_operations/test/workcenter_operations.yml
@@ -0,0 +1,120 @@
+-
+ I compute the production order.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ order.action_compute(context=context)
+-
+ I check planned date in workcenter lines of production order.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ for line in order.workcenter_lines:
+ #TODO: to check start date of next line should be end of date of previous line.
+ assert line.date_planned, "Planned Start date is not computed: %s" %(line)
+ assert line.date_planned_end, "Planned End date is not computed: %s" %(line)
+
+-
+ I confirm the Production Order.
+-
+ !workflow {model: mrp.production, action: button_confirm, ref: mrp.mrp_production_shelf100cm}
+-
+ I run scheduler.
+-
+ !python {model: procurement.order}: |
+ self.run_scheduler(cr, uid)
+-
+ I forcefully close internal shipment.
+-
+ !python {model: mrp.production}: |
+ self.force_production(cr, uid, [ref("mrp.mrp_production_shelf100cm")])
+-
+ I start production.
+-
+ !workflow {model: mrp.production, action: button_produce, ref: mrp.mrp_production_shelf100cm}
+-
+ Production start on first work center, so I start work operation on first work center.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
+-
+ Now I pause first work operation due to technical fault of work center.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_pause', cr)
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
+-
+ I resume first work operation.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
+
+-
+ I cancel first work operation.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_cancel', cr)
+-
+ I reset first work operation and start after resolve techninal fault of work center.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_draft', cr)
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
+-
+ Now Finished work of first work operation so I close that operation.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_done', cr)
+-
+ Now I close other operations after start one by one.
+-
+ !python {model: mrp.production}: |
+ import netsvc
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ wf_service = netsvc.LocalService("workflow")
+ for work_line in order.workcenter_lines[1:]:
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_start_working', cr)
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_done', cr)
+
+-
+ I check that the production order is now done.
+-
+ !python {model: mrp.production}: |
+ order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
+ print order.state
+ assert order.state == 'done', "Production should be closed after finished all operations."
+-
+ I print a Barcode Report of Operation line.
+-
+ !python {model: mrp_operations.operation.code}: |
+ import netsvc, tools, os
+ (data, format) = netsvc.LocalService('report.mrp.code.barcode').create(cr, uid, [ref('mrp_operations.mrp_op_1'),ref('mrp_operations.mrp_op_2'),ref('mrp_operations.mrp_op_3'),ref('mrp_operations.mrp_op_4'),ref('mrp_operations.mrp_op_5')], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-barcode_report.'+format), 'wb+').write(data)
+
+-
+ I print Workcenter's Barcode Report.
+-
+ !python {model: mrp.workcenter}: |
+ import netsvc, tools, os
+ (data, format) = netsvc.LocalService('report.mrp.wc.barcode').create(cr, uid, [ref('mrp.mrp_workcenter_0'),ref('mrp.mrp_workcenter_1')], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-workcenter_barcode_report.'+format), 'wb+').write(data)
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 74f6fb54368..304b325128c 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -325,7 +325,11 @@ class pos_order(osv.osv):
}
return abs
+ def action_invoice_state(self, cr, uid, ids, context=None):
+ return self.write(cr, uid, ids, {'state':'invoiced'}, context=context)
+
def action_invoice(self, cr, uid, ids, context=None):
+ wf_service = netsvc.LocalService("workflow")
inv_ref = self.pool.get('account.invoice')
inv_line_ref = self.pool.get('account.invoice.line')
product_obj = self.pool.get('product.product')
@@ -341,7 +345,7 @@ class pos_order(osv.osv):
acc = order.partner_id.property_account_receivable.id
inv = {
- 'name': 'Invoice from POS: '+order.name,
+ 'name': order.name,
'origin': order.name,
'account_id': acc,
'journal_id': order.sale_journal.id or None,
@@ -379,6 +383,7 @@ class pos_order(osv.osv):
and [(6, 0, inv_line['invoice_line_tax_id'])] or []
inv_line_ref.create(cr, uid, inv_line, context=context)
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
+ wf_service.trg_validate(uid, 'pos.order', order.id, 'invoice', cr)
if not inv_ids: return {}
@@ -682,10 +687,44 @@ pos_order_line()
class pos_category(osv.osv):
_name = 'pos.category'
- _inherit = 'product.category'
+ _description = "PoS Category"
+ _order = "sequence, name"
+ def _check_recursion(self, cr, uid, ids, context=None):
+ level = 100
+ while len(ids):
+ cr.execute('select distinct parent_id from pos_category where id IN %s',(tuple(ids),))
+ ids = filter(None, map(lambda x:x[0], cr.fetchall()))
+ if not level:
+ return False
+ level -= 1
+ return True
+
+ _constraints = [
+ (_check_recursion, 'Error ! You cannot create recursive categories.', ['parent_id'])
+ ]
+
+ def name_get(self, cr, uid, ids, context=None):
+ if not len(ids):
+ return []
+ reads = self.read(cr, uid, ids, ['name','parent_id'], context=context)
+ res = []
+ for record in reads:
+ name = record['name']
+ if record['parent_id']:
+ name = record['parent_id'][1]+' / '+name
+ res.append((record['id'], name))
+ return res
+
+ def _name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None):
+ res = self.name_get(cr, uid, ids, context=context)
+ return dict(res)
+
_columns = {
+ 'name': fields.char('Name', size=64, required=True, translate=True),
+ 'complete_name': fields.function(_name_get_fnc, type="char", string='Name'),
'parent_id': fields.many2one('pos.category','Parent Category', select=True),
- 'child_id': fields.one2many('pos.category', 'parent_id', string='Child Categories'),
+ 'child_id': fields.one2many('pos.category', 'parent_id', string='Children Categories'),
+ 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."),
}
pos_category()
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 2d9345ffd83..5e5c23bf7e9 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -16,8 +16,8 @@
-
-
+
+
@@ -587,9 +587,12 @@
form
-
-
-
+
+
+
+
+
+
@@ -609,6 +612,20 @@
+
+ pos.category.form
+ pos.category
+ form
+
+
+
+
pos.category.tree
pos.category
@@ -616,7 +633,8 @@
-
+
+
diff --git a/addons/point_of_sale/point_of_sale_workflow.xml b/addons/point_of_sale/point_of_sale_workflow.xml
index 4058af2696f..4daa2d17099 100644
--- a/addons/point_of_sale/point_of_sale_workflow.xml
+++ b/addons/point_of_sale/point_of_sale_workflow.xml
@@ -34,7 +34,7 @@
invoiced
True
- action_invoice()
+ action_invoice_state()
function
diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py
index 30198b56f83..d10e1874d68 100644
--- a/addons/procurement/__openerp__.py
+++ b/addons/procurement/__openerp__.py
@@ -59,6 +59,7 @@ depending on the product's configuration.
'board_mrp_procurement_view.xml',
],
'demo_xml': ['stock_orderpoint.xml'],
+ 'test': ['test/procurement.yml'],
'installable': True,
'active': False,
'certificate': '00954248826881074509',
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index 9556b1aa081..91461f794cc 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -63,7 +63,6 @@ mrp_property()
class StockMove(osv.osv):
_inherit = 'stock.move'
-
_columns= {
'procurements': fields.one2many('procurement.order', 'move_id', 'Procurements'),
}
@@ -154,11 +153,11 @@ class procurement_order(osv.osv):
return {'value': v}
return {}
- def check_product(self, cr, uid, ids):
+ def check_product(self, cr, uid, ids, context=None):
""" Checks product type.
@return: True or False
"""
- return all(procurement.product_id.type in ('product', 'consu') for procurement in self.browse(cr, uid, ids))
+ return all(proc.product_id.type in ('product', 'consu') for proc in self.browse(cr, uid, ids, context=context))
def check_move_cancel(self, cr, uid, ids, context=None):
""" Checks if move is cancelled or not.
@@ -174,9 +173,9 @@ class procurement_order(osv.osv):
""" Checks if move is done or not.
@return: True or False.
"""
- if not context:
- context = {}
- return all(not procurement.move_id or procurement.move_id.state == 'done' for procurement in self.browse(cr, uid, ids, context=context))
+ return all(proc.product_id.type == 'service' or (proc.move_id and proc.move_id.state == 'done') \
+ for proc in self.browse(cr, uid, ids, context=context))
+
#
# This method may be overrided by objects that override procurement.order
# for computing their own purpose
@@ -258,26 +257,25 @@ class procurement_order(osv.osv):
def check_produce(self, cr, uid, ids, context=None):
""" Checks product type.
- @return: True or Product Id.
+ @return: True or False
"""
- res = True
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
for procurement in self.browse(cr, uid, ids, context=context):
- if procurement.product_id.product_tmpl_id.supply_method <> 'produce':
- partner_list = sorted([(partner_id.sequence, partner_id) for partner_id in procurement.product_id.seller_ids if partner_id])
- if partner_list:
- partner = partner_list and partner_list[0] and partner_list[0][1] and partner_list[0][1].name or False
- if user.company_id and user.company_id.partner_id:
- if partner.id == user.company_id.partner_id.id:
- return True
+ product = procurement.product_id
+ #TOFIX: if product type is 'service' but supply_method is 'buy'.
+ if product.supply_method <> 'produce':
+ supplier = product.seller_id
+ if supplier and user.company_id and user.company_id.partner_id:
+ if supplier.id == user.company_id.partner_id.id:
+ continue
return False
- if procurement.product_id.product_tmpl_id.type=='service':
- res = res and self.check_produce_service(cr, uid, procurement, context)
+ if product.type=='service':
+ res = self.check_produce_service(cr, uid, procurement, context)
else:
- res = res and self.check_produce_product(cr, uid, procurement, context)
+ res = self.check_produce_product(cr, uid, procurement, context)
if not res:
return False
- return res
+ return True
def check_buy(self, cr, uid, ids):
""" Checks product type.
@@ -483,7 +481,7 @@ class StockPicking(osv.osv):
if move.state == 'done' and move.procurements:
for procurement in move.procurements:
wf_service.trg_validate(user, 'procurement.order',
- procurement.id, 'button_check', cursor)
+ procurement.id, 'button_check', cursor)
return res
StockPicking()
diff --git a/addons/procurement/procurement_workflow.xml b/addons/procurement/procurement_workflow.xml
index 23b0a08af78..53b6608fa6f 100644
--- a/addons/procurement/procurement_workflow.xml
+++ b/addons/procurement/procurement_workflow.xml
@@ -50,12 +50,14 @@
produce_check
+
produce_service
function
action_produce_assign_service()
+
ready
@@ -163,18 +165,28 @@
check_produce()
-
-
-
- not check_product()
-
+
-
+
True
+
+
+
+
+
+
+
+ not check_product()
+
@@ -184,6 +196,7 @@
+
diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml
new file mode 100644
index 00000000000..4c59d0c7b7c
--- /dev/null
+++ b/addons/procurement/test/procurement.yml
@@ -0,0 +1,88 @@
+-
+ For test the procurement process, First I have to apply a minimum stock rule on product
+-
+ I create minimum stock rule for product.
+-
+ !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
+ company_id: base.main_company
+ location_id: stock.stock_location_stock
+ logic: max
+ name: OP/00008
+ product_id: product.product_product_cpu2
+ product_max_qty: 15.0
+ product_min_qty: 5.0
+ product_uom: product.product_uom_kgm
+ qty_multiple: 1
+ warehouse_id: stock.warehouse0
+-
+ Check product quantity and update it, if needed for apply a minimum stock rule.
+-
+ !python {model: product.product}: |
+ product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+ if product.virtual_available < 5.0:
+ change_qty = self.pool.get('stock.change.product.qty')
+ id = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id})
+ change_qty.change_product_qty(cr, uid, [id], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]})
+ assert product.qty_available == 4,"Product quantity is not updated."
+ assert product.virtual_available < 5.0,'Virtual stock have more quantities.'
+-
+ I run the scheduler.
+-
+ !python {model: procurement.order}: |
+ self.run_scheduler(cr, uid)
+-
+ I check that procurement order is based on minimum stock rule.
+-
+ !python {model: procurement.order}: |
+ proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))])
+ assert proc_ids, 'No Procurement created.'
+ proc_order = self.browse(cr, uid, proc_ids)[0]
+ assert proc_order.product_qty == 11.0,"Procurement product quantity is not corresponded."
+-
+ I check product quantity.
+-
+ !python {model: product.product}: |
+ product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+ assert product.virtual_available == 15.0,"After run the scheduler product's virtual stock is not updated."
+-
+ For test the Procurement Request wizard, Again I have to update product quantity.
+-
+ !python {model: product.product}: |
+ mk_procure = self.pool.get('make.procurement')
+ procur_order = self.pool.get('procurement.order')
+ product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+
+ context.update({'active_model': 'product.product','active_id':ref('product.product_product_cpu2')})
+ values = {'warehouse_id': ref('base.main_company'), 'uom_id': ref('product.product_uom_unit'), 'qty': 5}
+ id = mk_procure.create(cr, uid, values, context)
+ procurement = mk_procure.make_procurement(cr, uid, [id], context)
+ assert product.virtual_available == 20.0, 'Virtual stock should be updated'
+
+ proc_id = procurement.get('res_id')
+ for procurement in procur_order.browse(cr, uid, [proc_id]):
+ if procurement.state == 'confirmed':
+ assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'."
+ assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond."
+ assert procurement.product_qty == 5,"Product Quantity is not correspond."
+ assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond."
+ context.update({'proc': proc_id})
+-
+ I run the scheduler.
+-
+ !python {model: procurement.order}: |
+ self.run_scheduler(cr, uid)
+-
+ I check the current state of procurement.
+-
+ !python {model: procurement.order}: |
+ proc_id = context.get('proc')
+ proc = self.browse(cr, uid, [proc_id])[0]
+ assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state"
+-
+ I compute minimum stock.
+-
+ !python {model: procurement.orderpoint.compute}: |
+ proc_id = context.get('proc')
+ context.update({'active_model': 'procurement.order', 'active_id': proc_id})
+ id = self.create(cr, uid, {'automatic': True}, context)
+ self.procure_calculation(cr, uid, [id], context)
diff --git a/addons/product/product_demo.xml b/addons/product/product_demo.xml
index 3aebec13715..99347667f80 100644
--- a/addons/product/product_demo.xml
+++ b/addons/product/product_demo.xml
@@ -442,6 +442,16 @@
product
+
+ SPAN100
+ produce
+
+
+
+ Shelf Panel
+ product
+
+
WOOD002
buy
@@ -455,6 +465,19 @@
+
+ WOOD010
+ buy
+ 7.0
+
+
+ Wood 10mm
+
+
+ product
+
+
+
PROJ
produce
@@ -509,7 +532,7 @@
RPAN100
- buy
+ produce
10.0
@@ -548,7 +571,7 @@
RCK100
- buy
+ produce
5.0
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 6d9483f81ab..38b9d2d0ed1 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -56,7 +56,7 @@
-
+
@@ -100,9 +100,10 @@
-
-
+
+
@@ -637,8 +638,9 @@
-
+
diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py
index efadc3f124b..544165dc02b 100644
--- a/addons/project/wizard/project_task_delegate.py
+++ b/addons/project/wizard/project_task_delegate.py
@@ -63,25 +63,25 @@ class project_task_delegate(osv.osv_memory):
task_name =tools.ustr(task.name)
if 'project_id' in fields:
- res.update({'project_id': task.project_id and task.project_id.id})
+ res['project_id'] = int(task.project_id.id) if task.project_id else False
if 'name' in fields:
if task_name.startswith(_('CHECK: ')):
newname = tools.ustr(task_name).replace(_('CHECK: '), '')
else:
newname = tools.ustr(task_name or '')
- res.update({'name': newname})
+ res['name'] = newname
if 'planned_hours' in fields:
- res.update({'planned_hours': task.remaining_hours or 0.0})
+ res['planned_hours'] = task.remaining_hours or 0.0
if 'prefix' in fields:
if task_name.startswith(_('CHECK: ')):
newname = tools.ustr(task_name).replace(_('CHECK: '), '')
else:
newname = tools.ustr(task_name or '')
prefix = _('CHECK: %s') % newname
- res.update({'prefix': prefix})
+ res['prefix'] = prefix
if 'new_task_description' in fields:
- res.update({'new_task_description': task.description})
+ res['new_task_description'] = task.description
return res
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 215e4971bf2..012f9b5e799 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -54,8 +54,10 @@ and decide on their status as they evolve.
],
'demo_xml': ['project_issue_demo.xml'],
'test': [
- 'test/convert_issue_to_task.yml',
- 'test/test_project_issue_states.yml'
+ 'test/subscribe_issue.yml',
+ 'test/issue_process.yml',
+ 'test/cancel_issue.yml',
+ 'test/issue_demo.yml'
],
'installable': True,
'active': False,
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 22cc02b8645..9d61e9fe850 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -314,7 +314,8 @@ class project_issue(crm.crm_case, osv.osv):
'description':bug.description,
'date_deadline': bug.date,
'project_id': bug.project_id.id,
- 'priority': bug.priority,
+ # priority must be in ['0','1','2','3','4'], while bug.priority is in ['1','2','3','4','5']
+ 'priority': str(int(bug.priority) - 1),
'user_id': bug.user_id.id,
'planned_hours': 0.0,
})
diff --git a/addons/project_issue/test/cancel_issue.yml b/addons/project_issue/test/cancel_issue.yml
new file mode 100644
index 00000000000..ff05d923ed0
--- /dev/null
+++ b/addons/project_issue/test/cancel_issue.yml
@@ -0,0 +1,60 @@
+-
+ In order to test process of issue tracking in OpenERP, I cancel the unqualified Issue.
+-
+ !python {model: project.issue}: |
+ self.case_cancel(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check the issue is in cancel state.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}:
+ - state == 'cancel'
+-
+ I re-open the Issue.
+-
+ !python {model: project.issue}: |
+ self.case_open(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check the state of issue after open it.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in open state}:
+ - state == 'open'
+-
+ I put the issue in pending state.
+-
+ !python {model: project.issue}: |
+ self.case_pending(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check the state of issue after put it in pending state.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue should be in pending state}:
+ - state == 'pending'
+-
+ I cancel the issue is in pending state.
+-
+ !python {model: project.issue}: |
+ self.case_cancel(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check the issue is in cancel state.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}:
+ - state == 'cancel'
+-
+ I close Issue.
+-
+ !python {model: project.issue}: |
+ self.case_close(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check state of Issue after close.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in done state}:
+ - state == 'done'
+-
+ I cancel the issue is in done state.
+-
+ !python {model: project.issue}: |
+ self.case_cancel(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check the issue is in cancel state.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}:
+ - state == 'cancel'
\ No newline at end of file
diff --git a/addons/project_issue/test/convert_issue_to_task.yml b/addons/project_issue/test/convert_issue_to_task.yml
deleted file mode 100644
index 13ddef69251..00000000000
--- a/addons/project_issue/test/convert_issue_to_task.yml
+++ /dev/null
@@ -1,32 +0,0 @@
--
- Create an issue
--
- !record {model: project.issue, id: project_issue_onchangeevent0}:
- categ_id: project_issue.bug_categ
- name: on_change event does not pass context to the method
- project_id: project.project_project_22
- working_hours_close: 0.0
- working_hours_open: 0.0
-
--
- Check there is no task attached to issue
--
- !assert {model: project.issue, id: project_issue_onchangeevent0, string: There must not be any task attached to issue}:
- - task_id.id == False
-
--
- Convert issue to task
--
- !python {model: project.issue}: |
- self.convert_issue_task(cr, uid, [ref("project_issue_onchangeevent0")],
- {"lang": "en_US", "project_id": False, "tz": False, "active_model": "ir.ui.menu",
- "department_id": False, "section_id": False, "search_default_project_id":
- False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
- 1, "active_ids": [ref("project_issue.menu_project_issue_track")], "active_id":
- ref("project_issue.menu_project_issue_track"), })
-
--
- Check there is a task attached to issue
--
- !assert {model: project.issue, id: project_issue_onchangeevent0, string: After creating a task for the issue there must be a task attached to it}:
- - task_id.id != False
diff --git a/addons/project_issue/test/issue.eml b/addons/project_issue/test/issue.eml
new file mode 100644
index 00000000000..32659bbd7da
--- /dev/null
+++ b/addons/project_issue/test/issue.eml
@@ -0,0 +1,45 @@
+Return-Path:
+X-Original-To: abc@mycompany.com
+Delivered-To: abc@mycompany.com
+Received: by mail1.mycompany.com (Postfix, from userid 10002)
+ id 3955EBFACA; Tue, 29 Nov 2011 08:14:47 +0100 (CET)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail1.mycompany.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+ RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
+Received: from nm39-vm6.bullet.mail.ne1.yahoo.com (nm39-vm6.bullet.mail.ne1.yahoo.com [98.138.229.166])
+ by mail1.mycompany.com (Postfix) with SMTP id 0D074BF53A
+ for ; Tue, 29 Nov 2011 08:14:44 +0100 (CET)
+Received: from [98.138.90.54] by nm39.bullet.mail.ne1.yahoo.com with NNFMP; 29 Nov 2011 07:13:26 -0000
+Received: from [98.138.84.39] by tm7.bullet.mail.ne1.yahoo.com with NNFMP; 29 Nov 2011 07:13:26 -0000
+Received: from [127.0.0.1] by smtp107.mail.ne1.yahoo.com with NNFMP; 29 Nov 2011 07:13:26 -0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.in; s=s1024; t=1322550806; bh=LFefFqrky41IufKZHP8a86obZoBPxyX1aafgWNcrw7U=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:Content-Type:Content-Transfer-Encoding; b=NB8bd6b4Uk3/3fKhdzbcqFEZGPpKyotLeE0xh8H08rcFEahMFfY5uXgsYZsUFvTLCKfTyQWh/oPTVxHeUTGY/Y5MzAnndghX6S0mzlFtmW2dwLMqdWxQLZwU7EhbyYF9PCHicsmtlUVyo7Ou5ePSviqC0SOyCJJVWwzWlv5W9Zg=
+X-Yahoo-Newman-Id: 152218.10448.bm@smtp107.mail.ne1.yahoo.com
+X-Yahoo-Newman-Property: ymail-3
+X-YMail-OSG: i4zQqJUVM1mab8kxoCTmgMwxw9th.MdiJzmc4Ffbno7QGkl
+ acotmc0pGoiw_GrhwReSA6uNIveeAUi9WA6NniWAElxbUzGIQplTBHjRhdqF
+ d_rLG1Yn71DYxllLCZC8xoRzumVHw.kue0ymrl4D0VO.lEeyXbbYoz.TpAvu
+ ZASBwSV_mESEUu96bb1esfOjI_2MhibMNmt.2egkOG6LS3AcDkVWXJb.VpQe
+ yZieJ5djjUx9uu4HModjROSUWHKm3Qd5ZwvG.3s1JvHNNvPC3Mo6x.DXi_rj
+ d70J2pruXhJ9ZnbNooZiSHkrhaugWV.kquq6475ZxKP6Tu7G8iUgZUkHWCf.
+ aEdBFl2.4RanSkMohEfbNtwpXUQ0eDDOOPatHFB27JSP0jw--
+X-Yahoo-SMTP: oNtzSBqswBAqJIGYOgyGesyleENrhUEtEgBkQ053
+Received: from [192.168.1.30] (Robert_Adersen@180.211.100.2 with plain)
+ by smtp107.mail.ne1.yahoo.com with SMTP; 28 Nov 2011 23:13:25 -0800 PST
+Message-ID: <4ED48611.6070605@yahoo.in>
+Date: Tue, 29 Nov 2011 12:43:21 +0530
+From: Robert Adersen
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10
+MIME-Version: 1.0
+To: abc@mycompany.com
+Subject: Error in the account module
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Hello Sir,
+
+I am using the openerp v6.1 and i have problem in hr module, so try to
+check it and solve my problem.
+
+thanks
+Robert Adersen
diff --git a/addons/project_issue/test/issue_demo.yml b/addons/project_issue/test/issue_demo.yml
new file mode 100644
index 00000000000..1ad26e6db73
--- /dev/null
+++ b/addons/project_issue/test/issue_demo.yml
@@ -0,0 +1,8 @@
+-
+ !record {model: project.issue, id: project_task_1, view: False}:
+ task_id: 'project.project_task_17'
+ name: 'Error in account module'
+-
+ !record {model: project.issue, id: project01, view: False}:
+ project_id: 'project.project_project_9'
+ name: 'OpenERP Integration'
diff --git a/addons/project_issue/test/issue_process.yml b/addons/project_issue/test/issue_process.yml
new file mode 100644
index 00000000000..d5900bb1b4f
--- /dev/null
+++ b/addons/project_issue/test/issue_process.yml
@@ -0,0 +1,57 @@
+-
+ In order to test process of issue tracking in OpenERP, I Open the Issue.
+-
+ !python {model: project.issue}: |
+ self.case_open(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check state of Issue after opened it.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue should be in open state}:
+ - state == 'open'
+-
+ Now I put Issue in pending due to need more information.
+-
+ !python {model: project.issue}: |
+ self.case_pending(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check state after put in pending.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue should be in pending state}:
+ - state == 'pending'
+-
+ I send mail to get more details.
+-
+ !python {model: mail.compose.message }: |
+ ctx = context.copy()
+ ctx.update({'active_model': 'project.issue', 'active_id': ref("crm_case_buginaccountsmodule0"), 'active_ids': [ref("crm_case_buginaccountsmodule0")]})
+ vals = self.default_get(cr, uid , [], context=ctx)
+ try:
+ new_id = self.create(cr, uid, {'email_from': 'support@mycompany.com','email_to': 'Robert_Adersen@yahoo.com', 'subject': 'Regarding error in account module we nees more details'})
+ self.send_mail(cr, uid, [new_id], context=ctx)
+ except Exception, e:
+ pass
+-
+ After getting sufficient details, I re-open Issue from pending state.
+-
+ !python {model: project.issue}: |
+ self.case_open(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I check state of Issue after re-opened.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue should be in open state}:
+ - state == 'open'
+-
+ I create Task for Issue.
+-
+ !python {model: project.issue}: |
+ self.convert_issue_task(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I close Issue after resolving it
+-
+ !python {model: project.issue}: |
+ self.case_close(cr, uid, [ref("crm_case_buginaccountsmodule0")])
+-
+ I Check state of Issue after closed.
+-
+ !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue should be in done state}:
+ - state == 'done'
diff --git a/addons/project_issue/test/subscribe_issue.yml b/addons/project_issue/test/subscribe_issue.yml
new file mode 100644
index 00000000000..4ba472b41ed
--- /dev/null
+++ b/addons/project_issue/test/subscribe_issue.yml
@@ -0,0 +1,17 @@
+-
+ In Order to test process of Issue in OpenERP, Custmer send the issue by email.
+-
+ !python {model: mail.thread}: |
+ import addons
+ request_file = open(addons.get_module_resource('project_issue','test', 'issue.eml'),'rb')
+ request_message = request_file.read()
+ self.message_process(cr, uid, 'project.issue', request_message)
+-
+ After getting the mail, I check details of new issue of that customer.
+-
+ !python {model: project.issue}: |
+ issue_ids = self.search(cr, uid, [('email_from', '=', 'Robert Adersen ')])
+ assert issue_ids and len(issue_ids), "issue is not created after getting request"
+ issue = self.browse(cr, uid, issue_ids[0], context=context)
+ assert not issue.partner_id, "Customer should be a new"
+ assert issue.name == "Error in the account module", "Subject does not match"
\ No newline at end of file
diff --git a/addons/project_issue/test/test_project_issue_states.yml b/addons/project_issue/test/test_project_issue_states.yml
deleted file mode 100644
index ee48c9a9df0..00000000000
--- a/addons/project_issue/test/test_project_issue_states.yml
+++ /dev/null
@@ -1,112 +0,0 @@
--
- Create an issue
--
- !record {model: project.issue, id: project_issue_stockmovedates0}:
- categ_id: project_issue.bug_categ
- name: Stock Move dates
- project_id: project.project_project_22
- working_hours_close: 0.0
- working_hours_open: 0.0
--
- Check if issue in 'draft' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
- - state == 'draft'
-
--
- Open the issue
--
- !python {model: project.issue}: |
- self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
- "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
- False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
- 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
- False, "active_id": ref("project_issue.menu_project_issue_track"), })
--
- Check if issue in 'open' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
- - state == 'open'
-
--
- Keep issue pending
--
- !python {model: project.issue}: |
- self.case_pending(cr, uid, [ref("project_issue_stockmovedates0")],
- {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
- 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
- })
--
- Check if issue in 'pending' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in pending state}:
- - state == 'pending'
-
-
--
- Open the issue
--
- !python {model: project.issue}: |
- self.case_open(cr, uid, [ref("project_issue_stockmovedates0")], {"lang":
- "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")], "tz":
- False, "active_model": "ir.ui.menu", "search_default_project_id": False, "search_default_my_bugs":
- 1, "search_default_user_id": 1, "search_default_current_bugs": 1, "project_id":
- False, "active_id": ref("project_issue.menu_project_issue_track"), })
--
- Check if issue in 'open' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in open state}:
- - state == 'open'
-
-
--
- Cancel the issue
--
- !python {model: project.issue}: |
- self.case_cancel(cr, uid, [ref("project_issue_stockmovedates0")],
- {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
- 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
- })
--
- Check if issue in 'cancel' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in cancel state}:
- - state == 'cancel'
-
-
--
- Reset the issue
--
- !python {model: project.issue}: |
- self.case_reset(cr, uid, [ref("project_issue_stockmovedates0")],
- {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
- 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
- })
--
- Check if issue in 'draft' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in draft state}:
- - state == 'draft'
-
-
--
- Close the issue
--
- !python {model: project.issue}: |
- self.case_close(cr, uid, [ref("project_issue_stockmovedates0")],
- {"lang": "en_US", "active_ids": [ref("project_issue.menu_project_issue_track")],
- "tz": False, "active_model": "ir.ui.menu", "search_default_project_id":
- False, "search_default_my_bugs": 1, "search_default_user_id": 1, "search_default_current_bugs":
- 1, "project_id": False, "active_id": ref("project_issue.menu_project_issue_track"),
- })
--
- Check if issue in 'done' state
--
- !assert {model: project.issue, id: project_issue_stockmovedates0, severity: error, string: Issue is in done state}:
- - state == 'done'
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index b6647b6de2b..d5c091a8796 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -180,7 +180,7 @@ class project_phase(osv.osv):
'months': 'm', 'month':'month', 'm':'m',
'weeks': 'w', 'week': 'w', 'w':'w',
'hours': 'H', 'hour': 'H', 'h':'H',
- }.get(phase.product_uom.name.lower(), "h")
+ }.get(phase.product_uom.name.lower(), "H")
duration = str(phase.duration) + duration_uom
result += '''
def Phase_%s():
diff --git a/addons/project_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py
index e5722b92da9..c36b3229a81 100644
--- a/addons/project_mrp/__openerp__.py
+++ b/addons/project_mrp/__openerp__.py
@@ -54,7 +54,7 @@ task is completed.
'depends': ['project', 'procurement', 'sale', 'mrp_jit'],
'init_xml': [],
'update_xml': ['project_mrp_workflow.xml', 'process/project_mrp_process.xml', 'project_mrp_view.xml'],
- 'demo_xml': [],
+ 'demo_xml': ['project_mrp_demo.xml'],
'test': ['test/project_task_procurement.yml'],
'installable': True,
'active': False,
diff --git a/addons/project_mrp/project_mrp.py b/addons/project_mrp/project_mrp.py
index 3bbb0658b11..a3cde855b6c 100644
--- a/addons/project_mrp/project_mrp.py
+++ b/addons/project_mrp/project_mrp.py
@@ -31,10 +31,10 @@ class project_task(osv.osv):
}
def _validate_subflows(self, cr, uid, ids):
+ wf_service = netsvc.LocalService("workflow")
for task in self.browse(cr, uid, ids):
if task.procurement_id:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'procurement.order', task.procurement_id.id, 'subflow.done', cr)
+ wf_service.trg_write(uid, 'procurement.order', task.procurement_id.id, cr)
def do_close(self, cr, uid, ids, *args, **kwargs):
res = super(project_task, self).do_close(cr, uid, ids, *args, **kwargs)
diff --git a/addons/project_mrp/project_mrp_demo.xml b/addons/project_mrp/project_mrp_demo.xml
new file mode 100644
index 00000000000..fcc0b27d31f
--- /dev/null
+++ b/addons/project_mrp/project_mrp_demo.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+ Advance
+
+
+ 150.0
+ 5.0
+ make_to_order
+
+
+
+
diff --git a/addons/project_mrp/project_mrp_workflow.xml b/addons/project_mrp/project_mrp_workflow.xml
index 751634816e3..18962cde0ee 100644
--- a/addons/project_mrp/project_mrp_workflow.xml
+++ b/addons/project_mrp/project_mrp_workflow.xml
@@ -1,10 +1,12 @@
-
-
-
- subflow.done
+
+
+
+ action_check_finished()
+ project.task
+ task_id and [task_id.id] or []
diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py
index 2c9732478fb..7d3045aede0 100644
--- a/addons/project_mrp/project_procurement.py
+++ b/addons/project_mrp/project_procurement.py
@@ -29,29 +29,46 @@ class procurement_order(osv.osv):
'sale_line_id': fields.many2one('sale.order.line', 'Sale order line')
}
- def check_produce_service(self, cr, uid, procurement, context=None):
+ def action_check_finished(self, cr, uid, ids):
+ res = super(procurement_order, self).action_check_finished(cr, uid, ids)
+ return res and self.check_task_done(cr, uid, ids)
+
+ def check_task_done(self, cr, uid, ids, context=None):
+ """ Checks if task is done or not.
+ @return: True or False.
+ """
+ return all(proc.product_id.type != 'service' or (proc.task_id and proc.task_id.state in ('done', 'cancelled')) \
+ for proc in self.browse(cr, uid, ids, context=context))
+
+ def check_produce_service(self, cr, uid, procurement, context=None):
return True
- def action_produce_assign_service(self, cr, uid, ids, context=None):
- project_obj = self.pool.get('project.project')
- uom_obj = self.pool.get('product.uom')
- default_uom = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
- for procurement in self.browse(cr, uid, ids, context=context):
- project_id = False
- if procurement.product_id.project_id:
- project_id = procurement.product_id.project_id.id
- elif procurement.sale_line_id:
- account_id = procurement.sale_line_id.order_id.project_id.id
- if account_id:
- project_ids = project_obj.search(cr, uid, [('analytic_account_id', '=', account_id)])
- project_id = project_ids and project_ids[0] or False
- if procurement.product_uom.id != default_uom:
- planned_hours = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, default_uom)
- else:
- planned_hours = procurement.product_qty
+ def _convert_qty_company_hours(self, cr, uid, procurement, context=None):
+ product_uom = self.pool.get('product.uom')
+ company_time_uom_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
+ if procurement.product_uom.id != company_time_uom_id:
+ planned_hours = product_uom._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, company_time_uom_id)
+ else:
+ planned_hours = procurement.product_qty
+ return planned_hours
- self.write(cr, uid, [procurement.id], {'state': 'running'})
- task_id = self.pool.get('project.task').create(cr, uid, {
+ def _get_project(self, cr, uid, procurement, context=None):
+ project_project = self.pool.get('project.project')
+ project = procurement.product_id.project_id
+ if not project and procurement.sale_line_id:
+ # find the project corresponding to the analytic account of the sale order
+ account = procurement.sale_line_id.order_id.project_id
+ project_ids = project_project.search(cr, uid, [('analytic_account_id', '=', account.id)])
+ projects = project_project.browse(cr, uid, project_ids, context=context)
+ project = projects and projects[0] or False
+ return project
+
+ def action_produce_assign_service(self, cr, uid, ids, context=None):
+ project_task = self.pool.get('project.task')
+ for procurement in self.browse(cr, uid, ids, context=context):
+ project = self._get_project(cr, uid, procurement, context=context)
+ planned_hours = self._convert_qty_company_hours(cr, uid, procurement, context=context)
+ task_id = project_task.create(cr, uid, {
'name': '%s:%s' % (procurement.origin or '', procurement.product_id.name),
'date_deadline': procurement.date_planned,
'planned_hours':planned_hours,
@@ -60,12 +77,10 @@ class procurement_order(osv.osv):
'notes': procurement.note,
'procurement_id': procurement.id,
'description': procurement.note,
- 'date_deadline': procurement.date_planned,
- 'project_id': project_id,
- 'state': 'draft',
+ 'project_id': project and project.id or False,
'company_id': procurement.company_id.id,
},context=context)
- self.write(cr, uid, [procurement.id],{'task_id':task_id})
+ self.write(cr, uid, [procurement.id], {'task_id': task_id, 'state': 'running'}, context=context)
return task_id
procurement_order()
diff --git a/addons/project_mrp/test/project_task_procurement.yml b/addons/project_mrp/test/project_task_procurement.yml
index b2cc6a68363..b72527e61a5 100644
--- a/addons/project_mrp/test/project_task_procurement.yml
+++ b/addons/project_mrp/test/project_task_procurement.yml
@@ -1,83 +1,48 @@
-- |
- In order to test project_mrp module with OpenERP I create a sale order
- with product type 'service' so when procurement runs one task is created for
- the project associated with my sale order.
-
- I create record for a service type product.
+ In order to test process to generate task automatic from procurement, I confirm sale order to sale service product.
-
- !record {model: product.product, id: product_product_partnerstraining0, view: False}:
- categ_id: product.product_category_7
- cost_method: standard
- mes_type: fixed
- name: Partners Training
- procure_method: make_to_order
- supply_method: produce
- type: service
- uom_id: product.uom_day
- uom_po_id: product.uom_day
- warranty: 0.0
-- |
- I create a sale order for product Partners Training which has type 'Service',
- and select the appropriate Analytic Account matching my project.
--
- !record {model: sale.order, id: sale_order_so0}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: TESTSO006
- order_policy: manual
- partner_id: base.res_partner_asus
- partner_invoice_id: base.res_partner_address_tang
- partner_order_id: base.res_partner_address_tang
- partner_shipping_id: base.res_partner_address_tang
- order_line:
- - state: draft
- delay: 7.0
- name: Partners Training
- price_unit: 1.0
- product_id: product_product_partnerstraining0
- product_uom: product.uom_day
- product_uom_qty: 5.0
- type: make_to_order
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
- user_id: base.user_demo
-
-- I select the Analytic Account for my project on the sale order
--
- !python {model: sale.order}: |
- acc_id = self.pool.get('project.project').browse(cr, uid,
- ref('project.project_integrate_openerp')).analytic_account_id.id
- self.write(cr, uid, ref('sale_order_so0'), {'project_id': acc_id})
+ !workflow {model: sale.order, action: order_confirm, ref: sale.order7}
-
- I confirm this sale order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so0}
--
- I check the procurements.
+ I run the scheduler.
-
!python {model: procurement.order}: |
- orderline_obj = self.pool.get('sale.order.line')
- line_ids = orderline_obj.search(cr, uid, [('order_id','=', ref('sale_order_so0'))])
- orders = orderline_obj.browse(cr, uid, line_ids)
- proc_ids = map(lambda x: x.procurement_id.id, orders)
- assert proc_ids, 'No Procurements!'
+ self.run_scheduler(cr, uid)
-
- The scheduler runs.
+ Now I check that task details after run procurement
-
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[]"
+ !python {model: procurement.order}: |
+ from datetime import datetime
+ procurement_ids = self.search(cr, uid, [('sale_line_id', '=', ref('line_services'))])
+ assert procurement_ids, "Procurement is not generated for Service Order Line."
+ procurement = self.browse(cr, uid, procurement_ids[0], context=context)
+ assert procurement.state != 'done' , "Procurement should not be closed."
+ task = procurement.task_id
+ assert task, "Task is not generated."
+ # check whether task project either is the product's project, or corresponds to the analytic account of sale order
+ project = task.project_id
+ if procurement.product_id.project_id:
+ assert project == procurement.product_id.project_id, "Project does not correspond."
+ elif procurement.sale_line_id:
+ account = procurement.sale_line_id.order_id.project_id
+ assert (not project and not account) or project.analytic_account_id == account, "Project does not correspond."
+ planned_hours = self._convert_qty_company_hours(cr, uid, procurement, context=context)
+ assert task.planned_hours == planned_hours, 'Planned Hours do not correspond.'
+ assert datetime.strptime(task.date_deadline, '%Y-%m-%d') == datetime.strptime(procurement.date_planned, '%Y-%m-%d %H:%M:%S'), 'Deadline does not correspond.'
+ if procurement.product_id.product_manager:
+ assert task.user_id.id == procurement.product_id.product_manager.id, 'Allocated Person does not correspond with Service Product Manager.'
+ assert task.description == procurement.note, "Task description does not correspond."
-
- Now I check that one task is created for my sale order, in the desired project
+ I close that task.
-
!python {model: project.task}: |
- order_obj = self.pool.get('sale.order')
- order = order_obj.browse(cr, uid, ref('sale_order_so0'))
- # planned_hours == 40 because default company project UOM is hours, and
- # product was sold as 5.0 days.
- task_id = self.search(cr, uid, [('name', '=', order.name+":Partners Training"),
- ('project_id','=', ref('project.project_integrate_openerp')),
- ('planned_hours','=', 40.0),
- ('state','=','draft')])
- assert task_id, 'Expected Task not found!'
\ No newline at end of file
+ task_ids = self.search(cr, uid, [('sale_line_id', '=', ref('line_services'))])
+ assert task_ids, "Task is not generated for Service Order Line."
+ self.do_close(cr, uid, task_ids, context=context)
+-
+ I check procurement of Service Order Line after closed task.
+-
+ !python {model: procurement.order}: |
+ procurement_ids = self.search(cr, uid, [('sale_line_id', '=', ref('line_services'))])
+ assert procurement_ids, "Procurement is not generated for Service Order Line."
+ procurement = self.browse(cr, uid, procurement_ids[0], context=context)
+ assert procurement.state == 'done' , "Procurement should be closed."
diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py
index dc86b22b40f..948352940a0 100644
--- a/addons/sale/__openerp__.py
+++ b/addons/sale/__openerp__.py
@@ -87,18 +87,14 @@ Dashboard for Sales Manager that includes:
],
'demo_xml': ['sale_demo.xml'],
'test': [
- 'test/edi_sale_order.yml',
- 'test/data_test.yml',
- 'test/manual_order_policy.yml',
- 'test/prepaid_order_policy.yml',
+ 'test/sale_order_demo.yml',
'test/picking_order_policy.yml',
+ 'test/manual_order_policy.yml',
'test/postpaid_order_policy.yml',
- 'test/advance_invoice.yml',
- 'test/so_make_line_invoice.yml',
- 'test/sale_procurement.yml',
- 'test/invoice_on_ordered_qty.yml',
- 'test/invoice_on_shipped_qty.yml',
- 'test/sale_report.yml',
+ 'test/prepaid_order_policy.yml',
+ 'test/cancel_order.yml',
+ 'test/delete_order.yml',
+ 'test/edi_sale_order.yml',
],
'installable': True,
'active': False,
diff --git a/addons/sale/i18n/es_CL.po b/addons/sale/i18n/es_CL.po
index bda9cda990f..ca227ac4115 100644
--- a/addons/sale/i18n/es_CL.po
+++ b/addons/sale/i18n/es_CL.po
@@ -7,20 +7,20 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
-"PO-Revision-Date: 2011-10-06 16:03+0000\n"
+"PO-Revision-Date: 2011-12-15 21:29+0000\n"
"Last-Translator: Francisco Reyes Acuña \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-11-05 05:17+0000\n"
-"X-Generator: Launchpad (build 14231)\n"
+"X-Launchpad-Export-Date: 2011-12-16 05:24+0000\n"
+"X-Generator: Launchpad (build 14523)\n"
#. module: sale
#: view:board.board:0
#: model:ir.actions.act_window,name:sale.action_sales_by_salesman
msgid "Sales by Salesman in last 90 days"
-msgstr "Ventas por comercial últimos 90 dÃas"
+msgstr "Ventas por vendedor en los últimos 90 dÃas"
#. module: sale
#: help:sale.installer,delivery:0
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index 7cc40c30645..5cc7c4f5ca1 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -128,7 +128,7 @@
This report performs analysis on your quotations and sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.
-
+
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 9f53b5cfd24..6d89b70c865 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -324,7 +324,6 @@ class sale_order(osv.osv):
return True
def onchange_pricelist_id(self, cr, uid, ids, pricelist_id, order_lines, context={}):
- print order_lines
if (not pricelist_id) or (not order_lines):
return {}
warning = {
@@ -718,7 +717,7 @@ class sale_order(osv.osv):
'date_expected': date_planned,
'product_qty': line.product_uom_qty,
'product_uom': line.product_uom.id,
- 'product_uos_qty': line.product_uos_qty,
+ 'product_uos_qty': (line.product_uos and line.product_uos_qty) or line.product_uom_qty,
'product_uos': (line.product_uos and line.product_uos.id)\
or line.product_uom.id,
'product_packaging': line.product_packaging.id,
@@ -750,6 +749,28 @@ class sale_order(osv.osv):
'company_id': order.company_id.id,
}
+ def ship_recreate(self, cr, uid, order, line, move_id, proc_id):
+ # FIXME: deals with potentially cancelled shipments, seems broken (specially if shipment has production lot)
+ """
+ Define ship_recreate for process after shipping exception
+ param order: sale order to which the order lines belong
+ param line: sale order line records to procure
+ param move_id: the ID of stock move
+ param proc_id: the ID of procurement
+ """
+ move_obj = self.pool.get('stock.move')
+ if order.state == 'shipping_except':
+ for pick in order.picking_ids:
+ for move in pick.move_lines:
+ if move.state == 'cancel':
+ mov_ids = move_obj.search(cr, uid, [('state', '=', 'cancel'),('sale_line_id', '=', line.id),('picking_id', '=', pick.id)])
+ if mov_ids:
+ for mov in move_obj.browse(cr, uid, mov_ids):
+ # FIXME: the following seems broken: what if move_id doesn't exist? What if there are several mov_ids? Shouldn't that be a sum?
+ move_obj.write(cr, uid, [move_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty})
+ self.pool.get('procurement.order').write(cr, uid, [proc_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty})
+ return True
+
def _create_pickings_and_procurements(self, cr, uid, order, order_lines, picking_id=False, *args):
"""Create the required procurements to supply sale order lines, also connecting
the procurements to appropriate stock moves in order to bring the goods to the
@@ -772,8 +793,8 @@ class sale_order(osv.osv):
move_obj = self.pool.get('stock.move')
picking_obj = self.pool.get('stock.picking')
procurement_obj = self.pool.get('procurement.order')
-
proc_ids = []
+
for line in order_lines:
if line.state == 'done':
continue
@@ -793,19 +814,7 @@ class sale_order(osv.osv):
proc_id = procurement_obj.create(cr, uid, self._prepare_order_line_procurement(cr, uid, order, line, move_id, date_planned, *args))
proc_ids.append(proc_id)
line.write({'procurement_id': proc_id})
-
- # FIXME: deals with potentially cancelled shipments, seems broken, see below
- # FIXME: was introduced by revid: mtr@mtr-20101125100355-0a1b7m792t63mssv
- if order.state == 'shipping_except':
- for pick in order.picking_ids:
- for move in pick.move_lines:
- if move.state == 'cancel':
- mov_ids = move_obj.search(cr, uid, [('state', '=', 'cancel'),('sale_line_id', '=', line.id),('picking_id', '=', pick.id)])
- if mov_ids:
- for mov in move_obj.browse(cr, uid, mov_ids):
- # FIXME: the following seems broken: what if move_id doesn't exist? What if there are several mov_ids? Shouldn't that be a sum?
- move_obj.write(cr, uid, [move_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty})
- procurement_obj.write(cr, uid, [proc_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty})
+ self.ship_recreate(cr, uid, order, line, move_id, proc_id)
wf_service = netsvc.LocalService("workflow")
if picking_id:
diff --git a/addons/sale/sale_demo.xml b/addons/sale/sale_demo.xml
index 4fcce85c5b5..5da496a1c4b 100644
--- a/addons/sale/sale_demo.xml
+++ b/addons/sale/sale_demo.xml
@@ -12,6 +12,9 @@
+ picking
+ procurement
+ Invoice after delivery
@@ -19,9 +22,9 @@
New server config + material
-
-
- 123
+
+
+ 123.20
make_to_stock
@@ -30,20 +33,20 @@
[PC1] Basic PC
- 450
+ 450.50
3
3
make_to_stock
- [PC1] Basic PC
-
+ [PC3] Medium PC
+
- 450
- 3
- 3
+ 900
+ 5
make_to_stock
+ 1
@@ -66,6 +69,9 @@
+ order
+ postpaid
+
@@ -99,6 +105,7 @@
+ prepaid
@@ -120,7 +127,6 @@
make_to_order
7
-
@@ -176,6 +182,16 @@
make_to_order
15
+
+
+ [CPU1] Processor AMD Athlon XP 1800+
+
+
+ 75
+ 3
+ 3
+ make_to_stock
+
@@ -228,7 +244,7 @@
[MB1] Mainboard ASUStek A7N8X
- 4
+ 15
250
make_to_order
15
@@ -238,13 +254,12 @@
[MB2] Mainboard ASUStek A7V8X-X
- 4
+ 5
500
make_to_order
15
-
-
+
@@ -257,8 +272,9 @@
service
150.0
100.0
-
-
+ produce
+
+
diff --git a/addons/sale/stock.py b/addons/sale/stock.py
index 9e0a47b3ceb..378af21c1b4 100644
--- a/addons/sale/stock.py
+++ b/addons/sale/stock.py
@@ -27,12 +27,11 @@ class stock_move(osv.osv):
'sale_line_id': fields.many2one('sale.order.line', 'Sales Order Line', ondelete='set null', select=True, readonly=True),
}
- def _create_chained_picking(self, cr, uid, pick_name, picking, ptype, move, context=None):
- res = super(stock_move, self)._create_chained_picking(cr, uid, pick_name, picking, ptype, move, context=context)
+ def _prepare_chained_picking(self, cr, uid, picking_name, picking, picking_type, moves_todo, context=None):
+ values = super(stock_move, self)._prepare_chained_picking(cr, uid, picking_name, picking, picking_type, moves_todo, context=context)
if picking.sale_id:
- self.pool.get('stock.picking').write(cr, uid, [res], {'sale_id': picking.sale_id.id})
- return res
-stock_move()
+ values['sale_id'] = picking.sale_id.id
+ return values
class stock_picking(osv.osv):
_inherit = 'stock.picking'
@@ -196,7 +195,4 @@ class stock_picking(osv.osv):
})
return result
-stock_picking()
-
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/test/advance_invoice.yml b/addons/sale/test/advance_invoice.yml
deleted file mode 100644
index 06bd0a309f5..00000000000
--- a/addons/sale/test/advance_invoice.yml
+++ /dev/null
@@ -1,144 +0,0 @@
--
- In order to test the Deposit wizard of sale module in the Open-ERP,
- I create a Sale Order for LG Viewty Smart for qty 100 having order_policy manual.
--
- !record {model: sale.order, id: sale_order_so5}:
- invoice_quantity: order
- order_line:
- - product_uom_qty: 100.0
- product_id: sale.product_product_lgviewtysmart0
- name: LG View
- product_uos_qty: 100.0
- type: make_to_order
- order_policy: manual
- partner_id: sale.res_partner_cleartrail0
- picking_policy: direct
--
- I use the Advance Payment wizard.
--
- !record {model: sale.advance.payment.inv, id: sale_advance_payment_inv_0}:
- amount: 1000.0
- product_id: product.product_product_pc3
- qtty: 3.0
--
- Then I click on the "Create Partial Invoice" button
--
- !python {model: sale.advance.payment.inv}: |
- self.create_invoices(cr, uid, [ref("sale_advance_payment_inv_0")], {"lang": 'en_US',
- "active_model": 'sale.order', "active_ids": [ref("sale_order_so5")], "tz":
- False, "active_id": ref("sale_order_so5"), })
--
- I verify whether the invoice has been generated.
--
- !python {model: sale.order}: |
- so = self.read(cr, uid, ref("sale_order_so5"))
- assert so['invoice_ids'], "Invoices has not been generated for sale_order_so5"
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I verify that an invoice state has transit from draft to open state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- assert invoice_id, "Invoice is not in the open state"
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 3000.0, ref('account.cash'), ref('account.period_5'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify that invoice has transit from Open to Paid state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in paid state."
--
- I verify that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so5"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so5}
--
- I click on "Create Invoice" button of Sales order to create the invoice.
--
- !workflow {model: sale.order, action: manual_invoice, ref: sale_order_so5}
--
- I verify whether the invoice has been generated for SO
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so5"))
- assert so.invoice_ids[1], "Invoices has not been generated for sale_order_so5"
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I verify that an invoice state has transit from draft to open state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- assert invoice_id, "Invoice is not in the open state"
--
- I assign an analytic journal to the bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 14000.0, ref('account.cash'), ref('account.period_5'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_5'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify that an invoice is in done state.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
--
- I verify that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so5"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
diff --git a/addons/sale/test/cancel_order.yml b/addons/sale/test/cancel_order.yml
new file mode 100644
index 00000000000..a398e1545ab
--- /dev/null
+++ b/addons/sale/test/cancel_order.yml
@@ -0,0 +1,88 @@
+-
+ In order to test the cancel sale order.
+-
+ Now I cancel Quotation.
+-
+ !python {model: sale.order}: |
+ self.action_cancel(cr, uid, [ref("order7")])
+-
+ I check state of Quotation after cancelled.
+-
+ !assert {model: sale.order, id: order7, string: sale order should be in cancel state}:
+ - state == 'cancel'
+-
+ I set cancelled quotation to draft.
+-
+ !python {model: sale.order}: |
+ self.action_cancel_draft(cr, uid, [ref("order7")])
+-
+ I confirm order.
+-
+ !workflow {model: sale.order, action: order_confirm, ref: order7}
+-
+ I send delivery in two shipments, so I am doing a partial delivery order.
+-
+ !python {model: stock.picking}: |
+ delivery_orders = self.search(cr, uid, [('sale_id','=',ref("order7"))])
+ first_picking = self.browse(cr, uid, delivery_orders[0], context=context)
+ if first_picking.force_assign(cr, uid, first_picking):
+ first_move = first_picking.move_lines[0]
+ values = {'move%s'%(first_move.id): {'product_qty': 5}}
+ first_picking.do_partial(values, context=context)
+-
+ Now I cancel latest shipment.
+-
+ !python {model: stock.picking}: |
+ import netsvc
+ delivery_orders = self.search(cr, uid, [('sale_id','=',ref("order7"))])
+ last_delivery_order_id = delivery_orders[0]
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'stock.picking', last_delivery_order_id, 'button_cancel', cr)
+-
+ I run the scheduler.
+-
+ !python {model: procurement.order}: |
+
+ self.run_scheduler(cr, uid)
+-
+ I check order status in "Ship Exception".
+-
+ !assert {model: sale.order, id: order7, string: Sale order should be in shipping exception}:
+ - state == "shipping_except"
+-
+ Now I regenerate shipment.
+-
+ !workflow {model: sale.order, action: ship_recreate, ref: order7}
+-
+ I check state of order in 'To Invoice'.
+-
+ !assert {model: sale.order, id: order7, string: Sale order should be In Progress state}:
+ - state == 'manual'
+-
+ I make invoice for order.
+-
+ !workflow {model: sale.order, action: manual_invoice, ref: order7}
+-
+ To cancel the sale order from Invoice Exception, I have to cancel the invoice of sale order.
+-
+ !python {model: sale.order}: |
+ import netsvc
+ invoice_ids = self.browse(cr, uid, ref("order7")).invoice_ids
+ wf_service = netsvc.LocalService("workflow")
+ first_invoice_id = invoice_ids[0]
+ wf_service.trg_validate(uid, 'account.invoice', first_invoice_id.id, 'invoice_cancel', cr)
+-
+ I check order status in "Invoice Exception" and related invoice is in cancel state.
+-
+ !assert {model: sale.order, id: order7, string: Sale order should be in Invoice Exception state}:
+ - state == "invoice_except", "Order should be in Invoice Exception state after cancel Invoice"
+-
+ Then I click on the Ignore Exception button.
+-
+ !workflow {model: sale.order, action: invoice_corrected, ref: order7}
+
+-
+ I check state of order in 'In Progress'.
+-
+ !assert {model: sale.order, id: order7, string: Sale order should be In progress state}:
+ - state == 'progress'
diff --git a/addons/sale/test/data_test.yml b/addons/sale/test/data_test.yml
deleted file mode 100644
index 8e064212f58..00000000000
--- a/addons/sale/test/data_test.yml
+++ /dev/null
@@ -1,254 +0,0 @@
--
- In order to test the sale module, I need to configure details regarding product,customer and account.
--
- I am going to sell my Mobile products to the customer with name Cleartrail
--
- I create View Account Type.
--
- !record {model: account.account.type, id: account_account_type_view0}:
- close_method: none
- code: View
- name: View
--
- I create Income Account Type.
--
- !record {model: account.account.type, id: account_account_type_income0}:
- close_method: unreconciled
- code: Income
- name: Income
--
- I create Expense Account Type.
--
- !record {model: account.account.type, id: account_account_type_expense0}:
- close_method: unreconciled
- code: Expense
- name: Expense
--
- I create Cash Account Type.
--
- !record {model: account.account.type, id: account_account_type_cash0}:
- close_method: balance
- code: Cash
- name: Cash
--
- I create Minimal Chart Account.
--
- !record {model: account.account, id: account_account_minimalchart0}:
- code: MC
- company_id: base.main_company
- currency_mode: current
- name: Minimal Chart
- parent_left: 1
- parent_right: 12
- type: view
- user_type: account_account_type_view0
--
- I create Payable Account.
--
- !record {model: account.account, id: account_account_payable1}:
- code: AP
- company_id: base.main_company
- currency_mode: current
- name: Payable
- parent_id: account_account_minimalchart0
- parent_left: 2
- parent_right: 3
- reconcile: true
- type: payable
- user_type: account_account_type_expense0
--
- I create Receivable Account.
--
- !record {model: account.account, id: account_account_receivable0}:
- code: AR
- company_id: base.main_company
- currency_mode: current
- name: Receivable
- parent_id: account_account_minimalchart0
- parent_left: 4
- parent_right: 5
- reconcile: true
- type: receivable
- user_type: account_account_type_income0
--
- I create Cash Account.
--
- !record {model: account.account, id: account_account_cash0}:
- code: C
- company_id: base.main_company
- currency_mode: current
- name: Cash
- parent_id: account_account_minimalchart0
- parent_left: 6
- parent_right: 7
- type: other
- user_type: account_account_type_cash0
--
- I create Purchases Account.
--
- !record {model: account.account, id: account_account_purchases0}:
- code: P
- company_id: base.main_company
- currency_mode: current
- name: Purchases
- parent_id: account_account_minimalchart0
- parent_left: 8
- parent_right: 9
- type: other
- user_type: account_account_type_expense0
--
- I create Sales Account.
--
- !record {model: account.account, id: account_account_sales0}:
- code: S
- company_id: base.main_company
- currency_mode: current
- name: Sales
- parent_id: account_account_minimalchart0
- parent_left: 10
- parent_right: 11
- type: other
- user_type: account_account_type_income0
--
- I create Purchase Journal - (test).
--
- !record {model: account.journal, id: account_journal_purchasejournal0}:
- code: PUJ
- company_id: base.main_company
- default_credit_account_id: account_account_purchases0
- default_debit_account_id: account_account_purchases0
- name: Purchase Journal - (test)
- type: purchase
- view_id: account.account_journal_view
--
- I create Sale Journal.
--
- !record {model: account.journal, id: account_journal_salejournal0}:
- code: SJ
- company_id: base.main_company
- default_credit_account_id: account_account_sales0
- default_debit_account_id: account_account_sales0
- name: Sale Journal
- type: sale
- view_id: account.account_journal_view
--
- I create Bank Journal.
--
- !record {model: account.journal, id: account_journal_bankjournal0}:
- code: BNK
- company_id: base.main_company
- default_credit_account_id: account_account_cash0
- default_debit_account_id: account_account_cash0
- name: Bank Journal
- type: cash
- view_id: account.account_journal_bank_view
--
- I create ir.property for account payable.
--
- !record {model: ir.property, id: ir_property_propertyaccountexpensecateg0}:
- company_id: base.main_company
- fields_id: account.field_res_partner_property_account_payable
- name: property_account_expense_categ
- value_reference: account.account,5
--
- I create ir.property for account receivable.
--
- !record {model: ir.property, id: ir_property_propertyaccountincomecateg0}:
- company_id: base.main_company
- fields_id: account.field_res_partner_property_account_receivable
- name: property_account_income_categ
- value_reference: account.account,6
--
- I create Partner category Customers.
--
- !record {model: res.partner.category, id: res_partner_category_customers0}:
- name: Customers
--
- I create Cleartrail Customer.
--
- !record {model: res.partner, id: res_partner_cleartrail0}:
- category_id:
- - res_partner_category_customers0
- name: Cleartrail
- opt_out: True
--
- I create contact address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_1}:
- partner_id: res_partner_cleartrail0
- street: onam plaza, 14 B palasia A B Road
- type: contact
--
- I create invoice address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_2}:
- partner_id: res_partner_cleartrail0
- street: sarda house 24 B palasia, A B Road
- type: invoice
--
- I create delivery address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_3}:
- partner_id: res_partner_cleartrail0
- street: sangam house 15 B palasia, A B Road
- type: delivery
--
- Customer Cleartrail has specific instrument requirement regarding the stockable products.
--
- I define product category Mobile Products Sellable.
--
- !record {model: product.category, id: product_category_allproductssellable0}:
- name: Mobile Products Sellable
--
- I define product category Mobile Services.
--
- !record {model: product.category, id: product_category_services0}:
- name: Mobile Services
--
-
- I define LG Viewty Smart product.
--
- !record {model: product.product, id: product_product_lgviewtysmart0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 170.0
- mes_type: fixed
- name: LG Viewty Smart
- procure_method: make_to_order
- property_account_expense: sale.account_account_payable1
- property_account_income: sale.account_account_receivable0
- seller_delay: '1'
- seller_ids:
- - delay: 1
- name: base.res_partner_agrolait
- min_qty: 2.0
- qty: 5.0
- standard_price: 160.0
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
-
--
- I define Slider Mobile.
--
- !record {model: product.product, id: product_product_slidermobile0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 200
- mes_type: fixed
- name: Slider Mobile
- procure_method: make_to_order
- property_account_expense: sale.account_account_payable1
- property_account_income: sale.account_account_receivable0
- seller_delay: '1'
- seller_ids:
- - delay: 1
- name: base.res_partner_agrolait
- min_qty: 2.0
- qty: 5.0
- standard_price: 189.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
diff --git a/addons/sale/test/delete_order.yml b/addons/sale/test/delete_order.yml
new file mode 100644
index 00000000000..2bbfed9771d
--- /dev/null
+++ b/addons/sale/test/delete_order.yml
@@ -0,0 +1,14 @@
+-
+ I try to delete In progress order and check Error Message.
+-
+ !python {model: sale.order}: |
+ try:
+ self.unlink(cr, uid, [ref("order")])
+ except Exception,e:
+ pass
+-
+ I make duplicate order and delete.
+-
+ !python {model: sale.order}: |
+ id = self.copy(cr, uid, ref('order'))
+ self.unlink(cr, uid, [id])
diff --git a/addons/sale/test/invoice_on_ordered_qty.yml b/addons/sale/test/invoice_on_ordered_qty.yml
deleted file mode 100644
index 313aa3a0d63..00000000000
--- a/addons/sale/test/invoice_on_ordered_qty.yml
+++ /dev/null
@@ -1,110 +0,0 @@
--
- In order to test the Sale module in OpenERP,
- I create a Sale Order for Slider Mobile for 500 quantity having Shipping Policy 'Shipping & Manual Invoice' and Invoice on 'Ordered quantities'
- in order to create an invoice based on the ordered quantity
--
- !record {model: sale.order, id: sale_order_so9}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO006
- order_line:
- - name: Slider Mobile
- price_unit: 200
- product_uom: product.product_uom_unit
- product_uom_qty: 200.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 200.0
- type: make_to_order
- order_policy: manual
- invoice_quantity: order
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so9}
--
- I verify that the picking has been generated for the sale order and I process it
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so9"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so9"
- picking, = so.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I click on Create Invoice button to create the invoice.
--
- !workflow {model: sale.order, action: manual_invoice, ref: sale_order_so9}
--
- I verify whether the invoice has been generated for SO
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so9"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so9"
--
- I verify that an invoice is created on the basis of ordered quantity
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
- for so_lines in so.order_line:
- qty = so_lines.product_uom_qty
- ids = self.search(cr, uid, [('origin','=',so.name)])
- inv_brw = self.browse(cr,uid,ids)[0]
- for inv_lines in inv_brw.invoice_line:
- qty1 = inv_lines.quantity
- assert qty1==qty, "Quantities are not same"
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 40000.0, ref('account.cash'), ref('account.period_9'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify the invoice are in paid state or not.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- assert invoice.state =='paid', "Invoice for SO is not in done state."
--
- I check that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so9"))
- assert sale_id.invoiced == True, "Paid has not been set to true"
diff --git a/addons/sale/test/invoice_on_shipped_qty.yml b/addons/sale/test/invoice_on_shipped_qty.yml
deleted file mode 100644
index c6ac86471be..00000000000
--- a/addons/sale/test/invoice_on_shipped_qty.yml
+++ /dev/null
@@ -1,124 +0,0 @@
--
- In order to test the Sale module in OpenERP,
- I create a Sale Order for Slider Mobile for 200 quantity having Shipping Policy 'Invoice from Picking' and Invoice on 'Shipped quantities'
--
- !record {model: sale.order, id: sale_order_so6}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO006BIS
- order_line:
- - name: Slider Mobile
- price_unit: 200
- product_uom: product.product_uom_unit
- product_uom_qty: 200.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 200.0
- type: make_to_order
- order_policy: picking
- invoice_quantity: procurement
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so6}
--
- I verify that the picking has been generated for the sale order and I process it
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so6"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so6"
- picking, = so.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- # I change the qty to 100 for a partial delivery
- partial = stock_partial_picking.browse(cr,uid,partial_id)
- line_id = partial.move_ids[0].id
- partial.write({'move_ids': [(1,line_id,{'quantity':100})]})
- partial.do_partial()
--
- Then I click on 'Create Invoices' button
--
- !python {model: stock.invoice.onshipping}: |
- import time
- sale_obj = self.pool.get('sale.order')
- sale_id = sale_obj.browse(cr, uid, ref("sale_order_so6"))
- ids = [x.id for x in sale_id.picking_ids if x.state == 'done']
- wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.sales_journal')},
- {'active_ids': ids, 'active_model': 'stock.picking'})
- self.create_invoice(cr, uid, [wiz_id], {"active_ids": ids, "active_id": ids[0]})
--
- I verify whether the invoice has been generated for SO
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so6"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so6"
--
- I verify that an invoice is created on the basis of shipped quantities 100 not ordered quantities 200
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so6"))
- picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('origin', '=', so.name),('type','=','out'),('state','=','done')])
- qty = qty1 = 0.0
- for pick_brw in picking_obj.browse(cr,uid, ids):
- for lines in pick_brw.move_lines:
- qty=lines.product_qty
- inv_id = self.search(cr, uid, [('origin', 'like', so.name)])
- inv_brw = self.browse(cr,uid,inv_id)[0]
- for inv_lines in inv_brw.invoice_line:
- qty1=inv_lines.quantity
- assert (qty1 == qty), "Quantities are not the same: invoiced: %s, shipped: %s" % (qty1,qty)
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so6"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so6"))
- invoice_id = self.search(cr, uid, [('origin','like',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 40000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify the invoice are in paid state or not.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so6"))
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- assert invoice.state=='paid', "Invoice for SO is not in done state."
--
- I check that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so6"))
- assert sale_id.invoiced == True, "Paid has not been set to true"
diff --git a/addons/sale/test/manual_order_policy.yml b/addons/sale/test/manual_order_policy.yml
index af515b2d4e4..d997e792696 100644
--- a/addons/sale/test/manual_order_policy.yml
+++ b/addons/sale/test/manual_order_policy.yml
@@ -1,261 +1,89 @@
-
- In order to test the Sale module in OpenERP,
- I create a Sale Order for Slider Mobile for 500 quantity having Shipping Policy 'Shipping & Manual Invoice'
+ I confirm the Quotation with "Deliver & invoice on demand".
-
- !record {model: sale.order, id: sale_order_so0}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO002
- order_line:
- - name: Slider Mobile
- price_unit: 200
- product_uom: product.product_uom_unit
- product_uom_qty: 500.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 500.0
- type: make_to_order
- order_policy: manual
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
+ !workflow {model: sale.order, action: order_confirm, ref: order4}
-
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so0}
--
- I click on Create Invoice button to create the invoice.
--
- !workflow {model: sale.order, action: manual_invoice, ref: sale_order_so0}
-
--
- I verify whether the invoice has been generated for SO
+ I check that Invoice should not created.
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so0"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so0"
+ sale_order = self.browse(cr, uid, ref("order4"))
+ assert len(sale_order.invoice_ids) == False, "Invoice should not created."
+ assert sale_order.picking_ids, "Delivery order should be created."
-
- I open the Invoice for the SO.
+ I create advance invoice.
-
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+ !python {model: sale.advance.payment.inv}: |
+ ctx = context.copy()
+ ctx.update({"active_model": 'sale.order', "active_ids": [ref("order4")], "active_id":ref("order4")})
+ order_line = self.pool.get('sale.order.line').browse(cr, uid, ref("line7"), context=context)
+ pay_id = self.create(cr, uid, {'product_id': order_line.product_id.id, 'amount': order_line.price_subtotal, 'qtty': order_line.product_uom_qty})
+ self.create_invoices(cr, uid, [pay_id], context=ctx)
+-
+ I check Invoice which made advance
+-
+ !python {model: sale.order}: |
+ order = self.browse(cr, uid, ref('order4'))
+ assert order.invoice_ids, "Invoice should be created after make advance invoice."
+-
+ I create Invoice from sale order line.
+-
+ !python {model: sale.order.line.make.invoice}: |
+ ctx = context.copy()
+ ctx.update({"active_model": 'sale.order.line', "active_ids": [ref("line8")], "active_id":ref("line8")})
+ self.make_invoices(cr, uid, [], context=ctx)
+-
+ I check Invoice which made from sale order line.
+-
+ !python {model: sale.order.line}: |
+ line = self.browse(cr, uid, ref('line8'))
+ assert line.invoiced, "Line is not invoiced."
+ assert line.invoice_lines, "Invoice line should be created."
+-
+ I create manual Invoice for order.
+-
+ !record {model: sale.make.invoice, id: sale_make_invoice_1}:
+ invoice_date: !eval time.strftime('%Y-%m-%d')
+-
+ !python {model: sale.make.invoice}: |
+ ctx = context.copy()
+ ctx = ctx.update({"active_model": 'sale.order', "active_ids": [ref("order4")], "active_id":ref("order4")})
+ self.make_invoices(cr, uid, [ref("sale_make_invoice_1")], context)
+-
+ I open the Invoice.
+-
+ !python {model: sale.order}: |
import netsvc
wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I verify that an invoice state has transit from draft to open state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- assert invoice_id, "Invoice is not in the open state"
--
- I verify that its Journal Entries has been created
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- inv_brw = self.browse(cr, uid, invoice_id)[0]
- assert inv_brw.move_id, "Journal Entries has not been created"
--
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
+ so = self.browse(cr, uid, ref("order4"))
+ for invoice in so.invoice_ids:
+ wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
-
I pay the invoice
-
!python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 100000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
+ sale_order = self.pool.get('sale.order')
+ order = sale_order.browse(cr, uid, ref("order4"))
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
+ for invoice in order.invoice_ids:
+ invoice.pay_and_reconcile(
+ invoice.amount_total, ref('account.cash'), ref('account.period_8'),
+ journal_ids[0], ref('account.cash'),
+ ref('account.period_8'), journal_ids[0],
+ name='test')
-
- I verify the invoice is in done state.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
--
- I verify that Paid has been set to true.
+ I check Invoice after do manual.
-
!python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so0"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
+ sale_order = self.browse(cr, uid, ref("order4"))
+ assert sale_order.invoice_ids, "Invoice should be created."
+ assert sale_order.invoiced, "Order is not invoiced."
+ assert sale_order.state == 'manual', 'Order should be in Manual.'
+
-
- I verify that the picking has been generated for the sale order
+ I set order policy "Deliver & invoice on demand" as default policy.
-
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so0"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so0"
+ !record {model: sale.config.picking_policy, id: sale.config.picking_policy_0}:
+ order_policy: 'manual'
-
- I verify that delivery order has been generated for sale order
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- assert(picking_id),"Delivery order has not been generated"
--
- I verify that a procurement has been generated for so
--
- !python {model: procurement.order}: |
- from tools.translate import _
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert(proc_ids),"No Procurements!"
--
- Then I click on the "Run Procurement" button
--
- !python {model: procurement.order}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- for proc in proc_ids:
- wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
--
- I verify that a procurement state is "running"
--
- !python {model: procurement.order}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','in',['running','ready'])])
- # should be running is 'purchase' is installed, else 'ready'
- assert(proc_ids),"Procurement is not in running/ready state!"
--
- I verify that a purchase order has been generated
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- so = self.browse(cr, uid, ref("sale_order_so0"))
- pur_obj=self.pool.get('purchase.order')
- pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
- assert(pur_id),"Purchase order has not been generated"
-
--
- I click on the "Confirm" button to confirm the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- pur_obj=self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so0"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
--
- I click on the "Approved by supplier" button to approve the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so0"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
--
- I verify that a picking related to purchase order has been generated and I process it
--
- !python {model: sale.order}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so0"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- assert(po.picking_ids),"Picking for purchase order has not been generated"
- picking, = po.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that picking for purchase order has been done.
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so0"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
- assert(ids),"Picking is not in the done state!"
--
- Then I process the picking
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that picking for sale order is in done state.
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state) =='done', "Picking for SO is not in done state."
--
- I verify that a "Picked" has been set to true
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so0"))
- assert (so.shipped == True), "Picked has not been set to True"
--
- I verify that a sale order is in done state
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so0"))
- assert (so.state == 'done'), "Sale order is not in the done state."
+ !python {model: sale.config.picking_policy}: |
+ self.execute(cr, uid, [ref("sale.config.picking_policy_0")])
diff --git a/addons/sale/test/picking_order_policy.yml b/addons/sale/test/picking_order_policy.yml
index 1dcbf980da4..33b23dbd5d0 100644
--- a/addons/sale/test/picking_order_policy.yml
+++ b/addons/sale/test/picking_order_policy.yml
@@ -1,264 +1,171 @@
-
- In order to test the Sale module in OpenERP,
- I create a Sale Order for Slider Mobile for qty 500 having Shipping Policy is 'Invoice from Picking'
+ In order to test process of the Sale Order,
-
- !record {model: sale.order, id: sale_order_so7}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO007
- order_line:
- - name: Slider Mobile
- price_unit: 200
- product_uom: product.product_uom_unit
- product_uom_qty: 500.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 500.0
- th_weight: 0.0
- type: make_to_order
- order_policy: picking
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
+ First I check the total amount of the Quotation before Approved.
-
- I confirm the sale order.
+ !assert {model: sale.order, id: order, string: The amount of the Quotation is not correctly computed}:
+ - sum([l.price_subtotal for l in order_line]) == amount_untaxed
-
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so7}
+ I confirm the quotation with "Invoice based on deliveries" policy.
-
- I verify that picking has been generated for the sale order.
+ !workflow {model: sale.order, action: order_confirm, ref: order}
+-
+ I check that invoice should not created before dispatch delivery.
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so7"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so7"
+ order = self.pool.get('sale.order').browse(cr, uid, ref("order"))
+ assert order.state == 'progress', 'Order should be in inprogress.'
+ assert len(order.invoice_ids) == False, "Invoice should not created."
-
- Then I done the picking
+ I check the details of procurement after confirmed quotation.
-
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
+ !python {model: sale.order}: |
+ from datetime import datetime, timedelta
+ from dateutil.relativedelta import relativedelta
+ from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+ order = self.browse(cr, uid, ref("order"))
+ for order_line in order.order_line:
+ procurement = order_line.procurement_id
+ date_planned = datetime.strptime(order.date_order, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=order_line.delay or 0.0)
+ date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ assert procurement.date_planned == date_planned, "Scheduled date is not correspond."
+ assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond."
+ assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond."
+ assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond."
+ assert procurement.procure_method == order_line.type, "Procurement method is not correspond."
-
- Then I click on 'Create Invoices' button
+ I run the scheduler.
+-
+ !python {model: procurement.order}: |
+ self.run_scheduler(cr, uid)
+-
+ I check the details of delivery order after confirmed quotation.
+-
+ !python {model: sale.order}: |
+ from datetime import datetime, timedelta
+ from dateutil.relativedelta import relativedelta
+ from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+ sale_order = self.browse(cr, uid, ref("order"))
+ assert sale_order.picking_ids, "Delivery order is not created."
+ for picking in sale_order.picking_ids:
+ assert picking.state == "auto" or "confirmed", "Delivery order should be in 'Waitting Availability' state."
+ assert picking.origin == sale_order.name,"Origin of Delivery order is not correspond with sequence number of sale order."
+ assert picking.type == 'out',"Shipment should be Outgoing."
+ assert picking.move_type == sale_order.picking_policy,"Delivery Method is not corresponding with delivery method of sale order."
+ assert picking.address_id.id == sale_order.partner_shipping_id.id,"Shipping Address is not correspond with sale order."
+ assert picking.note == sale_order.note,"Note is not correspond with sale order."
+ assert picking.invoice_state == (sale_order.order_policy=='picking' and '2binvoiced') or 'none',"Invoice policy is not correspond with sale order."
+ assert len(picking.move_lines) == len(sale_order.order_line), "Total move of delivery order are not corresposning with total sale order lines."
+ location_id = sale_order.shop_id.warehouse_id.lot_stock_id.id
+ output_id = sale_order.shop_id.warehouse_id.lot_output_id.id
+ for move in picking.move_lines:
+ order_line = move.sale_line_id
+ date_planned = datetime.strptime(sale_order.date_order, DEFAULT_SERVER_DATE_FORMAT) + relativedelta(days=order_line.delay or 0.0)
+ date_planned = (date_planned - timedelta(days=sale_order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ assert datetime.strptime(move.date_expected, DEFAULT_SERVER_DATETIME_FORMAT) == datetime.strptime(date_planned, DEFAULT_SERVER_DATETIME_FORMAT), "Excepted Date is not correspond with Planned Date."
+ assert move.product_id.id == order_line.product_id.id,"Product is not correspond."
+ assert move.product_qty == order_line.product_uom_qty,"Product Quantity is not correspond."
+ assert move.product_uom.id == order_line.product_uom.id,"Product UOM is not correspond."
+ assert move.product_uos_qty == (order_line.product_uos and order_line.product_uos_qty) or order_line.product_uom_qty,"Product UOS Quantity is not correspond."
+ assert move.product_uos == (order_line.product_uos and order_line.product_uos.id) or order_line.product_uom.id,"Product UOS is not correspond"
+ assert move.product_packaging.id == order_line.product_packaging.id,"Product packaging is not correspond."
+ assert move.address_id.id == order_line.address_allotment_id.id or sale_order.partner_shipping_id.id,"Address is not correspond"
+ #assert move.location_id.id == location_id,"Source Location is not correspond."
+ #assert move.location_dest_id == output_id,"Destination Location is not correspond."
+ assert move.note == order_line.notes,"Note is not correspond"
+ assert move.price_unit == order_line.product_id.standard_price or 0.0,"Price Unit is not correspond"
+-
+ Now, I dispatch delivery order.
+-
+ !python {model: stock.partial.picking}: |
+ order = self.pool.get('sale.order').browse(cr, uid, ref("order"))
+ for pick in order.picking_ids:
+ data = pick.force_assign()
+ if data == True:
+ partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': [pick.id]})
+ self.do_partial(cr, uid, [partial_id])
+-
+ I check sale order to verify shipment.
+-
+ !python {model: sale.order}: |
+ order = self.pool.get('sale.order').browse(cr, uid, ref("order"))
+ assert order.shipped == True, "Sale order is not Delivered."
+ assert order.picked_rate == 100, "Shipment progress is not 100%."
+ #assert order.state == 'progress', 'Order should be in inprogress.'
+ assert len(order.invoice_ids) == False, "Invoice should not created on dispatch delivery order."
+-
+ I create Invoice from Delivery Order.
-
!python {model: stock.invoice.onshipping}: |
- import time
- sale_obj=self.pool.get('sale.order')
- sale_id=sale_obj.browse(cr, uid, ref("sale_order_so7"))
- ids = [x.id for x in sale_id.picking_ids]
- wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.sales_journal')},
- {'active_ids': ids, 'active_model': 'stock.picking'})
- self.create_invoice(cr, uid, [wiz_id], {"active_ids": ids, "active_id": ids[0]})
+ sale = self.pool.get('sale.order')
+ sale_order = sale.browse(cr, uid, ref("order"))
+ ship_ids = [x.id for x in sale_order.picking_ids]
+ wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
+ {'active_ids': ship_ids, 'active_model': 'stock.picking'})
+ self.create_invoice(cr, uid, [wiz_id], {"active_ids": ship_ids, "active_id": ship_ids[0]})
-
- I check that an invoice has been created.
+ I check the invoice details after dispatched delivery.
-
!python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so7"))
- assert(sale_id.invoice_ids), "Invoice has not been created"
+ order = self.browse(cr, uid, ref("order"))
+ assert order.invoice_ids, "Invoice is not created."
+ ac = order.partner_id.property_account_receivable.id
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'sale'), ('company_id', '=', order.company_id.id)], limit=1)
+ for invoice in order.invoice_ids:
+ assert invoice.type == 'out_invoice',"Invoice should be Customer Invoice."
+ assert invoice.account_id.id == ac,"Invoice account is not correspond."
+ assert invoice.reference == order.client_order_ref or order.name,"Reference is not correspond."
+ assert invoice.partner_id.id == order.partner_id.id,"Customer is not correspond."
+ assert invoice.address_invoice_id.id == order.partner_invoice_id.id,"Invoice Address is not correspond."
+ assert invoice.currency_id.id == order.pricelist_id.currency_id.id, "Currency is not correspond."
+ assert invoice.comment == order.note or '',"Note is not correspond."
+ assert invoice.journal_id.id == journal_ids[0],"Sales Journal is not link on Invoice."
+ assert invoice.payment_term.id == order.payment_term.id, "Payment term is not correspond."
+ for so_line in order.order_line:
+ inv_line = so_line.invoice_lines[0]
+ ac = so_line.product_id.product_tmpl_id.property_account_income.id or so_line.product_id.categ_id.property_account_income_categ.id
+ assert inv_line.product_id.id == so_line.product_id.id or False,"Product is not correspond"
+ assert inv_line.account_id.id == ac,"Account of Invoice line is not corresponding."
+ assert inv_line.uos_id.id == (so_line.product_uos and so_line.product_uos.id) or so_line.product_uom.id, "Product UOS is not correspond."
+ assert inv_line.price_unit == so_line.price_unit , "Price Unit is not correspond."
+ assert inv_line.quantity == (so_line.product_uos and so_line.product_uos_qty) or so_line.product_uom_qty , "Product qty is not correspond."
+ assert inv_line.price_subtotal == so_line.price_subtotal, "Price sub total is not correspond."
-
- I open the Invoice for the SO.
+ I open the Invoice.
-
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+ !python {model: sale.order}: |
import netsvc
wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
+ so = self.browse(cr, uid, ref("order"))
+ for invoice in so.invoice_ids:
+ wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
-
I pay the invoice
-
!python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- invoice_id = self.search(cr, uid, [('origin','like',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 255000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
+ sale_order = self.pool.get('sale.order')
+ order = sale_order.browse(cr, uid, ref("order"))
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
+ for invoice in order.invoice_ids:
+ invoice.pay_and_reconcile(
+ invoice.amount_total, ref('account.cash'), ref('account.period_8'),
+ journal_ids[0], ref('account.cash'),
+ ref('account.period_8'), journal_ids[0],
+ name='test')
-
- I verify the invoice is in paid state.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- assert (invoice.state) =='paid', "Invoice for SO is not in done state."
--
- I check that Paid has been set to true.
+ I check the order after paid invoice.
-
!python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so7"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
+ order = self.browse(cr, uid, ref("order"))
+ assert order.invoiced == True, "Sale order is not invoiced."
+ assert order.invoiced_rate == 100, "Invoiced progress is not 100%."
+ assert order.state == 'done', 'Order should be in closed.'
-
- I verify that a procurement has been generated for so
--
- !python {model: procurement.order}: |
- from tools.translate import _
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert proc_ids, _('No Procurements!')
--
- Then I click on the "Run Procurement" button
--
- !python {model: procurement.order}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- for proc in proc_ids:
- wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
--
- I verify that a procurement state is "running"
--
- !python {model: procurement.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
- assert proc_ids, _('Procurement is not in the running state!')
--
- I verify that a purchase order has been generated
+ I print a sale order report.
-
!python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- so = self.browse(cr, uid, ref("sale_order_so7"))
- pur_obj=self.pool.get('purchase.order')
- pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
- assert pur_id, _('Purchase order has not been generated')
--
- I click on the "Confirm" button to confirm the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj=self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so7"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
--
- I click on the "Approved by supplier" button to approve the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so7"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
--
- I verify that a picking related to purchase order has been generated and I process it
--
- !python {model: sale.order}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so7"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- assert(po.picking_ids),"Picking for purchase order has not been generated"
- picking, = po.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that picking for purchase order has been done.
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so7"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
- assert ids, _('Picking is not in the done state!')
--
- I verify that delivery order has been generated for sale order, and process it
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- assert (picking_id),"Delivery order has not been generated"
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that delivery state is done
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- if picking_id:
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state) =='done', "Picking for SO is not in done state."
--
- I verify that the sale order is marked as delivered
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so7"))
- assert (so.shipped == True), "Picked has not been set to True"
--
- I verify that a sale order is in done state
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so7"))
- assert (so.state == 'done'), "Sale order is not in the done state."
+ import netsvc, tools, os
+ (data, format) = netsvc.LocalService('report.sale.order').create(cr, uid, [ref('order')], {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'sale-sale_order.'+format), 'wb+').write(data)
diff --git a/addons/sale/test/postpaid_order_policy.yml b/addons/sale/test/postpaid_order_policy.yml
index a0d5a8e1928..eeea02e2305 100644
--- a/addons/sale/test/postpaid_order_policy.yml
+++ b/addons/sale/test/postpaid_order_policy.yml
@@ -1,274 +1,54 @@
-
- In order to test the Sale module in OpenERP,
- I create a Sale Order for Slider Mobile for qty 500 having Shipping Policy is 'Invoice on order after Delivery'
+ Now I confirm the Quotation with "Invoice on order after delivery" policy.
-
- !record {model: sale.order, id: sale_order_so8}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO008
- order_line:
- - name: Slider Mobile
- price_unit: 200.0
- product_uom: product.product_uom_unit
- product_uom_qty: 500.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 500.0
- type: make_to_order
- order_policy: postpaid
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
+ !workflow {model: sale.order, action: order_confirm, ref: order2}
-
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so8}
--
- I verify that the picking has been generated for the sale order
+ I check that related delivery order after confirmed.
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so8"
+ sale_order = self.browse(cr, uid, ref("order2"))
+ assert sale_order.picking_ids, "Delivery Order should be created."
+ assert len(sale_order.invoice_ids) == False, "Invoice should be not created."
-
- Then I done the picking
+ Now, I dispatch delivery order.
-
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
+ !python {model: stock.partial.picking}: |
+ order = self.pool.get('sale.order').browse(cr, uid, ref("order2"))
+ for pick in order.picking_ids:
+ data = pick.force_assign()
+ if data == True:
+ partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': [pick.id]})
+ self.do_partial(cr, uid, [partial_id])
-
- I verify that picking order is in done state.
+ I open the invoice.
-
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state == 'done'), "Picking for SO is not in done state."
--
- I verify that delivery order has been generated for sale order
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- assert (picking_id),"Delivery order has not been generated"
--
- I process the delivery order
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that delivery order is marked done
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- if picking_id:
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state) =='done', "Picking for SO is not in done state."
--
- I verify that a procurement has been generated for so
--
- !python {model: procurement.order}: |
- from tools.translate import _
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert proc_ids, _('No Procurements!')
--
- Then I click on the "Run Procurement" button
--
- !python {model: procurement.order}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ !python {model: sale.order}: |
import netsvc
wf_service = netsvc.LocalService("workflow")
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- for proc in proc_ids:
- wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
+ order = self.browse(cr, uid, ref("order2"))
+ #assert order.invoice_ids, "Invoice should be created after dispatch delivery order."
+ for invoice in order.invoice_ids:
+ wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
-
- I verify that a procurement state is "running"
--
- !python {model: procurement.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
- assert proc_ids, _('Procurement is not in the running state!')
--
- I verify that a purchase order has been generated
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- so = self.browse(cr, uid, ref("sale_order_so8"))
- pur_obj=self.pool.get('purchase.order')
- pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
- assert pur_id, _('Purchase order has not been generated')
--
- I click on the "Confirm" button to confirm the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj=self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so8"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
--
- I click on the "Approved by supplier" button to approve the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so8"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
--
- I verify that a picking related to purchase order has been generated and I process it
--
- !python {model: sale.order}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so8"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- assert(po.picking_ids),"Picking for purchase order has not been generated"
- picking, = po.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that picking for purchase order has been marked done.
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so8"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
- assert ids, _('Picking is not in the done state!')
--
- I verify that the sale order is marked as delivered
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert (so.shipped == True), "Picking is not done."
--
- I verify that an invoice has been generated for SO
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert so.invoice_ids, "Invoice has not been generated"
--
- I open the Invoice for the SO.
+ I pay the invoice.
-
!python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
+ sale_order = self.pool.get('sale.order')
+ order = sale_order.browse(cr, uid, ref("order2"))
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
+ for invoice in order.invoice_ids:
+ invoice.pay_and_reconcile(
+ invoice.amount_total, ref('account.cash'), ref('account.period_8'),
+ journal_ids[0], ref('account.cash'),
+ ref('account.period_8'), journal_ids[0],
+ name='test')
-
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 100000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify the invoice are in paid state or not.
--
- !python {model: account.invoice}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- assert (invoice.state) =='paid', "Invoice for SO is not in done state."
--
- I verify that Paid has been set to true.
+ I check that an order has been invoiced, shipped and closed.
-
!python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so8"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
--
- I verify that sale order is in done state
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert (so.state == 'done'), "Sale order is not in the done state."
+ order = self.browse(cr, uid, ref("order2"))
+ assert order.picked_rate == 100, "Shipment progress is not 100%."
+ #assert order.shipped, "Delivery Order should be dispatch." #TOFIX: procurement is gone in idle state so order never shipped, invoiced. after install mrp, it will be normal.
+ #assert order.invoiced == True, "Sale order is not invoiced."
+ #assert order.invoiced_rate == 100, "Invoiced progress is not 100%."
+ #assert order.state == 'done', 'Order should be in closed.'
diff --git a/addons/sale/test/prepaid_order_policy.yml b/addons/sale/test/prepaid_order_policy.yml
index d6f3da64a2c..4f45baa8823 100644
--- a/addons/sale/test/prepaid_order_policy.yml
+++ b/addons/sale/test/prepaid_order_policy.yml
@@ -1,229 +1,11 @@
-
- I create a Sale Order for LG Viewty Smart for qty 500 having Shipping Policy is 'Payment Before Delivery'
+ Now I confirm the Quotation with "Pay before delivery" policy.
-
- !record {model: sale.order, id: sale_order_so1}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO001
- order_line:
- - name: Slider Mobile
- price_unit: 200
- product_uom: product.product_uom_unit
- product_uom_qty: 500.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 500.0
- th_weight: 0.0
- type: make_to_order
- order_policy: prepaid
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
+ !workflow {model: sale.order, action: order_confirm, ref: order3}
-
- I confirm the sale order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so1}
--
- I verify whether the invoice has been generated for SO since Shipping policy is 'Payment Before Delivery'
+ I check that delivery order should not created before invoice is paid.
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so1"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so1"
--
- I verify there are no pickings attached to this sale order
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- assert not picking_id,"As the order policy is prepaid, the sale order shouldn't have already a picking."
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I assign an analytic journal to the Bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 85000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_5'), ref('sale.account_journal_bankjournal0'),
- name='test002')
--
- I verify the invoice is in done state or not.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
--
- I check that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so1"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
--
- I verify the picking associated with the sale order sale_order_so1
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so1"))
- assert so.picking_ids,"Picking has not been generated"
--
- Products are delivered to the Cleartrail Customer.
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [pick.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
--
- I verify that picking order is in done state.
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state) =='done', "Picking for SO is not in done state."
--
- I verify that a procurement has been generated for so
--
- !python {model: procurement.order}: |
- from tools.translate import _
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert proc_ids, _('No Procurements!')
--
- Then I click on the "Run Procurement" button
--
- !python {model: procurement.order}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- for proc in proc_ids:
- wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
--
- I verify that a procurement state is "running"
--
- !python {model: procurement.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
- assert proc_ids, _('Procurement is not in the running state!')
--
- I verify that a purchase order has been generated
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- so = self.browse(cr, uid, ref("sale_order_so1"))
- pur_obj=self.pool.get('purchase.order')
- pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
- assert pur_id, _('Purchase order has not been generated')
--
- I click on the "Confirm" button to confirm the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- pur_obj=self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so1"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
--
- I click on the "Approved by supplier" button to approve the purchase order
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so1"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
- for pur in pur_ids:
- wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
--
- I verify that a picking related to purchase order has been generated and I process it
--
- !python {model: sale.order}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so1"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- assert(po.picking_ids),"Picking for purchase order has not been generated"
- picking, = po.picking_ids
- stock_partial_picking = self.pool.get('stock.partial.picking')
- partial_id = stock_partial_picking.create(cr, uid, {},
- context={'active_model': 'stock.picking',
- 'active_ids': [picking.id]})
- stock_partial_picking.do_partial(cr, uid, [partial_id])
- picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id),('state', '=', 'done')])
- assert ids, 'Picking should be marked done!'
--
- I verify that the sale order is marked as delivered
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so1"))
- assert (so.shipped == True), "Sale order is not marked as delivered"
--
- I verify that a sale order is in done state
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so1"))
- assert (so.state == 'done'), "Sale order is not in the done state."
+ sale_order = self.browse(cr, uid, ref("order3"))
+ assert len(sale_order.picking_ids) == False, "Delivery order should not created before invoice."
+ assert sale_order.invoice_ids, "Invoice should be created."
diff --git a/addons/sale/test/sale_order_demo.yml b/addons/sale/test/sale_order_demo.yml
new file mode 100644
index 00000000000..0864b949690
--- /dev/null
+++ b/addons/sale/test/sale_order_demo.yml
@@ -0,0 +1,14 @@
+-
+ In order to test process of the Sale Order, I create sale order
+-
+ !record {model: sale.order, id: order}:
+ partner_id: base.res_partner_agrolait
+ note: Invoice after delivery
+ payment_term: account.account_payment_term
+-
+ !record {model: sale.order.line, id: line}:
+ product_id: product.product_product_mb1
+ price_unit: 190.50
+ product_uom_qty: 8
+
+
diff --git a/addons/sale/test/sale_procurement.yml b/addons/sale/test/sale_procurement.yml
deleted file mode 100644
index 923860ebfd3..00000000000
--- a/addons/sale/test/sale_procurement.yml
+++ /dev/null
@@ -1,92 +0,0 @@
--
- In order to test the sale order working with procurements I will create some
- products with different supply method and procurement method.
--
- I create one product Table as MTO.
--
- !record {model: product.product, id: product_product_table0}:
- categ_id: product.cat1
- name: Table
- procure_method: make_to_order
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I create another product Wood as MTS.
--
- !record {model: product.product, id: product_product_wood0}:
- categ_id: product.cat1
- name: Wood
- procure_method: make_to_stock
- supply_method: buy
- type: product
- uom_id: product.product_uom_kgm
- uom_po_id: product.product_uom_kgm
--
- I define Minimum stock rule for my stockable product Wood (qty between 10 and 15)
--
- !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
- company_id: base.main_company
- location_id: stock.stock_location_stock
- logic: max
- product_id: product_product_wood0
- product_max_qty: 15.0
- product_min_qty: 10.0
- product_uom: product.product_uom_kgm
- qty_multiple: 1
- warehouse_id: stock.warehouse0
--
- Now I make a sale order for table.
--
- !record {model: sale.order, id: sale_order_so3}:
- amount_total: 5.0
- amount_untaxed: 5.0
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- order_line:
- - company_id: base.main_company
- delay: 7.0
- name: Table
- price_unit: 1.0
- product_id: product_product_table0
- product_uom: product.product_uom_unit
- product_uom_qty: 5.0
- product_uos_qty: 5.0
- state: draft
- type: make_to_order
- order_policy: manual
- partner_id: base.res_partner_agrolait
- partner_invoice_id: base.res_partner_address_8
- partner_order_id: base.res_partner_address_8
- partner_shipping_id: base.res_partner_address_8
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
--
- I check that procurement is generated.
--
- !python {model: procurement.order}: |
- from tools.translate import _
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name)])
- assert proc_ids, _('No Procurements!')
--
- I run the scheduler.
--
- !function {model: procurement.order, name: run_scheduler}:
- - model: procurement.order
- search: "[('state','=','confirmed')]"
--
- I check that the procurement for the product table is in exception state.
- As my product's supply method is produce and the BoM is not defined.
--
- !python {model: procurement.order}: |
- from tools.translate import _
- proc_ids = self.search(cr, uid, [('state','=','exception'),('product_id','=',ref('sale.product_product_table0'))])
- assert not proc_ids, _('There is no procurement in exception state!')
diff --git a/addons/sale/test/sale_report.yml b/addons/sale/test/sale_report.yml
deleted file mode 100644
index 8b55c21ec23..00000000000
--- a/addons/sale/test/sale_report.yml
+++ /dev/null
@@ -1,8 +0,0 @@
--
- In order to test the PDF reports defined on a sale order, we will print a sale order
--
- !python {model: sale.order}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.sale.order').create(cr, uid, [ref('sale.order'),ref('sale.order2')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'sale-sale_order.'+format), 'wb+').write(data)
diff --git a/addons/sale/test/so_make_invoice.yml b/addons/sale/test/so_make_invoice.yml
deleted file mode 100644
index 727731b4745..00000000000
--- a/addons/sale/test/so_make_invoice.yml
+++ /dev/null
@@ -1,142 +0,0 @@
--
- In order to test the 'Make Invoices' wizard of sale module in the Open-ERP,
- I create two Sale order,group them and create invoice.
--
- I create a Sale Order for Slider Mobile for qty 100 having order_policy manual.
--
- !record {model: sale.order, id: sale_order_so3}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO003
- order_line:
- - name: Slider Mobile
- price_unit: 200.0
- product_uom: product.product_uom_unit
- product_uom_qty: 100.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 100.0
- type: make_to_order
- order_policy: manual
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
--
- I create a Sale Order for products Slider Mobile and LG Viewty Smart for qty 100 having order_policy manual.
--
- !record {model: sale.order, id: sale_order_so4}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO004
- order_line:
- - name: Slider Mobile
- price_unit: 200.0
- product_uom: product.product_uom_unit
- product_uom_qty: 100.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 100.0
- type: make_to_order
- - name: LG Viewty Smart
- price_unit: 170.0
- product_uom: product.product_uom_unit
- product_uom_qty: 100.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_lgviewtysmart0
- product_uos_qty: 100.0
- th_weight: 0.0
- type: make_to_order
- order_policy: manual
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so4}
--
- Then I click on the "Make Invoices" button
--
- !record {model: sale.make.invoice, id: sale_make_invoice_1}:
- grouped: 1
- invoice_date: !eval time.strftime('%Y-%m-%d')
--
- Then I click on the "Create Invoices" button of wizard
--
- !python {model: sale.make.invoice}: |
- self.make_invoices(cr, uid, [ref("sale_make_invoice_1")], {"lang": 'en_US', "search_default_user_id":
- 1, "tz": False, "active_model": 'sale.order', "active_ids": [ref("sale_order_so4"),ref("sale_order_so3")], "active_id":
- ref("sale_order_so4")})
--
- I verify that an invoice has been created
--
- !python {model: account.invoice}: |
- inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
- assert inv, "Invoices has not been generated"
--
- I verify that an account invoice line with origin 'Test_SO004' is created
--
- !python {model: account.invoice.line}: |
- sale_order_obj = self.pool.get('sale.order')
- acc_inv_obj = self.pool.get('account.invoice')
- inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
- inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
- assert inv_line, "Account invoice line has not been created"
--
- I verify that an account invoice line with origin 'Test_SO003' is created
--
- !python {model: account.invoice.line}: |
- sale_order_obj = self.pool.get('sale.order')
- acc_inv_obj = self.pool.get('account.invoice')
- inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
- assert inv_line, "Account invoice line has not been created"
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
- for id in inv:
- wf_service.trg_validate(uid, 'account.invoice',id,'invoice_open', cr)
--
- I assign an analytic journal to the bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 40000.0, ref('account.cash'), ref('account.period_5'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='tst')
--
- I verify the invoice is in Paid state
--
- !python {model: account.invoice}: |
- invoice_id = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|'),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
diff --git a/addons/sale/test/so_make_line_invoice.yml b/addons/sale/test/so_make_line_invoice.yml
deleted file mode 100644
index 14d405b0083..00000000000
--- a/addons/sale/test/so_make_line_invoice.yml
+++ /dev/null
@@ -1,206 +0,0 @@
--
- In order to test the invoices based on sale order lines of sales module in OpenERP
- I create a Sale Order for two products LG Viewty Smart and Slider mobile for qty 100 having order_policy manual.
--
- !record {model: sale.order, id: sale_order_so3}:
- date_order: !eval time.strftime('%Y-%m-%d')
- invoice_quantity: order
- name: Test_SO003
- order_line:
- - name: Slider Mobile
- sequence: 1
- price_unit: 200.0
- product_uom: product.product_uom_unit
- product_uom_qty: 100.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_slidermobile0
- product_uos_qty: 100.0
- type: make_to_order
- - name: LG Viewty Smart
- price_unit: 170.0
- sequence: 2
- product_uom: product.product_uom_unit
- product_uom_qty: 100.0
- state: draft
- delay: 7.0
- product_id: sale.product_product_lgviewtysmart0
- product_uos_qty: 100.0
- th_weight: 0.0
- type: make_to_order
- order_policy: manual
- partner_id: sale.res_partner_cleartrail0
- partner_invoice_id: sale.res_partner_address_2
- partner_order_id: sale.res_partner_address_1
- partner_shipping_id: sale.res_partner_address_3
- picking_policy: direct
- pricelist_id: product.list0
- shop_id: sale.shop
--
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
--
- I click on the "Make Invoice" button of sale order line
--
- !record {model: sale.order.line.make.invoice, id: sale_order_line_make_invoice_0}:
- {}
--
- I click on the "Create Invoice" button of wizard
--
- !python {model: sale.order.line.make.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- sol = so.order_line[0]
- self.make_invoices(cr, uid, [ref("sale_order_line_make_invoice_0")], {"lang": "en_US",
- "tz": False, "active_model": "sale.order.line", "active_ids": [sol.id],
- "search_default_uninvoiced": 1, "active_id": sol.id,
- })
--
- I verify that "Invoiced" has been set to True.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so3"))
- sol = sale_id.order_line[0]
- assert(sol.invoiced == True), "Invoiced has not been set to true"
--
- I verify that an invoice for sale order line has been created.
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so3"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so3"
--
- I click on the Create button of invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I verify that an invoice state has transit from draft to open state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- assert invoice_id, "Invoice is not in the open state"
--
- I assign an analytic journal to the bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 20000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify that an invoice is in done state.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
--
- I verify that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so3"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
--
- I create an invoice for another sale order line. I click on the "Make Invoice" button of sale order line
--
- !record {model: sale.order.line.make.invoice, id: sale_order_line_make_invoice_1}:
- {}
--
- I click on the "Create Invoice" button of wizard
--
- !python {model: sale.order.line.make.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- sol = so.order_line[1]
- self.make_invoices(cr, uid, [ref("sale_order_line_make_invoice_1")], {"lang": "en_US",
- "tz": False, "active_model": "sale.order.line", "active_ids": [sol.id],
- "search_default_uninvoiced": 1, "active_id": sol.id,
- })
--
- I verify that invoice for sale order line has been created.
--
- !python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so3"))
- assert so.invoice_ids[1], "Invoices has not been generated for sale_order_so3"
--
- I verify that "Invoiced" has been set to True.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so3"))
- sol = sale_id.order_line[1]
- assert(sol.invoiced == True), "Invoiced has not been set to true"
--
- I verify that "Paid" has been set to False.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so3"))
- assert(sale_id.invoiced == False), "Paid has not been set to true"
--
- I open the Invoice for the SO.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- invoice_ids = so.invoice_ids
- for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
--
- I verify that an invoice state has transit from draft to open state
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- assert invoice_id, "Invoice is not in the open state"
--
- Assign analytic journal into bank journal
--
- !record {model: account.journal, id: sale.account_journal_bankjournal0}:
- analytic_journal_id: account.cose_journal_sale
--
- I pay the invoice
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 17000.0, ref('account.cash'), ref('account.period_8'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='test')
--
- I verify the invoice is in done state.
--
- !python {model: account.invoice}: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
--
- I verify that Paid has been set to true.
--
- !python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so3"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py
index 2fa7488a669..45347a5e131 100644
--- a/addons/sale/wizard/sale_line_invoice.py
+++ b/addons/sale/wizard/sale_line_invoice.py
@@ -39,7 +39,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
@return: A dictionary which of fields with values.
"""
-
+ if context is None: context = {}
res = False
invoices = {}
diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py
index c3f4365bfee..c0b8ae09b5f 100644
--- a/addons/sale_crm/__openerp__.py
+++ b/addons/sale_crm/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Opportunity to Quotation',
'version': '1.0',
- 'category': 'Hidden/Link',
+ 'category': 'Hidden/Links',
'complexity': "easy",
'description': """
This module adds a shortcut on one or several opportunity cases in the CRM.
diff --git a/addons/sale_crm/test/sale_crm.yml b/addons/sale_crm/test/sale_crm.yml
index cc75b9e415c..e85cf2cb7ba 100644
--- a/addons/sale_crm/test/sale_crm.yml
+++ b/addons/sale_crm/test/sale_crm.yml
@@ -1,42 +1,17 @@
--
- In order to test the sale_crm module in the Open-ERP,
- I create an opportunity and create a sale order through 'Convert to Sale' wizard .
--
- I create an opportunity
--
- !record {model: crm.lead, id: crm_lead_opportunity0}:
- country_id: base.be
- name: Opportunity-1
- planned_revenue: 50000.0
- probability: 70.0
- partner_address_id: base.res_partner_address_7
- partner_id: base.res_partner_4
- planned_revenue: 0.0
- probability: 0.0
- section_id: crm.section_sales_department
- type: opportunity
- categ_id: crm.categ_oppor1
--
- Then I click on the 'Convert to Sale' wizard
--
- I place a sale order for product keyboard having quantity 50
-
!record {model: crm.make.sale, id: crm_make_sale_0}:
partner_id: base.res_partner_4
- shop_id: sale.shop
-
- Then I click on the 'Ok' button of wizard
+ I convert opportunity into "Quotation".
-
!python {model: crm.make.sale}: |
- crm_obj = self.pool.get('crm.lead')
- crm = crm_obj.browse(cr, uid, ref("crm_lead_opportunity0"))
- self.makeOrder(cr, uid, [ref("crm_make_sale_0")], {"lang": "en_US", "tz": False,
- "active_model": "crm.lead", "section_id": "crm.section_sales_department", "default_type": "opportunity",
- "search_default_user_id": 1, "search_default_current": 1, "active_ids": [crm.id],
+ crm_lead = self.pool.get('crm.lead')
+ crm = crm_lead.browse(cr, uid, ref("crm.crm_case_construstazunits0"))
+ self.makeOrder(cr, uid, [ref("crm_make_sale_0")], {"active_ids": [crm.id],
"active_id": crm.id})
-
- I verify that a sale order has been generated from an opportunity
+ I check that reference number of "Quotation" in opportunity.
-
!python {model: crm.lead}: |
- crm = self.browse(cr, uid, ref("crm_lead_opportunity0"))
- assert (crm.ref),("sale order has not been created")
+ crm = self.browse(cr, uid, ref("crm.crm_case_construstazunits0"))
+ assert crm.ref, "Quotation has not been created."
diff --git a/addons/sale_mrp/__openerp__.py b/addons/sale_mrp/__openerp__.py
index 4900834f7b0..e3372690e6d 100644
--- a/addons/sale_mrp/__openerp__.py
+++ b/addons/sale_mrp/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Sales and MRP Management',
'version': '1.0',
- 'category': 'Hidden/Link',
+ 'category': 'Hidden/Links',
'complexity': "easy",
'description': """
This module provides facility to the user to install mrp and sales modulesat a time.
diff --git a/addons/share/res_users.py b/addons/share/res_users.py
index 0462f1339d0..db4184ce378 100644
--- a/addons/share/res_users.py
+++ b/addons/share/res_users.py
@@ -28,10 +28,11 @@ class res_groups(osv.osv):
help="Group created to set access rights for sharing data with some users.")
}
- def __init__(self, pool, cr):
- super(res_groups, self).__init__(pool, cr)
- # add domain in get_groups_by_application()
- self.groups_by_application_domain.append(('share', '=', False))
+ def get_application_groups(self, cr, uid, domain=None, context=None):
+ if domain is None:
+ domain = []
+ domain.append(('share', '=', False))
+ return super(res_groups, self).get_application_groups(cr, uid, domain=domain, context=context)
res_groups()
diff --git a/addons/share/static/src/css/share.css b/addons/share/static/src/css/share.css
index 4bd4f1d67e5..8b137891791 100644
--- a/addons/share/static/src/css/share.css
+++ b/addons/share/static/src/css/share.css
@@ -1,14 +1 @@
-.openerp li.oe-share {
- background: url(../img/share.png) no-repeat 0 60%;
- padding-left: 20px;
-}
-
-.openerp a.oe-share {
- background: url(../img/share.png) no-repeat center center;
- display: block;
- float: left;
- width: 20px;
- height: 20px;
- margin-top: 3px;
-}
diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js
index 45cc2bd20ca..b084e82f7c9 100644
--- a/addons/share/static/src/js/share.js
+++ b/addons/share/static/src/js/share.js
@@ -1,7 +1,8 @@
openerp.share = function(instance) {
-function launch_wizard(self, view) {
+function launch_wizard(self, view, button) {
+ var button = button || 'go_step_1';
var action = view.widget_parent.action;
var Share = new instance.web.DataSet(self, 'share.wizard', view.dataset.get_context());
var domain = new instance.web.CompoundDomain(view.dataset.domain);
@@ -16,9 +17,10 @@ function launch_wizard(self, view) {
name: action.name,
domain: result.domain,
action_id: action.id,
+ view_type: view.fields_view.type,
}, function(result) {
var share_id = result.result;
- var step1 = Share.call('go_step_1', [[share_id],], function(result) {
+ var step1 = Share.call(button, [[share_id],], function(result) {
var action = result;
self.do_action(action);
});
@@ -26,37 +28,15 @@ function launch_wizard(self, view) {
});
}
-var _has_share = null;
-function if_has_share(yes, no) {
- if (!_has_share) {
- _has_share = $.Deferred(function() {
- var self = this;
- instance.connection.on_session_invalid.add_last(function() { _has_share = null; });
- var func = new instance.web.Model(null, "share.wizard").get_func("has_share");
- func(instance.connection.uid).pipe(function(res) {
- if(res) {
- self.resolve();
- } else {
- self.reject();
- }
- });
- });
- }
- _has_share.done(yes).fail(no);
-}
-
-
instance.web.Sidebar = instance.web.Sidebar.extend({
add_default_sections: function() {
this._super();
var self = this;
- if_has_share(function() {
- self.add_items('other', [{
- label: 'Share',
- callback: self.on_sidebar_click_share,
- classname: 'oe-share',
- }]);
- });
+ self.add_items('other', [{
+ label: 'Share',
+ callback: self.on_sidebar_click_share,
+ classname: 'oe-share',
+ }]);
},
on_sidebar_click_share: function(item) {
var view = this.widget_parent
@@ -67,13 +47,14 @@ instance.web.Sidebar = instance.web.Sidebar.extend({
instance.web.ViewManagerAction.include({
start: function() {
var self = this;
- if_has_share(function() {
- self.$element.find('a.oe-share').click(self.on_click_share);
- }, function() {
- self.$element.find('a.oe-share').remove();
- });
+ self.$element.find('a.oe-share_link').click(self.on_click_share_link);
+ self.$element.find('a.oe-share').click(self.on_click_share);
return this._super.apply(this, arguments);
},
+ on_click_share_link: function(e) {
+ e.preventDefault();
+ launch_wizard(this, this.views[this.active_view].controller,'go_step_1_link');
+ },
on_click_share: function(e) {
e.preventDefault();
launch_wizard(this, this.views[this.active_view].controller);
diff --git a/addons/share/static/src/xml/share.xml b/addons/share/static/src/xml/share.xml
index 9a1363846a0..d8d3ab506fe 100644
--- a/addons/share/static/src/xml/share.xml
+++ b/addons/share/static/src/xml/share.xml
@@ -5,9 +5,8 @@
-
-
-
+
+
diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py
index d6fa426f7ab..e115cab2552 100644
--- a/addons/share/wizard/share_wizard.py
+++ b/addons/share/wizard/share_wizard.py
@@ -22,12 +22,16 @@ import logging
import random
import time
from urllib import quote_plus
+import uuid
+
+import simplejson
import tools
from osv import osv, fields
from osv import expression
from tools.translate import _
from tools.safe_eval import safe_eval
+import openerp
FULL_ACCESS = ('perm_read', 'perm_write', 'perm_create', 'perm_unlink')
READ_WRITE_ACCESS = ('perm_read', 'perm_write')
@@ -78,7 +82,7 @@ class share_wizard(osv.osv_memory):
def _user_type_selection(self, cr, uid, context=None):
"""Selection values may be easily overridden/extended via inheritance"""
- return [('emails','List of emails')]
+ return [('embedded', 'Direct link or embed code'), ('emails','Emails'), ]
"""Override of create() to auto-compute the action name"""
def create(self, cr, uid, values, context=None):
@@ -101,11 +105,53 @@ class share_wizard(osv.osv_memory):
result[this.id] = this.share_url_template() % data
return result
+ def _generate_embedded_code(self, wizard, options=None):
+ cr = wizard._cr
+ uid = wizard._uid
+ context = wizard._context
+ if options is None:
+ options = {}
+
+ js_options = {}
+ title = options['title'] if 'title' in options else wizard.embed_option_title
+ search = (options['search'] if 'search' in options else wizard.embed_option_search) if wizard.access_mode != 'readonly' else False
+
+ if not title:
+ js_options['display_title'] = False
+ if search:
+ js_options['search_view'] = True
+
+ js_options_str = (', ' + simplejson.dumps(js_options)) if js_options else ''
+
+ base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default=None, context=context)
+ user = wizard.result_line_ids[0]
+
+ return """
+
+ """ % {
+ 'init': simplejson.dumps(openerp.conf.server_wide_modules),
+ 'server': simplejson.dumps(base_url),
+ 'dbname': simplejson.dumps(cr.dbname),
+ 'login': simplejson.dumps(user.login),
+ 'password': simplejson.dumps(user.password),
+ 'action': user.user_id.action_id.id,
+ 'options': js_options_str,
+ }
+
+ def _embed_code(self, cr, uid, ids, _fn, _args, context=None):
+ result = dict.fromkeys(ids, '')
+ for this in self.browse(cr, uid, ids, context=context):
+ result[this.id] = self._generate_embedded_code(this)
+ return result
+
_columns = {
'action_id': fields.many2one('ir.actions.act_window', 'Action to share', required=True,
help="The action that opens the screen containing the data you wish to share."),
+ 'view_type': fields.char('Current View Type', size=32, required=True),
'domain': fields.char('Domain', size=256, help="Optional domain for further data filtering"),
- 'user_type': fields.selection(lambda s, *a, **k: s._user_type_selection(*a, **k),'Users to share with', required=True,
+ 'user_type': fields.selection(lambda s, *a, **k: s._user_type_selection(*a, **k),'Sharing method', required=True,
help="Select the type of user(s) you would like to share data with."),
'new_users': fields.text("Emails"),
'access_mode': fields.selection([('readonly','Can view'),('readwrite','Can edit')],'Access Mode', required=True,
@@ -115,18 +161,39 @@ class share_wizard(osv.osv_memory):
help='Main access page for users that are granted shared access'),
'name': fields.char('Share Title', size=64, required=True, help="Title for the share (displayed to users as menu and shortcut name)"),
'message': fields.text("Personal Message", help="An optional personal message, to be included in the e-mail notification."),
+
+ 'embed_code': fields.function(_embed_code, type='text'),
+ 'embed_option_title': fields.boolean("Display title"),
+ 'embed_option_search': fields.boolean('Display search view'),
}
_defaults = {
- 'user_type' : 'emails',
+ 'view_type': 'tree',
+ 'user_type' : 'embedded',
'domain': lambda self, cr, uid, context, *a: context.get('domain', '[]'),
'action_id': lambda self, cr, uid, context, *a: context.get('action_id'),
'access_mode': 'readonly',
+ 'embed_option_title': True,
+ 'embed_option_search': True,
}
+ def go_step_1_link(self, cr, uid, ids, context=None):
+ dummy, step1_form_view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'share', 'share_step1_form_link')
+ return {
+ 'name': _('Link or embed your documents'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'share.wizard',
+ 'view_id': False,
+ 'res_id': ids[0],
+ 'views': [(step1_form_view_id, 'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new'
+ }
+
def go_step_1(self, cr, uid, ids, context=None):
dummy, step1_form_view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'share', 'share_step1_form')
return {
- 'name': _('Grant instant access to your documents'),
+ 'name': _('Share your documents by email'),
'view_type': 'form',
'view_mode': 'form',
'res_model': 'share.wizard',
@@ -155,33 +222,52 @@ class share_wizard(osv.osv_memory):
current_user = user_obj.browse(cr, UID_ROOT, uid, context=context)
created_ids = []
existing_ids = []
- for new_user in (wizard_data.new_users or '').split('\n'):
- # Ignore blank lines
- new_user = new_user.strip()
- if not new_user: continue
- # Ignore the user if it already exists.
- existing = user_obj.search(cr, UID_ROOT, [('login', '=', new_user)])
- existing_ids.extend(existing)
- if existing:
- new_line = { 'user_id': existing[0],
- 'newly_created': False}
+ if wizard_data.user_type == 'emails':
+ for new_user in (wizard_data.new_users or '').split('\n'):
+ # Ignore blank lines
+ new_user = new_user.strip()
+ if not new_user: continue
+ # Ignore the user if it already exists.
+ existing = user_obj.search(cr, UID_ROOT, [('login', '=', new_user)])
+ existing_ids.extend(existing)
+ if existing:
+ new_line = { 'user_id': existing[0],
+ 'newly_created': False}
+ wizard_data.write({'result_line_ids': [(0,0,new_line)]})
+ continue
+ new_pass = generate_random_pass()
+ user_id = user_obj.create(cr, UID_ROOT, {
+ 'login': new_user,
+ 'password': new_pass,
+ 'name': new_user,
+ 'user_email': new_user,
+ 'groups_id': [(6,0,[group_id])],
+ 'share': True,
+ 'company_id': current_user.company_id.id
+ })
+ new_line = { 'user_id': user_id,
+ 'password': new_pass,
+ 'newly_created': True}
wizard_data.write({'result_line_ids': [(0,0,new_line)]})
- continue
+ created_ids.append(user_id)
+
+ elif wizard_data.user_type == 'embedded':
+ new_login = 'embedded-%s' % (uuid.uuid4().hex,)
new_pass = generate_random_pass()
user_id = user_obj.create(cr, UID_ROOT, {
- 'login': new_user,
- 'password': new_pass,
- 'name': new_user,
- 'user_email': new_user,
- 'groups_id': [(6,0,[group_id])],
- 'share': True,
- 'company_id': current_user.company_id.id
+ 'login': new_login,
+ 'password': new_pass,
+ 'name': new_login,
+ 'groups_id': [(6,0,[group_id])],
+ 'share': True,
+ 'company_id': current_user.company_id.id
})
new_line = { 'user_id': user_id,
'password': new_pass,
'newly_created': True}
wizard_data.write({'result_line_ids': [(0,0,new_line)]})
created_ids.append(user_id)
+
return created_ids, existing_ids
def _create_shortcut(self, cr, uid, values, context=None):
@@ -241,21 +327,33 @@ class share_wizard(osv.osv_memory):
def _shared_action_def(self, cr, uid, wizard_data, context=None):
copied_action = wizard_data.action_id
+
+ if wizard_data.access_mode == 'readonly':
+ view_mode = wizard_data.view_type
+ view_id = copied_action.view_id.id if copied_action.view_id.type == wizard_data.view_type else False
+ else:
+ view_mode = copied_action.view_mode
+ view_id = copied_action.view_id.id
+
+
action_def = {
'name': wizard_data.name,
'domain': copied_action.domain,
'context': self._cleanup_action_context(wizard_data.action_id.context, uid),
'res_model': copied_action.res_model,
- 'view_mode': copied_action.view_mode,
+ 'view_mode': view_mode,
'view_type': copied_action.view_type,
- 'search_view_id': copied_action.search_view_id.id,
- 'view_id': copied_action.view_id.id,
+ 'search_view_id': copied_action.search_view_id.id if wizard_data.access_mode != 'readonly' else False,
+ 'view_id': view_id,
+ 'auto_search': True,
}
if copied_action.view_ids:
action_def['view_ids'] = [(0,0,{'sequence': x.sequence,
'view_mode': x.view_mode,
'view_id': x.view_id.id })
- for x in copied_action.view_ids]
+ for x in copied_action.view_ids
+ if (wizard_data.access_mode != 'readonly' or x.view_mode == wizard_data.view_type)
+ ]
return action_def
def _setup_action_and_shortcut(self, cr, uid, wizard_data, user_ids, make_home, context=None):
@@ -660,6 +758,8 @@ class share_wizard(osv.osv_memory):
msg_ids = []
for result_line in wizard_data.result_line_ids:
email_to = result_line.user_id.user_email
+ if not email_to:
+ continue
subject = wizard_data.name
body = _("Hello,")
body += "\n\n"
@@ -685,7 +785,6 @@ class share_wizard(osv.osv_memory):
body += "--\n"
body += _("OpenERP is a powerful and user-friendly suite of Business Applications (CRM, Sales, HR, etc.)\n"
"It is open source and can be found on http://www.openerp.com.")
-
msg_ids.append(mail_message.schedule_with_attach(cr, uid,
user.user_email,
[email_to],
@@ -697,6 +796,12 @@ class share_wizard(osv.osv_memory):
mail_message.send(cr, uid, msg_ids, context=context)
self._logger.info('%d share notification(s) sent.', len(msg_ids))
+ def onchange_embed_options(self, cr, uid, ids, opt_title, opt_search, context=None):
+ wizard = self.browse(cr, uid, ids[0], context)
+ options = dict(title=opt_title, search=opt_search)
+ return {'value': {'embed_code': self._generate_embedded_code(wizard, options)}}
+
+share_wizard()
class share_result_line(osv.osv_memory):
_name = 'share.wizard.result.line'
diff --git a/addons/share/wizard/share_wizard_view.xml b/addons/share/wizard/share_wizard_view.xml
index 128b32b07da..330363879cf 100644
--- a/addons/share/wizard/share_wizard_view.xml
+++ b/addons/share/wizard/share_wizard_view.xml
@@ -23,25 +23,43 @@
+
+ share.step1.form.link
+ share.wizard
+ form
+
+
+
+
+
share.step1.form
share.wizard
form
-