Revert "Rename all addons to xxx_unported to be travis compliant"
This reverts commit 7eb182744f3057dd5cb9e35faf230412aa7a2331.
This commit is contained in:
parent
8fed6137a6
commit
e1d10ac21d
4
account_move_template/AUTHORS.txt
Normal file
4
account_move_template/AUTHORS.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Davide Corio <davide.corio@agilebg.com>
|
||||||
|
Lorenzo Battistini <lorenzo.battistini@agilebg.com>
|
||||||
|
Paolo Chiara <p.chiara@isa.it>
|
||||||
|
Franco Tampieri <franco.tampieri@agilebg.com>
|
23
account_move_template/__init__.py
Normal file
23
account_move_template/__init__.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
import account_document_template
|
||||||
|
import account_move_template
|
||||||
|
import wizard
|
47
account_move_template/__openerp__.py
Normal file
47
account_move_template/__openerp__.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
{
|
||||||
|
'name': "Account Move Template",
|
||||||
|
'version': '0.1',
|
||||||
|
'category': 'Generic Modules/Accounting',
|
||||||
|
'summary': "Templates for recurring Journal Entries",
|
||||||
|
'description': """
|
||||||
|
Templates for Journal Entries
|
||||||
|
|
||||||
|
User can configure journal entries templates, useful for recurring entries.
|
||||||
|
The amount of each template line can be computed (through python code) or kept as user input. If user input, when using the template, user has to fill the amount of every input lines.
|
||||||
|
The journal entry form allows lo load, through a wizard, the template to use and the amounts to fill.
|
||||||
|
""",
|
||||||
|
'author': 'Agile Business Group',
|
||||||
|
'website': 'http://www.agilebg.com',
|
||||||
|
'license': 'AGPL-3',
|
||||||
|
'depends' : ['account_accountant', 'analytic'],
|
||||||
|
'data' : [
|
||||||
|
'move_template.xml',
|
||||||
|
'wizard/select_template.xml',
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
],
|
||||||
|
'test': [
|
||||||
|
'test/generate_move.yml',
|
||||||
|
],
|
||||||
|
'active': False,
|
||||||
|
'installable': False,
|
||||||
|
}
|
104
account_move_template/account_document_template.py
Normal file
104
account_move_template/account_document_template.py
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from openerp.osv import fields, orm
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
import re
|
||||||
|
|
||||||
|
class account_document_template(orm.Model):
|
||||||
|
|
||||||
|
_computed_lines = {}
|
||||||
|
_current_template_id = 0
|
||||||
|
_cr = None
|
||||||
|
_uid = None
|
||||||
|
_name = 'account.document.template'
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'name': fields.char('Name', size=64, required=True),
|
||||||
|
}
|
||||||
|
|
||||||
|
def _input_lines(self, cr, uid, template):
|
||||||
|
count = 0
|
||||||
|
for line in template.template_line_ids:
|
||||||
|
if line.type == 'input':
|
||||||
|
count += 1
|
||||||
|
return count
|
||||||
|
|
||||||
|
def _get_template_line(self, cr, uid, template_id, line_number):
|
||||||
|
for line in self.browse(cr, uid, template_id).template_line_ids:
|
||||||
|
if line.sequence == line_number:
|
||||||
|
return line
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _generate_empty_lines(self, cr, uid, template_id):
|
||||||
|
lines = {}
|
||||||
|
for template_line in self.browse(cr, uid, template_id).template_line_ids:
|
||||||
|
lines[template_line.sequence] = None
|
||||||
|
return lines
|
||||||
|
|
||||||
|
def lines(self, line_number):
|
||||||
|
if self._computed_lines[line_number] is not None:
|
||||||
|
return self._computed_lines[line_number]
|
||||||
|
line = self._get_template_line(self._cr, self._uid, self._current_template_id, line_number)
|
||||||
|
if re.match('L\( *'+str(line_number)+' *\)',line.python_code):
|
||||||
|
raise orm.except_orm(_('Error'),
|
||||||
|
_('Line %s can\'t refer to itself') % str(line_number))
|
||||||
|
try:
|
||||||
|
self._computed_lines[line_number] = eval(line.python_code.replace('L', 'self.lines'))
|
||||||
|
except KeyError:
|
||||||
|
raise orm.except_orm(_('Error'),
|
||||||
|
_('Code "%s" refers to non existing line') % line.python_code)
|
||||||
|
return self._computed_lines[line_number]
|
||||||
|
|
||||||
|
def compute_lines(self, cr, uid, template_id, input_lines):
|
||||||
|
# input_lines: dictionary in the form {line_number: line_amount}
|
||||||
|
# returns all the lines (included input lines) in the form {line_number: line_amount}
|
||||||
|
template = self.browse(cr, uid, template_id)
|
||||||
|
if len(input_lines) != self._input_lines(cr, uid, template):
|
||||||
|
raise orm.except_orm(_('Error'),
|
||||||
|
_('Inconsistency between input lines and filled lines for template %s') % template.name)
|
||||||
|
self._current_template_id = template.id
|
||||||
|
self._cr = cr
|
||||||
|
self._uid = uid
|
||||||
|
self._computed_lines = self._generate_empty_lines(cr, uid, template_id)
|
||||||
|
self._computed_lines.update(input_lines)
|
||||||
|
for line_number in self._computed_lines:
|
||||||
|
self.lines(line_number)
|
||||||
|
return self._computed_lines
|
||||||
|
|
||||||
|
def check_zero_lines(self, cr, uid, wizard):
|
||||||
|
if not wizard.line_ids:
|
||||||
|
return True
|
||||||
|
for template_line in wizard.line_ids:
|
||||||
|
if template_line.amount:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
class account_document_template_line(orm.Model):
|
||||||
|
|
||||||
|
_name = 'account.document.template.line'
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'name': fields.char('Name', size=64, required=True),
|
||||||
|
'sequence': fields.integer('Sequence', required=True),
|
||||||
|
'type': fields.selection([('computed', 'Computed'),('input', 'User input')], 'Type', required=True),
|
||||||
|
'python_code':fields.text('Python Code'),
|
||||||
|
}
|
81
account_move_template/account_move_template.py
Normal file
81
account_move_template/account_move_template.py
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from openerp.osv import fields, orm
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
class account_move_template(orm.Model):
|
||||||
|
|
||||||
|
_inherit = 'account.document.template'
|
||||||
|
_name = 'account.move.template'
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True),
|
||||||
|
'template_line_ids': fields.one2many('account.move.template.line', 'template_id', 'Template Lines'),
|
||||||
|
'cross_journals': fields.boolean('Cross-Journals'),
|
||||||
|
'transitory_acc_id': fields.many2one('account.account', 'Transitory account', required=False),
|
||||||
|
}
|
||||||
|
|
||||||
|
_defaults = {
|
||||||
|
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.move.template', context=c),
|
||||||
|
}
|
||||||
|
|
||||||
|
def _check_different_journal(self, cr, uid, ids, context=None):
|
||||||
|
#Check that the journal on these lines are different/same in the case of cross journals/single journal
|
||||||
|
journal_ids=[]
|
||||||
|
all_journal_ids=[]
|
||||||
|
move_template=self.pool.get('account.move.template').browse(cr,uid,ids)[0]
|
||||||
|
if not move_template.template_line_ids:
|
||||||
|
return True
|
||||||
|
for template_line in move_template.template_line_ids:
|
||||||
|
all_journal_ids.append(template_line.journal_id.id)
|
||||||
|
if template_line.journal_id.id not in journal_ids :
|
||||||
|
journal_ids.append(template_line.journal_id.id)
|
||||||
|
if move_template.cross_journals:
|
||||||
|
return len(all_journal_ids)==len(journal_ids)
|
||||||
|
else:
|
||||||
|
return len(journal_ids)==1
|
||||||
|
|
||||||
|
_constraints = [(_check_different_journal,
|
||||||
|
'If the template is "cross-journals", the Journals must be different,' \
|
||||||
|
'if the template does not "cross-journals" the Journals must be the same!',
|
||||||
|
['journal_id'])]
|
||||||
|
|
||||||
|
class account_move_template_line(orm.Model):
|
||||||
|
|
||||||
|
_name = 'account.move.template.line'
|
||||||
|
_inherit = 'account.document.template.line'
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'journal_id': fields.many2one('account.journal', 'Journal', required=True),
|
||||||
|
'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade"),
|
||||||
|
'move_line_type':fields.selection([
|
||||||
|
('cr','Credit'),
|
||||||
|
('dr','Debit'),
|
||||||
|
], 'Move Line Type', required=True),
|
||||||
|
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', ondelete="cascade"),
|
||||||
|
'template_id': fields.many2one('account.move.template', 'Template'),
|
||||||
|
'account_tax_id':fields.many2one('account.tax', 'Tax'),
|
||||||
|
}
|
||||||
|
|
||||||
|
_sql_constraints = [
|
||||||
|
('sequence_template_uniq', 'unique (template_id,sequence)', 'The sequence of the line must be unique per template !')
|
||||||
|
]
|
310
account_move_template/i18n/account_move_template.pot
Normal file
310
account_move_template/i18n/account_move_template.pot
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
# Translation of OpenERP Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * account_move_template
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-10-18 17:49+0000\n"
|
||||||
|
"PO-Revision-Date: 2013-10-18 17:49+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_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:68
|
||||||
|
#, python-format
|
||||||
|
msgid "Code \"%s\" refers to non existing line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,move_line_type:0
|
||||||
|
#: field:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Move Line Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:wizard.select.move.template,state:0
|
||||||
|
msgid "Template selected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
#: field:wizard.select.move.template,template_id:0
|
||||||
|
msgid "Move Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template
|
||||||
|
msgid "Select Move Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template
|
||||||
|
msgid "wizard.select.move.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Next"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,state:0
|
||||||
|
msgid "State"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:150
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:180
|
||||||
|
#, python-format
|
||||||
|
msgid "You have to define an analytic journal on the '%s' journal!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,template_id:0
|
||||||
|
#: field:wizard.select.move.template.line,template_id:0
|
||||||
|
msgid "Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Debit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "No period found !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,type:0
|
||||||
|
#: field:account.move.template.line,type:0
|
||||||
|
msgid "Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template_by_move
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_wizard_select_template
|
||||||
|
msgid "Create Move from Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "Error !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "Unable to find a valid period !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_move_template_form
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_move_template_form
|
||||||
|
msgid "Move Templates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,company_id:0
|
||||||
|
msgid "Company"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template.line:0
|
||||||
|
msgid "Move Template Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template
|
||||||
|
msgid "account.move.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,transitory_acc_id:0
|
||||||
|
msgid "Transitory account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: constraint:account.move.template:0
|
||||||
|
msgid "If the template is \"cross-journals\", the Journals must be different,if the template does not \"cross-journals\" the Journals must be the same!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "User input"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_id:0
|
||||||
|
#: field:wizard.select.move.template.line,account_id:0
|
||||||
|
msgid "Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template,name:0
|
||||||
|
#: field:account.document.template.line,name:0
|
||||||
|
#: field:account.move.template,name:0
|
||||||
|
#: field:account.move.template.line,name:0
|
||||||
|
#: field:wizard.select.move.template.line,name:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,cross_journals:0
|
||||||
|
msgid "Cross-Journals"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,line_ids:0
|
||||||
|
msgid "Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid "Journal Entry Template Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template_line
|
||||||
|
msgid "account.move.template.line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "At least one amount has to be non-zero!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Credit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,amount:0
|
||||||
|
msgid "Amount"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template:0
|
||||||
|
msgid "Journal Entry Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:62
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:67
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:76
|
||||||
|
#, python-format
|
||||||
|
msgid "Error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: sql_constraint:account.move.template.line:0
|
||||||
|
msgid "The sequence of the line must be unique per template !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Load"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid "You can refer to other lines using their sequence number (e.g. 'L(1)' for first line). Examples of code: 'L(1) * 0.2'; 'L(2) - L(1)'; 'L(1) + L(2) + L(3)'; '1250'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "Computed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:149
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:179
|
||||||
|
#, python-format
|
||||||
|
msgid "No Analytic Journal !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template_line
|
||||||
|
msgid "account.document.template.line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,python_code:0
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
#: field:account.move.template.line,python_code:0
|
||||||
|
msgid "Python Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:77
|
||||||
|
#, python-format
|
||||||
|
msgid "Inconsistency between input lines and filled lines for template %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_tax_id:0
|
||||||
|
msgid "Tax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,sequence:0
|
||||||
|
msgid "Number"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,analytic_account_id:0
|
||||||
|
msgid "Analytic Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,sequence:0
|
||||||
|
#: field:account.move.template.line,sequence:0
|
||||||
|
msgid "Sequence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,template_line_ids:0
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template_line
|
||||||
|
msgid "Template Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,partner_id:0
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template
|
||||||
|
msgid "account.document.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,journal_id:0
|
||||||
|
msgid "Journal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:63
|
||||||
|
#, python-format
|
||||||
|
msgid "Line %s can't refer to itself"
|
||||||
|
msgstr ""
|
||||||
|
|
320
account_move_template/i18n/it.po
Normal file
320
account_move_template/i18n/it.po
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
# Translation of OpenERP Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * account_move_template
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: OpenERP Server 6.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2013-10-18 17:49+0000\n"
|
||||||
|
"PO-Revision-Date: 2013-10-18 17:39+0000\n"
|
||||||
|
"Last-Translator: Lorenzo Battistini - Agile BG "
|
||||||
|
"<lorenzo.battistini@agilebg.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 17041)\n"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:68
|
||||||
|
#, python-format
|
||||||
|
msgid "Code \"%s\" refers to non existing line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,move_line_type:0
|
||||||
|
#: field:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Move Line Type"
|
||||||
|
msgstr "Tipo di movimento"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:wizard.select.move.template,state:0
|
||||||
|
msgid "Template selected"
|
||||||
|
msgstr "Template selezionato"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
#: field:wizard.select.move.template,template_id:0
|
||||||
|
msgid "Move Template"
|
||||||
|
msgstr "Template di registrazione"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template
|
||||||
|
msgid "Select Move Template"
|
||||||
|
msgstr "Scegli template di registrazione"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template
|
||||||
|
msgid "wizard.select.move.template"
|
||||||
|
msgstr "wizard.select.move.template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "Avanti"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,state:0
|
||||||
|
msgid "State"
|
||||||
|
msgstr "State"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:150
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:180
|
||||||
|
#, python-format
|
||||||
|
msgid "You have to define an analytic journal on the '%s' journal!"
|
||||||
|
msgstr "E' necessario definire un giornale analitico sul sezionale '%s'!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,template_id:0
|
||||||
|
#: field:wizard.select.move.template.line,template_id:0
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "Template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Debit"
|
||||||
|
msgstr "Dare"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "No period found !"
|
||||||
|
msgstr "Nessun periodo trovato!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,type:0
|
||||||
|
#: field:account.move.template.line,type:0
|
||||||
|
msgid "Type"
|
||||||
|
msgstr "Tipo"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template_by_move
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_wizard_select_template
|
||||||
|
msgid "Create Move from Template"
|
||||||
|
msgstr "Crea registrazione da template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "Error !"
|
||||||
|
msgstr "Errore !"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "Unable to find a valid period !"
|
||||||
|
msgstr "Impossibile trovare un periodo valido!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_move_template_form
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_move_template_form
|
||||||
|
msgid "Move Templates"
|
||||||
|
msgstr "Template di registrazioni"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,company_id:0
|
||||||
|
msgid "Company"
|
||||||
|
msgstr "Azienda"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template.line:0
|
||||||
|
msgid "Move Template Line"
|
||||||
|
msgstr "Riga template di registrazione"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template
|
||||||
|
msgid "account.move.template"
|
||||||
|
msgstr "account.move.template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,transitory_acc_id:0
|
||||||
|
msgid "Transitory account"
|
||||||
|
msgstr "Transitory account"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: constraint:account.move.template:0
|
||||||
|
msgid ""
|
||||||
|
"If the template is \"cross-journals\", the Journals must be different,if the "
|
||||||
|
"template does not \"cross-journals\" the Journals must be the same!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "User input"
|
||||||
|
msgstr "Input utente"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_id:0
|
||||||
|
#: field:wizard.select.move.template.line,account_id:0
|
||||||
|
msgid "Account"
|
||||||
|
msgstr "Conto"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template,name:0
|
||||||
|
#: field:account.document.template.line,name:0
|
||||||
|
#: field:account.move.template,name:0
|
||||||
|
#: field:account.move.template.line,name:0
|
||||||
|
#: field:wizard.select.move.template.line,name:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Nome"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,cross_journals:0
|
||||||
|
msgid "Cross-Journals"
|
||||||
|
msgstr "Cross-Journals"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,line_ids:0
|
||||||
|
msgid "Lines"
|
||||||
|
msgstr "Righe"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid "Journal Entry Template Line"
|
||||||
|
msgstr "Riga del template di registrazione"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template_line
|
||||||
|
msgid "account.move.template.line"
|
||||||
|
msgstr "account.move.template.line"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "At least one amount has to be non-zero!"
|
||||||
|
msgstr "Almeno un importo deve essere diverso da zero!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Credit"
|
||||||
|
msgstr "Avere"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,amount:0
|
||||||
|
msgid "Amount"
|
||||||
|
msgstr "Importo"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template:0
|
||||||
|
msgid "Journal Entry Template"
|
||||||
|
msgstr "Template di registrazione contabile"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:62
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:67
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:76
|
||||||
|
#, python-format
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Errore"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: sql_constraint:account.move.template.line:0
|
||||||
|
msgid "The sequence of the line must be unique per template !"
|
||||||
|
msgstr "Il numero della riga deve essere unico per template!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Load"
|
||||||
|
msgstr "Carica"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid ""
|
||||||
|
"You can refer to other lines using their sequence number (e.g. 'L(1)' for "
|
||||||
|
"first line). Examples of code: 'L(1) * 0.2'; 'L(2) - L(1)'; 'L(1) + L(2) + "
|
||||||
|
"L(3)'; '1250'"
|
||||||
|
msgstr ""
|
||||||
|
"Si può fare riferimento alle altre righe usando il loro numero di sequenza "
|
||||||
|
"(ad es. 'L(1)' per la prima riga). Esempi di codice: 'L(1) * 0.2'; 'L(2) - "
|
||||||
|
"L(1)'; 'L(1) + L(2) + L(3)'; '1250'"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "Computed"
|
||||||
|
msgstr "Calcolato"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:149
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:179
|
||||||
|
#, python-format
|
||||||
|
msgid "No Analytic Journal !"
|
||||||
|
msgstr "Nessun giornale analitico!"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template_line
|
||||||
|
msgid "account.document.template.line"
|
||||||
|
msgstr "account.document.template.line"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,python_code:0
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
#: field:account.move.template.line,python_code:0
|
||||||
|
msgid "Python Code"
|
||||||
|
msgstr "Codice python"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:77
|
||||||
|
#, python-format
|
||||||
|
msgid "Inconsistency between input lines and filled lines for template %s"
|
||||||
|
msgstr ""
|
||||||
|
"Inconsistenza fra le righe di input previste ed inserite per il template %s"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_tax_id:0
|
||||||
|
msgid "Tax"
|
||||||
|
msgstr "Imposta"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,sequence:0
|
||||||
|
msgid "Number"
|
||||||
|
msgstr "Numero"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,analytic_account_id:0
|
||||||
|
msgid "Analytic Account"
|
||||||
|
msgstr "Conto analitico"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,sequence:0
|
||||||
|
#: field:account.move.template.line,sequence:0
|
||||||
|
msgid "Sequence"
|
||||||
|
msgstr "Numero Sequenza"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,template_line_ids:0
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template_line
|
||||||
|
msgid "Template Lines"
|
||||||
|
msgstr "Righe template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Annulla"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,partner_id:0
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr "Partner"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template
|
||||||
|
msgid "account.document.template"
|
||||||
|
msgstr "account.document.template"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,journal_id:0
|
||||||
|
msgid "Journal"
|
||||||
|
msgstr "Sezionale"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:63
|
||||||
|
#, python-format
|
||||||
|
msgid "Line %s can't refer to itself"
|
||||||
|
msgstr ""
|
316
account_move_template/i18n/pt_BR.po
Normal file
316
account_move_template/i18n/pt_BR.po
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
# Brazilian Portuguese translation for account-financial-tools
|
||||||
|
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||||
|
# This file is distributed under the same license as the account-financial-tools package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: account-financial-tools\n"
|
||||||
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"POT-Creation-Date: 2013-10-18 17:49+0000\n"
|
||||||
|
"PO-Revision-Date: 2014-01-10 11:33+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 17041)\n"
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:68
|
||||||
|
#, python-format
|
||||||
|
msgid "Code \"%s\" refers to non existing line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,move_line_type:0
|
||||||
|
#: field:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Move Line Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:wizard.select.move.template,state:0
|
||||||
|
msgid "Template selected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
#: field:wizard.select.move.template,template_id:0
|
||||||
|
msgid "Move Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template
|
||||||
|
msgid "Select Move Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template
|
||||||
|
msgid "wizard.select.move.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Next"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,state:0
|
||||||
|
msgid "State"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:150
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:180
|
||||||
|
#, python-format
|
||||||
|
msgid "You have to define an analytic journal on the '%s' journal!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,template_id:0
|
||||||
|
#: field:wizard.select.move.template.line,template_id:0
|
||||||
|
msgid "Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Debit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "No period found !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,type:0
|
||||||
|
#: field:account.move.template.line,type:0
|
||||||
|
msgid "Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_wizard_select_template_by_move
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_wizard_select_template
|
||||||
|
msgid "Create Move from Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "Error !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:106
|
||||||
|
#, python-format
|
||||||
|
msgid "Unable to find a valid period !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.actions.act_window,name:account_move_template.action_move_template_form
|
||||||
|
#: model:ir.ui.menu,name:account_move_template.menu_action_move_template_form
|
||||||
|
msgid "Move Templates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,company_id:0
|
||||||
|
msgid "Company"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template.line:0
|
||||||
|
msgid "Move Template Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template
|
||||||
|
msgid "account.move.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,transitory_acc_id:0
|
||||||
|
msgid "Transitory account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: constraint:account.move.template:0
|
||||||
|
msgid ""
|
||||||
|
"If the template is \"cross-journals\", the Journals must be different,if the "
|
||||||
|
"template does not \"cross-journals\" the Journals must be the same!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "User input"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_id:0
|
||||||
|
#: field:wizard.select.move.template.line,account_id:0
|
||||||
|
msgid "Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template,name:0
|
||||||
|
#: field:account.document.template.line,name:0
|
||||||
|
#: field:account.move.template,name:0
|
||||||
|
#: field:account.move.template.line,name:0
|
||||||
|
#: field:wizard.select.move.template.line,name:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,cross_journals:0
|
||||||
|
msgid "Cross-Journals"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,line_ids:0
|
||||||
|
msgid "Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid "Journal Entry Template Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_move_template_line
|
||||||
|
msgid "account.move.template.line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:98
|
||||||
|
#, python-format
|
||||||
|
msgid "At least one amount has to be non-zero!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.move.template.line,move_line_type:0
|
||||||
|
#: selection:wizard.select.move.template.line,move_line_type:0
|
||||||
|
msgid "Credit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,amount:0
|
||||||
|
msgid "Amount"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template:0
|
||||||
|
msgid "Journal Entry Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:62
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:67
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:76
|
||||||
|
#, python-format
|
||||||
|
msgid "Error"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: sql_constraint:account.move.template.line:0
|
||||||
|
msgid "The sequence of the line must be unique per template !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Load"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
msgid ""
|
||||||
|
"You can refer to other lines using their sequence number (e.g. 'L(1)' for "
|
||||||
|
"first line). Examples of code: 'L(1) * 0.2'; 'L(2) - L(1)'; 'L(1) + L(2) + "
|
||||||
|
"L(3)'; '1250'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: selection:account.document.template.line,type:0
|
||||||
|
#: selection:account.move.template.line,type:0
|
||||||
|
msgid "Computed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:149
|
||||||
|
#: code:addons/account_move_template/wizard/select_template.py:179
|
||||||
|
#, python-format
|
||||||
|
msgid "No Analytic Journal !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template_line
|
||||||
|
msgid "account.document.template.line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,python_code:0
|
||||||
|
#: view:account.move.template.line:0
|
||||||
|
#: field:account.move.template.line,python_code:0
|
||||||
|
msgid "Python Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:77
|
||||||
|
#, python-format
|
||||||
|
msgid "Inconsistency between input lines and filled lines for template %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,account_tax_id:0
|
||||||
|
msgid "Tax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template.line,sequence:0
|
||||||
|
msgid "Number"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,analytic_account_id:0
|
||||||
|
msgid "Analytic Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.document.template.line,sequence:0
|
||||||
|
#: field:account.move.template.line,sequence:0
|
||||||
|
msgid "Sequence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template,template_line_ids:0
|
||||||
|
#: model:ir.model,name:account_move_template.model_wizard_select_move_template_line
|
||||||
|
msgid "Template Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: view:wizard.select.move.template:0
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:wizard.select.move.template,partner_id:0
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: model:ir.model,name:account_move_template.model_account_document_template
|
||||||
|
msgid "account.document.template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: field:account.move.template.line,journal_id:0
|
||||||
|
msgid "Journal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_move_template
|
||||||
|
#: code:addons/account_move_template/account_document_template.py:63
|
||||||
|
#, python-format
|
||||||
|
msgid "Line %s can't refer to itself"
|
||||||
|
msgstr ""
|
94
account_move_template/move_template.xml
Normal file
94
account_move_template/move_template.xml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<record id="view_move_template_line_tree" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.template.line.tree</field>
|
||||||
|
<field name="model">account.move.template.line</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Journal Entry Template Line">
|
||||||
|
<field name="sequence"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="journal_id"/>
|
||||||
|
<field name="account_id" />
|
||||||
|
<field name="analytic_account_id" groups="analytic.group_analytic_accounting"/>
|
||||||
|
<field name="type"/>
|
||||||
|
<field name="python_code" />
|
||||||
|
<field name="move_line_type"/>
|
||||||
|
<field name="account_tax_id"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<record id="view_move_template_line_form" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.template.line.form</field>
|
||||||
|
<field name="model">account.move.template.line</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Journal Entry Template Line">
|
||||||
|
<field colspan="4" name="name" select="1"/>
|
||||||
|
<field name="sequence"/>
|
||||||
|
<field name="journal_id"/>
|
||||||
|
<field name="account_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||||
|
<field name="analytic_account_id" groups="analytic.group_analytic_accounting"/>
|
||||||
|
<field name="type"/>
|
||||||
|
<field name="move_line_type"/>
|
||||||
|
<field name="account_tax_id"/>
|
||||||
|
<separator string="Python Code" colspan="4"/>
|
||||||
|
<field name="python_code" colspan="4" attrs="{'readonly': [('type', '!=', 'computed')]}" nolabel="1"/>
|
||||||
|
<label string="You can refer to other lines using their sequence number (e.g. 'L(1)' for first line). Examples of code: 'L(1) * 0.2'; 'L(2) - L(1)'; 'L(1) + L(2) + L(3)'; '1250'" colspan="4"/>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_move_template_form" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.template.form</field>
|
||||||
|
<field name="model">account.move.template</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Journal Entry Template">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="company_id" widget='selection' groups="base.group_multi_company"/>
|
||||||
|
<field name="cross_journals" />
|
||||||
|
<field name="transitory_acc_id" attrs="{'invisible':[('cross_journals','!=',True)],'required':[('cross_journals','==',True)]}"/>
|
||||||
|
<field colspan="4" nolabel="1" name="template_line_ids"/>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_move_template_tree" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.template.tree</field>
|
||||||
|
<field name="model">account.move.template</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Journal Entry Template">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_move_template_search" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.template.search</field>
|
||||||
|
<field name="model">account.move.template</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Journal Entry Template">
|
||||||
|
<group>
|
||||||
|
<separator orientation="vertical"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||||
|
</group>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_move_template_form" model="ir.actions.act_window">
|
||||||
|
<field name="name">Move Templates</field>
|
||||||
|
<field name="res_model">account.move.template</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
<field name="search_view_id" ref="view_move_template_search"/>
|
||||||
|
</record>
|
||||||
|
<menuitem
|
||||||
|
action="action_move_template_form" id="menu_action_move_template_form" sequence="5"
|
||||||
|
parent="account.menu_configuration_misc" groups="account.group_account_manager"/>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
9
account_move_template/security/ir.model.access.csv
Normal file
9
account_move_template/security/ir.model.access.csv
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||||
|
"access_account_document_template_user","account_document_template_user","model_account_document_template","account.group_account_user","1","1","1","1"
|
||||||
|
"access_account_document_template_manager","account_document_template_manager","model_account_document_template","account.group_account_manager","1","1","1","1"
|
||||||
|
"access_account_document_template_line_user","account_document_template_line_user","model_account_document_template_line","account.group_account_user","1","1","1","1"
|
||||||
|
"access_account_document_template_line_manager","account_document_template_line_manager","model_account_document_template_line","account.group_account_manager","1","1","1","1"
|
||||||
|
"access_account_move_template_user","account_move_template_user","model_account_move_template","account.group_account_user","1","1","1","1"
|
||||||
|
"access_account_move_template_manager","account_move_template_manager","model_account_move_template","account.group_account_manager","1","1","1","1"
|
||||||
|
"access_account_move_template_line_user","account_move_template_line_user","model_account_move_template_line","account.group_account_user","1","1","1","1"
|
||||||
|
"access_account_move_template_line_manager","account_move_template_line_manager","model_account_move_template_line","account.group_account_manager","1","1","1","1"
|
|
52
account_move_template/test/generate_move.yml
Normal file
52
account_move_template/test/generate_move.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
-
|
||||||
|
I first create a move template for received bank payment. Two lines, bank and credit
|
||||||
|
-
|
||||||
|
!record {model: account.move.template, id: move_template_1}:
|
||||||
|
company_id: base.main_company
|
||||||
|
name: "First template"
|
||||||
|
template_line_ids:
|
||||||
|
- name: "Bank"
|
||||||
|
sequence: 1
|
||||||
|
journal_id: account.bank_journal
|
||||||
|
account_id: account.bnk
|
||||||
|
type: 'input'
|
||||||
|
move_line_type: 'dr'
|
||||||
|
- name: "Credit"
|
||||||
|
sequence: 2
|
||||||
|
journal_id: account.bank_journal
|
||||||
|
account_id: account.a_recv
|
||||||
|
type: 'computed'
|
||||||
|
move_line_type: 'cr'
|
||||||
|
python_code: 'L(1)'
|
||||||
|
|
||||||
|
-
|
||||||
|
I use "Select Move Template" wizard to generate move
|
||||||
|
-
|
||||||
|
!record {model: wizard.select.move.template, id: wizard_select_move_template_1}:
|
||||||
|
template_id: move_template_1
|
||||||
|
|
||||||
|
-
|
||||||
|
I click on Next Button
|
||||||
|
-
|
||||||
|
!python {model: wizard.select.move.template}: |
|
||||||
|
self.load_lines(cr, uid, [ref("wizard_select_move_template_1")])
|
||||||
|
|
||||||
|
-
|
||||||
|
I verify that wizard lines are created and write the amount line
|
||||||
|
-
|
||||||
|
!python {model: wizard.select.move.template}: |
|
||||||
|
wizard = self.browse(cr, uid, ref('wizard_select_move_template_1'))
|
||||||
|
assert(len(wizard.line_ids) == 1), ('Wrong number of wizard lines')
|
||||||
|
wizard.line_ids[0].write({'amount': 100.0})
|
||||||
|
|
||||||
|
-
|
||||||
|
I click on Load Button and check the created move
|
||||||
|
-
|
||||||
|
!python {model: wizard.select.move.template}: |
|
||||||
|
action = self.load_template(cr, uid, [ref("wizard_select_move_template_1")])
|
||||||
|
move_obj = self.pool.get('account.move')
|
||||||
|
domain_list = eval(action['domain'])
|
||||||
|
for move_id in domain_list[0][2]:
|
||||||
|
move = move_obj.browse(cr, uid, move_id)
|
||||||
|
for line in move.line_id:
|
||||||
|
assert(line.state == 'valid'), ('Move lines must be valid')
|
21
account_move_template/wizard/__init__.py
Normal file
21
account_move_template/wizard/__init__.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
import select_template
|
213
account_move_template/wizard/select_template.py
Normal file
213
account_move_template/wizard/select_template.py
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2011 Agile Business Group sagl (<http://www.agilebg.com>)
|
||||||
|
# Copyright (C) 2011 Domsense srl (<http://www.domsense.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from openerp.osv import fields,orm
|
||||||
|
import time
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
class wizard_select_template(orm.TransientModel):
|
||||||
|
|
||||||
|
_name = "wizard.select.move.template"
|
||||||
|
_columns = {
|
||||||
|
'template_id': fields.many2one('account.move.template', 'Move Template', required=True),
|
||||||
|
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||||
|
'line_ids': fields.one2many('wizard.select.move.template.line', 'template_id', 'Lines'),
|
||||||
|
'state': fields.selection([
|
||||||
|
('template_selected','Template selected'),
|
||||||
|
], 'State'),
|
||||||
|
}
|
||||||
|
|
||||||
|
def on_change_template_id(self, cr, uid, ids, template_id):
|
||||||
|
res = {}
|
||||||
|
if template_id:
|
||||||
|
res['value'] = {'line_ids': []}
|
||||||
|
template_pool = self.pool.get('account.move.template')
|
||||||
|
template = template_pool.browse(cr, uid, template_id)
|
||||||
|
for line in template.template_line_ids:
|
||||||
|
if line.type == 'input':
|
||||||
|
res['value']['line_ids'].append({
|
||||||
|
'sequence': line.sequence,
|
||||||
|
'name': line.name,
|
||||||
|
'account_id': line.account_id.id,
|
||||||
|
'move_line_type': line.move_line_type,
|
||||||
|
})
|
||||||
|
return res
|
||||||
|
|
||||||
|
def load_lines(self, cr, uid, ids, context=None):
|
||||||
|
wizard = self.browse(cr, uid, ids, context=context)[0]
|
||||||
|
template_pool = self.pool.get('account.move.template')
|
||||||
|
wizard_line_pool = self.pool.get('wizard.select.move.template.line')
|
||||||
|
model_data_obj = self.pool.get('ir.model.data')
|
||||||
|
|
||||||
|
template = template_pool.browse(cr, uid, wizard.template_id.id)
|
||||||
|
for line in template.template_line_ids:
|
||||||
|
if line.type == 'input':
|
||||||
|
wizard_line_pool.create(cr, uid,{
|
||||||
|
'template_id': wizard.id,
|
||||||
|
'sequence': line.sequence,
|
||||||
|
'name': line.name,
|
||||||
|
'amount': 0.0,
|
||||||
|
'account_id': line.account_id.id,
|
||||||
|
'move_line_type': line.move_line_type,
|
||||||
|
})
|
||||||
|
if not wizard.line_ids:
|
||||||
|
return self.load_template(cr, uid, ids)
|
||||||
|
wizard.write({'state': 'template_selected'})
|
||||||
|
|
||||||
|
view_rec = model_data_obj.get_object_reference(cr, uid, 'account_move_template', 'wizard_select_template')
|
||||||
|
view_id = view_rec and view_rec[1] or False
|
||||||
|
|
||||||
|
return {
|
||||||
|
'view_type': 'form',
|
||||||
|
'view_id' : [view_id],
|
||||||
|
'view_mode': 'form',
|
||||||
|
'res_model': 'wizard.select.move.template',
|
||||||
|
'res_id': wizard.id,
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'target': 'new',
|
||||||
|
'context': context,
|
||||||
|
}
|
||||||
|
|
||||||
|
def load_template(self, cr, uid, ids, context=None):
|
||||||
|
template_obj = self.pool.get('account.move.template')
|
||||||
|
template_line_obj = self.pool.get('account.move.template.line')
|
||||||
|
account_period_obj = self.pool.get('account.period')
|
||||||
|
|
||||||
|
|
||||||
|
mod_obj = self.pool.get('ir.model.data')
|
||||||
|
wizard = self.browse(cr, uid, ids, context=context)[0]
|
||||||
|
if not template_obj.check_zero_lines(cr, uid, wizard):
|
||||||
|
raise orm.except_orm(_('Error !'), _('At least one amount has to be non-zero!'))
|
||||||
|
input_lines = {}
|
||||||
|
|
||||||
|
for template_line in wizard.line_ids:
|
||||||
|
input_lines[template_line.sequence] = template_line.amount
|
||||||
|
|
||||||
|
period_id = account_period_obj.find(cr, uid, context=context)
|
||||||
|
if not period_id:
|
||||||
|
raise orm.except_orm(_('No period found !'), _('Unable to find a valid period !'))
|
||||||
|
period_id = period_id[0]
|
||||||
|
|
||||||
|
computed_lines = template_obj.compute_lines(cr, uid, wizard.template_id.id, input_lines)
|
||||||
|
|
||||||
|
moves={}
|
||||||
|
for line in wizard.template_id.template_line_ids:
|
||||||
|
if line.journal_id.id not in moves:
|
||||||
|
moves[line.journal_id.id]=self._make_move(
|
||||||
|
cr,uid,wizard.template_id.name,period_id,line.journal_id.id, wizard.partner_id.id)
|
||||||
|
|
||||||
|
id_line=self._make_move_line(cr,uid,line,computed_lines,moves[line.journal_id.id],period_id,
|
||||||
|
wizard.partner_id.id)
|
||||||
|
if wizard.template_id.cross_journals :
|
||||||
|
trans_account_id=wizard.template_id.transitory_acc_id.id
|
||||||
|
id_trans_line=self._make_transitory_move_line(cr,uid,line,computed_lines,
|
||||||
|
moves[line.journal_id.id],period_id,trans_account_id, wizard.partner_id.id)
|
||||||
|
|
||||||
|
return {
|
||||||
|
'domain': "[('id','in', "+str(moves.values())+")]",
|
||||||
|
'name': 'Entries',
|
||||||
|
'view_type': 'form',
|
||||||
|
'view_mode': 'tree,form',
|
||||||
|
'res_model': 'account.move',
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'target': 'current',
|
||||||
|
}
|
||||||
|
#'res_id': moves.values() or False,
|
||||||
|
def _make_move(self, cr, uid,ref,period_id,journal_id, partner_id):
|
||||||
|
account_move_obj = self.pool.get('account.move')
|
||||||
|
move_id = account_move_obj.create(cr, uid, {
|
||||||
|
'ref': ref,
|
||||||
|
'period_id': period_id,
|
||||||
|
'journal_id': journal_id,
|
||||||
|
'partner_id': partner_id,
|
||||||
|
})
|
||||||
|
return move_id
|
||||||
|
|
||||||
|
def _make_move_line(self,cr,uid,line,computed_lines,move_id,period_id, partner_id):
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
analytic_account_id = False
|
||||||
|
if line.analytic_account_id:
|
||||||
|
if not line.journal_id.analytic_journal_id:
|
||||||
|
raise orm.except_orm(_('No Analytic Journal !'),
|
||||||
|
_("You have to define an analytic journal on the '%s' journal!")
|
||||||
|
% (line.journal_id.name,))
|
||||||
|
analytic_account_id = line.analytic_account_id.id
|
||||||
|
val = {
|
||||||
|
'name': line.name,
|
||||||
|
'move_id': move_id,
|
||||||
|
'journal_id': line.journal_id.id,
|
||||||
|
'period_id': period_id,
|
||||||
|
'analytic_account_id': analytic_account_id,
|
||||||
|
'account_id': line.account_id.id,
|
||||||
|
'date': time.strftime('%Y-%m-%d'),
|
||||||
|
'account_tax_id': line.account_tax_id.id,
|
||||||
|
'credit': 0.0,
|
||||||
|
'debit': 0.0,
|
||||||
|
'partner_id': partner_id,
|
||||||
|
}
|
||||||
|
if line.move_line_type == 'cr':
|
||||||
|
val['credit'] = computed_lines[line.sequence]
|
||||||
|
if line.move_line_type == 'dr':
|
||||||
|
val['debit'] = computed_lines[line.sequence]
|
||||||
|
id_line = account_move_line_obj.create(cr, uid, val)
|
||||||
|
return id_line
|
||||||
|
|
||||||
|
def _make_transitory_move_line(
|
||||||
|
self,cr,uid,line,computed_lines,move_id,period_id,trans_account_id, partner_id):
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
analytic_account_id = False
|
||||||
|
if line.analytic_account_id:
|
||||||
|
if not line.journal_id.analytic_journal_id:
|
||||||
|
raise orm.except_orm(_('No Analytic Journal !'),
|
||||||
|
_("You have to define an analytic journal on the '%s' journal!")
|
||||||
|
% (wizard.template_id.journal_id.name,))
|
||||||
|
analytic_account_id = line.analytic_account_id.id
|
||||||
|
val = {
|
||||||
|
'name': 'transitory',
|
||||||
|
'move_id': move_id,
|
||||||
|
'journal_id': line.journal_id.id,
|
||||||
|
'period_id': period_id,
|
||||||
|
'analytic_account_id': analytic_account_id,
|
||||||
|
'account_id': trans_account_id,
|
||||||
|
'date': time.strftime('%Y-%m-%d'),
|
||||||
|
'partner_id': partner_id,
|
||||||
|
}
|
||||||
|
if line.move_line_type != 'cr':
|
||||||
|
val['credit'] = computed_lines[line.sequence]
|
||||||
|
if line.move_line_type != 'dr':
|
||||||
|
val['debit'] = computed_lines[line.sequence]
|
||||||
|
id_line = account_move_line_obj.create(cr, uid, val)
|
||||||
|
return id_line
|
||||||
|
|
||||||
|
class wizard_select_template_line(orm.TransientModel):
|
||||||
|
_description = 'Template Lines'
|
||||||
|
_name = "wizard.select.move.template.line"
|
||||||
|
_columns = {
|
||||||
|
'template_id': fields.many2one('wizard.select.move.template', 'Template'),
|
||||||
|
'sequence': fields.integer('Number', required=True),
|
||||||
|
'name': fields.char('Name', size=64, required=True, readonly=True),
|
||||||
|
'account_id': fields.many2one('account.account', 'Account', required=True, readonly=True),
|
||||||
|
'move_line_type':fields.selection([
|
||||||
|
('cr','Credit'),
|
||||||
|
('dr','Debit'),
|
||||||
|
], 'Move Line Type', required=True,readonly=True),
|
||||||
|
'amount': fields.float('Amount', required=True),
|
||||||
|
}
|
78
account_move_template/wizard/select_template.xml
Normal file
78
account_move_template/wizard/select_template.xml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<record id="wizard_select_template" model="ir.ui.view">
|
||||||
|
<field name="name">Select Move Template</field>
|
||||||
|
<field name="model">wizard.select.move.template</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Move Template" >
|
||||||
|
<group col="2" width="600" height="500">
|
||||||
|
<group>
|
||||||
|
<field name="template_id" colspan="2" attrs="{'invisible':[('state','=','template_selected')]}"/>
|
||||||
|
<field name="partner_id" colspan="2" attrs="{'invisible':[('state','=','template_selected')]}"/>
|
||||||
|
<field name="line_ids" colspan="2" nolabel="1" attrs="{'invisible':[('state','!=','template_selected')]}"/>
|
||||||
|
<field name="state" invisible="1"/>
|
||||||
|
</group>
|
||||||
|
<newline/>
|
||||||
|
<group col="3">
|
||||||
|
<button icon="gtk-cancel" special="cancel" string="Cancel" colspan="1"/>
|
||||||
|
<button icon="gtk-ok" name="load_template" string="Load" type="object" colspan="1" attrs="{'invisible':[('state','!=','template_selected')]}" />
|
||||||
|
<button name="load_lines" string="Next" icon="terp-gtk-go-back-rtl" type="object" colspan="1" attrs="{'invisible':[('state','=','template_selected')]}" />
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="wizard_select_template_line" model="ir.ui.view">
|
||||||
|
<field name="name">Select Move Template Line</field>
|
||||||
|
<field name="model">wizard.select.move.template.line</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Move Template Line">
|
||||||
|
<group col="2">
|
||||||
|
<field name="sequence" invisible="1"/>
|
||||||
|
<field name="name" />
|
||||||
|
<field name="account_id" />
|
||||||
|
<field name="move_line_type" />
|
||||||
|
<field name="amount" />
|
||||||
|
</group>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="wizard_select_template_line_tree" model="ir.ui.view">
|
||||||
|
<field name="name">Select Move Template Line</field>
|
||||||
|
<field name="model">wizard.select.move.template.line</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Move Template Line" editable="bottom">
|
||||||
|
<field name="sequence" invisible="1"/>
|
||||||
|
<field name="name" />
|
||||||
|
<field name="account_id" />
|
||||||
|
<field name="move_line_type" />
|
||||||
|
<field name="amount" />
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_wizard_select_template" model="ir.actions.act_window">
|
||||||
|
<field name="name">Select Move Template</field>
|
||||||
|
<field name="res_model">wizard.select.move.template</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">form</field>
|
||||||
|
<field name="view_id" ref="wizard_select_template"/>
|
||||||
|
<field name="target">new</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<act_window name="Create Move from Template"
|
||||||
|
res_model="wizard.select.move.template"
|
||||||
|
src_model="account.move"
|
||||||
|
view_mode="form"
|
||||||
|
target="new"
|
||||||
|
key2="client_action_multi"
|
||||||
|
id="action_wizard_select_template_by_move"
|
||||||
|
view_id="wizard_select_template"/>
|
||||||
|
|
||||||
|
<menuitem name="Create Move from Template" action="action_wizard_select_template" id="menu_action_wizard_select_template" sequence="10" parent="account.menu_finance_entries"/>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
Loading…
Reference in New Issue
Block a user