diff --git a/addons/account_analytic_plans/__init__.py b/addons/account_analytic_plans/__init__.py
deleted file mode 100644
index 70b62a3b8f9..00000000000
--- a/addons/account_analytic_plans/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-import account_analytic_plans
-import wizard
-import report
diff --git a/addons/account_analytic_plans/__openerp__.py b/addons/account_analytic_plans/__openerp__.py
deleted file mode 100644
index 165b34b29fe..00000000000
--- a/addons/account_analytic_plans/__openerp__.py
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-{
- 'name': 'Multiple Analytic Plans',
- 'version': '1.0',
- 'category': 'Accounting & Finance',
- 'description': """
-This module allows to use several analytic plans according to the general journal.
-==================================================================================
-
-Here multiple analytic lines are created when the invoice or the entries
-are confirmed.
-
-For example, you can define the following analytic structure:
--------------------------------------------------------------
- * **Projects**
- * Project 1
- + SubProj 1.1
-
- + SubProj 1.2
-
- * Project 2
-
- * **Salesman**
- * Eric
-
- * Fabien
-
-Here, we have two plans: Projects and Salesman. An invoice line must be able to write analytic entries in the 2 plans: SubProj 1.1 and Fabien. The amount can also be split.
-
-The following example is for an invoice that touches the two subprojects and assigned to one salesman:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**Plan1:**
-
- * SubProject 1.1 : 50%
-
- * SubProject 1.2 : 50%
-
-**Plan2:**
- Eric: 100%
-
-So when this line of invoice will be confirmed, it will generate 3 analytic lines,for one account entry.
-
-The analytic plan validates the minimum and maximum percentage at the time of creation of distribution models.
- """,
- 'website': 'https://www.odoo.com/page/accounting',
- 'depends': ['account', 'account_analytic_default'],
- 'data': [
- 'security/account_analytic_plan_security.xml',
- 'security/ir.model.access.csv',
- 'account_analytic_plans_view.xml',
- 'account_analytic_plans_report.xml',
- 'wizard/analytic_plan_create_model_view.xml',
- 'wizard/account_crossovered_analytic_view.xml',
- 'views/report_crossoveredanalyticplans.xml',
- 'views/account_analytic_plans.xml',
- ],
- 'demo': [],
- 'test': ['test/acount_analytic_plans_report.yml'],
- 'installable': True,
- 'auto_install': False,
-}
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
deleted file mode 100644
index 9f5db2194ac..00000000000
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ /dev/null
@@ -1,459 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import time
-from lxml import etree
-
-from openerp.osv import fields, osv
-from openerp import tools, api
-from openerp.tools.translate import _
-from openerp.exceptions import UserError
-
-class one2many_mod2(fields.one2many):
- def get(self, cr, obj, ids, name, user=None, offset=0, context=None, values=None):
- if context is None:
- context = {}
- res = {}
- for id in ids:
- res[id] = []
- ids2 = None
- if 'journal_id' in context:
- journal = obj.pool.get('account.journal').browse(cr, user, context['journal_id'], context=context)
- pnum = int(name[7]) -1
- plan = journal.plan_id
- if plan and len(plan.plan_ids) > pnum:
- acc_id = plan.plan_ids[pnum].root_analytic_id.id
- ids2 = obj.pool[self._obj].search(cr, user, [(self._fields_id,'in',ids),('analytic_account_id','child_of',[acc_id])], limit=self._limit)
- if ids2 is None:
- ids2 = obj.pool[self._obj].search(cr, user, [(self._fields_id,'in',ids)], limit=self._limit)
-
- for r in obj.pool[self._obj].read(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'):
- key = r[self._fields_id]
- if isinstance(key, tuple):
- # Read return a tuple in the case where the field is a many2one
- # but we want to get the id of this field.
- key = key[0]
-
- res[key].append( r['id'] )
- return res
-
-class account_analytic_line(osv.osv):
- _inherit = 'account.analytic.line'
- _description = 'Analytic Line'
-
- def _get_amount(self, cr, uid, ids, name, args, context=None):
- res = {}
- for id in ids:
- res.setdefault(id, 0.0)
- for line in self.browse(cr, uid, ids, context=context):
- amount = line.move_id and line.move_id.amount_currency * (line.percentage / 100) or 0.0
- res[line.id] = amount
- return res
-
- _columns = {
- 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
- 'percentage': fields.float('Percentage')
- }
-
-
-class account_analytic_plan(osv.osv):
- _name = "account.analytic.plan"
- _description = "Analytic Plan"
- _columns = {
- 'name': fields.char('Analytic Plan', required=True, select=True),
- 'plan_ids': fields.one2many('account.analytic.plan.line', 'plan_id', 'Analytic Plans', copy=True),
- }
-
-
-class account_analytic_plan_line(osv.osv):
- _name = "account.analytic.plan.line"
- _description = "Analytic Plan Line"
- _order = "sequence, id"
- _columns = {
- 'plan_id': fields.many2one('account.analytic.plan','Analytic Plan',required=True),
- 'name': fields.char('Axis Name', required=True, select=True),
- 'sequence': fields.integer('Sequence'),
- 'root_analytic_id': fields.many2one('account.analytic.account', 'Root Account', help="Root account of this plan.", required=False),
- 'min_required': fields.float('Minimum Allowed (%)'),
- 'max_required': fields.float('Maximum Allowed (%)'),
- }
- _defaults = {
- 'min_required': 100.0,
- 'max_required': 100.0,
- }
-
-
-class account_analytic_plan_instance(osv.osv):
- _name = "account.analytic.plan.instance"
- _description = "Analytic Plan Instance"
- _columns = {
- 'name': fields.char('Analytic Distribution'),
- 'code': fields.char('Distribution Code', size=16),
- 'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal' ),
- 'account_ids': fields.one2many('account.analytic.plan.instance.line', 'plan_id', 'Account Id', copy=True),
- 'account1_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account1 Id'),
- 'account2_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account2 Id'),
- 'account3_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account3 Id'),
- 'account4_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account4 Id'),
- 'account5_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account5 Id'),
- 'account6_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account6 Id'),
- 'plan_id': fields.many2one('account.analytic.plan', "Model's Plan"),
- }
-
- def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
- if context is None:
- context = {}
- journal_obj = self.pool.get('account.journal')
- if context.get('journal_id', False):
- journal = journal_obj.browse(cr, user, [context['journal_id']], context=context)[0]
- analytic_journal = journal.analytic_journal_id and journal.analytic_journal_id.id or False
- args.append('|')
- args.append(('journal_id', '=', analytic_journal))
- args.append(('journal_id', '=', False))
- res = super(account_analytic_plan_instance, self).search(cr, user, args, offset=offset, limit=limit, order=order,
- context=context, count=count)
- return res
-
- def _default_journal(self, cr, uid, context=None):
- if context is None:
- context = {}
- journal_obj = self.pool.get('account.journal')
- if context.has_key('journal_id') and context['journal_id']:
- journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
- if journal.analytic_journal_id:
- return journal.analytic_journal_id.id
- return False
-
- _defaults = {
- 'plan_id': False,
- 'journal_id': _default_journal,
- }
- def name_get(self, cr, uid, ids, context=None):
- res = []
- for inst in self.browse(cr, uid, ids, context=context):
- name = inst.name or '/'
- if name and inst.code:
- name=name+' ('+inst.code+')'
- res.append((inst.id, name))
- return res
-
- def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100):
- args = args or []
- if name:
- ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context or {})
- if not ids:
- ids = self.search(cr, uid, [('name', operator, name)] + args, limit=limit, context=context or {})
- else:
- ids = self.search(cr, uid, args, limit=limit, context=context or {})
- return self.name_get(cr, uid, ids, context or {})
-
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- if context is None:
- context = {}
- wiz_id = self.pool.get('ir.actions.act_window').search(cr, uid, [("name","=","analytic.plan.create.model.action")], context=context)
- res = super(account_analytic_plan_instance,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
- journal_obj = self.pool.get('account.journal')
- analytic_plan_obj = self.pool.get('account.analytic.plan')
- if (res['type']=='form'):
- plan_id = False
- if context.get('journal_id', False):
- plan_id = journal_obj.browse(cr, uid, int(context['journal_id']), context=context).plan_id
- elif context.get('plan_id', False):
- plan_id = analytic_plan_obj.browse(cr, uid, int(context['plan_id']), context=context)
-
- if plan_id:
- i=1
- res['arch'] = """
"
- doc = etree.fromstring(res['arch'].encode('utf8'))
- xarch, xfields = self._view_look_dom_arch(cr, uid, doc, view_id, context=context)
- res['arch'] = xarch
- res['fields'] = xfields
- return res
- else:
- return res
-
- def create(self, cr, uid, vals, context=None):
- journal_obj = self.pool.get('account.journal')
- ana_plan_instance_obj = self.pool.get('account.analytic.plan.instance')
- acct_anal_acct = self.pool.get('account.analytic.account')
- acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line')
- if context and context.get('journal_id'):
- journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
-
- pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context)
- if pids:
- raise UserError(_('A model with this name and code already exists.'))
-
- res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)], context=context)
- for i in res:
- total_per_plan = 0
- item = acct_anal_plan_line_obj.browse(cr, uid, i, context=context)
- temp_list = ['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids']
- for l in temp_list:
- if vals.has_key(l):
- for tempo in vals[l]:
- if acct_anal_acct.search(cr, uid, [('parent_id', 'child_of', [item.root_analytic_id.id]), ('id', '=', tempo[2]['analytic_account_id'])], context=context):
- total_per_plan += tempo[2]['rate']
- if total_per_plan < item.min_required or total_per_plan > item.max_required:
- raise UserError(_('The total should be between %s and %s.') % (str(item.min_required), str(item.max_required)))
-
- return super(account_analytic_plan_instance, self).create(cr, uid, vals, context=context)
-
- def write(self, cr, uid, ids, vals, context=None):
- if context is None:
- context = {}
- this = self.browse(cr, uid, ids[0], context=context)
- invoice_line_obj = self.pool.get('account.invoice.line')
- if this.plan_id and not vals.has_key('plan_id'):
- #this instance is a model, so we have to create a new plan instance instead of modifying it
- #copy the existing model
- temp_id = self.copy(cr, uid, this.id, None, context=context)
- #get the list of the invoice line that were linked to the model
- lists = invoice_line_obj.search(cr, uid, [('analytics_id','=',this.id)], context=context)
- #make them link to the copy
- invoice_line_obj.write(cr, uid, lists, {'analytics_id':temp_id}, context=context)
-
- #and finally modify the old model to be not a model anymore
- vals['plan_id'] = False
- if not vals.has_key('name'):
- vals['name'] = this.name and (str(this.name)+'*') or "*"
- if not vals.has_key('code'):
- vals['code'] = this.code and (str(this.code)+'*') or "*"
- return super(account_analytic_plan_instance, self).write(cr, uid, ids, vals, context=context)
-
-
-class account_analytic_plan_instance_line(osv.osv):
- _name = "account.analytic.plan.instance.line"
- _description = "Analytic Instance Line"
- _rec_name = "analytic_account_id"
- _columns = {
- 'plan_id': fields.many2one('account.analytic.plan.instance', 'Plan Id'),
- 'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True, domain=[('type','<>','view')]),
- 'rate': fields.float('Rate (%)', required=True),
- }
- _defaults = {
- 'rate': 100.0
- }
- def name_get(self, cr, uid, ids, context=None):
- if not ids:
- return []
- reads = self.read(cr, uid, ids, ['analytic_account_id'], context=context)
- res = []
- for record in reads:
- res.append((record['id'], record['analytic_account_id']))
- return res
-
-
-class account_journal(osv.osv):
- _inherit = "account.journal"
- _name = "account.journal"
- _columns = {
- 'plan_id': fields.many2one('account.analytic.plan', 'Analytic Plans'),
- }
-
-
-class account_invoice_line(osv.osv):
- _inherit = "account.invoice.line"
- _name = "account.invoice.line"
- _columns = {
- 'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
- }
-
- def create(self, cr, uid, vals, context=None):
- if 'analytics_id' in vals and isinstance(vals['analytics_id'], tuple):
- vals['analytics_id'] = vals['analytics_id'][0]
- return super(account_invoice_line, self).create(cr, uid, vals, context=context)
-
- def move_line_get_item(self, cr, uid, line, context=None):
- res = super(account_invoice_line, self).move_line_get_item(cr, uid, line, context=context)
- res ['analytics_id'] = line.analytics_id and line.analytics_id.id or False
- return res
-
- def product_id_change(self, cr, uid, ids, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, company_id=None, date_invoice=None, context=None):
- res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom_id, qty, name, type, partner_id, fposition_id, price_unit, currency_id, company_id=company_id, date_invoice=date_invoice, context=context)
- rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context)
- if rec and rec.analytics_id:
- res_prod['value'].update({'analytics_id': rec.analytics_id.id})
- return res_prod
-
-
-class account_move_line(osv.osv):
-
- _inherit = "account.move.line"
- _name = "account.move.line"
- _columns = {
- 'analytics_id':fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
- }
-
- def _default_get_move_form_hook(self, cursor, user, data):
- data = super(account_move_line, self)._default_get_move_form_hook(cursor, user, data)
- if data.has_key('analytics_id'):
- del(data['analytics_id'])
- return data
-
- def create_analytic_lines(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
- super(account_move_line, self).create_analytic_lines(cr, uid, ids, context=context)
- analytic_line_obj = self.pool.get('account.analytic.line')
- for line in self.browse(cr, uid, ids, context=context):
- if line.analytics_id:
- if not line.journal_id.analytic_journal_id:
- raise UserError(_("You have to define an analytic journal on the '%s' journal.") % (line.journal_id.name,))
-
- toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
- if toremove:
- analytic_line_obj.unlink(cr, uid, toremove, context=context)
- for line2 in line.analytics_id.account_ids:
- val = (line.credit or 0.0) - (line.debit or 0.0)
- amt=val * (line2.rate/100)
- al_vals={
- 'name': line.name,
- 'date': line.date,
- 'account_id': line2.analytic_account_id.id,
- 'unit_amount': line.quantity,
- 'product_id': line.product_id and line.product_id.id or False,
- 'product_uom_id': line.product_uom_id and line.product_uom_id.id or False,
- 'amount': amt,
- 'general_account_id': line.account_id.id,
- 'move_id': line.id,
- 'journal_id': line.journal_id.analytic_journal_id.id,
- 'ref': line.ref,
- 'percentage': line2.rate
- }
- analytic_line_obj.create(cr, uid, al_vals, context=context)
- return True
-
-
-class account_invoice(osv.osv):
- _name = "account.invoice"
- _inherit = "account.invoice"
-
- def line_get_convert(self, cr, uid, x, part, context=None):
- res=super(account_invoice,self).line_get_convert(cr, uid, x, part, context=context)
- res['analytics_id'] = x.get('analytics_id', False)
- return res
-
- def _get_analytic_lines(self, cr, uid, ids, context=None):
- inv = self.browse(cr, uid, ids)[0]
- cur_obj = self.pool.get('res.currency')
- invoice_line_obj = self.pool.get('account.invoice.line')
- acct_ins_obj = self.pool.get('account.analytic.plan.instance')
- company_currency = inv.company_id.currency_id.id
- if inv.type in ('out_invoice', 'in_refund'):
- sign = 1
- else:
- sign = -1
-
- iml = invoice_line_obj.move_line_get(cr, uid, inv.id, context=context)
-
- for il in iml:
- if il.get('analytics_id', False):
-
- if inv.type in ('in_invoice', 'in_refund'):
- ref = inv.reference
- else:
- ref = inv.number
- obj_move_line = acct_ins_obj.browse(cr, uid, il['analytics_id'], context=context)
- ctx = context.copy()
- ctx.update({'date': inv.date_invoice})
- amount_calc = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context=ctx) * sign
- qty = il['quantity']
- il['analytic_line_ids'] = []
- for line2 in obj_move_line.account_ids:
- amt = amount_calc * (line2.rate/100)
- qtty = qty* (line2.rate/100)
- al_vals = {
- 'name': il['name'],
- 'date': inv['date_invoice'],
- 'unit_amount': qtty,
- 'product_id': il['product_id'],
- 'account_id': line2.analytic_account_id.id,
- 'amount': amt,
- 'product_uom_id': il['uos_id'],
- 'general_account_id': il['account_id'],
- 'journal_id': self._get_journal_analytic(cr, uid, inv.type),
- 'ref': ref,
- }
- il['analytic_line_ids'].append((0, 0, al_vals))
- return iml
-
-
-class account_analytic_plan(osv.osv):
- _inherit = "account.analytic.plan"
- _columns = {
- 'default_instance_id': fields.many2one('account.analytic.plan.instance', 'Default Entries'),
- }
-
-class analytic_default(osv.osv):
- _inherit = "account.analytic.default"
- _columns = {
- 'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
- }
-
-
-class sale_order_line(osv.osv):
- _inherit = "sale.order.line"
-
- # Method overridden to set the analytic account by default on criterion match
- def invoice_line_create(self, cr, uid, ids, context=None):
- create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context=context)
- inv_line_obj = self.pool.get('account.invoice.line')
- acct_anal_def_obj = self.pool.get('account.analytic.default')
- if ids:
- sale_line = self.browse(cr, uid, ids[0], context=context)
- for line in inv_line_obj.browse(cr, uid, create_ids, context=context):
- rec = acct_anal_def_obj.account_get(cr, uid, line.product_id.id,
- sale_line.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'),
- sale_line.order_id.company_id.id, context=context)
-
- if rec:
- inv_line_obj.write(cr, uid, [line.id], {'analytics_id': rec.analytics_id.id}, context=context)
- return create_ids
-
-# TODO : migrate module to new API
-from openerp import fields
-class account_bank_statement(osv.osv):
- _inherit = "account.bank.statement"
- _name = "account.bank.statement"
-
- @api.multi
- def button_confirm_bank(self):
- super(account_bank_statement, self).button_confirm_bank()
- for st in self:
- for st_line in st.line_ids:
- if st_line.analytics_id:
- if not st.journal_id.analytic_journal_id:
- raise UserError(_("You have to define an analytic journal on the '%s' journal.") % (st.journal_id.name,))
- if not st_line.amount:
- continue
- return True
-
-
-class account_bank_statement_line(osv.osv):
- _inherit = "account.bank.statement.line"
- _name = "account.bank.statement.line"
-
- analytics_id = fields.Many2one('account.analytic.plan.instance', string='Analytic Distribution')
-
- def _prepare_move_line(self, move, amount):
- result = super(account_bank_statement, self)._prepare_bank_move_line(move, amount)
- result['analytics_id'] = self.analytics_id.id
- return result
-
diff --git a/addons/account_analytic_plans/account_analytic_plans_report.xml b/addons/account_analytic_plans/account_analytic_plans_report.xml
deleted file mode 100644
index 608a22d1d96..00000000000
--- a/addons/account_analytic_plans/account_analytic_plans_report.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml
deleted file mode 100644
index d6110b6faa2..00000000000
--- a/addons/account_analytic_plans/account_analytic_plans_view.xml
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
-
-
-
-
- account.journal.form.inherit
- account.journal
-
-
-
-
-
-
-
-
-
- account.move.form.inherit
- account.move
-
-
-
-
-
-
-
-
-
- account.move.line.form.inherit
- account.move.line
-
-
-
-
-
-
-
-
-
- account.move.line.form.inherit1
- account.move.line
- 2
-
-
-
-
-
-
-
-
-
- account.move.line.tree.inherit
- account.move.line
- 2
-
-
-
-
-
-
-
-
-
-
- account.analytic.plan.instance.form
- account.analytic.plan.instance
-
-
-
-
-
-
- account.analytic.plan.instance.tree
- account.analytic.plan.instance
-
-
-
-
-
-
-
-
-
-
-
- Analytic Distribution's Models
- ir.actions.act_window
- account.analytic.plan.instance
- [('plan_id','<>',False)]
- form
- tree,form
-
-
-
-
-
- account.analytic.plan.instance.line.form
- account.analytic.plan.instance.line
-
-
-
-
-
-
- account.analytic.plan.instance.line.tree
- account.analytic.plan.instance.line
-
-
-
-
-
-
-
-
-
-
- account.analytic.plan.search
- account.analytic.plan
-
-
-
-
-
-
-
-
- account.analytic.plan.form
- account.analytic.plan
-
-
-
-
-
-
- account.analytic.plan.tree
- account.analytic.plan
-
-
-
-
-
-
-
-
-
- Analytic Plan
- ir.actions.act_window
- account.analytic.plan
- form
- tree,form
-
-
-
-
-
-
- account.analytic.plan.line.form
- account.analytic.plan.line
-
-
-
-
-
-
- account.analytic.plan.line.tree
- account.analytic.plan.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.analytic.default.form.plans
- account.analytic.default
-
-
-
-
-
-
-
-
- account.analytic.default.tree.plans
- account.analytic.default
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_analytic_plans/i18n/account_analytic_plans.pot b/addons/account_analytic_plans/i18n/account_analytic_plans.pot
deleted file mode 100644
index 16bdd78664a..00000000000
--- a/addons/account_analytic_plans/i18n/account_analytic_plans.pot
+++ /dev/null
@@ -1,483 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * account_analytic_plans
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 9.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-08-25 08:59+0000\n"
-"PO-Revision-Date: 2015-08-25 08:59+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "100.00%"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Company:"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "From Date:"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Printing Date:"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "To Date:"
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/account_analytic_plans.py:201
-#, python-format
-msgid "A model with this name and code already exists."
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account_ids
-msgid "Account Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Account Name"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account1_ids
-msgid "Account1 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account2_ids
-msgid "Account2 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account3_ids
-msgid "Account3 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account4_ids
-msgid "Account4 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account5_ids
-msgid "Account5 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_account6_ids
-msgid "Account6 Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Amount"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_analytic_account_id
-msgid "Analytic Account"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_ref
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Analytic Account Reference"
-msgstr ""
-
-#. module: account_analytic_plans
-#. openerp-web
-#: code:addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js:18
-#: code:addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js:24
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_default_analytics_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_bank_statement_line_analytics_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_invoice_line_analytics_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_move_line_analytics_id
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_instance_form
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_instance_tree
-#, python-format
-msgid "Analytic Distribution"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_instance_line_form
-msgid "Analytic Distribution Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_instance_line_tree
-msgid "Analytic Distribution Lines"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
-msgid "Analytic Distribution's Models"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
-msgid "Analytic Instance Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_journal_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_journal_ids
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_account_crossovered_analytic
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_line
-msgid "Analytic Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_plan_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_name
-#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_action
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_form
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_search
-msgid "Analytic Plan"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
-msgid "Analytic Plan Instance"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_line_form
-msgid "Analytic Plan Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_line_tree
-msgid "Analytic Plan Lines"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_plan_ids
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_journal_plan_id
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_search
-#: model:ir.ui.view,arch_db:account_analytic_plans.account_analytic_plan_tree
-msgid "Analytic Plans"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_name
-msgid "Axis Name"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
-msgid "Bank Statement"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
-msgid "Bank Statement Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_account_crossovered_analytic
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model_msg
-msgid "Cancel"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Code"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_create_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_create_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_create_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_create_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_create_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_create_uid
-msgid "Created by"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_create_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_create_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_create_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_create_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_create_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_create_date
-msgid "Created on"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
-#: model:ir.actions.report.xml,name:account_analytic_plans.action_account_analytic_account_crossovered_analytic
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_account_crossovered_analytic
-msgid "Crossovered Analytic"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_default_instance_id
-msgid "Default Entries"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_display_name
-#: model:ir.model.fields,field_description:account_analytic_plans.field_report_account_analytic_plans_report_crossoveredanalyticplans_display_name
-msgid "Display Name"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_code
-msgid "Distribution Code"
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:30
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model_msg
-#, python-format
-msgid "Distribution Model Saved"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
-msgid "Distribution Models"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_empty_line
-msgid "Dont show empty lines"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_date2
-msgid "End Date"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_id
-#: model:ir.model.fields,field_description:account_analytic_plans.field_report_account_analytic_plans_report_crossoveredanalyticplans_id
-msgid "ID"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
-msgid "Invoice Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_journal
-msgid "Journal"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_move_line
-msgid "Journal Item"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model___last_update
-#: model:ir.model.fields,field_description:account_analytic_plans.field_report_account_analytic_plans_report_crossoveredanalyticplans___last_update
-msgid "Last Modified on"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_write_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_write_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_write_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_write_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_write_uid
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_write_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_write_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_write_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_write_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_write_date
-#: model:ir.model.fields,field_description:account_analytic_plans.field_analytic_plan_create_model_write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_max_required
-msgid "Maximum Allowed (%)"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_min_required
-msgid "Minimum Allowed (%)"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_plan_id
-msgid "Model's Plan"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model_msg
-msgid "Ok"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Perc(%)"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_line_percentage
-msgid "Percentage"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_plan_id
-msgid "Plan Id"
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:20
-#, python-format
-msgid "Please put a name and a code before saving the model."
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_account_crossovered_analytic
-msgid "Print"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
-msgid "Print Crossovered Analytic"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.report_crossoveredanalyticplans
-msgid "Quantity"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_instance_line_rate
-msgid "Rate (%)"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_root_analytic_id
-msgid "Root Account"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,help:account_analytic_plans.field_account_analytic_plan_line_root_analytic_id
-msgid "Root account of this plan."
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_sale_order_line
-msgid "Sales Order Line"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model_msg
-msgid "Save This Distribution as a Model"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_analytic_plan_line_sequence
-msgid "Sequence"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model.fields,field_description:account_analytic_plans.field_account_crossovered_analytic_date1
-msgid "Start Date"
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/account_analytic_plans.py:214
-#, python-format
-msgid "The total should be between %s and %s."
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:45
-#, python-format
-msgid "There are no analytic lines related to account %s."
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:23
-#, python-format
-msgid "There is no analytic plan defined."
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.ui.view,arch_db:account_analytic_plans.view_analytic_plan_create_model
-msgid "This distribution model has been saved.You will be able to reuse it later."
-msgstr ""
-
-#. module: account_analytic_plans
-#: code:addons/account_analytic_plans/account_analytic_plans.py:318
-#: code:addons/account_analytic_plans/account_analytic_plans.py:443
-#, python-format
-msgid "You have to define an analytic journal on the '%s' journal."
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_analytic_plan_create_model
-msgid "analytic.plan.create.model"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
-msgid "analytic.plan.create.model.action"
-msgstr ""
-
-#. module: account_analytic_plans
-#: model:ir.model,name:account_analytic_plans.model_report_account_analytic_plans_report_crossoveredanalyticplans
-msgid "report.account_analytic_plans.report_crossoveredanalyticplans"
-msgstr ""
-
diff --git a/addons/account_analytic_plans/report/__init__.py b/addons/account_analytic_plans/report/__init__.py
deleted file mode 100644
index 9fa69422422..00000000000
--- a/addons/account_analytic_plans/report/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import crossovered_analytic
diff --git a/addons/account_analytic_plans/report/crossovered_analytic.py b/addons/account_analytic_plans/report/crossovered_analytic.py
deleted file mode 100644
index 7b3bd99232f..00000000000
--- a/addons/account_analytic_plans/report/crossovered_analytic.py
+++ /dev/null
@@ -1,164 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import time
-from openerp.osv import osv
-from openerp.report import report_sxw
-
-
-class crossovered_analytic(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
- super(crossovered_analytic, self).__init__(cr, uid, name, context = context)
- self.localcontext.update( {
- 'time': time,
- 'lines': self._lines,
- 'ref_lines': self._ref_lines,
- 'find_children': self.find_children,
- })
- self.base_amount = 0.00
-
- def find_children(self, ref_ids):
- if not ref_ids: return []
- to_return_ids = []
- final_list = []
- parent_list = []
- set_list = []
- analytic_obj = self.pool.get('account.analytic.account')
- for id in ref_ids:
- # to avoid duplicate entries
- if id not in to_return_ids:
- to_return_ids.append(analytic_obj.search(self.cr,self.uid,[('parent_id','child_of',[id])]))
- data_accnt = analytic_obj.browse(self.cr,self.uid,to_return_ids[0])
- for data in data_accnt:
- if data.parent_id and data.parent_id.id == ref_ids[0]:
- parent_list.append(data.id)
- final_list.append(ref_ids[0])
- set_list = self.set_account(parent_list)
- final_list.extend(set_list)
- return final_list #to_return_ids[0]
-
- def set_account(self, cats):
- lst = []
- category = self.pool.get('account.analytic.account').read(self.cr, self.uid, cats)
- for cat in category:
- lst.append(cat['id'])
- if cat['child_ids']:
- lst.extend(self.set_account(cat['child_ids']))
- return lst
-
- def _ref_lines(self, form):
- result = []
- res = {}
- acc_pool = self.pool.get('account.analytic.account')
- line_pool = self.pool.get('account.analytic.line')
-
- self.dict_acc_ref = {}
- if form['journal_ids']:
- journal = " in (" + ','.join(map(lambda x: str(x), form['journal_ids'])) + ")"
- else:
- journal = 'is not null'
-
- query_general = "SELECT id FROM account_analytic_line WHERE (journal_id " + journal +") AND date>='"+ str(form['date1']) +"'"" AND date<='" + str(form['date2']) + "'"
-
- self.cr.execute(query_general)
- l_ids = self.cr.fetchall()
- line_ids = [x[0] for x in l_ids]
-
- obj_line = line_pool.browse(self.cr,self.uid,line_ids)
-
- #this structure will be usefull for easily knowing the account_analytic_line that are related to the reference account. At this purpose, we save the move_id of analytic lines.
- self.dict_acc_ref[form['ref']] = []
- children_list = acc_pool.search(self.cr, self.uid, [('parent_id', 'child_of', [form['ref']])])
- for obj in obj_line:
- if obj.account_id.id in children_list:
- if obj.move_id and obj.move_id.id not in self.dict_acc_ref[form['ref']]:
- self.dict_acc_ref[form['ref']].append(obj.move_id.id)
-
- res['ref_name'] = acc_pool.name_get(self.cr, self.uid, [form['ref']])[0][1]
- res['ref_code'] = acc_pool.browse(self.cr, self.uid, form['ref']).code
-
- self.final_list = children_list
- selected_ids = line_pool.search(self.cr, self.uid, [('account_id', 'in' ,self.final_list)])
-
- res['ref_qty'] = 0.0
- res['ref_amt'] = 0.0
- self.base_amount = 0.0
-
- if selected_ids:
- query = "SELECT SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \
- WHERE aal.account_id = aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"
-
- self.cr.execute(query)
- info=self.cr.dictfetchall()
- res['ref_qty'] = info[0]['qty']
- res['ref_amt'] = info[0]['amt']
- self.base_amount = info[0]['amt']
- result.append(res)
- return result
-
- def _lines(self, form, ids=None):
- if ids is None:
- ids = {}
- if not ids:
- ids = self.ids
-
- if form['journal_ids']:
- journal=" in (" + ','.join(map(lambda x: str(x), form['journal_ids'])) + ")"
- else:
- journal= 'is not null'
-
- acc_pool = self.pool.get('account.analytic.account')
- line_pool = self.pool.get('account.analytic.line')
- acc_id = []
- final = []
- self.list_ids = []
-
- self.final_list = self.find_children(ids)
-
- for acc_id in self.final_list:
- selected_ids = line_pool.search(self.cr, self.uid, [('account_id','=',acc_id), ('move_id', 'in', self.dict_acc_ref[form['ref']])])
- if selected_ids:
- query="SELECT aaa.code AS code, SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty, aaa.name AS acc_name, aal.account_id AS id FROM account_analytic_line AS aal, account_analytic_account AS aaa \
- WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"" GROUP BY aal.account_id,aaa.name,aaa.code ORDER BY aal.account_id"
-
- self.cr.execute(query)
- res = self.cr.dictfetchall()
- if res:
- for element in res:
- if self.base_amount <> 0.00:
- element['perc'] = (element['amt'] / self.base_amount) * 100.00
- else:
- element['perc'] = 0.00
- else:
- result = {}
- res = []
- result['id'] = acc_id
- data_account = acc_pool.browse(self.cr, self.uid, acc_id)
- result['acc_name'] = data_account.name
- result['code'] = data_account.code
- result['amt'] = result['qty'] = result['perc'] = 0.00
- if not form['empty_line']:
- res.append(result)
- else:
- result = {}
- res = []
- result['id'] = acc_id
- data_account = acc_pool.browse(self.cr, self.uid, acc_id)
- result['acc_name'] = data_account.name
- result['code'] = data_account.code
- result['amt'] = result['qty'] = result['perc'] = 0.00
- if not form['empty_line']:
- res.append(result)
-
- for item in res:
- obj_acc = acc_pool.name_get(self.cr,self.uid,[item['id']])
- item['acc_name'] = obj_acc[0][1]
- final.append(item)
- return final
-
-
-class report_crossoveredanalyticplans(osv.AbstractModel):
- _name = 'report.account_analytic_plans.report_crossoveredanalyticplans'
- _inherit = 'report.abstract_report'
- _template = 'account_analytic_plans.report_crossoveredanalyticplans'
- _wrapped_report_class = crossovered_analytic
diff --git a/addons/account_analytic_plans/security/account_analytic_plan_security.xml b/addons/account_analytic_plans/security/account_analytic_plan_security.xml
deleted file mode 100644
index 1c379bb0f30..00000000000
--- a/addons/account_analytic_plans/security/account_analytic_plan_security.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_analytic_plans/security/ir.model.access.csv b/addons/account_analytic_plans/security/ir.model.access.csv
deleted file mode 100644
index 7a8d6e29067..00000000000
--- a/addons/account_analytic_plans/security/ir.model.access.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_account_analytic_plan,account.analytic.plan,model_account_analytic_plan,account.group_account_user,1,1,1,1
-access_account_analytic_plan_line,account.analytic.plan.line,model_account_analytic_plan_line,account.group_account_user,1,1,1,1
-access_account_analytic_plan_instance,account.analytic.plan.instance,model_account_analytic_plan_instance,account.group_account_user,1,1,1,1
-access_account_analytic_plan_instance_group_user,account.analytic.plan.instance,model_account_analytic_plan_instance,base.group_user,1,0,0,0
-access_account_analytic_plan_instance_line,account.analytic.plan.instance.line,model_account_analytic_plan_instance_line,account.group_account_user,1,1,1,1
-access_account_analytic_plan_instance_line_group_user,account.analytic.plan.instance.line,model_account_analytic_plan_instance_line,base.group_user,1,0,0,0
-access_account_analytic_plan_line_invoice,account.analytic.plan.line.invoice,model_account_analytic_plan_line,account.group_account_user,1,1,1,1
diff --git a/addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js b/addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js
deleted file mode 100644
index ef340800e47..00000000000
--- a/addons/account_analytic_plans/static/src/js/account_bank_reconciliation.js
+++ /dev/null
@@ -1,40 +0,0 @@
-odoo.define('account_analytic_plans.custom', function (require) {
-"use strict";
-
-var widgets = require('account.reconciliation');
-var core = require('web.core');
-
-var _t = core._t;
-
-widgets.bankStatementReconciliation.include({
- init: function(parent, context) {
- var FieldMany2One = core.form_widget_registry.get('many2one');
- this._super(parent, context);
- delete this.create_form_fields.analytic_account_id;
- this.create_form_fields["analytic_plan"] = {
- id: "analytic_plan",
- index: 25,
- corresponding_property: "analytics_id",
- label: _t("Analytic Distribution"),
- required: false,
- group: "analytic.group_analytic_accounting",
- constructor: FieldMany2One,
- field_properties: {
- relation: "account.analytic.plan.instance",
- string: _t("Analytic Distribution"),
- type: "many2one",
- }
- };
- },
-});
-
-widgets.bankStatementReconciliationLine.include({
- prepareCreatedMoveLineForPersisting: function(line) {
- var dict = this._super(line);
- if (line.analytics_id) dict['analytics_id'] = line.analytics_id;
- if (dict["analytic_account_id"] !== undefined) delete dict["analytic_account_id"];
- return dict;
- },
-});
-
-});
\ No newline at end of file
diff --git a/addons/account_analytic_plans/test/acount_analytic_plans_report.yml b/addons/account_analytic_plans/test/acount_analytic_plans_report.yml
deleted file mode 100644
index 35a68246d28..00000000000
--- a/addons/account_analytic_plans/test/acount_analytic_plans_report.yml
+++ /dev/null
@@ -1,11 +0,0 @@
--
- Print the Crossovered Analytic Report in Normal mode
--
- !python {model: account.analytic.account}: |
- import os, time
- import openerp.report
- from openerp import tools
- data_dict = {'model': 'account.analytic.account', 'form': {'date1':time.strftime("%Y-01-01"),'date2':time.strftime('%Y-%m-%d'),'journal_ids':[6,0,(ref('analytic.cose_journal_sale'))],'ref':ref('analytic.analytic_root'),'empty_line':True,'id':ref('analytic.analytic_root'),'context':{}}}
- data, format = openerp.report.render_report(cr, uid, [ref('analytic.analytic_root')], 'account_analytic_plans.report_crossoveredanalyticplans', data_dict, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'account_analytic_plans-crossovered_analyitic.'+format), 'wb+').write(data)
diff --git a/addons/account_analytic_plans/views/account_analytic_plans.xml b/addons/account_analytic_plans/views/account_analytic_plans.xml
deleted file mode 100644
index 9a56d478818..00000000000
--- a/addons/account_analytic_plans/views/account_analytic_plans.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_analytic_plans/views/report_crossoveredanalyticplans.xml b/addons/account_analytic_plans/views/report_crossoveredanalyticplans.xml
deleted file mode 100644
index b4470ea2913..00000000000
--- a/addons/account_analytic_plans/views/report_crossoveredanalyticplans.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
Crossovered Analytic
-
-
-
-
Analytic Account Reference
-
-
-
-
- | Account Name |
- Code |
- Quantity |
- Amount |
- Perc(%) |
-
-
-
-
- |
- |
-
-
-
-
- |
-
-
-
-
- |
- 100.00% |
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_analytic_plans/wizard/__init__.py b/addons/account_analytic_plans/wizard/__init__.py
deleted file mode 100644
index 333b802b4dc..00000000000
--- a/addons/account_analytic_plans/wizard/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import analytic_plan_create_model
-import account_crossovered_analytic
diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py b/addons/account_analytic_plans/wizard/account_crossovered_analytic.py
deleted file mode 100644
index 4a6dcaa2744..00000000000
--- a/addons/account_analytic_plans/wizard/account_crossovered_analytic.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import time
-
-from openerp.osv import fields, osv
-from openerp.tools.translate import _
-from openerp.exceptions import UserError
-
-
-class account_crossovered_analytic(osv.osv_memory):
- _name = "account.crossovered.analytic"
- _description = "Print Crossovered Analytic"
- _columns = {
- 'date1': fields.date('Start Date', required=True),
- 'date2': fields.date('End Date', required=True),
- 'journal_ids': fields.many2many('account.analytic.journal', 'crossovered_journal_rel', 'crossover_id', 'journal_id', 'Analytic Journal'),
- 'ref': fields.many2one('account.analytic.account', 'Analytic Account Reference', required=True),
- 'empty_line': fields.boolean('Dont show empty lines'),
- }
- _defaults = {
- 'date1': lambda *a: time.strftime('%Y-01-01'),
- 'date2': lambda *a: time.strftime('%Y-%m-%d'),
- }
-
- def print_report(self, cr, uid, ids, context=None):
- cr.execute('SELECT account_id FROM account_analytic_line')
- res = cr.fetchall()
- acc_ids = [x[0] for x in res]
-
- data = self.read(cr, uid, ids, context=context)[0]
- data['ref'] = data['ref'][0]
-
- obj_acc = self.pool.get('account.analytic.account').browse(cr, uid, data['ref'], context=context)
- name = obj_acc.name
-
- account_ids = self.pool.get('account.analytic.account').search(cr, uid, [('parent_id', 'child_of', [data['ref']])], context=context)
-
- flag = True
- for acc in account_ids:
- if acc in acc_ids:
- flag = False
- break
- if flag:
- raise UserError(_('There are no analytic lines related to account %s.' % name))
-
- datas = {
- 'ids': [],
- 'model': 'account.analytic.account',
- 'form': data
- }
- return self.pool['report'].get_action(cr, uid, [], 'account_analytic_plans.report_crossoveredanalyticplans', data=datas, context=context)
diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml b/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml
deleted file mode 100644
index d6ebaa7e5ca..00000000000
--- a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
- account.crossovered.analytic.form
- account.crossovered.analytic
-
-
-
-
-
-
- Crossovered Analytic
- ir.actions.act_window
- account.crossovered.analytic
- form
- form
- new
-
-
-
-
- Crossovered Analytic
- client_print_multi
-
- action
- account.analytic.account
-
-
-
-
diff --git a/addons/account_analytic_plans/wizard/analytic_plan_create_model.py b/addons/account_analytic_plans/wizard/analytic_plan_create_model.py
deleted file mode 100644
index 5331ac1e9ee..00000000000
--- a/addons/account_analytic_plans/wizard/analytic_plan_create_model.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from openerp.osv import osv
-from openerp.tools.translate import _
-from openerp.exceptions import UserError
-
-class analytic_plan_create_model(osv.osv_memory):
- _name = "analytic.plan.create.model"
- _description = "analytic.plan.create.model"
-
- def activate(self, cr, uid, ids, context=None):
- plan_obj = self.pool.get('account.analytic.plan.instance')
- anlytic_plan_obj = self.pool.get('account.analytic.plan')
- if context is None:
- context = {}
- if 'active_id' in context and context['active_id']:
- plan = plan_obj.browse(cr, uid, context['active_id'], context=context)
- if (not plan.name) or (not plan.code):
- raise UserError(_('Please put a name and a code before saving the model.'))
- pids = anlytic_plan_obj.search(cr, uid, [], context=context)
- if not pids:
- raise UserError(_('There is no analytic plan defined.'))
- plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}, context=context)
-
- resource_id = self.pool['ir.model.data'].xmlid_to_res_id(
- cr, uid, 'account.view_analytic_plan_create_model',
- context=context, raise_if_not_found=True)
- return {
- 'name': _('Distribution Model Saved'),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'analytic.plan.create.model',
- 'views': [(resource_id,'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- }
- else:
- return {'type': 'ir.actions.act_window_close'}
diff --git a/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml b/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml
deleted file mode 100644
index 4a294d2c4d9..00000000000
--- a/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- analytic.plan.create.model.msg.form
- analytic.plan.create.model
-
-
-
-
-
-
- analytic.plan.create.model.form
- analytic.plan.create.model
-
-
-
-
-
-
-
- analytic.plan.create.model.action
- ir.actions.act_window
- analytic.plan.create.model
- form
- form
- new
-
-
-
-
-