bzr revid: hmo@tinyerp.com-20100219102848-x6au29iuxc3e0dm0
This commit is contained in:
Harry (Open ERP) 2010-02-19 15:58:48 +05:30
commit 453e18b2fd
5437 changed files with 285428 additions and 832337 deletions

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,11 +15,12 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import account
import installer
import project
import partner
import invoice

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -21,9 +21,9 @@
{
"name" : "Accounting and financial management",
"name" : "Accounting and Financial Management",
"version" : "1.1",
"depends" : ["product", "base", "process"],
"depends" : ["product", "analytic", "process"],
"author" : "Tiny",
"description": """Financial and accounting module that covers:
General accounting
@ -58,13 +58,14 @@
'process/supplier_invoice_process.xml',
'sequence_view.xml',
'company_view.xml',
'account_installer.xml',
],
'demo_xml': [
'account_demo.xml',
'project/project_demo.xml',
'project/analytic_account_demo.xml',
'demo/account_minimal.xml',
'account_unit_test.xml'
'account_unit_test.xml',
],
'installable': True,
'active': False,

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -37,7 +37,7 @@ class account_payment_term(osv.osv):
_description = "Payment Term"
_columns = {
'name': fields.char('Payment Term', size=64, translate=True, required=True),
'active': fields.boolean('Active'),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the payment term without removing it."),
'note': fields.text('Description', translate=True),
'line_ids': fields.one2many('account.payment.term.line', 'payment_id', 'Terms'),
}
@ -77,7 +77,10 @@ class account_payment_term_line(osv.osv):
_columns = {
'name': fields.char('Line Name', size=32, required=True),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the payment term lines from the lowest sequences to the higher ones"),
'value': fields.selection([('procent', 'Percent'), ('balance', 'Balance'), ('fixed', 'Fixed Amount')], 'Value', required=True, help="""Example: 14 days 2%, 30 days net
'value': fields.selection([('procent', 'Percent'),
('balance', 'Balance'),
('fixed', 'Fixed Amount')], 'Value',
required=True, help="""Example: 14 days 2%, 30 days net
1. Line 1: percent 0.02 14 days
2. Line 2: balance 30 days"""),
@ -103,7 +106,7 @@ class account_payment_term_line(osv.osv):
_constraints = [
(_check_percent, _('Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for 2% '), ['value_amount']),
]
account_payment_term_line()
@ -201,47 +204,53 @@ class account_account(osv.osv):
}
#get all the necessary accounts
ids2 = self._get_children_and_consol(cr, uid, ids, context)
acc_set = ",".join(map(str, ids2))
#compute for each account the balance/debit/credit from the move lines
accounts = {}
if ids2:
query = self.pool.get('account.move.line')._query_get(cr, uid,
context=context)
cr.execute(("SELECT l.account_id as id, " +\
aml_query = self.pool.get('account.move.line')._query_get(cr, uid, context=context)
wheres = [""]
if query:
wheres.append(query.strip())
if aml_query:
wheres.append(aml_query.strip())
query = " AND ".join(wheres)
cr.execute("SELECT l.account_id as id, " +\
' , '.join(map(lambda x: mapping[x], field_names)) +
"FROM " \
"account_move_line l " \
"WHERE " \
"l.account_id IN (%s) " \
"AND " + query + " " \
"GROUP BY l.account_id") % (acc_set, ))
"l.account_id =ANY(%s) " \
+ query +
" GROUP BY l.account_id",(ids2,))
for res in cr.dictfetchall():
accounts[res['id']] = res
#for the asked accounts, get from the dictionnary 'accounts' the value of it
# consolidate accounts with direct children
brs = list(self.browse(cr, uid, ids2, context=context))
sums = {}
while brs:
current = brs[0]
can_compute = True
for child in current.child_id:
if child.id not in sums:
can_compute = False
try:
brs.insert(0, brs.pop(brs.index(child)))
except ValueError:
brs.insert(0, child)
if can_compute:
brs.pop(0)
for fn in field_names:
sums.setdefault(current.id, {})[fn] = accounts.get(current.id, {}).get(fn, 0.0)
if current.child_id:
sums[current.id][fn] += sum(sums[child.id][fn] for child in current.child_id)
res = {}
for id in ids:
res[id] = self._get_account_values(cr, uid, id, accounts, field_names, context)
return res
def _get_account_values(self, cr, uid, id, accounts, field_names, context={}):
res = {}.fromkeys(field_names, 0.0)
browse_rec = self.browse(cr, uid, id)
if browse_rec.type == 'consolidation':
ids2 = self.read(cr, uid, [browse_rec.id], ['child_consol_ids'], context)[0]['child_consol_ids']
for t in self.search(cr, uid, [('parent_id', 'child_of', [browse_rec.id])]):
if t not in ids2 and t != browse_rec.id:
ids2.append(t)
for i in ids2:
tmp = self._get_account_values(cr, uid, i, accounts, field_names, context)
for a in field_names:
res[a] += tmp[a]
else:
ids2 = self.search(cr, uid, [('parent_id', 'child_of', [browse_rec.id])])
for i in ids2:
for a in field_names:
res[a] += accounts.get(i, {}).get(a, 0.0)
res[id] = sums[id]
return res
def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
@ -260,13 +269,14 @@ class account_account(osv.osv):
if record.child_consol_ids:
for acc in record.child_consol_ids:
result[record.id].append(acc.id)
if acc.id not in result[record.id]:
result[record.id].append(acc.id)
return result
_columns = {
'name': fields.char('Name', size=128, required=True, select=True),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64, required=True),
'type': fields.selection([
('receivable', 'Receivable'),
@ -275,9 +285,13 @@ class account_account(osv.osv):
('consolidation', 'Consolidation'),
('other', 'Others'),
('closed', 'Closed'),
], 'Internal Type', required=True,),
'user_type': fields.many2one('account.account.type', 'Account Type', required=True),
], 'Internal Type', required=True, help="This type is used to differentiate types with "\
"special effects in Open ERP: view can not have entries, consolidation are accounts that "\
"can have children accounts for multi-company consolidations, payable/receivable are for "\
"partners accounts (for debit/credit computations), closed for depreciated accounts."),
'user_type': fields.many2one('account.account.type', 'Account Type', required=True,
help="These types are defined according to your country. The type contains more information "\
"about the account and its specificities."),
'parent_id': fields.many2one('account.account', 'Parent', ondelete='cascade'),
'child_parent_ids': fields.one2many('account.account','parent_id','Children'),
'child_consol_ids': fields.many2many('account.account', 'account_account_consol_rel', 'child_id', 'parent_id', 'Consolidated Children'),
@ -292,7 +306,7 @@ class account_account(osv.osv):
'note': fields.text('Note'),
'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Company Currency'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'active': fields.boolean('Active', select=2),
'active': fields.boolean('Active', select=2, help="If the active field is set to true, it will allow you to hide the account without removing it."),
'parent_left': fields.integer('Parent Left', select=1),
'parent_right': fields.integer('Parent Right', select=1),
@ -320,7 +334,8 @@ class account_account(osv.osv):
'company_id': _default_company,
'active': lambda *a: True,
'check_history': lambda *a: True,
'currency_mode': lambda *a: 'current'
'currency_mode': lambda *a: 'current',
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
}
def _check_recursion(self, cr, uid, ids):
@ -329,7 +344,7 @@ class account_account(osv.osv):
if (obj_self in obj_self.child_consol_ids) or (p_id and (p_id is obj_self.id)):
return False
while(ids):
cr.execute('select distinct child_id from account_account_consol_rel where parent_id in ('+','.join(map(str, ids))+')')
cr.execute('select distinct child_id from account_account_consol_rel where parent_id =ANY(%s)',(ids,))
child_ids = filter(None, map(lambda x: x[0], cr.fetchall()))
c_ids = child_ids
if (p_id and (p_id in c_ids)) or (obj_self.id in c_ids):
@ -348,7 +363,7 @@ class account_account(osv.osv):
_sql_constraints = [
('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args = []
if not context:
@ -411,15 +426,27 @@ class account_account(osv.osv):
default['child_parent_ids'] = False
return super(account_account, self).copy(cr, uid, id, default, context=context)
def _check_moves(self, cr, uid, ids, method, context):
line_obj = self.pool.get('account.move.line')
account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
if method == 'write':
raise osv.except_osv(_('Error !'), _('You cannot deactivate an account that contains account moves.'))
elif method == 'unlink':
raise osv.except_osv(_('Error !'), _('You cannot remove an account which has account entries!. '))
return True
def write(self, cr, uid, ids, vals, context=None):
if not context:
context = {}
if 'active' in vals and not vals['active']:
line_obj = self.pool.get('account.move.line')
account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
raise osv.except_osv(_('Error !'), _('You can not deactivate an account that contains account moves.'))
self._check_moves(cr, uid, ids, "write", context)
return super(account_account, self).write(cr, uid, ids, vals, context=context)
def unlink(self, cr, uid, ids, context={}):
self._check_moves(cr, uid, ids, "unlink", context)
return super(account_account, self).unlink(cr, uid, ids, context)
account_account()
class account_journal_view(osv.osv):
@ -447,7 +474,7 @@ class account_journal_column(osv.osv):
'name': fields.char('Column Name', size=64, required=True),
'field': fields.selection(_col_get, 'Field Name', method=True, required=True, size=32),
'view_id': fields.many2one('account.journal.view', 'Journal View', select=True),
'sequence': fields.integer('Sequence'),
'sequence': fields.integer('Sequence', help="Gives the sequence order to journal column."),
'required': fields.boolean('Required'),
'readonly': fields.boolean('Readonly'),
}
@ -460,14 +487,19 @@ class account_journal(osv.osv):
_columns = {
'name': fields.char('Journal Name', size=64, required=True, translate=True),
'code': fields.char('Code', size=16),
'type': fields.selection([('sale', 'Sale'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('general', 'General'), ('situation', 'Situation')], 'Type', size=32, required=True),
'refund_journal': fields.boolean('Refund Journal'),
'type': fields.selection([('sale', 'Sale'), ('purchase', 'Purchase'), ('cash', 'Cash'), ('general', 'General'), ('situation', 'Situation')], 'Type', size=32, required=True,
help="Select 'Sale' for Sale journal to be used at the time of making invoice."\
" Select 'Purchase' for Purchase Journal to be used at the time of approving purchase order."\
" Select 'Cash' to be used at the time of making payment."\
" Select 'General' to be used at the time of stock input/output."\
" Select 'Situation' to be used at the time of making vouchers."),
'refund_journal': fields.boolean('Refund Journal', help='Fill this if the journal is to be used for refunds of invoices.'),
'type_control_ids': fields.many2many('account.account.type', 'account_journal_type_rel', 'journal_id','type_id', 'Type Controls', domain=[('code','<>','view'), ('code', '<>', 'closed')]),
'account_control_ids': fields.many2many('account.account', 'account_account_type_rel', 'journal_id','account_id', 'Account', domain=[('type','<>','view'), ('type', '<>', 'closed')]),
'active': fields.boolean('Active'),
'view_id': fields.many2one('account.journal.view', 'View', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tell Open ERP which fields should be visible, required or readonly and in which order. You can create your own view for a faster encoding in each journal."),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the journal without removing it."),
'view_id': fields.many2one('account.journal.view', 'View', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tells Open ERP which fields should be visible, required or readonly and in which order. You can create your own view for a faster encoding in each journal."),
'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]"),
'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]"),
'centralisation': fields.boolean('Centralised counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."),
@ -478,7 +510,7 @@ class account_journal(osv.osv):
'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'),
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
'entry_posted': fields.boolean('Skip \'Draft\' State for Created Entries', help='Check this box if you don\'t want new account moves to pass through the \'draft\' state and instead goes directly to the \'posted state\' without any manual validation.'),
'company_id': fields.related('default_credit_account_id','company_id',type='many2one', relation="res.company", string="Company"),
'company_id': fields.many2one('res.company', 'Company', required=True,select=1),
'invoice_sequence_id': fields.many2one('ir.sequence', 'Invoice Sequence', \
help="The sequence used for invoice numbers in this journal."),
}
@ -486,6 +518,7 @@ class account_journal(osv.osv):
_defaults = {
'active': lambda *a: 1,
'user_id': lambda self,cr,uid,context: uid,
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
def create(self, cr, uid, vals, context={}):
journal_id = super(account_journal, self).create(cr, uid, vals, context)
@ -500,7 +533,7 @@ class account_journal(osv.osv):
# })
return journal_id
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
if not context:
@ -520,15 +553,17 @@ class account_fiscalyear(osv.osv):
'name': fields.char('Fiscal Year', size=64, required=True),
'code': fields.char('Code', size=6, required=True),
'company_id': fields.many2one('res.company', 'Company',
help="Keep empty if the fiscal year belongs to several companies."),
help="Keep empty if the fiscal year belongs to several companies.", required=True),
'date_start': fields.date('Start Date', required=True),
'date_stop': fields.date('End Date', required=True),
'period_ids': fields.one2many('account.period', 'fiscalyear_id', 'Periods'),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'Status', readonly=True),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'State', readonly=True,
help='When fiscal year is created. The state is \'Draft\'. At the end of the year it is in \'Done\' state.'),
}
_defaults = {
'state': lambda *a: 'draft',
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
_order = "date_start"
@ -587,10 +622,13 @@ class account_period(osv.osv):
'date_start': fields.date('Start of Period', required=True, states={'done':[('readonly',True)]}),
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
'state': fields.selection([('draft','Draft'), ('done','Done')], 'Status', readonly=True)
'state': fields.selection([('draft','Draft'), ('done','Done')], 'State', readonly=True,
help='When monthly periods are created. The state is \'Draft\'. At the end of monthly period it is in \'Done\' state.'),
'company_id': fields.many2one('res.company', 'Company', required=True)
}
_defaults = {
'state': lambda *a: 'draft',
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
_order = "date_start"
@ -634,7 +672,7 @@ class account_period(osv.osv):
#CHECKME: shouldn't we check the state of the period?
ids = self.search(cr, uid, [('date_start','<=',dt),('date_stop','>=',dt)])
if not ids:
raise osv.except_osv(_('Error !'), _('No period defined for this date !\nPlease create a fiscal year.'))
raise osv.except_osv(_('Error !'), _('No period defined for this date: %s !\nPlease create a fiscal year.')%dt)
return ids
def action_draft(self, cr, uid, ids, *args):
@ -668,9 +706,11 @@ class account_journal_period(osv.osv):
'journal_id': fields.many2one('account.journal', 'Journal', required=True, ondelete="cascade"),
'period_id': fields.many2one('account.period', 'Period', required=True, ondelete="cascade"),
'icon': fields.function(_icon_get, method=True, string='Icon', type='char', size=32),
'active': fields.boolean('Active', required=True),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'Status', required=True, readonly=True),
'active': fields.boolean('Active', required=True, help="If the active field is set to true, it will allow you to hide the journal period without removing it."),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'State', required=True, readonly=True,
help='When journal period is created. The state is \'Draft\'. If a report is printed it comes to \'Printed\' state. When all transactions are done, it comes in \'Done\' state.'),
'fiscalyear_id': fields.related('period_id', 'fiscalyear_id', string='Fiscal Year', type='many2one', relation='account.fiscalyear'),
'company_id' : fields.many2one('res.company', 'Company')
}
def _check(self, cr, uid, ids, context={}):
@ -699,6 +739,7 @@ class account_journal_period(osv.osv):
_defaults = {
'state': lambda *a: 'draft',
'active': lambda *a: True,
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
_order = "period_id"
@ -743,22 +784,40 @@ class account_move(osv.osv):
def _amount_compute(self, cr, uid, ids, name, args, context, where =''):
if not ids: return {}
cr.execute('select move_id,sum(debit) from account_move_line where move_id in ('+','.join(map(str,map(int, ids)))+') group by move_id')
cr.execute('select move_id,sum(debit) from account_move_line where move_id =ANY(%s) group by move_id',(ids,))
result = dict(cr.fetchall())
for id in ids:
result.setdefault(id, 0.0)
return result
def _search_amount(self, cr, uid, obj, name, args, context):
ids = []
cr.execute('select move_id,sum(debit) from account_move_line group by move_id')
result = dict(cr.fetchall())
for item in args:
if item[1] == '>=':
res = [('id', 'in', [k for k,v in result.iteritems() if v >= item[2]])]
else:
res = [('id', 'in', [k for k,v in result.iteritems() if v <= item[2]])]
ids += res
if not ids:
return [('id', '>', '0')]
return ids
_columns = {
'name': fields.char('Number', size=64, required=True),
'ref': fields.char('Ref', size=64),
'ref': fields.char('Reference', size=64),
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
'state': fields.selection([('draft','Draft'), ('posted','Posted')], 'Status', required=True, readonly=True),
'state': fields.selection([('draft','Draft'), ('posted','Posted')], 'State', required=True, readonly=True,
help='When new account move is created the state will be \'Draft\'. When all the payments are done it will be in \'Posted\' state.'),
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Be Verified'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner"),
'amount': fields.function(_amount_compute, method=True, string='Amount', digits=(16,int(config['price_accuracy']))),
'amount': fields.function(_amount_compute, method=True, string='Amount', digits=(16,int(config['price_accuracy'])), type='float', fnct_search=_search_amount),
'date': fields.date('Date', required=True),
'type': fields.selection([
('pay_voucher','Cash Payment'),
@ -770,6 +829,8 @@ class account_move(osv.osv):
('journal_pur_voucher','Journal Purchase'),
('journal_voucher','Journal Voucher'),
],'Type', readonly=True, select=True, states={'draft':[('readonly',False)]}),
'narration':fields.text('Narration', readonly=True, select=True, states={'draft':[('readonly',False)]}),
'company_id': fields.related('journal_id','company_id',type='many2one',relation='res.company',string='Company',store=True),
}
_defaults = {
'name': lambda *a: '/',
@ -777,6 +838,7 @@ class account_move(osv.osv):
'period_id': _get_period,
'type' : lambda *a : 'journal_voucher',
'date': lambda *a:time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
def _check_centralisation(self, cursor, user, ids):
@ -821,7 +883,7 @@ class account_move(osv.osv):
if new_name:
self.write(cr, uid, [move.id], {'name':new_name})
cr.execute('update account_move set state=%s where id in ('+','.join(map(str, ids))+')', ('posted',))
cr.execute('update account_move set state=%s where id =ANY(%s) ',('posted',ids,))
else:
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !'))
return True
@ -834,7 +896,7 @@ class account_move(osv.osv):
if not line.journal_id.update_posted:
raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
if len(ids):
cr.execute('update account_move set state=%s where id in ('+','.join(map(str, ids))+')', ('draft',))
cr.execute('update account_move set state=%s where id =ANY(%s)',('draft',ids,))
return True
def write(self, cr, uid, ids, vals, context={}):
@ -906,7 +968,10 @@ class account_move(osv.osv):
amount+= (line.debit - line.credit)
return amount
def _centralise(self, cr, uid, move, mode):
def _centralise(self, cr, uid, move, mode, context=None):
if context is None:
context = {}
if mode=='credit':
account_id = move.journal_id.default_debit_account_id.id
mode2 = 'debit'
@ -929,8 +994,9 @@ class account_move(osv.osv):
if res:
line_id = res[0]
else:
context.update({'journal_id': move.journal_id.id, 'period_id': move.period_id.id})
line_id = self.pool.get('account.move.line').create(cr, uid, {
'name': 'Centralisation '+mode,
'name': _(mode.capitalize()+' Centralisation'),
'centralisation': mode,
'account_id': account_id,
'move_id': move.id,
@ -939,7 +1005,7 @@ class account_move(osv.osv):
'date': move.period_id.date_stop,
'debit': 0.0,
'credit': 0.0,
}, {'journal_id': move.journal_id.id, 'period_id': move.period_id.id})
}, context)
# find the first line of this move with the other mode
# so that we can exclude it from our calculation
@ -1021,8 +1087,8 @@ class account_move(osv.osv):
#
continue
if journal.centralisation:
self._centralise(cr, uid, move, 'debit')
self._centralise(cr, uid, move, 'credit')
self._centralise(cr, uid, move, 'debit', context=context)
self._centralise(cr, uid, move, 'credit', context=context)
self.pool.get('account.move.line').write(cr, uid, line_draft_ids, {
'state': 'valid'
}, context, check=False)
@ -1036,11 +1102,11 @@ class account_move(osv.osv):
'state': 'draft'
}, context, check=False)
ok = False
if ok:
list_ids = []
for tmp in move.line_id:
list_ids.append(tmp.id)
self.pool.get('account.move.line').create_analytic_lines(cr, uid, list_ids, context)
if ok:
list_ids = []
for tmp in move.line_id:
list_ids.append(tmp.id)
self.pool.get('account.move.line').create_analytic_lines(cr, uid, list_ids, context)
return ok
account_move()
@ -1058,8 +1124,8 @@ class account_move_reconcile(osv.osv):
'name': lambda self,cr,uid,ctx={}: self.pool.get('ir.sequence').get(cr, uid, 'account.reconcile') or '/',
}
def reconcile_partial_check(self, cr, uid, ids, type='auto', context={}):
total = 0.0
for rec in self.browse(cr, uid, ids, context):
total = 0.0
for line in rec.line_partial_ids:
total += (line.debit or 0.0) - (line.credit or 0.0)
if not total:
@ -1100,23 +1166,22 @@ class account_tax_code(osv.osv):
"""
def _sum(self, cr, uid, ids, name, args, context, where =''):
ids2 = self.search(cr, uid, [('parent_id', 'child_of', ids)])
acc_set = ",".join(map(str, ids2))
if context.get('based_on', 'invoices') == 'payments':
cr.execute('SELECT line.tax_code_id, sum(line.tax_amount) \
FROM account_move_line AS line, \
account_move AS move \
LEFT JOIN account_invoice invoice ON \
(invoice.move_id = move.id) \
WHERE line.tax_code_id in ('+acc_set+') '+where+' \
WHERE line.tax_code_id =ANY(%s) '+where+' \
AND move.id = line.move_id \
AND ((invoice.state = \'paid\') \
OR (invoice.id IS NULL)) \
GROUP BY line.tax_code_id')
GROUP BY line.tax_code_id',(ids2,))
else:
cr.execute('SELECT line.tax_code_id, sum(line.tax_amount) \
FROM account_move_line AS line \
WHERE line.tax_code_id in ('+acc_set+') '+where+' \
GROUP BY line.tax_code_id')
WHERE line.tax_code_id =ANY(%s) '+where+' \
GROUP BY line.tax_code_id',(ids2,))
res=dict(cr.fetchall())
for record in self.browse(cr, uid, ids, context):
def _rec_get(record):
@ -1191,7 +1256,7 @@ class account_tax_code(osv.osv):
def _check_recursion(self, cr, uid, ids):
level = 100
while len(ids):
cr.execute('select distinct parent_id from account_tax_code where id in ('+','.join(map(str, ids))+')')
cr.execute('select distinct parent_id from account_tax_code where id =ANY(%s)',(ids,))
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
if not level:
return False
@ -1222,7 +1287,7 @@ class account_tax(osv.osv):
'name': fields.char('Tax Name', size=64, required=True, translate=True, help="This name will be displayed on reports"),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the tax lines from the lowest sequences to the higher ones. The order is important if you have a tax with several tax children. In this case, the evaluation order is important."),
'amount': fields.float('Amount', required=True, digits=(14,4), help="For Tax Type percent enter % ratio between 0-1."),
'active': fields.boolean('Active'),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the tax without removing it."),
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'),('balance','Balance')], 'Tax Type', required=True,
help="The computation method for the tax amount."),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True,
@ -1252,7 +1317,7 @@ class account_tax(osv.osv):
'ref_tax_code_id': fields.many2one('account.tax.code', 'Refund Tax Code', help="Use this code for the VAT declaration."),
'ref_base_sign': fields.float('Base Code Sign', help="Usually 1 or -1."),
'ref_tax_sign': fields.float('Tax Code Sign', help="Usually 1 or -1."),
'include_base_amount': fields.boolean('Include in base amount', help="Indicate if the amount of tax must be included in the base amount for the computation of the next taxes"),
'include_base_amount': fields.boolean('Included in base amount', help="Indicates if the amount of tax must be included in the base amount for the computation of the next taxes"),
'company_id': fields.many2one('res.company', 'Company', required=True),
'description': fields.char('Tax Code',size=32),
'price_include': fields.boolean('Tax Included in Price', help="Check this if the price you use on the product and invoices includes this tax."),
@ -1413,11 +1478,11 @@ class account_tax(osv.osv):
for tax in taxes:
if (tax.type=='percent') and not tax.include_base_amount:
tax_parent_tot += tax.amount
for tax in taxes:
if (tax.type=='fixed') and not tax.include_base_amount:
cur_price_unit -= tax.amount
for tax in taxes:
if tax.type=='percent':
if tax.include_base_amount:
@ -1434,8 +1499,8 @@ class account_tax(osv.osv):
exec tax.python_compute_inv in localdict
amount = localdict['result']
elif tax.type=='balance':
data['amount'] = cur_price_unit - reduce(lambda x,y: y.get('amount',0.0)+x, res, 0.0)
data['balance'] = cur_price_unit
amount = cur_price_unit - reduce(lambda x,y: y.get('amount',0.0)+x, res, 0.0)
# data['balance'] = cur_price_unit
if tax.include_base_amount:
@ -1508,7 +1573,7 @@ class account_model(osv.osv):
_description = "Account Model"
_columns = {
'name': fields.char('Model Name', size=64, required=True, help="This is a model for recurring accounting entries"),
'ref': fields.char('Ref', size=64),
'ref': fields.char('Reference', size=64),
'journal_id': fields.many2one('account.journal', 'Journal', required=True),
'lines_id': fields.one2many('account.model.line', 'model_id', 'Model Entries'),
'legend' :fields.text('Legend',readonly=True,size=100),
@ -1520,7 +1585,8 @@ class account_model(osv.osv):
def generate(self, cr, uid, ids, datas={}, context={}):
move_ids = []
for model in self.browse(cr, uid, ids, context):
period_id = self.pool.get('account.period').find(cr,uid, context=context)
context.update({'date':datas['date']})
period_id = self.pool.get('account.period').find(cr, uid, dt=context.get('date',False))
if not period_id:
raise osv.except_osv(_('No period found !'), _('Unable to find a valid period !'))
period_id = period_id[0]
@ -1528,6 +1594,7 @@ class account_model(osv.osv):
'ref': model.ref,
'period_id': period_id,
'journal_id': model.journal_id.id,
'date': context.get('date',time.strftime('%Y-%m-%d'))
})
move_ids.append(move_id)
for line in model.lines_id:
@ -1545,7 +1612,7 @@ class account_model(osv.osv):
'move_id': move_id,
'ref': line.ref,
'partner_id': line.partner_id.id,
'date': time.strftime('%Y-%m-%d'),
'date': context.get('date',time.strftime('%Y-%m-%d')),
'date_maturity': time.strftime('%Y-%m-%d')
})
c = context.copy()
@ -1568,13 +1635,13 @@ class account_model_line(osv.osv):
'model_id': fields.many2one('account.model', 'Model', required=True, ondelete="cascade", select=True),
'ref': fields.char('Ref.', size=16),
'ref': fields.char('Reference', size=16),
'amount_currency': fields.float('Amount Currency', help="The amount expressed in an optional other currency."),
'currency_id': fields.many2one('res.currency', 'Currency'),
'partner_id': fields.many2one('res.partner', 'Partner Ref.'),
'date_maturity': fields.selection([('today','Date of the day'), ('partner','Partner Payment Term')], 'Maturity date', help="The maturity date of the generated entries for this model. You can chosse between the date of the creation action or the the date of the creation of the entries plus the partner payment terms."),
'partner_id': fields.many2one('res.partner', 'Partner'),
'date_maturity': fields.selection([('today','Date of the day'), ('partner','Partner Payment Term')], 'Maturity date', help="The maturity date of the generated entries for this model. You can choose between the creation date or the creation date of the entries plus the partner payment terms."),
'date': fields.selection([('today','Date of the day'), ('partner','Partner Payment Term')], 'Current Date', required=True, help="The date of the generated entries"),
}
_defaults = {
@ -1582,8 +1649,8 @@ class account_model_line(osv.osv):
}
_order = 'sequence'
_sql_constraints = [
('credit_debit1', 'CHECK (credit*debit=0)', 'Wrong credit or debit value in model !'),
('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in model !'),
('credit_debit1', 'CHECK (credit*debit=0)', 'Wrong credit or debit value in model (Credit Or Debit Must Be "0")!'),
('credit_debit2', 'CHECK (credit+debit>=0)', 'Wrong credit or debit value in model (Credit + Debit Must Be greater "0")!'),
]
account_model_line()
@ -1597,14 +1664,14 @@ class account_subscription(osv.osv):
_description = "Account Subscription"
_columns = {
'name': fields.char('Name', size=64, required=True),
'ref': fields.char('Ref', size=16),
'ref': fields.char('Reference', size=16),
'model_id': fields.many2one('account.model', 'Model', required=True),
'date_start': fields.date('Start Date', required=True),
'period_total': fields.integer('Number of Periods', required=True),
'period_nbr': fields.integer('Period', required=True),
'period_type': fields.selection([('day','days'),('month','month'),('year','year')], 'Period Type', required=True),
'state': fields.selection([('draft','Draft'),('running','Running'),('done','Done')], 'Status', required=True, readonly=True),
'state': fields.selection([('draft','Draft'),('running','Running'),('done','Done')], 'State', required=True, readonly=True),
'lines_id': fields.one2many('account.subscription.line', 'subscription_id', 'Subscription Lines')
}
@ -1690,22 +1757,19 @@ account_subscription_line()
class account_config_wizard(osv.osv_memory):
_name = 'account.config.wizard'
def _get_charts(self, cr, uid, context):
module_obj=self.pool.get('ir.module.module')
ids=module_obj.search(cr, uid, [('category_id', '=', 'Account Charts'), ('state', '<>', 'installed')])
res=[(m.id, m.shortdesc) for m in module_obj.browse(cr, uid, ids)]
res.append((-1, 'None'))
res.sort(key=lambda x: x[1])
return res
_inherit = 'res.config'
_columns = {
'name':fields.char('Name', required=True, size=64, help="Name of the fiscal year as displayed on screens."),
'code':fields.char('Code', required=True, size=64, help="Name of the fiscal year as displayed in reports."),
'name':fields.char(
'Name', required=True, size=64,
help="Name of the fiscal year as displayed on screens."),
'code':fields.char(
'Code', required=True, size=64,
help="Name of the fiscal year as displayed in reports."),
'date1': fields.date('Start Date', required=True),
'date2': fields.date('End Date', required=True),
'period':fields.selection([('month','Month'),('3months','3 Months')], 'Periods', required=True),
'charts' : fields.selection(_get_charts, 'Charts of Account',required=True)
'period':fields.selection([('month','Month'), ('3months','3 Months')],
'Periods', required=True),
}
_defaults = {
'code': lambda *a: time.strftime('%Y'),
@ -1714,25 +1778,8 @@ class account_config_wizard(osv.osv_memory):
'date2': lambda *a: time.strftime('%Y-12-31'),
'period':lambda *a:'month',
}
def action_cancel(self,cr,uid,ids,conect=None):
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
def install_account_chart(self, cr, uid, ids, context=None):
for res in self.read(cr,uid,ids):
chart_id = res['charts']
if chart_id > 0:
mod_obj = self.pool.get('ir.module.module')
mod_obj.button_install(cr, uid, [chart_id], context=context)
cr.commit()
db, pool = pooler.restart_pool(cr.dbname, update_module=True)
def action_create(self, cr, uid,ids, context=None):
def execute(self, cr, uid, ids, context=None):
for res in self.read(cr,uid,ids):
if 'date1' in res and 'date2' in res:
res_obj = self.pool.get('account.fiscalyear')
@ -1750,17 +1797,6 @@ class account_config_wizard(osv.osv_memory):
res_obj.create_period(cr,uid,[new_id])
elif res['period']=='3months':
res_obj.create_period3(cr,uid,[new_id])
self.install_account_chart(cr,uid,ids)
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
account_config_wizard()
@ -1779,7 +1815,7 @@ class account_account_template(osv.osv):
_columns = {
'name': fields.char('Name', size=128, required=True, select=True),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Force all moves for this account to have this secondary currency."),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
'code': fields.char('Code', size=64),
'type': fields.selection([
('receivable','Receivable'),
@ -1788,30 +1824,32 @@ class account_account_template(osv.osv):
('consolidation','Consolidation'),
('other','Others'),
('closed','Closed'),
], 'Internal Type', required=True,help="This type is used to differenciate types with "\
], 'Internal Type', required=True,help="This type is used to differentiate types with "\
"special effects in Open ERP: view can not have entries, consolidation are accounts that "\
"can have children accounts for multi-company consolidations, payable/receivable are for "\
"partners accounts (for debit/credit computations), closed for deprecated accounts."),
"partners accounts (for debit/credit computations), closed for depreciated accounts."),
'user_type': fields.many2one('account.account.type', 'Account Type', required=True,
help="These types are defined according to your country. The type contain more information "\
"about the account and it's specificities."),
help="These types are defined according to your country. The type contains more information "\
"about the account and its specificities."),
'reconcile': fields.boolean('Allow Reconciliation', help="Check this option if you want the user to reconcile entries in this account."),
'shortcut': fields.char('Shortcut', size=12),
'note': fields.text('Note'),
'parent_id': fields.many2one('account.account.template','Parent Account Template', ondelete='cascade'),
'child_parent_ids':fields.one2many('account.account.template','parent_id','Children'),
'tax_ids': fields.many2many('account.tax.template', 'account_account_template_tax_rel','account_id','tax_id', 'Default Taxes'),
'nocreate': fields.boolean('Optional create', help="If checked, the new chart of accounts will not contain this by default."),
}
_defaults = {
'reconcile': lambda *a: False,
'type' : lambda *a :'view',
'nocreate': lambda *a: False,
}
def _check_recursion(self, cr, uid, ids):
level = 100
while len(ids):
cr.execute('select parent_id from account_account_template where id in ('+','.join(map(str, ids))+')')
cr.execute('select parent_id from account_account_template where id =ANY(%s)',(ids,))
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
if not level:
return False
@ -1837,6 +1875,67 @@ class account_account_template(osv.osv):
account_account_template()
class account_add_tmpl_wizard(osv.osv_memory):
"""Add one more account from the template.
With the 'nocreate' option, some accounts may not be created. Use this to add them later."""
_name = 'account.addtmpl.wizard'
def _get_def_cparent(self, cr, uid, context):
acc_obj=self.pool.get('account.account')
tmpl_obj=self.pool.get('account.account.template')
#print "Searching for ",context
tids=tmpl_obj.read(cr, uid, [context['tmpl_ids']],['parent_id'])
if not tids or not tids[0]['parent_id']:
return False
ptids = tmpl_obj.read(cr, uid, [tids[0]['parent_id'][0]],['code'])
if not ptids or not ptids[0]['code']:
raise osv.except_osv(_('Error !'), _('Cannot locate parent code for template account!'))
res = acc_obj.search(cr,uid,[('code','=',ptids[0]['code'])])
if res:
return res[0]
else:
return False
_columns = {
'cparent_id':fields.many2one('account.account', 'Parent target', help="Creates an account with the selected template under this existing parent.", required=True),
}
_defaults = {
'cparent_id': _get_def_cparent,
}
def action_create(self,cr,uid,ids,context=None):
acc_obj=self.pool.get('account.account')
tmpl_obj=self.pool.get('account.account.template')
data= self.read(cr,uid,ids)
company_id = acc_obj.read(cr,uid,[data[0]['cparent_id']],['company_id'])[0]['company_id'][0]
account_template = tmpl_obj.browse(cr,uid,context['tmpl_ids'])
#tax_ids = []
#for tax in account_template.tax_ids:
# tax_ids.append(tax_template_ref[tax.id])
vals={
'name': account_template.name,
#'sign': account_template.sign,
'currency_id': account_template.currency_id and account_template.currency_id.id or False,
'code': account_template.code,
'type': account_template.type,
'user_type': account_template.user_type and account_template.user_type.id or False,
'reconcile': account_template.reconcile,
'shortcut': account_template.shortcut,
'note': account_template.note,
'parent_id': data[0]['cparent_id'],
# 'tax_ids': [(6,0,tax_ids)], todo!!
'company_id': company_id,
}
# print "Creating:", vals
new_account = acc_obj.create(cr,uid,vals)
return {'type':'state', 'state': 'end' }
def action_cancel(self,cr,uid,ids,context=None):
return { 'type': 'state', 'state': 'end' }
account_add_tmpl_wizard()
class account_tax_code_template(osv.osv):
_name = 'account.tax.code.template'
@ -1870,7 +1969,7 @@ class account_tax_code_template(osv.osv):
def _check_recursion(self, cr, uid, ids):
level = 100
while len(ids):
cr.execute('select distinct parent_id from account_tax_code_template where id in ('+','.join(map(str, ids))+')')
cr.execute('select distinct parent_id from account_tax_code_template where id =ANY(%s)',(ids,))
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
if not level:
return False
@ -1913,14 +2012,14 @@ class account_tax_template(osv.osv):
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
'name': fields.char('Tax Name', size=64, required=True),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from lower sequences to higher ones. The order is important if you have a tax that has several tax children. In this case, the evaluation order is important."),
'amount': fields.float('Amount', required=True, digits=(14,4)),
'amount': fields.float('Amount', required=True, digits=(14,4), help="For Tax Type percent enter % ratio between 0-1."),
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code')], 'Tax Type', required=True),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True, help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
'account_collected_id':fields.many2one('account.account.template', 'Invoice Tax Account'),
'account_paid_id':fields.many2one('account.account.template', 'Refund Tax Account'),
'parent_id':fields.many2one('account.tax.template', 'Parent Tax Account', select=True),
'child_depend':fields.boolean('Tax on Children', help="Indicate if the tax computation is based on the value computed for the computation of child taxes or based on the total amount."),
'child_depend':fields.boolean('Tax on Children', help="Set if the tax computation is based on the computation of child taxes rather than on the total amount."),
'python_compute':fields.text('Python Code'),
'python_compute_inv':fields.text('Python Code (reverse)'),
'python_applicable':fields.text('Python Code'),
@ -2036,6 +2135,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
* generates all accounting properties and assigns them correctly
"""
_name='wizard.multi.charts.accounts'
_inherit = 'res.config'
_columns = {
'company_id':fields.many2one('res.company','Company',required=True),
@ -2056,7 +2156,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'code_digits': lambda *a:6,
}
def action_create(self, cr, uid, ids, context=None):
def execute(self, cr, uid, ids, context=None):
obj_multi = self.browse(cr,uid,ids[0])
obj_acc = self.pool.get('account.account')
obj_acc_tax = self.pool.get('account.tax')
@ -2132,7 +2232,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
#deactivate the parent_store functionnality on account_account for rapidity purpose
self.pool._init = True
children_acc_template = obj_acc_template.search(cr, uid, [('parent_id','child_of',[obj_acc_root.id])])
children_acc_template = obj_acc_template.search(cr, uid, [('parent_id','child_of',[obj_acc_root.id]),('nocreate','!=',True)])
children_acc_template.sort()
for account_template in obj_acc_template.browse(cr, uid, children_acc_template):
tax_ids = []
@ -2319,24 +2419,6 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'position_id' : new_fp,
}
obj_ac_fp.create(cr, uid, vals_acc)
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
def action_cancel(self,cr,uid,ids,conect=None):
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
wizard_multi_charts_accounts()
class account_bank_accounts_wizard(osv.osv_memory):

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -24,15 +24,52 @@ import time
from osv import fields
from osv import osv
from tools.translate import _
import tools
from tools import config
class account_analytic_line(osv.osv):
_name = 'account.analytic.line'
_description = 'Analytic lines'
def _amount_currency(self, cr, uid, ids, field_name, arg, context={}):
result = {}
for rec in self.browse(cr, uid, ids, context):
cmp_cur_id=rec.company_id.currency_id.id
aa_cur_id=rec.account_id.currency_id.id
# Always provide the amount in currency
if cmp_cur_id != aa_cur_id:
cur_obj = self.pool.get('res.currency')
ctx = {}
if rec.date and rec.amount:
ctx['date'] = rec.date
result[rec.id] = cur_obj.compute(cr, uid, rec.company_id.currency_id.id,
rec.account_id.currency_id.id, rec.amount,
context=ctx)
else:
result[rec.id]=rec.amount
return result
def _get_account_currency(self, cr, uid, ids, field_name, arg, context={}):
result = {}
for rec in self.browse(cr, uid, ids, context):
# Always provide second currency
result[rec.id] = (rec.account_id.currency_id.id,rec.account_id.currency_id.code)
return result
def _get_account_line(self, cr, uid, ids, context={}):
aac_ids = {}
for acc in self.pool.get('account.analytic.account').browse(cr, uid, ids):
aac_ids[acc.id] = True
aal_ids = []
if aac_ids:
aal_ids = self.pool.get('account.analytic.line').search(cr, uid, [('account_id','in',aac_ids.keys())], context=context)
return aal_ids
_columns = {
'name' : fields.char('Description', size=256, required=True),
'date' : fields.date('Date', required=True),
'amount' : fields.float('Amount', required=True),
'unit_amount' : fields.float('Quantity'),
'amount' : fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price.'),
'unit_amount' : fields.float('Quantity', help='Specifies the amount of quantity to count.'),
'product_uom_id' : fields.many2one('product.uom', 'UoM'),
'product_id' : fields.many2one('product.product', 'Product'),
'account_id' : fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True),
@ -41,14 +78,27 @@ class account_analytic_line(osv.osv):
'journal_id' : fields.many2one('account.analytic.journal', 'Analytic Journal', required=True, ondelete='cascade', select=True),
'code' : fields.char('Code', size=8),
'user_id' : fields.many2one('res.users', 'User',),
'ref': fields.char('Ref.', size=32),
'currency_id': fields.function(_get_account_currency, method=True, type='many2one', relation='res.currency', string='Account currency',
store={
'account.analytic.account': (_get_account_line, ['company_id'], 50),
'account.analytic.line': (lambda self,cr,uid,ids,c={}: ids, ['amount','unit_amount'],10),
},
help="The related account currency if not equal to the company one."),
'company_id': fields.many2one('res.company','Company',required=True),
'amount_currency': fields.function(_amount_currency, method=True, digits=(16, int(config['price_accuracy'])), string='Amount currency',
store={
'account.analytic.account': (_get_account_line, ['company_id'], 50),
'account.analytic.line': (lambda self,cr,uid,ids,c={}: ids, ['amount','unit_amount'],10),
},
help="The amount expressed in the related account currency if not equal to the company one."),
'ref': fields.char('Ref.', size=64),
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', c),
}
_order = 'date'
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
if context is None:
context = {}
@ -72,11 +122,15 @@ class account_analytic_line(osv.osv):
# (_check_company, 'You can not create analytic line that is not in the same company than the account line', ['account_id'])
]
def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount,
# Compute the cost based on the price type define into company
# property_valuation_price_type property
def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount,company_id,
unit=False, context=None):
if context==None:
context={}
uom_obj = self.pool.get('product.uom')
product_obj = self.pool.get('product.product')
# if unit_amount and prod_id:
company_obj=self.pool.get('res.company')
if prod_id:
prod = product_obj.browse(cr, uid, prod_id)
a = prod.product_tmpl_id.property_account_expense.id
@ -87,8 +141,14 @@ class account_analytic_line(osv.osv):
_('There is no expense account defined ' \
'for this product: "%s" (id:%d)') % \
(prod.name, prod.id,))
amount = unit_amount * uom_obj._compute_price(cr, uid,
prod.uom_id.id, prod.standard_price, unit)
if not company_id:
company_id=company_obj._company_default_get(cr, uid, 'account.analytic.line', context)
# Compute based on pricetype
pricetype=self.pool.get('product.price.type').browse(cr,uid,company_obj.browse(cr,uid,company_id).property_valuation_price_type.id)
amount_unit=prod.price_get(pricetype.field, context)[prod.id]
amount=amount_unit*unit_amount or 1.0
return {'value': {
'amount': - round(amount, 2),
'general_account_id': a,
@ -97,9 +157,11 @@ class account_analytic_line(osv.osv):
def view_header_get(self, cr, user, view_id, view_type, context):
if context.get('account_id', False):
# account_id in context may also be pointing to an account.account.id
cr.execute('select name from account_analytic_account where id=%s', (context['account_id'],))
res = cr.fetchone()
res = _('Entries: ')+ (res[0] or '')
if res:
res = _('Entries: ')+ (res[0] or '')
return res
return False
@ -111,20 +173,24 @@ class timesheet_invoice(osv.osv):
_description = "Analytic account costs and revenues"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),
'name': fields.char('Year',size=64,required=False, readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, select=True),
'journal_id': fields.many2one('account.analytic.journal', 'Journal', readonly=True),
'quantity': fields.float('Quantities', readonly=True),
'cost': fields.float('Credit', readonly=True),
'revenue': fields.float('Debit', readonly=True)
'revenue': fields.float('Debit', readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
}
_order = 'name desc, account_id'
def init(self, cr):
tools.drop_view_if_exists(cr, 'report_hr_timesheet_invoice_journal')
cr.execute("""
create or replace view report_hr_timesheet_invoice_journal as (
select
min(l.id) as id,
date_trunc('month', l.date)::date as name,
to_char(l.date, 'YYYY') as name,
to_char(l.date,'MM') as month,
sum(
CASE WHEN l.amount>0 THEN 0 ELSE l.amount
END
@ -139,7 +205,8 @@ class timesheet_invoice(osv.osv):
from account_analytic_line l
LEFT OUTER join product_uom u on (u.id=l.product_uom_id)
group by
date_trunc('month', l.date),
to_char(l.date, 'YYYY'),
to_char(l.date,'MM'),
journal_id,
account_id
)""")

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<assert model="account.move" search="[]" string="For all account moves, the state is valid implies that the sum of credits equals the sum of debits">
<assert model="account.move" search="[]" string="For all Ledger Postings, the state is valid implies that the sum of credits equals the sum of debits">
<test expr="not len(line_id) or line_id[0].state != 'valid' or (sum([l.debit - l.credit for l in line_id]) &lt;= 0.00001)"/>
</assert>

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -107,7 +107,7 @@ class account_bank_statement(osv.osv):
_name = "account.bank.statement"
_description = "Bank Statement"
_columns = {
'name': fields.char('Name', size=64, required=True),
'name': fields.char('Name', size=64, required=True, states={'confirm': [('readonly', True)]}),
'date': fields.date('Date', required=True,
states={'confirm': [('readonly', True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True,
@ -126,7 +126,9 @@ class account_bank_statement(osv.osv):
'Entry lines', states={'confirm':[('readonly',True)]}),
'state': fields.selection([('draft', 'Draft'),('confirm', 'Confirmed')],
'State', required=True,
states={'confirm': [('readonly', True)]}, readonly="1"),
states={'confirm': [('readonly', True)]}, readonly="1",
help='When new statement is created the state will be \'Draft\'. \
\n* And after getting confirmation from the bank it will be in \'Confirmed\' state.'),
'currency': fields.function(_currency, method=True, string='Currency',
type='many2one', relation='res.currency'),
}
@ -141,7 +143,7 @@ class account_bank_statement(osv.osv):
'period_id': _get_period,
}
def button_confirm(self, cr, uid, ids, context=None):
def button_confirm(self, cr, uid, ids, context={}):
done = []
res_currency_obj = self.pool.get('res.currency')
res_users_obj = self.pool.get('res.users')
@ -163,7 +165,7 @@ class account_bank_statement(osv.osv):
_('The expected balance (%.2f) is different than the computed one. (%.2f)') % (st.balance_end_real, st.balance_end))
if (not st.journal_id.default_credit_account_id) \
or (not st.journal_id.default_debit_account_id):
raise osv.except_osv(_('Configration Error !'),
raise osv.except_osv(_('Configuration Error !'),
_('Please verify that an account is defined in the journal.'))
for line in st.move_line_ids:
@ -174,9 +176,11 @@ class account_bank_statement(osv.osv):
# In line we get reconcile_id on bank.ste.rec.
# in bank stat.rec we get line_new_ids on bank.stat.rec.line
for move in st.line_ids:
context.update({'date':move.date})
move_id = account_move_obj.create(cr, uid, {
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'date': move.date,
}, context=context)
account_bank_statement_line_obj.write(cr, uid, [move.id], {
'move_ids': [(4,move_id, False)]
@ -211,7 +215,7 @@ class account_bank_statement(osv.osv):
'period_id': st.period_id.id,
'currency_id': st.currency.id,
}
amount = res_currency_obj.compute(cr, uid, st.currency.id,
company_currency_id, move.amount, context=context,
account=acc_cur)
@ -247,7 +251,7 @@ class account_bank_statement(osv.osv):
'statement_id': st.id,
'journal_id': st.journal_id.id,
'period_id': st.period_id.id,
'analytic_account_id':newline.analytic_id and newline.analytic_id.id or False,
'analytic_account_id':newline.analytic_id and newline.analytic_id.id or False,
}, context=context)
@ -280,13 +284,20 @@ class account_bank_statement(osv.osv):
context=context):
if line.state <> 'valid':
raise osv.except_osv(_('Error !'),
_('Account move line "%s" is not valid') % line.name)
_('Ledger Posting line "%s" is not valid') % line.name)
if move.reconcile_id and move.reconcile_id.line_ids:
torec += map(lambda x: x.id, move.reconcile_id.line_ids)
#try:
if abs(move.reconcile_amount-move.amount)<0.0001:
account_move_line_obj.reconcile(cr, uid, torec, 'statement', writeoff_period_id=st.period_id.id, writeoff_journal_id=st.journal_id.id, context=context)
writeoff_acc_id = False
#There should only be one write-off account!
for entry in move.reconcile_id.line_new_ids:
writeoff_acc_id = entry.account_id.id
break
account_move_line_obj.reconcile(cr, uid, torec, 'statement', writeoff_acc_id=writeoff_acc_id, writeoff_period_id=st.period_id.id, writeoff_journal_id=st.journal_id.id, context=context)
else:
account_move_line_obj.reconcile_partial(cr, uid, torec, 'statement', context)
#except:
@ -335,6 +346,17 @@ class account_bank_statement(osv.osv):
context=context)[0]
return {'value': {'balance_start': balance_start, 'currency': currency}}
def unlink(self, cr, uid, ids, context=None):
stat = self.read(cr, uid, ids, ['state'])
unlink_ids = []
for t in stat:
if t['state'] in ('draft'):
unlink_ids.append(t['id'])
else:
raise osv.except_osv(_('Invalid action !'), _('Cannot delete bank statement which are already confirmed !'))
osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
return True
account_bank_statement()
@ -499,7 +521,7 @@ class account_bank_statement_reconcile_line(osv.osv):
'account_id': fields.many2one('account.account', 'Account', required=True),
'line_id': fields.many2one('account.bank.statement.reconcile', 'Reconcile'),
'amount': fields.float('Amount', required=True),
'analytic_id': fields.many2one('account.analytic.account',"Analytic Account")
'analytic_id': fields.many2one('account.analytic.account',"Analytic Account")
}
_defaults = {
'name': lambda *a: 'Write-Off',
@ -576,23 +598,23 @@ class account_bank_statement_line(osv.osv):
'account_id': fields.many2one('account.account','Account',
required=True),
'statement_id': fields.many2one('account.bank.statement', 'Statement',
select=True, required=True),
select=True, required=True, ondelete='cascade'),
'reconcile_id': fields.many2one('account.bank.statement.reconcile',
'Reconcile', states={'confirm':[('readonly',True)]}),
'move_ids': fields.many2many('account.move',
'account_bank_statement_line_move_rel', 'move_id','statement_id',
'Moves'),
'ref': fields.char('Ref.', size=32),
'ref': fields.char('Reference', size=32),
'note': fields.text('Notes'),
'reconcile_amount': fields.function(_reconcile_amount,
string='Amount reconciled', method=True, type='float'),
'sequence': fields.integer('Sequence'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of bank statement line."),
}
_defaults = {
'name': lambda self,cr,uid,context={}: self.pool.get('ir.sequence').get(cr, uid, 'account.bank.statement.line'),
'date': lambda *a: time.strftime('%Y-%m-%d'),
'type': lambda *a: 'general',
'sequence': lambda *a: 10,
'sequence': lambda *a: 10,
}
account_bank_statement_line()

View File

@ -11,6 +11,7 @@
<field eval="'FY'+time.strftime('%Y')" name="code"/>
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<!--
@ -23,6 +24,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-01-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_2" model="account.period">
<field eval="'Feb.'+time.strftime('%Y')" name="name"/>
@ -30,6 +32,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-02-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-02-28'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_3" model="account.period">
<field eval="'Mar.'+time.strftime('%Y')" name="name"/>
@ -37,6 +40,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-03-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-03-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_4" model="account.period">
<field eval="'Apr.'+time.strftime('%Y')" name="name"/>
@ -44,6 +48,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-04-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-04-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_5" model="account.period">
<field eval="'May.'+time.strftime('%Y')" name="name"/>
@ -51,6 +56,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-05-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-05-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_6" model="account.period">
<field eval="'Jun.'+time.strftime('%Y')" name="name"/>
@ -58,6 +64,7 @@
<field eval="True" name="special"/>
<field eval="time.strftime('%Y')+'-06-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-06-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_7" model="account.period">
<field eval="'Jul.'+time.strftime('%Y')" name="name"/>
@ -65,6 +72,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-07-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-07-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_8" model="account.period">
<field eval="'Aug.'+time.strftime('%Y')" name="name"/>
@ -72,6 +80,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-08-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-08-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_9" model="account.period">
<field eval="'Sep.'+time.strftime('%Y')" name="name"/>
@ -79,6 +88,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-09-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-09-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_10" model="account.period">
<field eval="'Oct.'+time.strftime('%Y')" name="name"/>
@ -86,6 +96,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-10-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-10-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_11" model="account.period">
<field eval="'Nov.'+time.strftime('%Y')" name="name"/>
@ -93,6 +104,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-11-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-11-30'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="period_12" model="account.period">
<field eval="'Dec.'+time.strftime('%Y')" name="name"/>
@ -100,6 +112,7 @@
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-12-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/>
<field name="company_id" ref="base.main_company"/>
</record>
</data>

View File

@ -0,0 +1,51 @@
<openerp>
<data>
<record id="view_account_installer" model="ir.ui.view">
<field name="name">account.installer.view</field>
<field name="model">account.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Accounting Modules Installation</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string"
>Configure Your Accounting System</attribute>
</separator>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">You can enhance OpenERP's basic accounting support with a few additional OpenERP applications</attribute>
</xpath>
<group colspan="8">
<separator string="Accounting" colspan="4"/>
<field name="charts"/>
<field name="account_analytic_default"/>
<field name="account_analytic_plans"/>
<field name="account_payment"/>
<field name="account_followup"/>
<field name="account_asset"/>
</group>
</data>
</field>
</record>
<record id="action_account_installer" model="ir.actions.act_window">
<field name="name">Accounting Modules Installation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.installer</field>
<field name="view_id" ref="view_account_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="account_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_installer"/>
<field name="sequence">3</field>
</record>
</data>
</openerp>

View File

@ -52,7 +52,7 @@
<form string="Invoice Line">
<notebook>
<page string="Line">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit)" select="1"/>
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.address_invoice_id, parent.currency_id, {'company_id': parent.company_id})"/>
<field name="uos_id"/>
<field name="quantity" select="1"/>
<field name="price_unit" select="1"/>
@ -63,6 +63,7 @@
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id" groups="base.group_user"/>
<newline/>
<field name="price_subtotal"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field colspan="4" name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
</page>
<page string="Notes">
@ -113,10 +114,11 @@
<field name="model">account.invoice</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state=='draft'" string="Invoice">
<tree colors="blue:state in ('draft');black:state not in ('draft')" string="Invoice">
<field name="name"/>
<field name="type"/>
<field name="number"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="partner_id" groups="base.group_user"/>
<field name="amount_untaxed" sum="Untaxed amount"/>
<field name="amount_total" sum="Total amount"/>
@ -140,8 +142,8 @@
<group col="6" colspan="4">
<field domain="[('type', '=', 'purchase')]" name="journal_id" select="2"/>
<field name="type" readonly="1" select="2"/>
<field name="currency_id" on_change="onchange_currency_id(currency_id)" select="2"/>
<field name="partner_id" domain="[('supplier','=', 1)]" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank)" select="1" context="{'default_customer': 0}" />
<field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" select="2"/>
<field name="partner_id" domain="[('supplier','=', 1)]" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" select="1" context="{'default_customer': 0}"/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', company_id),('journal_id','=',journal_id)]" name="account_id"/>
</group>
@ -154,7 +156,7 @@
<field name="check_total" required="2"/>
<field colspan="4" default_get="{'check_total': check_total, 'invoice_line': invoice_line, 'address_invoice_id': address_invoice_id, 'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False}" name="invoice_line" nolabel="1">
<tree string="Invoice lines" editable="top">
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.address_invoice_id)"/>
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.address_invoice_id, parent.currency_id, {'company_id': parent.company_id})"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(parent.fiscal_position,account_id)"/>
<field name="invoice_line_tax_id" view_mode="2" context="{'type':parent.type}" domain="[('parent_id','=',False)]"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id"/>
@ -196,7 +198,7 @@
</group>
</page>
<page string="Other Info">
<field name="company_id" widget="selection"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
<newline/>
<field name="payment_term" widget="selection"/>
@ -242,9 +244,9 @@
<field name="journal_id" select="2" groups="base.group_user"/>
<field name="type" readonly="1" select="2"/>
<field name="number" select="1"/>
<field name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term)" select="1" groups="base.group_user"/>
<field name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" select="1" groups="base.group_user"/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/>
<field name="currency_id" on_change="onchange_currency_id(currency_id)" select="2"/>
<field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" select="2"/>
<field name="date_invoice" select="1"/>
<field name="period_id" groups="base.group_user"/>
<group colspan="2" col="1" groups="base.group_user">
@ -287,7 +289,7 @@
</group>
</page>
<page string="Other Info">
<field name="company_id" widget="selection"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<field name="fiscal_position" groups="base.group_extended,base.group_user" widget="selection"/>
<newline/>
<field name="date_due" select="1"/>
@ -325,15 +327,20 @@
<field name="arch" type="xml">
<search string="Search Invoice">
<group col="10" colspan="4">
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter icon="terp-account" string="Proforma" domain="[('state','=','proforma')]" help="Proforma Invoices"/>
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Invoices"/>
<filter icon="terp-account" string="Proforma" domain="[('state','=','proforma2')]" help="Proforma Invoices"/>
<filter icon="terp-account" string="Unpaid" domain="[('state','in',('open','cancel'))]" help="Unpaid Invoices"/>
<separator orientation="vertical"/>
<field name="number" select='1'/>
<field name="partner_id" select='1'/>
<field name="amount_total" string="Price" select='1'/>
<field name="origin" select='1'/>
</group>
<separator orientation="vertical"/>
<field name="number" select='1'/>
<field name="partner_id" select='1'/>
<field name="amount_total" string="Price" select='1'/>
<field name="origin" select='1'/>
</group>
<group expand="context.get('report',False)" string="Group By..." colspan="4" col="10">
<filter string="Partner" icon="terp-account" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="State" icon="terp-account" domain="[]" context="{'group_by':'state'}"/>
<filter string="Date Invoice" icon="terp-account" domain="[]" context="{'group_by':'date_invoice'}"/>
</group>
</search>
</field>
</record>
@ -345,8 +352,20 @@
<field name="view_mode">tree,form,calendar,graph</field>
<field name="view_id" ref="invoice_tree"/>
<field name="context">{'type':'out_invoice'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree_pending_invoice" model="ir.actions.act_window">
<field name="name">Pending Invoice</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="view_id" ref="invoice_tree"/>
<field name="context">{'type':'out_invoice'}</field>
<field name="domain">[('state','=','draft')]</field>
<!-- <field name="search_view_id" ref="view_account_invoice_filter"/>-->
</record>
<record id="action_invoice_tree_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
@ -358,7 +377,7 @@
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree"/>
</record>
<menuitem action="action_invoice_tree" id="menu_finance_invoice" parent="account.menu_finance"/>
<menuitem name="Invoices" id="menu_finance_invoice" parent="account.menu_finance" sequence="2"/>
<record id="action_invoice_tree1" model="ir.actions.act_window">
<field name="name">Customer Invoices</field>
@ -368,7 +387,7 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree1_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
@ -382,16 +401,6 @@
<field name="act_window_id" ref="action_invoice_tree1"/>
</record>
<menuitem action="action_invoice_tree1" id="menu_action_invoice_tree1" parent="account.menu_finance_invoice"/>
<record id="action_invoice_tree1_new" model="ir.actions.act_window">
<field name="name">New Customer Invoice</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar,graph</field>
<field eval="invoice_form" name="view_id"/>
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice'}</field>
</record>
<menuitem action="action_invoice_tree1_new" sequence="50" id="menu_action_invoice_tree1_new" parent="menu_action_invoice_tree1"/>
<record id="action_invoice_tree2" model="ir.actions.act_window">
<field name="name">Supplier Invoices</field>
@ -401,19 +410,9 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'type':'in_invoice'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="account.menu_finance_invoice"/>
<record id="action_invoice_tree2_new" model="ir.actions.act_window">
<field name="name">New Supplier Invoice</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar,graph</field>
<field eval="invoice_supplier_form" name="view_id"/>
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'type':'in_invoice'}</field>
</record>
<menuitem action="action_invoice_tree2_new" sequence="50" id="menu_action_invoice_tree2_new" parent="menu_action_invoice_tree2"/>
<record id="action_invoice_tree3" model="ir.actions.act_window">
<field name="name">Customer Refunds</field>
@ -423,20 +422,23 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','out_refund')]</field>
<field name="context">{'type':'out_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="account.menu_finance_invoice"/>
<record id="action_invoice_tree3_new" model="ir.actions.act_window">
<field name="name">New Customer Refund</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar,graph</field>
<field eval="invoice_form" name="view_id"/>
<field name="domain">[('type','=','out_refund')]</field>
<field name="context">{'type':'out_refund'}</field>
<record id="action_invoice_tree3_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree3"/>
</record>
<menuitem action="action_invoice_tree3_new" sequence="50" id="menu_action_invoice_tree3_new" parent="menu_action_invoice_tree3"/>
<record id="action_invoice_tree3_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree3"/>
</record>
<menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="account.menu_finance_invoice"/>
<record id="action_invoice_tree4" model="ir.actions.act_window">
<field name="name">Supplier Refunds</field>
@ -446,238 +448,10 @@
<field eval="False" name="view_id"/>
<field name="domain">[('type','=','in_refund')]</field>
<field name="context">{'type':'in_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="account.menu_finance_invoice"/>
<record id="action_invoice_tree4_new" model="ir.actions.act_window">
<field name="name">New Supplier Refund</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,calendar,graph</field>
<field eval="invoice_supplier_form" name="view_id"/>
<field name="domain">[('type','=','in_refund')]</field>
<field name="context">{'type':'in_refund'}</field>
</record>
<menuitem action="action_invoice_tree4_new" sequence="50" id="menu_action_invoice_tree4_new" parent="menu_action_invoice_tree4"/>
<record id="action_invoice_tree5" model="ir.actions.act_window">
<field name="name">Draft Customer Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','=','draft'),('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree5_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree5"/>
</record>
<record id="action_invoice_tree5_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree5"/>
</record>
<menuitem action="action_invoice_tree5" id="menu_invoice_draft" parent="menu_action_invoice_tree1" groups="base.group_useability_extended"/>
<record id="action_invoice_tree6" model="ir.actions.act_window">
<field name="name">PRO-FORMA Customer Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','=','proforma2'),('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree6_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree6"/>
</record>
<record id="action_invoice_tree6_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree6"/>
</record>
<menuitem action="action_invoice_tree6" id="menu_action_invoice_tree6" parent="menu_action_invoice_tree1" groups="base.group_useability_extended"/>
<record id="action_invoice_tree7" model="ir.actions.act_window">
<field name="name">Unpaid Customer Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','out_invoice')]</field>
<field name="context">{'type':'out_invoice'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree7_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree7"/>
</record>
<record id="action_invoice_tree7_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree7"/>
</record>
<menuitem action="action_invoice_tree7" id="menu_action_invoice_tree7" parent="menu_action_invoice_tree1" groups="base.group_useability_extended"/>
<record id="action_invoice_tree8" model="ir.actions.act_window">
<field name="name">Draft Supplier Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','=','draft'),('type','=','in_invoice')]</field>
<field name="context">{'type':'in_invoice'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree8_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree8"/>
</record>
<record id="action_invoice_tree8_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_supplier_form"/>
<field name="act_window_id" ref="action_invoice_tree8"/>
</record>
<menuitem action="action_invoice_tree8" id="menu_action_invoice_tree8" parent="menu_action_invoice_tree2" groups="base.group_useability_extended"/>
<record id="action_invoice_tree9" model="ir.actions.act_window">
<field name="name">Unpaid Supplier Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','in_invoice')]</field>
<field name="context">{'type':'in_invoice'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree9_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree9"/>
</record>
<record id="action_invoice_tree9_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_supplier_form"/>
<field name="act_window_id" ref="action_invoice_tree9"/>
</record>
<menuitem action="action_invoice_tree9" id="menu_action_invoice_tree9" parent="menu_action_invoice_tree2" groups="base.group_useability_extended"/>
<record id="action_invoice_tree10" model="ir.actions.act_window">
<field name="name">Draft Customer Refunds</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','=','draft'),('type','=','out_refund')]</field>
<field name="context">{'type':'out_refund'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree10_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree10"/>
</record>
<record id="action_invoice_tree10_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree10"/>
</record>
<menuitem action="action_invoice_tree10" id="menu_action_invoice_tree10" parent="menu_action_invoice_tree3" groups="base.group_useability_extended"/>
<record id="action_invoice_tree11" model="ir.actions.act_window">
<field name="name">Unpaid Customer Refunds</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','out_refund')]</field>
<field name="context">{'type':'out_refund'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree11_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree11"/>
</record>
<record id="action_invoice_tree11_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree11"/>
</record>
<menuitem action="action_invoice_tree11" id="menu_action_invoice_tree11" parent="menu_action_invoice_tree3" groups="base.group_useability_extended"/>
<record id="action_invoice_tree12" model="ir.actions.act_window">
<field name="name">Draft Supplier Refunds</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','=','draft'),('type','=','in_refund')]</field>
<field name="context">{'type':'in_refund'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree12_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree12"/>
</record>
<record id="action_invoice_tree12_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_supplier_form"/>
<field name="act_window_id" ref="action_invoice_tree12"/>
</record>
<menuitem action="action_invoice_tree12" id="menu_action_invoice_tree12" parent="menu_action_invoice_tree4" groups="base.group_useability_extended"/>
<record id="action_invoice_tree13" model="ir.actions.act_window">
<field name="name">Unpaid Supplier Refunds</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','in_refund')]</field>
<field name="context">{'type':'in_refund'}</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
</record>
<record id="action_invoice_tree13_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_invoice_tree13"/>
</record>
<record id="action_invoice_tree13_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="invoice_supplier_form"/>
<field name="act_window_id" ref="action_invoice_tree13"/>
</record>
<menuitem action="action_invoice_tree13" id="menu_action_invoice_tree13" parent="menu_action_invoice_tree4" groups="base.group_useability_extended"/>
<act_window domain="[('partner_id','=',active_id)]" id="act_res_partner_2_account_invoice_opened" name="Invoices" res_model="account.invoice" src_model="res.partner"/>
<act_window domain="[('journal_id','=',active_id),('state','!=','draft'),('reconciled','=',False)]" id="act_account_journal_2_account_invoice_opened" name="Unpaid invoices" res_model="account.invoice" src_model="account.journal"/>

View File

@ -2,17 +2,18 @@
<openerp>
<data>
<menuitem icon="terp-account" id="menu_finance" name="Financial Management"/>
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="1"/>
<menuitem icon="terp-account" id="menu_finance" name="Financial Management" sequence="5"/>
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="8"/>
<menuitem id="base.menu_action_currency_form" parent="menu_finance_configuration" sequence="20"/>
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration"/>
<menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration"/>
<menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="8"/>
<menuitem id="menu_finance_legal_statement" name="Legal Statements" parent="account.menu_finance" sequence="8"/>
<menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="7"/>
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="account.menu_finance_reporting" sequence="1"/>
<menuitem id="menu_finance_legal_statement" name="Legal Statements" parent="account.menu_finance_reporting" sequence="2"/>
<menuitem id="menu_generic_report" name="Generic Reports" parent="account.menu_finance_legal_statement" sequence="8"/>
<menuitem id="menu_finance_entries" name="Entries Encoding" parent="account.menu_finance" sequence="2"
<menuitem id="menu_finance_entries" name="Accounting" parent="account.menu_finance" sequence="1"
groups="group_account_user"/>
<menuitem id="account.menu_finance_recurrent_entries" name="Recurrent Entries" parent="account.menu_finance_entries" sequence="15"/>

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -46,12 +46,12 @@ class account_move_line(osv.osv):
if context.get('date_from', False) and context.get('date_to', False):
where_move_lines_by_date = " AND " +obj+".move_id in ( select id from account_move where date >= '" +context['date_from']+"' AND date <= '"+context['date_to']+"')"
if state:
if state.lower() not in ['all']:
where_move_state= " AND "+obj+".move_id in (select id from account_move where account_move.state = '"+state+"')"
if context.get('periods', False):
ids = ','.join([str(x) for x in context['periods']])
return obj+".state<>'draft' AND "+obj+".period_id in (SELECT id from account_period WHERE fiscalyear_id in (%s) AND id in (%s)) %s %s" % (fiscalyear_clause, ids,where_move_state,where_move_lines_by_date)
@ -103,9 +103,10 @@ class account_move_line(osv.osv):
total_new=0.00
for i in context['lines']:
total_new +=(i[2]['debit'] or 0.00)- (i[2]['credit'] or 0.00)
for item in i[2]:
data[item]=i[2][item]
if i[2]:
total_new +=(i[2]['debit'] or 0.00)- (i[2]['credit'] or 0.00)
for item in i[2]:
data[item]=i[2][item]
if context['journal']:
journal_obj=self.pool.get('account.journal').browse(cr,uid,context['journal'])
if journal_obj.type == 'purchase':
@ -257,7 +258,7 @@ class account_move_line(osv.osv):
cursor.execute('SELECT l.id, i.id ' \
'FROM account_move_line l, account_invoice i ' \
'WHERE l.move_id = i.move_id ' \
'AND l.id in (' + ','.join([str(x) for x in ids]) + ')')
'AND l.id =ANY(%s)',(ids,))
invoice_ids = []
for line_id, invoice_id in cursor.fetchall():
res[line_id] = invoice_id
@ -292,8 +293,8 @@ class account_move_line(osv.osv):
if not len(res):
return [('id', '=', '0')]
return [('id', 'in', [x[0] for x in res])]
def _invoice_search(self, cursor, user, obj, name, args):
def _invoice_search(self, cursor, user, obj, name, args, context):
if not len(args):
return []
invoice_obj = self.pool.get('account.invoice')
@ -348,7 +349,7 @@ class account_move_line(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True),
'quantity': fields.float('Quantity', digits=(16,2), help="The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very usefull for some reports."),
'quantity': fields.float('Quantity', digits=(16,2), help="The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports."),
'product_uom_id': fields.many2one('product.uom', 'UoM'),
'product_id': fields.many2one('product.product', 'Product'),
'debit': fields.float('Debit', digits=(16,int(tools.config['price_accuracy']))),
@ -356,7 +357,7 @@ class account_move_line(osv.osv):
'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2),
'move_id': fields.many2one('account.move', 'Move', ondelete="cascade", states={'valid':[('readonly',True)]}, help="The move of this entry line.", select=2),
'ref': fields.char('Ref.', size=32),
'ref': fields.char('Ref.', size=64),
'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1),
'reconcile_id': fields.many2one('account.move.reconcile', 'Reconcile', readonly=True, ondelete='set null', select=2),
'reconcile_partial_id': fields.many2one('account.move.reconcile', 'Partial Reconcile', readonly=True, ondelete='set null', select=2),
@ -367,7 +368,7 @@ class account_move_line(osv.osv):
'journal_id': fields.many2one('account.journal', 'Journal', required=True, select=1),
'blocked': fields.boolean('Litigation', help="You can check this box to mark the entry line as a litigation with the associated partner"),
'partner_id': fields.many2one('res.partner', 'Partner Ref.'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'date_maturity': fields.date('Maturity date', help="This field is used for payable and receivable entries. You can put the limit date for the payment of this entry line."),
'date': fields.related('move_id','date', string='Effective date', type='date', required=True,
store={
@ -377,16 +378,18 @@ class account_move_line(osv.osv):
'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'),
'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation')], 'Centralisation', size=6),
'balance': fields.function(_balance, fnct_search=_balance_search, method=True, string='Balance'),
'state': fields.selection([('draft','Draft'), ('valid','Valid')], 'Status', readonly=True),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or tax code account."),
'tax_amount': fields.float('Tax/Base Amount', digits=(16,int(tools.config['price_accuracy'])), select=True, help="If the Tax account is tax code account, this field will contain the taxed amount.If the tax account is base tax code,\
this field will contain the basic amount(without tax)."),
'state': fields.selection([('draft','Draft'), ('valid','Valid')], 'State', readonly=True,
help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."),
'tax_amount': fields.float('Tax/Base Amount', digits=(16,int(tools.config['price_accuracy'])), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\
"this field will contain the basic amount(without tax)."),
'invoice': fields.function(_invoice, method=True, string='Invoice',
type='many2one', relation='account.invoice', fnct_search=_invoice_search),
'account_tax_id':fields.many2one('account.tax', 'Tax'),
'analytic_account_id' : fields.many2one('account.analytic.account', 'Analytic Account'),
#TODO: remove this
'amount_taxed':fields.float("Taxed Amount",digits=(16,int(tools.config['price_accuracy']))),
'company_id': fields.related('account_id','company_id',type='many2one',relation='res.company',string='Company',store=True)
}
@ -421,6 +424,7 @@ class account_move_line(osv.osv):
'currency_id': _get_currency,
'journal_id': lambda self, cr, uid, c: c.get('journal_id', False),
'period_id': lambda self, cr, uid, c: c.get('period_id', False),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.move.line', context=c)
}
_order = "date desc,id desc"
_sql_constraints = [
@ -549,8 +553,6 @@ class account_move_line(osv.osv):
return True
def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context={}):
id_set = ','.join(map(str, ids))
lines = self.browse(cr, uid, ids, context=context)
unrec_lines = filter(lambda x: not x['reconcile_id'], lines)
credit = debit = 0.0
@ -575,10 +577,10 @@ class account_move_line(osv.osv):
cr.execute('SELECT account_id, reconcile_id \
FROM account_move_line \
WHERE id IN ('+id_set+') \
GROUP BY account_id,reconcile_id')
WHERE id =ANY(%s) \
GROUP BY account_id,reconcile_id',(ids,))
r = cr.fetchall()
#TODO: move this check to a constraint in the account_move_reconcile object
#TODO: move this check to a constraint in the account_move_reconcile object
if (len(r) != 1) and not context.get('fy_closing', False):
raise osv.except_osv(_('Error'), _('Entries are not of the same account or already reconciled ! '))
if not unrec_lines:
@ -826,7 +828,7 @@ class account_move_line(osv.osv):
if res:
if res[1] != 'draft':
raise osv.except_osv(_('UserError'),
_('The account move (%s) for centralisation ' \
_('The Ledger Posting (%s) for centralisation ' \
'has been confirmed!') % res[2])
vals['move_id'] = res[0]

View File

@ -28,8 +28,8 @@
<menuitem
id="menu_tax_report"
name="Taxes Reports"
parent="account.menu_finance_reporting"/>
name="Taxes"
parent="account.menu_finance_generic_reporting" sequence="3"/>
<wizard
id="wizard_vat_declaration"

View File

@ -16,6 +16,7 @@
<field name="code" select="1"/>
<field name="date_start"/>
<field name="date_stop"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="end_journal_period_id"/>
<separator colspan="4" string="Periods"/>
<field colspan="4" name="period_ids" nolabel="1" widget="one2many_list">
@ -74,6 +75,7 @@
<field name="code" select="1"/>
<field name="date_start"/>
<field name="date_stop"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="fiscalyear_id"/>
<field name="special"/>
<separator colspan="4" string="States"/>
@ -120,7 +122,7 @@
<field name="name" select="1" colspan="4"/>
<field name="code" select="1"/>
<field name="parent_id"/>
<field name="company_id" select="2" widget="selection"/>
<field name="company_id" select="2" widget="selection" groups="base.group_multi_company"/>
<field name="user_type" select="1"/>
</group>
<notebook colspan="4">
@ -144,12 +146,26 @@
</field>
</record>
<record id="view_account_search" model="ir.ui.view">
<field name="name">account.account.search</field>
<field name="model">account.account</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Accounts">
<field name="code" select="1"/>
<field name="name" select="1"/>
<field name="user_type" select="1"/>
<field name="type" select="1"/>
</search>
</field>
</record>
<record id="action_account_form" model="ir.actions.act_window">
<field name="name">List of Accounts</field>
<field name="res_model">account.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="search_view_id" ref="view_account_search"/>
</record>
<menuitem id="account_account_menu" name="Financial Accounts" parent="account.menu_finance_accounting"/>
<menuitem action="action_account_form" id="menu_action_account_form" parent="account_account_menu"/>
@ -160,12 +176,13 @@
<field name="type">tree</field>
<field name="field_parent">child_id</field>
<field name="arch" type="xml">
<tree string="Chart of accounts" toolbar="1" colors="blue:type=='view'">
<tree string="Chart of accounts" toolbar="1" colors="blue:type in ('view');black:type not in ('view')">
<field name="code"/>
<field name="name"/>
<field name="debit"/>
<field name="credit"/>
<field name="balance"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="company_currency_id"/>
<field name="type" invisible="1"/>
</tree>
@ -239,7 +256,7 @@
<tree string="Account Journal">
<field name="code"/>
<field name="name"/>
<field name="company_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
@ -267,6 +284,7 @@
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="user_id" groups="base.group_extended"/>
<field name="company_id" groups="base.group_multi_company"/>
<newline/>
<field name="centralisation"/>
<field name="group_invoice_lines"/>
@ -297,7 +315,7 @@
<field name="model">account.bank.statement</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="red:balance_end_real!=balance_end;blue:state=='draft' and (balance_end_real==balance_end)" string="Statement">
<tree colors="red:balance_end_real!=balance_end and state=='draft';blue:state=='draft' and (balance_end_real==balance_end);black:state=='confirm'" string="Statement">
<field name="date"/>
<field name="name"/>
<field name="journal_id"/>
@ -332,11 +350,10 @@
<page string="Entry encoding">
<field colspan="4" name="line_ids" nolabel="1">
<tree editable="bottom" string="Statement lines">
<field name="sequence"/>
<field name="sequence"/>
<field name="date"/>
<field name="ref"/>
<field name="name"/>
<field name="account_id"/>
<field name="type"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
<field domain="[('journal_id','=',parent.journal_id)]" name="account_id"/>
@ -347,14 +364,13 @@
<form string="Statement lines">
<field name="date"/>
<field name="name"/>
<field name="account_id"/>
<field name="type"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="amount"/>
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
<field name="ref"/>
<field name="sequence"/>
<field name="sequence"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
</form>
@ -388,9 +404,8 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','draft')]</field>
<field name="filter" eval="True"/>
<field name="filter" eval="True"/>
</record>
<menuitem action="action_bank_statement_draft_tree" id="menu_bank_statement_draft_tree" parent="account.menu_bank_statement_tree" groups="base.group_useability_extended"/>
<record id="action_bank_statement_tree2" model="ir.actions.act_window">
<field name="name">New Statement</field>
@ -398,7 +413,6 @@
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
</record>
<menuitem action="action_bank_statement_tree2" id="menu_bank_statement_tree2" parent="menu_bank_statement_tree"/>
<record id="view_bank_statement_reconcile" model="ir.ui.view">
<field name="name">account.bank.statement.reconcile.form</field>
@ -456,7 +470,6 @@
<field name="code" select="1"/>
<field name="sequence"/>
<field name="sign"/>
<field name="close_method"/>
<field name="partner_account"/>
</form>
@ -536,7 +549,7 @@
<form string="Account Tax Code">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="company_id" widget="selection"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="notprintable"/>
<field name="parent_id" select="1"/>
<field name="sign"/>
@ -583,7 +596,7 @@
<form string="Account Tax">
<group colspan="4" col="6">
<field name="name" select="1"/>
<field name="company_id" widget="selection"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="description" select="1"/>
<field name="active" select="2"/>
<field name="tax_group" select="1"/>
@ -655,7 +668,7 @@
<field eval="True" name="object"/>
</record>
<wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Entries Encoding by Line"/>
<wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Making Entries by Line"/>
<menuitem icon="STOCK_JUSTIFY_FILL" action="action_move_journal_line_form" id="menu_action_move_journal_line_form" parent="account.menu_finance_entries" type="wizard" sequence="5"/>
<!--
@ -710,6 +723,7 @@
<field name="debit" select="2"/>
<field name="credit" select="2"/>
<field name="company_id" required="1" groups="base.group_multi_company"/>
<separator colspan="4" string="Optional Information"/>
<field name="currency_id"/>
@ -790,22 +804,22 @@
</form>
</field>
</record>
<record id="view_account_move_line_filter" model="ir.ui.view">
<field name="name">account.move.line.select</field>
<field name="name">Entry Lines</field>
<field name="model">account.move.line</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Move Lines">
<group col='10' colspan='4'>
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Move Lines"/>
<separator orientation="vertical"/>
<field name="date" select='1'/>
<field name="account_id" select='1'/>
<field name="partner_id" select='1'/>
<field name="balance" string="Debit/Credit" select='1'/>
</group>
<search string="Search Entry Lines">
<group col='10' colspan='4'>
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Entry Lines"/>
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Entry Lines"/>
<separator orientation="vertical"/>
<field name="date" select='1'/>
<field name="account_id" select='1'/>
<field name="partner_id" select='1'/>
<field name="balance" string="Debit/Credit" select='1'/>
</group>
</search>
</field>
</record>
@ -816,9 +830,9 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_line_tree"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
</record>
<record id="action_view_move_line" model="ir.actions.act_window">
<field name="name">Lines to reconcile</field>
<field name="res_model">account.move.line</field>
@ -827,7 +841,7 @@
<field name="domain">[('account_id.reconcile', '=', True),('reconcile_id','=',False)]</field>
<field eval="False" name="view_id"/>
<field eval="True" name="filter"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
</record>
<!--
@ -864,6 +878,7 @@
<field name="name" select="1" readonly="True"/>
<field name="period_id" select="2"/>
<field name="journal_id" select="1"/>
<field name="company_id" required="1" groups="base.group_multi_company"/>
<field name="date" select="1"/>
<field name="ref" select="1"/>
<field name="to_check" select="2"/>
@ -872,7 +887,7 @@
<field name="partner_id" invisible="1" select="1"/>
<field name="amount" invisible="1" select="1"/>
<field colspan="4" name="line_id" nolabel="1" widget="one2many_list" default_get="{'lines':line_id ,'journal':journal_id }">
<field colspan="4" height="250" name="line_id" nolabel="1" widget="one2many_list" default_get="{'lines':line_id ,'journal':journal_id }">
<form string="Account Entry Line">
<separator colspan="4" string="General Information"/>
<field name="name" select="1"/>
@ -881,8 +896,8 @@
<field name="debit" select="1"/>
<field name="credit" select="1"/>
<field name="date" select="1"/>
<field name="date" select="1"/>
<separator colspan="4" string="Optional Information"/>
<field name="currency_id"/>
<field name="amount_currency"/>
@ -916,7 +931,8 @@
<field name="reconcile_partial_id" groups="base.group_extended"/>
</tree>
</field>
<separator colspan="4" string="Narration"/>
<field name="narration" select="2" colspan="4" nolabel="1"/>
<separator colspan="4" string="State"/>
<field name="state" select="1"/>
<group col="2" colspan="2">
@ -927,21 +943,21 @@
</field>
</record>
<record id="view_account_move_filter" model="ir.ui.view">
<record id="view_account_move_filter" model="ir.ui.view">
<field name="name">account.move.select</field>
<field name="model">account.move</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Move">
<group col='8' colspan='4'>
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
<group col='8' colspan='4'>
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
<filter icon="terp-account" string="Posted" domain="[('state','=','posted')]" help="Posted Move Lines"/>
<separator orientation="vertical"/>
<field name="date" select='1'/>
<field name="name" select='1'/>
<field name="journal_id" select='1'/>
<field name="partner_id" select='1'/>
</group>
<separator orientation="vertical"/>
<field name="date" select='1'/>
<field name="name" select='1'/>
<field name="journal_id" select='1'/>
<field name="partner_id" select='1'/>
</group>
</search>
</field>
</record>
@ -954,16 +970,16 @@
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
</record>
<menuitem id="next_id_29" name="Search Entries" parent="account.menu_finance_reporting"/>
<menuitem id="next_id_29" name="Search Entries" parent="account.menu_finance_entries" sequence="40"/>
<menuitem action="action_move_line_form" id="menu_action_move_line_form" parent="next_id_29"/>
<record id="action_move_line_form_encode_by_move" model="ir.actions.act_window">
<field name="name">Entries Encoding by Move</field>
<field name="name">Making Entries by Move</field>
<field name="res_model">account.move</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
<field name="search_view_id" ref="view_account_move_filter"/>
</record>
<menuitem action="action_move_line_form_encode_by_move" id="menu_encode_entries_by_move" parent="menu_finance_entries"/>
@ -990,7 +1006,7 @@
</record>
<menuitem action="action_move_line_search" id="menu_action_move_line_search" parent="account.next_id_29"/>
<menuitem id="menu_finance_charts" name="Charts" parent="account.menu_finance" sequence="7"/>
<menuitem id="menu_finance_charts" name="Charts" parent="account.menu_finance" sequence="4"/>
<wizard id="wizard_account_chart" menu="False" model="account.account" name="account.chart" string="Chart of Accounts"/>
<menuitem icon="STOCK_INDENT" action="wizard_account_chart" id="menu_action_account_tree2" parent="account.menu_finance_charts" type="wizard"/>
@ -1088,7 +1104,7 @@
<!--
TODO:
Print Journal (and change state)
Close Journal (and verify that there is no draft move lines)
Close Journal (and verify that there is no draft Entry Lines)
-->
<record id="view_journal_period_tree" model="ir.ui.view">
@ -1101,6 +1117,7 @@
<field name="period_id"/>
<field name="journal_id"/>
<field name="state"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
@ -1109,7 +1126,7 @@
<field name="res_model">account.journal.period</field>
<field name="view_type">tree</field>
</record>
<menuitem action="action_account_journal_period_tree" id="menu_action_account_journal_period_tree" parent="account.menu_finance_reporting"/>
<menuitem action="action_account_journal_period_tree" id="menu_action_account_journal_period_tree" parent="account.menu_finance_generic_reporting" sequence="2"/>
<!--
@ -1341,9 +1358,8 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','running')]</field>
<field name="filter" eval="True"/>
<field name="filter" eval="True"/>
</record>
<menuitem action="action_subscription_form_running" id="menu_action_subscription_form_running" parent="menu_action_subscription_form" groups="base.group_useability_extended"/>
<record id="action_subscription_form_new" model="ir.actions.act_window">
<field name="name">New Subscription</field>
@ -1352,7 +1368,6 @@
<field name="view_mode">form,tree</field>
<field name="view_id" ref="view_subscription_form"/>
</record>
<menuitem action="action_subscription_form_new" id="menu_action_subscription_form_new" parent="menu_action_subscription_form"/>
<record id="view_subscription_line_form_complete" model="ir.ui.view">
<field name="name">account.subscription.line.form</field>
@ -1411,7 +1426,7 @@
</record>
<record id="action_tax_code_line_open" model="ir.actions.act_window">
<field name="name">account.move.line</field>
<field name="name">Account Entry Lines</field>
<field name="res_model">account.move.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -1447,23 +1462,22 @@
<field name="name">Account Configure wizard</field>
<field name="model">account.config.wizard</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<form string="Account Configure">
<data>
<form position="attributes">
<attribute name="string">Account Configure</attribute>
</form>
<group string="res_config_contents" position="replace">
<separator col="4" colspan="4" string="Create a Fiscal Year"/>
<field name="name"/>
<field name="code"/>
<field name="date1"/>
<field name="date2"/>
<field name="period" colspan="4"/>
<separator col="4" colspan="4" string="Select Chart of Accounts"/>
<field name="charts"/>
<separator string="" colspan="4"/>
<label string="" colspan="2"/>
<group col="2" colspan="2">
<button icon="gtk-cancel" special="cancel" string="Skip" name="action_cancel" type="object"/>
<button icon="gtk-ok" name="action_create" string="Continue" type="object"/>
</group>
</form>
</group>
<xpath expr='//button[@name="action_skip"]' position="replace"/>
</data>
</field>
</record>
@ -1471,27 +1485,46 @@
<field name="name">Account Configure Wizard </field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.config.wizard</field>
<field name="view_id" ref="view_account_config_wizard_form"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- register configuration wizard -->
<record id="config_fiscalyear" model="ir.actions.todo">
<field name="name">Account Configure Wizard</field>
<field name="note">Define Fiscal Years and Select Charts of Account</field>
<field name="action_id" ref="action_account_config_wizard_form"/>
</record>
<record id="view_account_addtmpl_wizard_form" model="ir.ui.view">
<field name="name">Account Add wizard</field>
<field name="model">account.addtmpl.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Account Add">
<separator col="4" colspan="4" string="Select the common parent for the accounts"/>
<field name="cparent_id"/>
<group col="2" colspan="2">
<button icon="gtk-cancel" special="cancel" string="Cancel" name="action_cancel" type="object"/>
<button icon="gtk-ok" name="action_create" string="Add" type="object"/>
</group>
</form>
</field>
</record>
<act_window domain="[]" id="action_account_addtmpl_wizard_form"
name="Add account Wizard"
res_model="account.addtmpl.wizard"
context="{'tmpl_ids': active_id}"
src_model="account.account.template"
view_type="form" view_mode="form"/>
<!-- Account Templates -->
<menuitem id="account_template_folder" name="Templates" parent="account.menu_finance_accounting"/>
<menuitem
id="account_template_folder"
name="Templates"
parent="account.menu_finance_accounting"
groups="base.group_multi_company"/>
<record id="view_account_template_form" model="ir.ui.view">
@ -1562,6 +1595,8 @@
<field name="property_account_payable"/>
<field name="property_account_expense_categ" />
<field name="property_account_income_categ"/>
<field name="property_account_expense"/>
<field name="property_account_income"/>
</form>
</field>
</record>
@ -1708,31 +1743,36 @@
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="model">wizard.multi.charts.accounts</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<form string="Generate Chart of Accounts from a Chart Template">
<separator col="4" colspan="4" string="Generate Chart of Accounts from a Chart Template"/>
<label align="0.0" string="This will automatically configure your chart of accounts, bank accounts, taxes and journals according to the selected template" colspan="4"/>
<field name="company_id" widget="selection"/>
<field name ="code_digits" />
<field name="chart_template_id"/>
<field name ="seq_journal" />
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list">
<form string="Bank Information">
<field name="acc_no"/>
<field name="currency_id"/>
</form>
<tree editable="bottom" string="Bank Information">
<field name="acc_no"/>
<field name="currency_id"/>
</tree>
</field>
<separator string="" colspan="4"/>
<label string="" colspan="2"/>
<group col="2" colspan="2">
<button icon="gtk-cancel" special="cancel" type="object" name="action_cancel" string="Cancel"/>
<button icon="gtk-ok" name="action_create" string="Create" type="object"/>
</group>
<data>
<form position="attributes">
<attribute name="string">Generate Chart of Accounts from a Chart Template</attribute>
</form>
<group string="res_config_contents" position="replace">
<separator col="4" colspan="4" string="
Generate Chart of Accounts from a Chart Template"/>
<label align="0.0" colspan="4"
string="This will automatically configure your chart of accounts, bank accounts, taxes and journals according to the selected template"/>
<field name="company_id" widget="selection"
groups="base.group_multi_company"/>
<field name ="code_digits" />
<field name="chart_template_id"/>
<field name ="seq_journal" />
<field colspan="4" mode="tree" name="bank_accounts_id"
nolabel="1" widget="one2many_list">
<form string="Bank Information">
<field name="acc_no"/>
<field name="currency_id"/>
</form>
<tree editable="bottom" string="Bank Information">
<field name="acc_no"/>
<field name="currency_id"/>
</tree>
</field>
</group>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
</data>
</field>
</record>
@ -1740,6 +1780,7 @@
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">wizard.multi.charts.accounts</field>
<field name="view_id" ref="view_wizard_multi_chart"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
@ -1757,11 +1798,11 @@
<field name="balance" operator="+"/>
</graph>
</field>
</record>
</record>
<!-- Fiscal Position Templates -->
<!-- Fiscal Position Templates -->
<record id="view_account_position_template_form" model="ir.ui.view">
<record id="view_account_position_template_form" model="ir.ui.view">
<field name="name">account.fiscal.position.template.form</field>
<field name="model">account.fiscal.position.template</field>
<field name="type">form</field>

View File

@ -67,7 +67,7 @@
<!-- Aged partner balance -->
<wizard id="wizard_aged_trial_balance" menu="False" model="res.partner" name="account.aged.trial.balance" string="Aged Partner Balance"/>
<menuitem id="next_id_22" name="Partner Accounts" parent="menu_finance_reporting"/>
<menuitem id="next_id_22" name="Partner Accounts" parent="menu_finance_generic_reporting" sequence="1"/>
<menuitem icon="STOCK_PRINT" action="wizard_aged_trial_balance" id="menu_aged_trial_balance" parent="next_id_22" type="wizard"/>
<!-- report-related wizards -->
@ -85,10 +85,10 @@
<!-- account.move validate -->
<wizard id="wizard_validate_account_moves" menu="False" model="account.move" name="account.move.validate" string="Validate Account Moves"/>
<wizard id="wizard_validate_account_moves" menu="False" model="account.move" name="account.move.validate" string="Validate Ledger Postings"/>
<menuitem action="wizard_validate_account_moves" id="menu_validate_account_moves" parent="account.menu_finance_periodical_processing" type="wizard"/>
<wizard id="wizard_validate_account_moves_line" menu="True" model="account.move.line" name="account.move_line.validate" string="Validate Account Moves"/>
<wizard id="wizard_validate_account_moves_line" menu="True" model="account.move.line" name="account.move_line.validate" string="Validate Ledger Postings"/>
<!-- Use Models -->
<wizard string="Create Entries From Models" model="account.model" name="account_use_models" menu="False" id="wizard_account_use_model"/>
@ -115,5 +115,6 @@
<wizard id="wizard_general_journal" menu="False" model="account.journal.period" name="account.general.journal.report" string="Print General Journal" />
<menuitem icon="STOCK_PRINT" action="wizard_general_journal" id="menu_general_journal" parent="account.menu_generic_report" type="wizard" />
<wizard id="wizard_invoice_currency_change" model="account.invoice" name="account.invoice.currency_change" string="Change Currency" groups="base.group_user"/>
</data>
</openerp>

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -33,66 +33,3 @@ out after this mail was sent, please consider the present one as \
void. Do not hesitate to contact our accounting department'
}
res_company()
class company_setup(osv.osv_memory):
"""
Insert Information for a company.
Wizard asks for:
* A Company with its partner
* Insert a suitable message for Overdue Payment Report.
"""
_name='wizard.company.setup'
_columns = {
'company_id':fields.many2one('res.company','Company',required=True),
'partner_id':fields.many2one('res.partner','Partner'),
'overdue_msg': fields.text('Overdue Payment Message'),
}
def get_message(self,cr,uid,context={}):
company =self.pool.get('res.users').browse(cr,uid,[uid],context)[0].company_id
msg = company.overdue_msg
phone = company.partner_id.address and (company.partner_id.address[0].phone and ' at ' + str(company.partner_id.address[0].phone) + '.' or '.') or '.'
msg += str(phone)
return msg
_defaults = {
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr,uid,[uid],c)[0].company_id.id,
'partner_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr,uid,[uid],c)[0].company_id.partner_id.id,
'overdue_msg': get_message,
}
def onchange_company_id(self, cr, uid, ids, company, context=None):
res = {}
if not company:
return {}
comp_obj = self.pool.get('res.company').browse(cr,uid,company)
res['partner_id'] = comp_obj.partner_id.id
phone = comp_obj.partner_id.address and (comp_obj.partner_id.address[0].phone and ' at ' + str(comp_obj.partner_id.address[0].phone) + '.' or '.') or '.'
res['overdue_msg'] = comp_obj.overdue_msg + str(phone)
return {'value': res }
def action_create(self, cr, uid, ids, context=None):
content_wiz = self.pool.get('wizard.company.setup').read(cr,uid,ids,['company_id','overdue_msg'])
if content_wiz:
wiz_data = content_wiz[0]
self.pool.get('res.company').write(cr, uid, [wiz_data['company_id']], {'overdue_msg':wiz_data['overdue_msg']})
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
def action_cancel(self,cr,uid,ids,conect=None):
return {
'view_type': 'form',
"view_mode": 'form',
'res_model': 'ir.actions.configuration.wizard',
'type': 'ir.actions.act_window',
'target':'new',
}
company_setup()

View File

@ -1,56 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_company_inherit_form">
<field name="name">res.company.form.inherit</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="type">form</field>
<field name="arch" type="xml">
<notebook>
<data>
<record model="ir.ui.view" id="view_company_inherit_form">
<field name="name">res.company.form.inherit</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="type">form</field>
<field name="arch" type="xml">
<notebook>
<page string="Overdue Payments" position="inside">
<separator string="Overdue Payments Message" colspan="4"/>
<field name="overdue_msg" nolabel="1" colspan ="4"/>
<separator string="Overdue Payments Message" colspan="4"/>
<field name="overdue_msg" nolabel="1" colspan ="4"/>
</page>
</notebook>
</field>
</record>
<!-- Wizard for Configuration of Overdue Payments -->
<record model="ir.ui.view" id="wizard_company_setup_form">
<field name="name">wizard.company.setup.form</field>
<field name="model">wizard.company.setup</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Overdue Payment Report Message">
<field name="company_id" select="1" on_change="onchange_company_id(company_id)"/>
<field name="partner_id" select="1" readonly="1"/>
<separator string="Message" colspan="4"/>
<field name="overdue_msg" nolabel="1" colspan="4"/>
<group col="2" colspan="4">
<button icon="gtk-cancel" special="cancel" type="object" name="action_cancel" string="Cancel"/>
<button icon="gtk-ok" name="action_create" string="Create" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_wizard_company_setup_form" model="ir.actions.act_window">
<field name="name">Overdue Payment Report Message</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">wizard.company.setup</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- register configuration wizard -->
<record id="config_wizard_account_base_setup_form" model="ir.actions.todo">
<field name="name">Overdue Payment Report Message</field>
<field name="note">Specify The Message for the Overdue Payment Report.</field>
<field name="action_id" ref="action_wizard_company_setup_form"/>
</record>
</data>
</data>
</openerp>

View File

@ -62,7 +62,6 @@ your own accounts.
<field name="name">Main Receivable</field>
<field name="code">x 40000</field>
<field name="type">receivable</field>
<field name="user_type" ref="account.account_type_asset"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/>
@ -78,7 +77,6 @@ your own chart of account.
<field name="name">Main Payable</field>
<field name="code">x 440000</field>
<field name="type">payable</field>
<field name="user_type" ref="account.account_type_liability"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/>
@ -94,7 +92,6 @@ your own chart of account.
<field name="name">Petty Cash</field>
<field name="code">x 570000</field>
<field name="type">other</field>
<field name="user_type" ref="account.account_type_cash_moves"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field name="user_type" ref="account_type_cash_moves"/>
@ -109,7 +106,6 @@ your own chart of account.
<field name="name">Products Purchase</field>
<field name="code">x 600000</field>
<field name="type">other</field>
<field name="user_type" ref="account.account_type_expense"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field name="user_type" ref="account_type_expense"/>
@ -124,7 +120,6 @@ your own chart of account.
<field name="name">Products Sales</field>
<field name="code">x 701000</field>
<field name="type">other</field>
<field name="user_type" ref="account.account_type_income"/>
<field eval="ref('minimal_0')" name="parent_id"/>
<field name="user_type" ref="account_type_income"/>
<field name="company_id" ref="base.main_company"/>

View File

@ -7,35 +7,35 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-10-09 08:32+0000\n"
"Last-Translator: Jay (Open ERP) <jvo@tinyerp.com>\n"
"PO-Revision-Date: 2009-12-20 12:49+0000\n"
"Last-Translator: Hend Awad <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:58+0000\n"
"X-Launchpad-Export-Date: 2009-12-21 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
#: field:account.tax.template,description:0
msgid "Internal Name"
msgstr ""
msgstr "اسم داخلي"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr ""
msgstr "كود الحساب الضريبي"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
#: model:ir.ui.menu,name:account.menu_action_invoice_tree9
msgid "Unpaid Supplier Invoices"
msgstr ""
msgstr "فواتير الموردين الغير مدفوعة"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
msgid "Entries Encoding"
msgstr ""
msgstr "تشفير المدخلات"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
@ -50,7 +50,7 @@ msgstr ""
#. module: account
#: model:account.account.type,name:account.account_type_asset
msgid "Asset"
msgstr ""
msgstr "أصل"
#. module: account
#: constraint:ir.actions.act_window:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:13+0000\n"
"Last-Translator: Boris <boris.ivanov@obseg.com>\n"
"PO-Revision-Date: 2009-12-17 23:18+0000\n"
"Last-Translator: Sianna <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:36+0000\n"
"X-Launchpad-Export-Date: 2009-12-19 04:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -24,7 +24,7 @@ msgstr "Вътрешно име"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr "Код на сметка за данъци"
msgstr "Код на данъчна сметка"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@ -40,12 +40,12 @@ msgstr "Кодиране на записи"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Определи съобщението за доклад на просрочените плащания."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
msgstr ""
msgstr "Потвърждаване на отчет от проект(чернова)"
#. module: account
#: model:account.account.type,name:account.account_type_asset
@ -73,11 +73,13 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Тази сметка ще се използва за оценка на постъпващата стока за текущата "
"продуктова категория"
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
msgstr "Остава празно за да се използва потвърдената дата (на фактурата)."
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -87,7 +89,7 @@ msgstr "Резултат от изравняване"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
msgid "Unreconciled entries"
msgstr "Неизравнени записи"
msgstr "Несъгласувани стойности"
#. module: account
#: field:account.invoice.tax,base_code_id:0
@ -99,18 +101,18 @@ msgstr "Основен код"
#. module: account
#: view:account.account:0
msgid "Account Statistics"
msgstr ""
msgstr "Статистики за сметка"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_vat_declaration
#: model:ir.ui.menu,name:account.menu_wizard_vat_declaration
msgid "Print Taxes Report"
msgstr "Печат на справка за данъци"
msgstr "Отпечатване на справка за данъци"
#. module: account
#: field:account.account,parent_id:0
msgid "Parent"
msgstr "Родител"
msgstr "Основна"
#. module: account
#: selection:account.move,type:0
@ -120,7 +122,7 @@ msgstr ""
#. module: account
#: field:account.invoice,residual:0
msgid "Residual"
msgstr ""
msgstr "Остатък"
#. module: account
#: field:account.tax,base_sign:0
@ -128,18 +130,18 @@ msgstr ""
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
msgstr "Знак на базовия код"
msgstr "Означение на основния код"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
#: model:ir.ui.menu,name:account.menu_unreconcile_select
msgid "Unreconcile entries"
msgstr "Връщане приравняване на записи"
msgstr "Несъгласувани записи"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
msgstr ""
msgstr "Грешка ! Продължителността на периода(те) е(са) невалиден(и). "
#. module: account
#: view:account.bank.statement.reconcile:0
@ -168,16 +170,19 @@ msgid ""
"positive, it gives the day of the next month. Set 0 for net days (otherwise "
"it's based on the beginning of the month)."
msgstr ""
"Ден от месеца, изберете -1 за последния ден от текущия месец. Ако е "
"положително, показва деня от следващия месец. Изберете 0 за календарни дни "
"(в противен случай като стойност(начало) ще бъде прието началото на месеца)"
#. module: account
#: view:account.move:0
msgid "Total Credit"
msgstr ""
msgstr "Общо кредит"
#. module: account
#: field:account.config.wizard,charts:0
msgid "Charts of Account"
msgstr ""
msgstr "Графики на сметка"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
@ -222,7 +227,7 @@ msgstr "Стар пробен баланс"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
msgid "Recurrent Entries"
msgstr ""
msgstr "Повтарящи се записи"
#. module: account
#: field:account.analytic.line,amount:0
@ -257,7 +262,7 @@ msgstr ""
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
msgstr ""
msgstr "Счетоводни записи-"
#. module: account
#: help:account.journal,view_id:0
@ -267,6 +272,10 @@ msgid ""
"in which order. You can create your own view for a faster encoding in each "
"journal."
msgstr ""
"Дава изглед използван за запис или разглеждане на записи от този дневник. "
"Изгледа задава на Open ERP кои полета ще бъдат видими, задължителни или само "
"за четене и в какъв ред. Може да създадете собствен изглед за по-бързо "
"набиране във всеки дневник."
#. module: account
#: help:account.invoice,date_due:0
@ -277,6 +286,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
"Ако използвате условия за разплащане, датата за плащане ще се изчисли "
"автоматично при създаване на записите на сметката. Ако запазите условията за "
"плащане и датата на плащане празна, това означава директно плащане(веднага). "
"Условията за плащане може да изчислят няколко дати(частични плащания), "
"например 50% сега и 50% след месец."
#. module: account
#: selection:account.tax,type:0
@ -310,7 +324,7 @@ msgstr "Произход"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Смяна на име"
#. module: account
#: xsl:account.transfer:0
@ -325,7 +339,7 @@ msgstr "Пресмятане на абонамент"
#. module: account
#: rml:account.central.journal:0
msgid "Account Num."
msgstr ""
msgstr "Номер на сметка"
#. module: account
#: rml:account.analytic.account.analytic.check:0

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:12+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2009-12-31 12:45+0000\n"
"Last-Translator: Albert Cervera i Areny <albert@nan-tic.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: 2009-11-18 04:36+0000\n"
"X-Launchpad-Export-Date: 2010-01-01 05:02+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -24,7 +24,7 @@ msgstr "Nom intern"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr "Codi compte impostos"
msgstr "Codi impost comptable"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@ -415,7 +415,7 @@ msgstr "Conciliació del pagament"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
msgstr ""
msgstr "Diari de despeses"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
@ -1169,7 +1169,7 @@ msgstr "wizard.multi.charts.accounts"
#. module: account
#: model:account.journal,name:account.sales_journal
msgid "Journal de vente"
msgstr ""
msgstr "Diari de vendes"
#. module: account
#: help:account.model.line,amount_currency:0
@ -1596,7 +1596,7 @@ msgstr "Obre per la conciliació"
#. module: account
#: model:account.journal,name:account.bilan_journal
msgid "Journal d'ouverture"
msgstr ""
msgstr "Diari d'obertura"
#. module: account
#: selection:account.tax,tax_group:0
@ -1934,7 +1934,7 @@ msgstr "Paga factura"
#. module: account
#: constraint:account.invoice:0
msgid "Error: Invalid Bvr Number (wrong checksum)."
msgstr ""
msgstr "Error: Número BVR no vàlid (checksum erroni)."
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree5
@ -2394,7 +2394,7 @@ msgstr "Plantilla del pla comptable"
#. module: account
#: model:account.journal,name:account.refund_sales_journal
msgid "Journal d'extourne"
msgstr ""
msgstr "Diari d'inversió"
#. module: account
#: rml:account.journal.period.print:0
@ -3228,7 +3228,7 @@ msgstr "Compte"
#. module: account
#: model:account.journal,name:account.bank_journal
msgid "Journal de Banque CHF"
msgstr ""
msgstr "Diari de banc"
#. module: account
#: selection:account.account.balance.report,checktype,state:0
@ -3306,7 +3306,7 @@ msgstr "Codi"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance
msgid "Financial Management"
msgstr "Gestió financera"
msgstr "Comptabilitat i finances"
#. module: account
#: selection:account.account.type,close_method:0
@ -3361,7 +3361,7 @@ msgstr "Codi impost arrel"
#. module: account
#: constraint:account.invoice:0
msgid "Error: BVR reference is required."
msgstr ""
msgstr "Error: La referència BVR és necessària."
#. module: account
#: field:account.tax.code,notprintable:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 16:45+0000\n"
"Last-Translator: Kuvaly <kuvaly@seznam.cz>\n"
"PO-Revision-Date: 2010-01-13 11:48+0000\n"
"Last-Translator: Kuvaly [LCT] <kuvaly@seznam.cz>\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: 2009-11-19 04:35+0000\n"
"X-Launchpad-Export-Date: 2010-01-14 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -50,7 +50,7 @@ msgstr ""
#. module: account
#: model:account.account.type,name:account.account_type_asset
msgid "Asset"
msgstr ""
msgstr "Aktiva"
#. module: account
#: constraint:ir.actions.act_window:0
@ -5850,7 +5850,7 @@ msgstr ""
#. module: account
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr ""
msgstr "Kód účtu"
#. module: account
#: help:account.config.wizard,name:0
@ -5901,7 +5901,7 @@ msgstr ""
#. module: account
#: field:account.journal.column,name:0
msgid "Column Name"
msgstr ""
msgstr "Název sloupce"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@ -5909,12 +5909,12 @@ msgstr ""
#: wizard_view:account.partner.balance.report,init:0
#: wizard_view:account.third_party_ledger.report,init:0
msgid "Filters"
msgstr ""
msgstr "Filtry"
#. module: account
#: wizard_button:account.wizard_paid_open,init,yes:0
msgid "Yes"
msgstr ""
msgstr "Ano"
#. module: account
#: help:account.account,reconcile:0

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:10+0000\n"
"Last-Translator: SmartWi <kurt@smartwi.net>\n"
"PO-Revision-Date: 2009-12-24 03:19+0000\n"
"Last-Translator: jospos <Unknown>\n"
"Language-Team: Danish <da@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: 2009-11-18 04:36+0000\n"
"X-Launchpad-Export-Date: 2009-12-25 04:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -51,7 +51,7 @@ msgstr ""
#. module: account
#: model:account.account.type,name:account.account_type_asset
msgid "Asset"
msgstr "Aktiv"
msgstr ""
#. module: account
#: constraint:ir.actions.act_window:0

View File

@ -8,12 +8,12 @@ msgstr ""
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-20 14:43+0000\n"
"Last-Translator: Henning Eggers <Unknown>\n"
"Last-Translator: Henning Eggers <henning.eggers@canonical.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: 2009-11-21 04:45+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:10+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-08 18:04+0000\n"
"Last-Translator: Hilario J. Montoliu (hjmf) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -35,12 +35,12 @@ msgstr "Facturas de proveedor sin pagar"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
msgid "Entries Encoding"
msgstr "Codificación asientos"
msgstr "Codificación de asientos"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Especificar el mensaje para el informe de pagos vencidos"
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
@ -55,7 +55,7 @@ msgstr "Activo"
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nombre de modelo no válido en la definición de acción."
msgstr "Nombre de modelo inválido en la definición de acción."
#. module: account
#: help:account.journal,currency:0
@ -73,6 +73,8 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Esta cuenta se utilizará para valuar el stock entrante para la categoría "
"actual de producto"
#. module: account
#: help:account.invoice,period_id:0
@ -116,12 +118,12 @@ msgstr "Padre"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr "Diario de bonos"
msgstr "Diario de comprobantes"
#. module: account
#: field:account.invoice,residual:0
msgid "Residual"
msgstr "Pendiente"
msgstr "Residual"
#. module: account
#: field:account.tax,base_sign:0
@ -140,7 +142,7 @@ msgstr "Romper conciliación de los asientos"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
msgstr ""
msgstr "¡Error! La duración de el/los período(s) no es válida. "
#. module: account
#: view:account.bank.statement.reconcile:0
@ -199,7 +201,7 @@ msgstr "Ref. asiento"
#. module: account
#: model:ir.model,name:account.model_account_model_line
msgid "Account Model Entries"
msgstr "Línea de modelo de asiento"
msgstr "Líneas de modelo de asiento"
#. module: account
#: field:account.tax.code,sum_period:0
@ -285,6 +287,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
"Si utiliza los plazos de pago, la fecha de vencimiento será calculada "
"automáticamente en la generación de los asientos contables. Si se mantiene "
"el plazo de pago y la fecha de vencimiento vacía, significa que es un pago "
"directo. El plazo de pago podrá calcular varias fechas de vencimiento, por "
"ejemplo, 50% ahora, 50% en un mes."
#. module: account
#: selection:account.tax,type:0
@ -318,7 +325,7 @@ msgstr "Origen"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Mover nombre"
#. module: account
#: xsl:account.transfer:0
@ -364,7 +371,7 @@ msgstr "Cuenta analítica"
#: field:account.tax,child_depend:0
#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
msgstr "Impuesto en hijos"
#. module: account
#: rml:account.central.journal:0
@ -408,7 +415,7 @@ msgstr "Conciliación del pago"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
msgstr ""
msgstr "Diario de gastos"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
@ -428,7 +435,7 @@ msgstr "Negativo"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "Nombre de Cuenta/Empresa"
#. module: account
#: selection:account.move,type:0
@ -474,7 +481,7 @@ msgstr "Conciliación bancaria"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Desc.(%)"
#. module: account
#: rml:account.general.ledger:0
@ -488,7 +495,7 @@ msgstr "Ref."
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
msgstr ""
msgstr "Impuesto usado en"
#. module: account
#: help:account.tax.template,include_base_amount:0
@ -496,6 +503,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Indica si el importe del impuesto deberá incluirse en el importe base antes "
"de calcular los siguientes impuestos."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -548,7 +557,7 @@ msgstr "Método cierre"
#. module: account
#: field:account.tax.template,include_base_amount:0
msgid "Include in Base Amount"
msgstr ""
msgstr "Incluir en importe base"
#. module: account
#: field:account.tax,ref_base_code_id:0
@ -564,7 +573,7 @@ msgstr "Línea"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "J.C. or Move name"
msgstr ""
msgstr "Cód. diario o asiento"
#. module: account
#: selection:account.tax,applicable_type:0
@ -613,6 +622,8 @@ msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
msgstr ""
"El campo secuencia es usado para ordenar los recursos secuencialmente de "
"menor a mayor"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@ -698,7 +709,7 @@ msgstr "Información adicional"
#. module: account
#: selection:account.invoice,type:0
msgid "Customer Refund"
msgstr "Factura de abono de cliente"
msgstr "Reembolso del cliente"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@ -716,7 +727,7 @@ msgstr "Signo código impuesto"
#. module: account
#: help:res.partner,credit:0
msgid "Total amount this customer owes you."
msgstr ""
msgstr "Importe total que este cliente le debe."
#. module: account
#: view:account.move.line:0
@ -902,7 +913,7 @@ msgstr "Diario de desajuste"
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
msgid "Amount Currency"
msgstr "Importe cambio"
msgstr "Importe divisa"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
@ -962,7 +973,7 @@ msgstr "Importe código base"
#. module: account
#: help:account.journal,user_id:0
msgid "The user responsible for this journal"
msgstr ""
msgstr "El usuario responsable de este diario"
#. module: account
#: field:account.journal,default_debit_account_id:0
@ -1076,7 +1087,7 @@ msgstr "Escoja el ejercicio fiscal"
#. module: account
#: field:account.sequence.fiscalyear,sequence_main_id:0
msgid "Main Sequence"
msgstr ""
msgstr "Secuencia principal"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree
@ -1148,7 +1159,7 @@ msgstr "Precio unidad"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Period from :"
msgstr ""
msgstr "Periodo desde :"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@ -1158,12 +1169,12 @@ msgstr "wizard.multi.charts.accounts"
#. module: account
#: model:account.journal,name:account.sales_journal
msgid "Journal de vente"
msgstr ""
msgstr "Diario de ventas"
#. module: account
#: help:account.model.line,amount_currency:0
msgid "The amount expressed in an optional other currency."
msgstr "El importe expresado en una otra divisa opcional."
msgstr "El importe expresado en otra divisa opcional."
#. module: account
#: view:account.fiscal.position.template:0
@ -1226,21 +1237,27 @@ msgid ""
"software system you may have to use the rate at date. Incoming transactions "
"always use the rate at date."
msgstr ""
"Permite seleccionar la forma en que la tasa de la moneda actual de las "
"transacciones de salida se calcula. En la mayoría de los países el método "
"legal es \"Promedio\", pero sólo unos pocos sistemas de software son capaces "
"de gestionarlo. Por lo tanto, si la importación procede de otro sistema de "
"software, es posible que tenga que utilizar la tasa \"En fecha\". Las "
"transacciones de entrada siempre utilizan la tasa \"En fecha\"."
#. module: account
#: field:account.account,company_currency_id:0
msgid "Company Currency"
msgstr "Moneda de la compañía"
msgstr "Divisa de la compañía"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
msgid "Fiscal Position Template Account Mapping"
msgstr ""
msgstr "Mapeo cuentas plantilla posición fiscal"
#. module: account
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr ""
msgstr "Cuenta analítica padre"
#. module: account
#: wizard_button:account.move.line.reconcile,init_partial,addendum:0
@ -1298,7 +1315,7 @@ msgstr "Transacciones no conciliadas"
#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr ""
msgstr "Mapeo impuestos"
#. module: account
#: view:account.config.wizard:0
@ -1336,7 +1353,7 @@ msgstr "Homólogo centralizado"
#. module: account
#: view:wizard.company.setup:0
msgid "Message"
msgstr ""
msgstr "Mensaje"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
@ -1406,7 +1423,7 @@ msgstr "Líneas de impuestos"
#. module: account
#: field:ir.sequence,fiscal_ids:0
msgid "Sequences"
msgstr ""
msgstr "Secuencias"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_type_form
@ -1440,7 +1457,7 @@ msgstr "Diario"
#: field:account.account,child_id:0
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
msgstr "Cuentas hijas"
#. module: account
#: field:account.account,check_history:0
@ -1483,6 +1500,8 @@ msgid ""
"The partner bank account to pay\n"
"Keep empty to use the default"
msgstr ""
"La cuenta bancaria de la empresa para pagar\n"
"Dejarlo vacío para utilizar el valor por defecto"
#. module: account
#: field:res.partner,debit:0
@ -1497,7 +1516,7 @@ msgstr "Cerrar estados"
#. module: account
#: model:ir.model,name:account.model_wizard_company_setup
msgid "wizard.company.setup"
msgstr ""
msgstr "wizard.company.setup"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form
@ -1578,7 +1597,7 @@ msgstr "Abrir para la conciliación"
#. module: account
#: model:account.journal,name:account.bilan_journal
msgid "Journal d'ouverture"
msgstr ""
msgstr "Diario de apertura"
#. module: account
#: selection:account.tax,tax_group:0
@ -1676,7 +1695,7 @@ msgstr "Diarios"
#. module: account
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "Max Qty:"
msgstr ""
msgstr "Ctdad máx."
#. module: account
#: wizard_button:account.invoice.refund,init,refund:0
@ -1825,7 +1844,7 @@ msgstr ""
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "Date or Code"
msgstr ""
msgstr "Fecha o código"
#. module: account
#: field:account.analytic.account,user_id:0
@ -1835,7 +1854,7 @@ msgstr "Gestor contable"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "to :"
msgstr ""
msgstr "a :"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,debit:0
@ -1916,7 +1935,7 @@ msgstr "Pagar factura"
#. module: account
#: constraint:account.invoice:0
msgid "Error: Invalid Bvr Number (wrong checksum)."
msgstr ""
msgstr "Error: Número BVR inválido (checksum erróneo)."
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree5
@ -1985,7 +2004,7 @@ msgstr "Planes contables"
#. module: account
#: help:account.tax,name:0
msgid "This name will be displayed on reports"
msgstr ""
msgstr "Este nombre se mostrará en los informes"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@ -2042,6 +2061,9 @@ msgid ""
"'draft' state and instead goes directly to the 'posted state' without any "
"manual validation."
msgstr ""
"Marque esta opción si no desea que nuevos asientos contables pasen por el "
"estado 'Borrador' y, por el contrario, pasen directamente al estado "
"\"Fijado\" sin ningún tipo de validación manual."
#. module: account
#: field:account.bank.statement.line,partner_id:0
@ -2092,7 +2114,7 @@ msgstr "Proceso de factura de cliente"
#. module: account
#: rml:account.invoice:0
msgid "Fiscal Position Remark :"
msgstr ""
msgstr "Comentario situacion fiscal"
#. module: account
#: wizard_field:account.fiscalyear.close,init,period_id:0
@ -2166,7 +2188,7 @@ msgstr "Asiento analítico"
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
msgstr "Mensaje pagos vencidos"
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@ -2305,11 +2327,13 @@ msgstr "2"
#: wizard_view:account.chart,init:0
msgid "(If you do not select Fiscal year it will take all open fiscal years)"
msgstr ""
"(Si no selecciona un ejercicio fiscal se tendrán en cuenta todos los "
"ejercicios fiscales)"
#. module: account
#: help:account.invoice.tax,base_code_id:0
msgid "The account basis of the tax declaration."
msgstr ""
msgstr "La cuenta base de la declaración de impuestos."
#. module: account
#: rml:account.analytic.account.journal:0
@ -2373,7 +2397,7 @@ msgstr "Plantilla del plan contable"
#. module: account
#: model:account.journal,name:account.refund_sales_journal
msgid "Journal d'extourne"
msgstr ""
msgstr "Diario de inversión"
#. module: account
#: rml:account.journal.period.print:0
@ -2431,6 +2455,8 @@ msgid ""
"If not applicable (computed through a Python code), the tax won't appear on "
"the invoice."
msgstr ""
"Si no es aplicable (calculado a través de un código Python), el impuesto no "
"aparecerá en la factura."
#. module: account
#: field:account.model,lines_id:0
@ -2465,7 +2491,7 @@ msgstr "Abrir diario"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "KI"
msgstr ""
msgstr "KI"
#. module: account
#: model:ir.actions.wizard,name:account.action_account_analytic_line
@ -2613,7 +2639,7 @@ msgstr "Cuenta a pagar"
#. module: account
#: wizard_view:populate_statement_from_inv,init:0
msgid "Import Invoices in Statement"
msgstr ""
msgstr "Importar facturas en extracto"
#. module: account
#: view:account.invoice:0
@ -2635,6 +2661,7 @@ msgstr "Orden de pago"
msgid ""
"Check this option if you want the user to reconcile entries in this account."
msgstr ""
"Marque esta opción si desea que el usuario concilie asientos en esta cuenta."
#. module: account
#: rml:account.analytic.account.journal:0
@ -2657,7 +2684,7 @@ msgstr "Patrimonio"
#. module: account
#: field:wizard.company.setup,overdue_msg:0
msgid "Overdue Payment Message"
msgstr ""
msgstr "Mensaje pagos vencidos"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
@ -2719,7 +2746,7 @@ msgstr "-"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "asgfas"
msgstr ""
msgstr "asgfas"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2
@ -2922,7 +2949,7 @@ msgstr "A partir de extractos, crear asientos"
#. module: account
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr ""
msgstr "Nombre completo de la cuenta"
#. module: account
#: rml:account.account.balance:0
@ -2952,7 +2979,7 @@ msgstr "Extracto contable"
#. module: account
#: rml:account.overdue:0
msgid "Document: Customer account statement"
msgstr ""
msgstr "Documento: Estado contable del cliente"
#. module: account
#: view:product.product:0
@ -3080,6 +3107,8 @@ msgid ""
"If this box is checked, the system will try to group the accounting lines "
"when generating them from invoices."
msgstr ""
"Si esta opción está marcada, el sistema tratará de agrupar las líneas del "
"asiento cuando se generen desde facturas."
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,trans_nbr:0
@ -3202,7 +3231,7 @@ msgstr "Cuenta"
#. module: account
#: model:account.journal,name:account.bank_journal
msgid "Journal de Banque CHF"
msgstr ""
msgstr "Diario de banco"
#. module: account
#: selection:account.account.balance.report,checktype,state:0
@ -3279,7 +3308,7 @@ msgstr "Código"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance
msgid "Financial Management"
msgstr "Gestión financiera"
msgstr "Contabilidad y finanzas"
#. module: account
#: selection:account.account.type,close_method:0
@ -3334,7 +3363,7 @@ msgstr "Código impuesto raíz"
#. module: account
#: constraint:account.invoice:0
msgid "Error: BVR reference is required."
msgstr ""
msgstr "Error: La referencia BVR es necesaria."
#. module: account
#: field:account.tax.code,notprintable:0
@ -3399,6 +3428,8 @@ msgid ""
"This account will be used instead of the default one as the receivable "
"account for the current partner"
msgstr ""
"Esta cuenta se utilizará en lugar de la cuenta por defecto como la cuenta a "
"cobrar para la empresa actual."
#. module: account
#: selection:account.tax,applicable_type:0
@ -3555,7 +3586,7 @@ msgstr "Ejercicio fiscal"
#. module: account
#: rml:account.overdue:0
msgid "Balance :"
msgstr ""
msgstr "Saldo :"
#. module: account
#: selection:account.account.balance.report,checktype,display_account:0
@ -3646,6 +3677,8 @@ msgid ""
"This payment term will be used instead of the default one for the current "
"partner"
msgstr ""
"Este plazo de pago se utilizará en lugar del plazo por defecto para la "
"empresa actual."
#. module: account
#: wizard_field:account.invoice.pay,addendum,comment:0
@ -3665,6 +3698,8 @@ msgid ""
"Check this box if you don't want any VAT related to this Tax Code to appear "
"on invoices"
msgstr ""
"Marque esta opción si no desea que ningún IVA relacionado con este código de "
"impuesto aparezca en las facturas."
#. module: account
#: field:account.account.type,sequence:0
@ -3767,7 +3802,7 @@ msgstr "Asistente de configuración contabilidad "
#: field:account.fiscalyear,date_start:0
#: field:account.subscription,date_start:0
msgid "Start Date"
msgstr ""
msgstr "Fecha inicial"
#. module: account
#: wizard_view:account.general.ledger.report,account_selection:0
@ -3789,7 +3824,7 @@ msgstr "Facturas borrador"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax_template
msgid "Fiscal Position Template Tax Mapping"
msgstr ""
msgstr "Mapeo de impuestos en plantilla posiciones fiscales"
#. module: account
#: rml:account.invoice:0
@ -3820,6 +3855,15 @@ msgid ""
" Bank statements\n"
" "
msgstr ""
"Módulo de contabilidad financiera y analítica que cubre:\n"
" Contabilidad general\n"
" Costes / contabilidad analítica\n"
" Contabilidad de terceros\n"
" Gestión de impuestos\n"
" Presupuestos\n"
" Facturas de clientes y proveedores\n"
" Extractos de cuentas bancarias\n"
" "
#. module: account
#: field:account.journal,sequence_id:0
@ -3857,7 +3901,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_wizard_company_setup_form
#: view:wizard.company.setup:0
msgid "Overdue Payment Report Message"
msgstr ""
msgstr "Mensaje para reporte de pagos vencidos"
#. module: account
#: selection:account.tax,tax_group:0
@ -3894,6 +3938,8 @@ msgid ""
"This account will be used instead of the default one to value outgoing stock "
"for the current product"
msgstr ""
"Esta cuenta se utilizará en lugar de la cuenta por defecto para valorar el "
"stock saliente para el producto actual."
#. module: account
#: model:process.node,note:account.process_node_manually0
@ -3927,7 +3973,7 @@ msgstr "."
#. module: account
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Quantity"
msgstr ""
msgstr "Cantidad máxima"
#. module: account
#: field:account.period,name:0
@ -4051,7 +4097,7 @@ msgstr "Cuenta impuestos de devoluciones"
#: field:account.tax.code,child_ids:0
#: field:account.tax.code.template,child_ids:0
msgid "Child Codes"
msgstr ""
msgstr "Códigos hijos"
#. module: account
#: field:account.invoice,move_name:0
@ -4229,6 +4275,8 @@ msgid ""
"reports, so that you can see positive figures instead of negative ones in "
"expenses accounts."
msgstr ""
"Permite cambiar el signo del saldo que se muestra en los informes, para que "
"pueda ver cifras positivas en vez de negativas en cuentas de gastos."
#. module: account
#: help:account.config.wizard,code:0
@ -4395,7 +4443,7 @@ msgstr "Facturas de abono"
#: field:account.config.wizard,date2:0
#: field:account.fiscalyear,date_stop:0
msgid "End Date"
msgstr ""
msgstr "Fecha final"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_open_closed_fiscalyear
@ -4431,6 +4479,9 @@ msgid ""
"to the higher ones. The order is important if you have a tax with several "
"tax children. In this case, the evaluation order is important."
msgstr ""
"El campo secuencia es usado para ordenar las líneas de impuestos de menor a "
"mayor secuencia. El orden es importante si un impuesto tiene varios impuesto "
"hijos. En este caso, el orden de evaluación es importante."
#. module: account
#: view:account.tax:0
@ -4446,7 +4497,7 @@ msgstr "Archivo de extractos"
#. module: account
#: view:ir.sequence:0
msgid "Fiscal Year Sequences"
msgstr ""
msgstr "Secuencias ejercicios fiscales"
#. module: account
#: view:account.model.line:0
@ -4491,7 +4542,7 @@ msgstr "Debe del proveedor"
#. module: account
#: help:account.model.line,quantity:0
msgid "The optional quantity on entries"
msgstr ""
msgstr "La cantidad opcional en los asientos"
#. module: account
#: rml:account.third_party_ledger:0
@ -4784,6 +4835,9 @@ msgid ""
"new counterpart but will share the same counterpart. This is used in fiscal "
"year closing."
msgstr ""
"Marque esta opción para que cada asiento de este diario no crea una nueva "
"contrapartida, sino que comparta la misma contrapartida. Se usa en el cierre "
"del ejercicio fiscal."
#. module: account
#: selection:account.invoice,state:0
@ -4884,7 +4938,7 @@ msgstr "account.analytic.journal"
#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
msgstr ""
msgstr "Mapeo de cuentas"
#. module: account
#: view:product.product:0
@ -4984,7 +5038,7 @@ msgstr "Líneas de factura"
#. module: account
#: field:account.period,date_start:0
msgid "Start of Period"
msgstr ""
msgstr "Inicio del periodo"
#. module: account
#: wizard_field:account.fiscalyear.close,init,report_name:0
@ -5284,7 +5338,7 @@ msgstr "Todos los asientos contables"
#. module: account
#: help:account.invoice.tax,tax_code_id:0
msgid "The tax basis of the tax declaration."
msgstr ""
msgstr "La base del impuesto de la declaración de impuestos."
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@ -5444,7 +5498,7 @@ msgstr ""
#. module: account
#: field:account.tax,type_tax_use:0
msgid "Tax Application"
msgstr ""
msgstr "Aplicación impuesto"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form
@ -5461,7 +5515,7 @@ msgstr "Facturas de cliente PRO-FORMA"
#. module: account
#: field:account.subscription,period_total:0
msgid "Number of Periods"
msgstr ""
msgstr "Número de periodos"
#. module: account
#: wizard_field:account.analytic.account.analytic.check.report,init,date2:0
@ -5538,11 +5592,13 @@ msgid ""
"Invalid period ! Some periods overlap or the date period is not in the scope "
"of the fiscal year. "
msgstr ""
"¡Periodo inválido! Algunos periodos se superponen o la fecha del periodo no "
"está dentro del intervalo del ejercicio fiscal. "
#. module: account
#: help:account.journal,invoice_sequence_id:0
msgid "The sequence used for invoice numbers in this journal."
msgstr ""
msgstr "La secuencia utilizada para los números de factura en este diario."
#. module: account
#: view:account.account:0
@ -5567,7 +5623,7 @@ msgstr ""
#. module: account
#: constraint:account.fiscalyear:0
msgid "Error ! The duration of the Fiscal Year is invalid. "
msgstr ""
msgstr "¡Error! La duración del ejercicio fiscal no es correcta. "
#. module: account
#: selection:account.analytic.account,state:0
@ -5703,11 +5759,13 @@ msgid ""
"This account will be used instead of the default one to value incoming stock "
"for the current product"
msgstr ""
"Esta cuenta se utilizará en lugar de la cuenta por defecto para valorar el "
"stock entrante para el producto actual."
#. module: account
#: field:account.tax,child_ids:0
msgid "Child Tax Accounts"
msgstr ""
msgstr "Cuentas impuestos hijas"
#. module: account
#: field:account.account,parent_right:0
@ -5735,6 +5793,8 @@ msgid ""
"This account will be used instead of the default one as the payable account "
"for the current partner"
msgstr ""
"Este cuenta se utilizará en lugar de la cuenta por defecto como la cuenta a "
"pagar para la empresa actual."
#. module: account
#: field:account.tax.code,code:0
@ -5793,7 +5853,7 @@ msgstr "Propiedades de contabilidad"
#. module: account
#: model:ir.model,name:account.model_account_sequence_fiscalyear
msgid "account.sequence.fiscalyear"
msgstr ""
msgstr "contabilidad.secuencia.ejerciciofiscal"
#. module: account
#: wizard_field:account.print.journal.report,init,sort_selection:0
@ -5894,7 +5954,7 @@ msgstr "Código Python (inverso)"
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Accounting and financial management"
msgstr ""
msgstr "Gestión contable y financiera"
#. module: account
#: view:account.fiscal.position.template:0
@ -5907,6 +5967,8 @@ msgid ""
"This account will be used to value outgoing stock for the current product "
"category"
msgstr ""
"Esta cuenta se utilizará para valorar el stock saliente para la categoría de "
"producto actual."
#. module: account
#: help:account.tax,base_sign:0
@ -5938,7 +6000,7 @@ msgstr "Debe general"
#. module: account
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr ""
msgstr "Código cuenta"
#. module: account
#: help:account.config.wizard,name:0
@ -5985,6 +6047,8 @@ msgid ""
"Check this if the price you use on the product and invoices includes this "
"tax."
msgstr ""
"Marque esta opción si el precio que utiliza en el producto y en las facturas "
"incluye este impuesto."
#. module: account
#: field:account.journal.column,name:0
@ -6009,6 +6073,8 @@ msgstr "Sí"
msgid ""
"Check this if the user is allowed to reconcile entries in this account."
msgstr ""
"Marque esta opción si el usuario se le permite conciliar asientos en esta "
"cuenta."
#. module: account
#: wizard_button:account.subscription.generate,init,generate:0

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-19 04:35+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -9,13 +9,12 @@ msgstr ""
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-06-09 05:58+0000\n"
"Last-Translator: Cristian Salamea (GnuThink) "
"<cristian.salamea@gnuthink.com>\n"
"Last-Translator: Cristian Salamea (GnuThink) <ovnicraft@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@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: 2009-11-17 05:01+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:58+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 14:41+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-14 09:09+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:58+0000\n"
"X-Launchpad-Export-Date: 2010-01-15 04:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -25,7 +25,7 @@ msgstr "Écritures non réconciliées"
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
#: model:ir.ui.menu,name:account.menu_unreconcile_select
msgid "Unreconcile entries"
msgstr "Annuler lettrage d'un compte"
msgstr "Dé-lettrer les écritures"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
@ -68,11 +68,6 @@ msgstr "Imprimer le journal"
msgid "New Fiscal Year"
msgstr "Nouvel exercice fiscal"
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
msgid "Fiscal Year to Open"
msgstr "Exercice fiscal à ouvrir"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_tree
@ -131,12 +126,6 @@ msgstr "Écriture standard"
msgid "No. of Digits to use for account code"
msgstr "Nombre de chiffres dans les numéros des comptes"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_fiscalyear_close_state
#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state
msgid "Close a Fiscal Year"
msgstr "Clôturer un exercice fiscal"
#. module: account
#: field:account.invoice,move_id:0
msgid "Invoice Movement"
@ -500,7 +489,7 @@ msgstr "Saisie des écritures"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Indiquez le message pour les rapports de paiement en retard."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
@ -764,7 +753,7 @@ msgstr "Origine"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Nom de la transaction"
#. module: account
#: xsl:account.transfer:0
@ -875,7 +864,7 @@ msgstr "Négatif"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "Nom (Compte/Partenaire)"
#. module: account
#: selection:account.move,type:0
@ -921,7 +910,7 @@ msgstr "Rapprochement bancaire"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Rem.(%)"
#. module: account
#: rml:account.general.ledger:0
@ -1345,6 +1334,11 @@ msgstr ""
"Si une taxe par défaut est donnée dans le partenaire, elle surcharge "
"uniquement les taxes des comptes (ou des produits) du même groupe."
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
msgid "Fiscal Year to Open"
msgstr "Exercice fiscal à ouvrir"
#. module: account
#: view:account.config.wizard:0
msgid "Select Chart of Accounts"
@ -1528,7 +1522,7 @@ msgstr "Prix unitaire"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Period from :"
msgstr ""
msgstr "Période de :"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@ -1687,6 +1681,12 @@ msgstr "Compte de pertes et profits"
msgid "Model"
msgstr "Modèle"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_fiscalyear_close_state
#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state
msgid "Close a Fiscal Year"
msgstr "Clôturer un exercice fiscal"
#. module: account
#: field:account.journal,centralisation:0
msgid "Centralised counterpart"
@ -1695,7 +1695,7 @@ msgstr "Centralisation"
#. module: account
#: view:wizard.company.setup:0
msgid "Message"
msgstr ""
msgstr "Messages"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
@ -1857,7 +1857,7 @@ msgstr "Clôturer l'état"
#. module: account
#: model:ir.model,name:account.model_wizard_company_setup
msgid "wizard.company.setup"
msgstr ""
msgstr "wizard.company.setup"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form
@ -2169,7 +2169,7 @@ msgstr "Comptable"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "to :"
msgstr ""
msgstr "à :"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,debit:0
@ -2274,7 +2274,7 @@ msgstr "Pas de filtre"
#. module: account
#: field:account.payment.term.line,days:0
msgid "Number of Days"
msgstr "Nombre de jour"
msgstr "Nombre de jours"
#. module: account
#: help:account.invoice,reference:0
@ -2429,7 +2429,7 @@ msgstr "Processus de la facture client"
#. module: account
#: rml:account.invoice:0
msgid "Fiscal Position Remark :"
msgstr ""
msgstr "Remarque position fiscale :"
#. module: account
#: wizard_field:account.fiscalyear.close,init,period_id:0
@ -2503,7 +2503,7 @@ msgstr "Ecriture analytique"
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
msgstr "Message pour les paiements en retard"
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@ -2977,7 +2977,7 @@ msgstr "Capitaux propres"
#. module: account
#: field:wizard.company.setup,overdue_msg:0
msgid "Overdue Payment Message"
msgstr ""
msgstr "Message pour paiement en retard"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
@ -4112,7 +4112,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_wizard_company_setup_form
#: view:wizard.company.setup:0
msgid "Overdue Payment Report Message"
msgstr ""
msgstr "Message pour rapport de paiement en retard"
#. module: account
#: selection:account.tax,tax_group:0
@ -4432,7 +4432,7 @@ msgstr "Facture"
#: wizard_button:account.open_closed_fiscalyear,init,open:0
#: wizard_button:account_use_models,create,open_move:0
msgid "Open"
msgstr "Ouvrir"
msgstr "Ouverte"
#. module: account
#: model:ir.ui.menu,name:account.next_id_29
@ -4698,7 +4698,7 @@ msgstr "Confirmez-vous l'ouverture de cette facture ?"
#. module: account
#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other
msgid "Partner Other Ledger"
msgstr ""
msgstr "Journal des tiers"
#. module: account
#: view:res.partner:0

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:58+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -9,12 +9,12 @@ msgstr ""
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-18 15:06+0000\n"
"Last-Translator: mga (Open ERP) <mga@tinyerp.com>\n"
"Last-Translator: mga (Open ERP) <Unknown>\n"
"Language-Team: Gujarati <gu@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: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 09:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-03 19:01+0000\n"
"Last-Translator: Davide Corio <davide.corio@domsense.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: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2010-02-04 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -24,13 +24,13 @@ msgstr "Nome Interno"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr "Codice conto tasse"
msgstr "Codice conto imposte"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
#: model:ir.ui.menu,name:account.menu_action_invoice_tree9
msgid "Unpaid Supplier Invoices"
msgstr "Non pagate"
msgstr "Fatture fornitori non pagate"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
@ -40,7 +40,7 @@ msgstr "Codifica delle registrazioni"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Specificare il messaggio per il Report Pagamenti Scaduti."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
@ -73,11 +73,14 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Questo conto verrà utilizzato per valorizzare le merci in entrata per la "
"categoria di prodotti corrente"
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
"Lasciare vuoto per usare il periodo della data di validazione (fattura)."
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -115,7 +118,7 @@ msgstr "Mastro"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr ""
msgstr "Giornale Ricevute"
#. module: account
#: field:account.invoice,residual:0
@ -128,7 +131,7 @@ msgstr "Rimanenze"
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
msgstr ""
msgstr "Segno imponibile"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
@ -139,7 +142,7 @@ msgstr "Annulla riconcigliazione voci"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
msgstr ""
msgstr "Errore ! La durata del/dei Periodo/i non è valida "
#. module: account
#: view:account.bank.statement.reconcile:0
@ -215,7 +218,7 @@ msgstr "Codice calcolo (se tipo=codice)"
#: view:account.move:0
#: view:account.move.line:0
msgid "Account Entry Line"
msgstr ""
msgstr "Registrazione contabile"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
@ -270,6 +273,11 @@ msgid ""
"in which order. You can create your own view for a faster encoding in each "
"journal."
msgstr ""
"Imposta la vista da utilizzare quando si inseriscono o si consultano le "
"registrazioni in questo Giornale. La vista dice a Open ERP quali campi "
"dovranno essere visibili, richiesti o di sola lettura e in quale ordine. "
"Puoi creare la tua vista personale per velocizzare l'inserimento dei dati in "
"ogni giornale."
#. module: account
#: help:account.invoice,date_due:0
@ -280,6 +288,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
"Se vengono utilizzati i termini di pagamento, la data di scadenza verrà "
"calcolata automaticamente alla generazione dei movimenti contabili. Se i "
"termini di pagamento e la data di scadenza non vengono valorizzati, equivale "
"al pagamento diretto. Il termine di pagamento può essere calcolato a fronte "
"di diverse scadenze, per esempio 50% subito e 50% dopo un mese."
#. module: account
#: selection:account.tax,type:0
@ -291,7 +304,7 @@ msgstr "Fisso"
#: model:ir.actions.report.xml,name:account.account_overdue
#: view:res.company:0
msgid "Overdue Payments"
msgstr ""
msgstr "Ritardo Pagamenti"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@ -313,7 +326,7 @@ msgstr "Origine"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Nome Movimento"
#. module: account
#: xsl:account.transfer:0
@ -328,7 +341,7 @@ msgstr "Computazione del canone"
#. module: account
#: rml:account.central.journal:0
msgid "Account Num."
msgstr ""
msgstr "Conto n."
#. module: account
#: rml:account.analytic.account.analytic.check:0
@ -345,7 +358,7 @@ msgstr "Tassa"
#. module: account
#: rml:account.general.journal:0
msgid "Debit Trans."
msgstr ""
msgstr "Debito Trans."
#. module: account
#: field:account.analytic.line,account_id:0
@ -467,7 +480,7 @@ msgstr "Riconciliazione bancaria"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Sconto (%)"
#. module: account
#: rml:account.general.ledger:0
@ -489,6 +502,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Selezionare se l'importo della tassa debba essere incluso nell'importo base "
"prima di calcolare le prossime tasse"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -498,7 +513,7 @@ msgstr "Elaborazioni periodiche"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Analytic Entries Stats"
msgstr ""
msgstr "Statistiche delle registrazioni analitiche"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
@ -520,7 +535,7 @@ msgstr "Pagamento Riconciliato"
#. module: account
#: wizard_field:account.chart,init,target_move:0
msgid "Target Moves"
msgstr ""
msgstr "Registrazioni:"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@ -541,7 +556,7 @@ msgstr "Metodo riapertura conti"
#. module: account
#: field:account.tax.template,include_base_amount:0
msgid "Include in Base Amount"
msgstr ""
msgstr "Incluso nell'imponibile"
#. module: account
#: field:account.tax,ref_base_code_id:0
@ -571,6 +586,9 @@ msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
msgstr ""
"Numero di giorni da aggiungere prima della computazione del giorno del mese. "
"Se Data=15/01, Numero di giorni=22, Giorno del mese=-1, allora la scadenza "
"sarà 28/02."
#. module: account
#: model:ir.model,name:account.model_account_tax
@ -580,12 +598,12 @@ msgstr "account.tax"
#. module: account
#: rml:account.central.journal:0
msgid "Printing Date"
msgstr ""
msgstr "Stampa Data"
#. module: account
#: rml:account.general.ledger:0
msgid "Mvt"
msgstr ""
msgstr "Reg. n."
#. module: account
#: model:ir.actions.wizard,name:account.wizard_aged_trial_balance
@ -651,7 +669,7 @@ msgstr ""
#. module: account
#: help:account.fiscalyear,company_id:0
msgid "Keep empty if the fiscal year belongs to several companies."
msgstr ""
msgstr "Lasciare vuoto se l'anno fiscale appartiene a più aziende"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
@ -661,7 +679,7 @@ msgstr "Contabilità Analitica"
#. module: account
#: rml:account.overdue:0
msgid "Sub-Total :"
msgstr ""
msgstr "Sub-totale"
#. module: account
#: field:account.analytic.account,line_ids:0
@ -679,12 +697,12 @@ msgstr "Mese"
#. module: account
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr ""
msgstr "Partner associato"
#. module: account
#: field:account.invoice,comment:0
msgid "Additional Information"
msgstr ""
msgstr "Informazioni Aggiuntive"
#. module: account
#: selection:account.invoice,type:0
@ -1019,7 +1037,7 @@ msgstr "Posizione fiscale"
#: field:account.analytic.line,product_uom_id:0
#: field:account.move.line,product_uom_id:0
msgid "UoM"
msgstr "UM"
msgstr "Unità di Misura"
#. module: account
#: wizard_field:account.third_party_ledger.report,init,page_split:0

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-19 04:35+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 06:21+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-08 18:27+0000\n"
"Last-Translator: sraps (KN dati) <Unknown>\n"
"Language-Team: Latvian <lv@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: 2009-11-19 04:35+0000\n"
"X-Launchpad-Export-Date: 2010-02-09 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -25,7 +25,7 @@ msgstr "Iekšējais Nosaukums"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr ""
msgstr "Konta Nodokļa Kods"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@ -41,12 +41,12 @@ msgstr "Rindu Ievade"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Paziņojums, par kavētiem maksājumiem."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
msgstr ""
msgstr "Apstiprināt melnraksta pārskatu"
#. module: account
#: model:account.account.type,name:account.account_type_asset
@ -56,12 +56,12 @@ msgstr "Aktīvi"
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Procesa definīcijā nepareizs modeļa nosaukums."
#. module: account
#: help:account.journal,currency:0
msgid "The currency used to enter statement"
msgstr ""
msgstr "Atskaitē lietotā vaūta"
#. module: account
#: wizard_view:account_use_models,init_form:0
@ -79,7 +79,7 @@ msgstr ""
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
msgstr "Atstāt tukšu lai tiktu izmantots rēķina apstiprināšanas datums."
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -197,7 +197,7 @@ msgstr "Ieraksta iezīme"
#. module: account
#: model:ir.model,name:account.model_account_model_line
msgid "Account Model Entries"
msgstr ""
msgstr "Tipveida ieraksti"
#. module: account
#: field:account.tax.code,sum_period:0
@ -269,6 +269,10 @@ msgid ""
"in which order. You can create your own view for a faster encoding in each "
"journal."
msgstr ""
"Tiek piedāvāts skatījums- rakstot vai pārskatot žurnāla ierakstus. Skatījums "
"nosaka, kuri lauki būs redzami vai nepieciešami, to kārtību un vai tajos var "
"ievadīt informāciju. Var veidot savus skatījumus ātrākai informācijas "
"ievadei katram žurnālam."
#. module: account
#: help:account.invoice,date_due:0
@ -279,6 +283,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
"Ja tiek izmantoti apmaksas noteikumi, tad apmaksas termiņš tiks aprēķināts "
"automātiski, ģenerējot grāmatvedības ierakstus. Ja apmaksas noteikumi un "
"termiņš tiek atstāti neaizpildīti, tad tas tiek uzskatīts par tiešo "
"maksājumu. Apmaksas noteikumi var saturēt vairākus apmaksas termiņus, "
"piemēram, 50% tagad, 50% mēneša laikā."
#. module: account
#: selection:account.tax,type:0
@ -290,7 +299,7 @@ msgstr "Fiksēts"
#: model:ir.actions.report.xml,name:account.account_overdue
#: view:res.company:0
msgid "Overdue Payments"
msgstr ""
msgstr "Kavētie Maksājumi"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@ -312,7 +321,7 @@ msgstr "Izcelsme"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Move Name"
msgstr ""
msgstr "Grāmatojums"
#. module: account
#: xsl:account.transfer:0
@ -339,7 +348,7 @@ msgstr "Delta debets"
#: field:account.invoice,amount_tax:0
#: field:account.move.line,account_tax_id:0
msgid "Tax"
msgstr ""
msgstr "Nodoklis"
#. module: account
#: rml:account.general.journal:0
@ -375,7 +384,7 @@ msgstr "Apraksts uz rēķiniem"
#. module: account
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Kļūda! Nevar veidot rekursīvus analītiskos kontus."
#. module: account
#: field:account.bank.statement.reconcile,total_entry:0
@ -402,7 +411,7 @@ msgstr "Maksājumu Sasaiste"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
msgstr ""
msgstr "Izdevumu Žurnāls"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
@ -422,7 +431,7 @@ msgstr "Negatīvs"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "(Konts/Klients) Nosaukums"
#. module: account
#: selection:account.move,type:0
@ -443,7 +452,7 @@ msgstr "Statuss"
#: model:ir.actions.act_window,name:account.action_invoice_tree13
#: model:ir.ui.menu,name:account.menu_action_invoice_tree13
msgid "Unpaid Supplier Refunds"
msgstr ""
msgstr "Neapmaksātie Piegādātāja atgrieztie maksājumi"
#. module: account
#: view:account.tax:0
@ -461,12 +470,12 @@ msgstr ""
#: model:ir.actions.wizard,name:account.action_account_bank_reconcile_tree
#: model:ir.ui.menu,name:account.menu_action_account_bank_reconcile_check_tree
msgid "Bank reconciliation"
msgstr "Bankas sasaiste"
msgstr "Kontējumu sasaiste"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Atlaide %"
#. module: account
#: rml:account.general.ledger:0
@ -475,12 +484,12 @@ msgstr ""
#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr ""
msgstr "Norāde"
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
msgstr ""
msgstr "Nodokļa lietojums"
#. module: account
#: help:account.tax.template,include_base_amount:0
@ -488,6 +497,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Norādīt, lai nodoklis tiktu ieskaitīts bāzes summā, pirms tiek aprēķināti "
"citi nodokļi."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -497,13 +508,13 @@ msgstr "Periodiskās Darbības"
#. module: account
#: view:report.hr.timesheet.invoice.journal:0
msgid "Analytic Entries Stats"
msgstr ""
msgstr "Analītisko Ierakstu Tabula"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form
msgid "Tax Code Templates"
msgstr ""
msgstr "Nodokļu Kodu Šabloni"
#. module: account
#: view:account.invoice:0
@ -514,18 +525,18 @@ msgstr "Piegādātāja rēķins"
#: model:process.transition,name:account.process_transition_reconcilepaid0
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "Reconcile Paid"
msgstr ""
msgstr "Atzīmēt kā Samaksāts."
#. module: account
#: wizard_field:account.chart,init,target_move:0
msgid "Target Moves"
msgstr ""
msgstr "Mērķa Grāmatojumi"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
msgid "Tax Templates"
msgstr ""
msgstr "Nodokļu Šabloni"
#. module: account
#: field:account.invoice,reconciled:0
@ -535,7 +546,7 @@ msgstr "Apmaksāts / Sasaistīts"
#. module: account
#: field:account.account.type,close_method:0
msgid "Deferral Method"
msgstr ""
msgstr "Atliktā maksājuma Metode"
#. module: account
#: field:account.tax.template,include_base_amount:0
@ -562,7 +573,7 @@ msgstr ""
#: selection:account.tax,applicable_type:0
#: selection:account.tax.template,applicable_type:0
msgid "True"
msgstr ""
msgstr ""
#. module: account
#: help:account.payment.term.line,days:0
@ -608,7 +619,7 @@ msgstr ""
#: wizard_view:account.analytic.account.chart,init:0
#: wizard_view:account.analytic.line,init:0
msgid "(Keep empty to open the current situation)"
msgstr ""
msgstr "(Atstāt tukšu, lai atvērtu esošo stāvokli)"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
@ -645,17 +656,17 @@ msgstr "Atlaide (%)"
#: wizard_field:account.move.line.reconcile,init_full,writeoff:0
#: wizard_field:account.move.line.reconcile,init_partial,writeoff:0
msgid "Write-Off amount"
msgstr ""
msgstr "Norakstīt Daudzumu"
#. module: account
#: help:account.fiscalyear,company_id:0
msgid "Keep empty if the fiscal year belongs to several companies."
msgstr ""
msgstr "Atstāt tukšu, ja Fiskālais gads attiecas uz vairākiem uzņēmumiem."
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
msgstr "Analītiskā Uzskaite"
#. module: account
#: rml:account.overdue:0
@ -673,7 +684,7 @@ msgstr "Analītiskie Ieraksti"
#. module: account
#: selection:account.subscription,period_type:0
msgid "month"
msgstr ""
msgstr "mēnesis"
#. module: account
#: field:account.analytic.account,partner_id:0
@ -688,12 +699,12 @@ msgstr "Papildus Informācija"
#. module: account
#: selection:account.invoice,type:0
msgid "Customer Refund"
msgstr ""
msgstr "Atgrieztie maksājumi Klientiem"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Select the Period for Analysis"
msgstr ""
msgstr "Izvēlēties Analīzes periodu"
#. module: account
#: field:account.tax,ref_tax_sign:0
@ -706,7 +717,7 @@ msgstr ""
#. module: account
#: help:res.partner,credit:0
msgid "Total amount this customer owes you."
msgstr ""
msgstr "Kopējais daudzums, ko klients ir parādā."
#. module: account
#: view:account.move.line:0
@ -721,7 +732,7 @@ msgstr "account.move.line"
#. module: account
#: model:process.transition,name:account.process_transition_supplieranalyticcost0
msgid "Analytic Invoice"
msgstr ""
msgstr "Analītiskais Rēķins"
#. module: account
#: field:account.journal.column,field:0
@ -743,12 +754,12 @@ msgstr ""
#: view:product.product:0
#: view:product.template:0
msgid "Purchase Properties"
msgstr ""
msgstr "Iepirkuma Parametri"
#. module: account
#: model:process.node,note:account.process_node_paymententries0
msgid "Can be draft or validated"
msgstr ""
msgstr "Var būt melnrakstā, vai apstiprināts"
#. module: account
#: wizard_button:account.invoice.pay,init,reconcile:0
@ -768,13 +779,13 @@ msgstr "Grāmatojumi Veikti."
#: field:account.period,state:0
#: field:account.subscription,state:0
msgid "Status"
msgstr ""
msgstr "Stāvoklis"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "Period to"
msgstr ""
msgstr "Periods līdz"
#. module: account
#: field:account.account.type,partner_account:0
@ -784,7 +795,7 @@ msgstr "Partnera konts"
#. module: account
#: wizard_view:account.subscription.generate,init:0
msgid "Generate entries before:"
msgstr ""
msgstr "Ģenerēt ierakstus pirms:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@ -800,7 +811,7 @@ msgstr ""
#: wizard_view:account.partner.balance.report,init:0
#: wizard_view:account.third_party_ledger.report,init:0
msgid "(Keep empty for all open fiscal years)"
msgstr ""
msgstr "(Atstāt tukšu visiem nenoslēgtajiem fiskālajiem gadiem)"
#. module: account
#: field:account.invoice,move_lines:0
@ -833,12 +844,12 @@ msgstr "6"
#. module: account
#: model:ir.ui.menu,name:account.next_id_30
msgid "Bank Reconciliation"
msgstr "Bankas Sasaiste"
msgstr "Kontējumu sasaiste"
#. module: account
#: model:ir.model,name:account.model_account_account_template
msgid "Templates for Accounts"
msgstr ""
msgstr "Kontu Šabloni"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_form
@ -912,12 +923,12 @@ msgstr ""
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
msgid "Fiscal Year to Open"
msgstr ""
msgstr "Atvērt Fiskālo gadu"
#. module: account
#: view:account.config.wizard:0
msgid "Select Chart of Accounts"
msgstr ""
msgstr "Izvēlēties Kontu Plānu"
#. module: account
#: field:account.analytic.account,quantity:0
@ -948,7 +959,7 @@ msgstr ""
#. module: account
#: help:account.journal,user_id:0
msgid "The user responsible for this journal"
msgstr ""
msgstr "Atbildīgais par žurnālu."
#. module: account
#: field:account.journal,default_debit_account_id:0
@ -1184,7 +1195,7 @@ msgstr ""
#. module: account
#: view:res.partner:0
msgid "Bank account"
msgstr ""
msgstr "Bankas konts"
#. module: account
#: field:account.chart.template,tax_template_ids:0
@ -1531,7 +1542,7 @@ msgstr ""
#. module: account
#: field:account.invoice,move_id:0
msgid "Invoice Movement"
msgstr ""
msgstr "Rēķina Grāmatojums"
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
@ -2462,7 +2473,7 @@ msgstr ""
#: model:process.node,name:account.process_node_bankstatement0
#: model:process.node,name:account.process_node_supplierbankstatement0
msgid "Bank Statement"
msgstr ""
msgstr "Bankas konta izraksts"
#. module: account
#: wizard_view:account.invoice.pay,addendum:0
@ -3373,7 +3384,7 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
msgid "Bank statements"
msgstr ""
msgstr "Bankas konta izraksts"
#. module: account
#: model:ir.ui.menu,name:account.next_id_22
@ -3827,7 +3838,7 @@ msgstr ""
#. module: account
#: selection:account.general.ledger.report,checktype,sortbydate:0
msgid "Movement"
msgstr ""
msgstr "Grāmatojums"
#. module: account
#: help:account.period,special:0
@ -4310,7 +4321,7 @@ msgstr ""
#. module: account
#: selection:account.move,type:0
msgid "Bank Payment"
msgstr ""
msgstr "Bankas maksājums"
#. module: account
#: selection:account.move,state:0
@ -4755,7 +4766,7 @@ msgstr ""
#: field:account.bank.statement.reconcile,statement_line:0
#: model:ir.model,name:account.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr ""
msgstr "Konta izraksta rinda"
#. module: account
#: wizard_button:account.automatic.reconcile,reconcile,end:0
@ -5447,7 +5458,7 @@ msgstr "account.tax.template"
#. module: account
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
msgid "Bank Accounts"
msgstr ""
msgstr "Bankas Konti"
#. module: account
#: constraint:account.period:0
@ -5724,7 +5735,7 @@ msgstr ""
#: field:account.chart.template,bank_account_view_id:0
#: field:account.invoice,partner_bank:0
msgid "Bank Account"
msgstr ""
msgstr "Bankas Konts"
#. module: account
#: model:ir.actions.act_window,name:account.action_model_form

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 04:59+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-21 15:39+0000\n"
"PO-Revision-Date: 2010-01-16 18:36+0000\n"
"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-22 04:49+0000\n"
"X-Launchpad-Export-Date: 2010-01-17 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -79,7 +79,7 @@ msgstr ""
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
msgstr "Pozostaw puste, aby stosować okres z daty zatwierdzenia (faktury)."
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -434,7 +434,7 @@ msgstr "Ujemne"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "Nazwa (konta/partnera)"
#. module: account
#: selection:account.move,type:0
@ -1133,7 +1133,7 @@ msgstr "Szablon planu kont"
#. module: account
#: field:account.chart.template,property_account_income_categ:0
msgid "Income Category Account"
msgstr ""
msgstr "Konto dochodów dla kategorii"
#. module: account
#: model:ir.actions.act_window,name:account.analytic_account_form
@ -1156,7 +1156,7 @@ msgstr "Cena jednostkowa"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Period from :"
msgstr ""
msgstr "Okres od :"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
@ -1349,7 +1349,7 @@ msgstr ""
#. module: account
#: view:wizard.company.setup:0
msgid "Message"
msgstr ""
msgstr "Komunikat"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
@ -1607,7 +1607,7 @@ msgstr "Nr konta"
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Keep empty to use the expense account"
msgstr "Zostaw puste żeby używać konto wydatków"
msgstr "Zostaw puste żeby używać konta kosztowego"
#. module: account
#: wizard_field:account.automatic.reconcile,init,account_ids:0
@ -1844,7 +1844,7 @@ msgstr "Główna(y) księgowa(y)"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "to :"
msgstr ""
msgstr "do :"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,debit:0
@ -2102,7 +2102,7 @@ msgstr "Proces faktury dla klienta"
#. module: account
#: rml:account.invoice:0
msgid "Fiscal Position Remark :"
msgstr ""
msgstr "Uwaga do obszaru podatkowego :"
#. module: account
#: wizard_field:account.fiscalyear.close,init,period_id:0
@ -2176,7 +2176,7 @@ msgstr "Zapis analityczny"
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
msgstr "Komunikat przeterminowanych płatności"
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@ -2600,7 +2600,7 @@ msgstr "Nazwa typu konta"
#: help:account.tax.template,ref_tax_code_id:0
#: help:account.tax.template,tax_code_id:0
msgid "Use this code for the VAT declaration."
msgstr "Urzyj ten kod do deklaracji VAT-a."
msgstr "Użyj tego kodu do deklaracji VAT."
#. module: account
#: field:account.move.line,blocked:0
@ -2818,7 +2818,7 @@ msgstr ""
#. module: account
#: wizard_button:populate_statement_from_inv,init,go:0
msgid "_Go"
msgstr ""
msgstr "_Przejdź"
#. module: account
#: field:res.partner,ref_companies:0
@ -3917,6 +3917,8 @@ msgid ""
"This account will be used instead of the default one to value outgoing stock "
"for the current product"
msgstr ""
"To konto księgowe będzie stosowane zamiast domyślnego przy wycenie zapasów "
"przyjmowanych dla bieżącego produktu"
#. module: account
#: model:process.node,note:account.process_node_manually0
@ -3940,7 +3942,7 @@ msgstr "Wg okresów"
#. module: account
#: help:account.invoice,date_invoice:0
msgid "Keep empty to use the current date"
msgstr ""
msgstr "Pozostaw puste, aby stosować bieżącą datę"
#. module: account
#: rml:account.overdue:0
@ -4110,6 +4112,9 @@ msgid ""
"The optional quantity expressed by this line, eg: number of product sold. "
"The quantity is not a legal requirement but is very usefull for some reports."
msgstr ""
"Ewentualna ilość wyrażona w tej pozycji, czyli liczba sprzedanych produktów. "
"Nie jest to wymagane prawnie, ale może być bardzo użyteczne w niektórych "
"raportach."
#. module: account
#: wizard_field:account.third_party_ledger.report,init,reconcil:0
@ -4648,7 +4653,7 @@ msgstr "Wprowadzanie zapisów przez zmianę stanu"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Analytic Account Charts"
msgstr ""
msgstr "Plany kont analitycznych"
#. module: account
#: wizard_field:account.aged.trial.balance,init,result_selection:0
@ -5724,6 +5729,8 @@ msgid ""
"This account will be used instead of the default one to value incoming stock "
"for the current product"
msgstr ""
"To konto będzie stosowane, zamiast domyślnego, do wyceny zapasów "
"wychodzących dla tego produktu"
#. module: account
#: field:account.tax,child_ids:0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 09:48+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2009-12-10 10:27+0000\n"
"Last-Translator: geopop65 <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -2486,7 +2486,7 @@ msgstr "Deschidere jurnal"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "KI"
msgstr ""
msgstr "Kl"
#. module: account
#: model:ir.actions.wizard,name:account.action_account_analytic_line
@ -2741,7 +2741,7 @@ msgstr "-"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "asgfas"
msgstr ""
msgstr "asgfas"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2
@ -4543,7 +4543,7 @@ msgstr "Cantitatea opţională din înregistrări"
#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr ""
msgstr "JRNL"
#. module: account
#: view:account.fiscalyear:0
@ -5725,7 +5725,7 @@ msgstr "Tipărire declaraţie TVA"
#. module: account
#: model:ir.actions.report.xml,name:account.account_intracom
msgid "IntraCom"
msgstr ""
msgstr "ComInt"
#. module: account
#: view:account.analytic.account:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 09:47+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-06 19:29+0000\n"
"Last-Translator: Santjaga <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-18 04:37+0000\n"
"X-Launchpad-Export-Date: 2010-02-07 04:37+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -24,7 +24,7 @@ msgstr "Внутреннее название"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr "Налоговый код счета"
msgstr "Код налогового счёта"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@ -40,27 +40,27 @@ msgstr "Ввод проводок"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Укажите сообщение для отчета о просроченных платежах"
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
msgstr ""
msgstr "Подтвердите расчет по чеку"
#. module: account
#: model:account.account.type,name:account.account_type_asset
msgid "Asset"
msgstr "Активы"
msgstr "Актив"
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: account
#: help:account.journal,currency:0
msgid "The currency used to enter statement"
msgstr "Валюта, использованная в выражении"
msgstr "Валюта, используемая в расчетах"
#. module: account
#: wizard_view:account_use_models,init_form:0
@ -73,11 +73,14 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Этот счет будет использоваться для учета стоимости входящего запаса для "
"текущей категории продуктов"
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
"Не заполняйте для того, чтобы использовать период проверки (счета-фактуры)"
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -87,19 +90,19 @@ msgstr "Результат сверки"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
msgid "Unreconciled entries"
msgstr "Не выверенные проводки"
msgstr "Несогласованные проводки"
#. module: account
#: field:account.invoice.tax,base_code_id:0
#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr ""
msgstr "Базовый Код"
#. module: account
#: view:account.account:0
msgid "Account Statistics"
msgstr ""
msgstr "Статистика по счету"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_vat_declaration
@ -115,12 +118,12 @@ msgstr "Предок"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr ""
msgstr "Журнальный ваучер"
#. module: account
#: field:account.invoice,residual:0
msgid "Residual"
msgstr ""
msgstr "Остаток"
#. module: account
#: field:account.tax,base_sign:0
@ -139,7 +142,7 @@ msgstr "Неподтвержденные проводки"
#. module: account
#: constraint:account.period:0
msgid "Error ! The duration of the Period(s) is/are invalid. "
msgstr ""
msgstr "Ошибка! Длительность Периода(-ов) недействительна. "
#. module: account
#: view:account.bank.statement.reconcile:0
@ -154,7 +157,7 @@ msgstr "Проводки"
#. module: account
#: selection:account.move.line,centralisation:0
msgid "Debit Centralisation"
msgstr ""
msgstr "Централизация Дебета"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_invoice_state_confirm
@ -172,12 +175,12 @@ msgstr ""
#. module: account
#: view:account.move:0
msgid "Total Credit"
msgstr ""
msgstr "Итого по кредиту"
#. module: account
#: field:account.config.wizard,charts:0
msgid "Charts of Account"
msgstr ""
msgstr "Планы счетов"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
@ -200,7 +203,7 @@ msgstr "Проводки модели счета"
#. module: account
#: field:account.tax.code,sum_period:0
msgid "Period Sum"
msgstr "Сумма периода"
msgstr "Сумма за период"
#. module: account
#: view:account.tax:0
@ -222,7 +225,7 @@ msgstr "Возрастной пробный баланс"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
msgid "Recurrent Entries"
msgstr ""
msgstr "Повторяющиеся проводки"
#. module: account
#: field:account.analytic.line,amount:0
@ -242,7 +245,7 @@ msgstr "Сумма"
#: model:ir.actions.wizard,name:account.wizard_third_party_ledger
#: model:ir.ui.menu,name:account.menu_third_party_ledger
msgid "Partner Ledger"
msgstr ""
msgstr "Книга расчетов с контрагентами"
#. module: account
#: field:product.template,supplier_taxes_id:0
@ -252,12 +255,12 @@ msgstr "Налоги поставщиков"
#. module: account
#: view:account.move:0
msgid "Total Debit"
msgstr ""
msgstr "Итого по дебету"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
msgstr ""
msgstr "Бухгалтерские проводки-"
#. module: account
#: help:account.journal,view_id:0
@ -267,6 +270,11 @@ msgid ""
"in which order. You can create your own view for a faster encoding in each "
"journal."
msgstr ""
"Открывает режим просмотра использовавшийся при вводе проводок или их "
"просмотре в книге проводок. Вид сообщает Open ERP какие поля должны быть "
"видимыми и необходимы в режиме изменения/добавления или только для чтения и "
"в каком порядке. Вы можете создать свой собственный режим просмотра для "
"быстрого редактирования каждой книги проводок."
#. module: account
#: help:account.invoice,date_due:0
@ -277,6 +285,11 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
"При использовании условий платежа, дата валютирования будет сгенерирована "
"автоматически при создании проводок. Если вы оставляете условия платежа и "
"дату валютирования незаполненными - это будет подразумевать прямой платеж. "
"Условия платежа могут включать в себя несколько дат валютирования, например "
"50% сегодня, 50% в следующем месяце."
#. module: account
#: selection:account.tax,type:0
@ -288,7 +301,7 @@ msgstr "Фиксированный"
#: model:ir.actions.report.xml,name:account.account_overdue
#: view:res.company:0
msgid "Overdue Payments"
msgstr ""
msgstr "Просроченные платежи"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@ -325,12 +338,12 @@ msgstr "Рассчитать подписку"
#. module: account
#: rml:account.central.journal:0
msgid "Account Num."
msgstr ""
msgstr "Номер счета"
#. module: account
#: rml:account.analytic.account.analytic.check:0
msgid "Delta Debit"
msgstr ""
msgstr "Дебетовое сальдо"
#. module: account
#: rml:account.invoice:0
@ -350,13 +363,13 @@ msgstr ""
#: field:account.move.line,analytic_account_id:0
#: field:report.hr.timesheet.invoice.journal,account_id:0
msgid "Analytic Account"
msgstr "Счет аналитики"
msgstr "Счет аналитического учета"
#. module: account
#: field:account.tax,child_depend:0
#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
msgstr "Налог на детей"
#. module: account
#: rml:account.central.journal:0
@ -373,7 +386,7 @@ msgstr "Описание счетов"
#. module: account
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Ошибка! Вы не можете создать рекурсивные счета аналитического учета."
#. module: account
#: field:account.bank.statement.reconcile,total_entry:0
@ -395,7 +408,7 @@ msgstr "Разрешить отменяющие проводки"
#: model:process.transition,name:account.process_transition_paymentorderbank0
#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
msgid "Payment Reconcilation"
msgstr ""
msgstr "Согласование платежа"
#. module: account
#: model:account.journal,name:account.expenses_journal
@ -415,17 +428,17 @@ msgstr "Дата:"
#. module: account
#: selection:account.account.type,sign:0
msgid "Negative"
msgstr "Отрицательная"
msgstr "Отрицательный"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "Имя счета/контрагента"
#. module: account
#: selection:account.move,type:0
msgid "Contra"
msgstr ""
msgstr "Сторно"
#. module: account
#: field:account.analytic.account,state:0
@ -452,7 +465,7 @@ msgstr "Специальные расчеты"
#. module: account
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement with/without reconciliation from draft statement"
msgstr ""
msgstr "Подтвердите платеж по счету (с согласованием или без)"
#. module: account
#: wizard_view:account.move.bank.reconcile,init:0
@ -464,7 +477,7 @@ msgstr "Сверка банковской выписки"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Дисконт (%)"
#. module: account
#: rml:account.general.ledger:0
@ -486,6 +499,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Включить, если сумма налога должна быть включена в расчетную сумму перед "
"расчетом других налогов."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -528,7 +543,7 @@ msgstr ""
#. module: account
#: field:account.invoice,reconciled:0
msgid "Paid/Reconciled"
msgstr "Оплачено / сверено"
msgstr "Оплаченный/согласованный"
#. module: account
#: field:account.account.type,close_method:0
@ -648,7 +663,7 @@ msgstr "Количество к списанию"
#. module: account
#: help:account.fiscalyear,company_id:0
msgid "Keep empty if the fiscal year belongs to several companies."
msgstr ""
msgstr "Оставить пустым если финансовый год принадлежит нескольким компаниям"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
@ -681,17 +696,17 @@ msgstr ""
#. module: account
#: field:account.invoice,comment:0
msgid "Additional Information"
msgstr ""
msgstr "Дополнительная информация"
#. module: account
#: selection:account.invoice,type:0
msgid "Customer Refund"
msgstr "Возвпат денег клиенту"
msgstr "Возврат денег клиенту"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
msgid "Select the Period for Analysis"
msgstr ""
msgstr "Выберите период для проведения анализа"
#. module: account
#: field:account.tax,ref_tax_sign:0
@ -704,7 +719,7 @@ msgstr ""
#. module: account
#: help:res.partner,credit:0
msgid "Total amount this customer owes you."
msgstr ""
msgstr "Общая сумма долга покупателя перед вами"
#. module: account
#: view:account.move.line:0
@ -741,7 +756,7 @@ msgstr "Журнал проводок конца года"
#: view:product.product:0
#: view:product.template:0
msgid "Purchase Properties"
msgstr ""
msgstr "Свойства покупки"
#. module: account
#: model:process.node,note:account.process_node_paymententries0
@ -777,7 +792,7 @@ msgstr ""
#. module: account
#: field:account.account.type,partner_account:0
msgid "Partner account"
msgstr "Счет партнера"
msgstr "Счет контрагента"
#. module: account
#: wizard_view:account.subscription.generate,init:0
@ -798,7 +813,7 @@ msgstr "Книга расходов"
#: wizard_view:account.partner.balance.report,init:0
#: wizard_view:account.third_party_ledger.report,init:0
msgid "(Keep empty for all open fiscal years)"
msgstr ""
msgstr "Оставить пустым для всех открытых финансовых лет"
#. module: account
#: field:account.invoice,move_lines:0
@ -822,11 +837,13 @@ msgid ""
"These types are defined according to your country. The type contain more "
"information about the account and it's specificities."
msgstr ""
"Данные типы определены в соответствии с вашей страной. Тип содержит больше "
"информации о счете и его особенностях."
#. module: account
#: selection:account.automatic.reconcile,init,power:0
msgid "6"
msgstr ""
msgstr "6"
#. module: account
#: model:ir.ui.menu,name:account.next_id_30
@ -877,7 +894,7 @@ msgstr "Требуется"
#: field:product.category,property_account_expense_categ:0
#: field:product.template,property_account_expense:0
msgid "Expense Account"
msgstr "Расходный счет"
msgstr "Счет расходов"
#. module: account
#: wizard_field:account.move.line.reconcile,addendum,journal_id:0
@ -946,7 +963,7 @@ msgstr ""
#. module: account
#: help:account.journal,user_id:0
msgid "The user responsible for this journal"
msgstr ""
msgstr "Пользователь ответственный за этот журнал"
#. module: account
#: field:account.journal,default_debit_account_id:0
@ -1679,7 +1696,7 @@ msgstr "Расходы и доходы"
#. module: account
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
msgstr ""
msgstr "Ошибка! Вы не можете создать рекурсивные счета."
#. module: account
#: rml:account.tax.code.entries:0
@ -1814,7 +1831,7 @@ msgstr "Персональный менеджер"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "to :"
msgstr ""
msgstr "к :"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,debit:0
@ -1914,7 +1931,7 @@ msgstr "Позиция счета подписки"
#: selection:account.partner.balance.report,init,state:0
#: selection:account.third_party_ledger.report,init,state:0
msgid "No Filter"
msgstr ""
msgstr "Без Фильтра"
#. module: account
#: field:account.payment.term.line,days:0
@ -1980,7 +1997,7 @@ msgstr "Неправильный XML для просмотра архитект
#. module: account
#: wizard_field:account.partner.balance.report,init,date1:0
msgid " Start date"
msgstr ""
msgstr " Начать дату"
#. module: account
#: wizard_view:account.analytic.account.journal.report,init:0

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

5932
addons/account/i18n/sk.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 06:41+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2009-12-10 13:46+0000\n"
"Last-Translator: Simon Vidmar <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-19 04:35+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -35,17 +35,17 @@ msgstr "Neplačani računi dobaviteljem"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
msgid "Entries Encoding"
msgstr ""
msgstr "Knjiženje"
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Določite besedilo opomina za zapadla plačila."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement from draft"
msgstr ""
msgstr "Potrdite predlog izpiska."
#. module: account
#: model:account.account.type,name:account.account_type_asset
@ -73,6 +73,8 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Ta konto bo uporabljen za vrednotenje prevzetih zalog za izbrano kategorijo "
"proizvodov."
#. module: account
#: help:account.invoice,period_id:0
@ -111,12 +113,12 @@ msgstr "Natisni davčno poročilo"
#. module: account
#: field:account.account,parent_id:0
msgid "Parent"
msgstr "Starš"
msgstr "Nadrejeni"
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr ""
msgstr "Dnevnik za kupone."
#. module: account
#: field:account.invoice,residual:0
@ -169,6 +171,9 @@ msgid ""
"positive, it gives the day of the next month. Set 0 for net days (otherwise "
"it's based on the beginning of the month)."
msgstr ""
"Dan v mesecu, -1 za zadnji dan tekočega meseca. Če pozitiven, bo pomenil dan "
"v naslednjem mesecu. izberite 0 za točno število dni (drugače se izračuna od "
"začetka meseca)."
#. module: account
#: view:account.move:0
@ -183,7 +188,7 @@ msgstr "Kontni načrt"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
msgid "Move line select"
msgstr ""
msgstr "Izberite knjižbo."
#. module: account
#: rml:account.journal.period.print:0
@ -218,12 +223,12 @@ msgstr "Vnosna vrstica konta"
#. module: account
#: wizard_view:account.aged.trial.balance,init:0
msgid "Aged Trial Balance"
msgstr ""
msgstr "Izpis po zapadlosti"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
msgid "Recurrent Entries"
msgstr ""
msgstr "Ponavljajoče se knjižbe"
#. module: account
#: field:account.analytic.line,amount:0
@ -243,7 +248,7 @@ msgstr "Znesek"
#: model:ir.actions.wizard,name:account.wizard_third_party_ledger
#: model:ir.ui.menu,name:account.menu_third_party_ledger
msgid "Partner Ledger"
msgstr ""
msgstr "Saldakonti"
#. module: account
#: field:product.template,supplier_taxes_id:0
@ -258,7 +263,7 @@ msgstr "Skupaj breme"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
msgstr ""
msgstr "Računovodske knjižbe"
#. module: account
#: help:account.journal,view_id:0
@ -351,13 +356,13 @@ msgstr "Transakcije v breme"
#: field:account.move.line,analytic_account_id:0
#: field:report.hr.timesheet.invoice.journal,account_id:0
msgid "Analytic Account"
msgstr "Stroškovno mesto"
msgstr "Analitični konto"
#. module: account
#: field:account.tax,child_depend:0
#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
msgstr "Izračunaj davke po podrejenih zapisih"
#. module: account
#: rml:account.central.journal:0
@ -396,12 +401,12 @@ msgstr "Omogoči storniranje vknjižb"
#: model:process.transition,name:account.process_transition_paymentorderbank0
#: model:process.transition,name:account.process_transition_paymentorderreconcilation0
msgid "Payment Reconcilation"
msgstr ""
msgstr "Zapiranje plačil"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
msgstr ""
msgstr "Dnevnik provizij"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
@ -421,7 +426,7 @@ msgstr "Negativno"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "Ime partnerja"
#. module: account
#: selection:account.move,type:0
@ -453,7 +458,7 @@ msgstr "Poseben izračun"
#. module: account
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement with/without reconciliation from draft statement"
msgstr ""
msgstr "Na podlagi osnutka potrdite izpisek z ali brez zapiranja plačil"
#. module: account
#: wizard_view:account.move.bank.reconcile,init:0
@ -479,7 +484,7 @@ msgstr "Sklic"
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
msgstr ""
msgstr "Uporaba davka v"
#. module: account
#: help:account.tax.template,include_base_amount:0
@ -487,6 +492,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Izberite če je potrebno davek vključiti v osnovo pred obračunom naslednjih "
"davkov."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -502,7 +509,7 @@ msgstr "Statistika stroškovnih mest"
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form
msgid "Tax Code Templates"
msgstr ""
msgstr "Predloge davčnih šifer"
#. module: account
#: view:account.invoice:0
@ -513,12 +520,12 @@ msgstr "Račun dobavitelja"
#: model:process.transition,name:account.process_transition_reconcilepaid0
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "Reconcile Paid"
msgstr ""
msgstr "Zapri plačano"
#. module: account
#: wizard_field:account.chart,init,target_move:0
msgid "Target Moves"
msgstr ""
msgstr "Ciljni premik"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@ -539,13 +546,13 @@ msgstr "Metoda zaključevanja"
#. module: account
#: field:account.tax.template,include_base_amount:0
msgid "Include in Base Amount"
msgstr ""
msgstr "Vključiti v osnovo"
#. module: account
#: field:account.tax,ref_base_code_id:0
#: field:account.tax.template,ref_base_code_id:0
msgid "Refund Base Code"
msgstr ""
msgstr "Šifra osnove za vračilo"
#. module: account
#: view:account.invoice.line:0
@ -569,6 +576,9 @@ msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
msgstr ""
"Število dni, ki jih je potrebno dodati pred izračunom dneva v mesecu. Če je "
"Datum=15.1, Število dni=22, Dan v mesecu=-1, potem to pomeni, da je datum "
"zapadlosti 28.2.."
#. module: account
#: model:ir.model,name:account.model_account_tax
@ -583,7 +593,7 @@ msgstr "Datum izpisa"
#. module: account
#: rml:account.general.ledger:0
msgid "Mvt"
msgstr ""
msgstr "Premik"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_aged_trial_balance
@ -602,17 +612,19 @@ msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
msgstr ""
"Polje zaporedna številka se uporablja za urejanje resursov in sicer od "
"manjših k večjim."
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
#: wizard_view:account.analytic.line,init:0
msgid "(Keep empty to open the current situation)"
msgstr ""
msgstr "(Postite prazno da se odpre terenutno stanje)"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
msgid "Fiscal Position Accounts Mapping"
msgstr ""
msgstr "Preslikava kontov glede na davčno pozicijo"
#. module: account
#: field:account.analytic.account,contact_id:0
@ -649,7 +661,7 @@ msgstr "Znesek odpisa"
#. module: account
#: help:account.fiscalyear,company_id:0
msgid "Keep empty if the fiscal year belongs to several companies."
msgstr ""
msgstr "Postite prazno, če poslovno leto pripada večim podjetjem"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
@ -677,7 +689,7 @@ msgstr "mesec"
#. module: account
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr ""
msgstr "Pridružen partner"
#. module: account
#: field:account.invoice,comment:0
@ -736,7 +748,7 @@ msgstr "Podpiši za nadrejenega"
#. module: account
#: field:account.fiscalyear,end_journal_period_id:0
msgid "End of Year Entries Journal"
msgstr ""
msgstr "Dnevnik knjižb za zaključek leta"
#. module: account
#: view:product.product:0
@ -804,7 +816,7 @@ msgstr "(Prazno za vsa odprta davčna leta)"
#. module: account
#: field:account.invoice,move_lines:0
msgid "Move Lines"
msgstr ""
msgstr "Postavke knjižb"
#. module: account
#: model:ir.model,name:account.model_account_config_wizard
@ -823,6 +835,8 @@ msgid ""
"These types are defined according to your country. The type contain more "
"information about the account and it's specificities."
msgstr ""
"Tipi so določeni glede na državo. Tip vsebuje več informacij o kontu in "
"njegovih posebnostih."
#. module: account
#: selection:account.automatic.reconcile,init,power:0
@ -894,7 +908,7 @@ msgstr "Valuta zneska"
#. module: account
#: field:account.chart.template,property_account_expense_categ:0
msgid "Expense Category Account"
msgstr ""
msgstr "Konto vrste stroškov"
#. module: account
#: wizard_field:account.fiscalyear.close,init,fy2_id:0
@ -1033,7 +1047,7 @@ msgstr "Otroci"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax
msgid "Fiscal Position Taxes Mapping"
msgstr ""
msgstr "Preslikava davkov glede na davčno pozicijo"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree2_new
@ -1072,7 +1086,7 @@ msgstr "Izpiši dnevnik analitike"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Voucher Nb"
msgstr ""
msgstr "Kupon Nb"
#. module: account
#: help:account.payment.term.line,sequence:0
@ -1091,7 +1105,7 @@ msgstr "Odpis skupaj"
#. module: account
#: view:account.tax.template:0
msgid "Compute Code for Taxes included prices"
msgstr ""
msgstr "Koda izračuna za davke v cenah"
#. module: account
#: view:account.invoice.tax:0
@ -1148,13 +1162,13 @@ msgstr "Dnevnik prodaje"
#. module: account
#: help:account.model.line,amount_currency:0
msgid "The amount expressed in an optional other currency."
msgstr ""
msgstr "Znesek izražen v poljubni drugi valuti"
#. module: account
#: view:account.fiscal.position.template:0
#: field:account.fiscal.position.template,name:0
msgid "Fiscal Position Template"
msgstr ""
msgstr "Vzorec za davčno pozicijo"
#. module: account
#: field:account.payment.term,line_ids:0
@ -1220,7 +1234,7 @@ msgstr "Valute družba"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
msgid "Fiscal Position Template Account Mapping"
msgstr ""
msgstr "Preslikava kontov za vzorec za davčno pozicijo"
#. module: account
#: field:account.analytic.account,parent_id:0
@ -1230,7 +1244,7 @@ msgstr "Nadrejeni analitični konto"
#. module: account
#: wizard_button:account.move.line.reconcile,init_partial,addendum:0
msgid "Reconcile With Write-Off"
msgstr ""
msgstr "Zapri z odpisom"
#. module: account
#: field:account.move.line,tax_amount:0
@ -1283,7 +1297,7 @@ msgstr "Neusklajene transakcije"
#: field:account.fiscal.position,tax_ids:0
#: field:account.fiscal.position.template,tax_ids:0
msgid "Tax Mapping"
msgstr ""
msgstr "Preslikava davkov"
#. module: account
#: view:account.config.wizard:0
@ -1326,7 +1340,7 @@ msgstr "Sporočilo"
#. module: account
#: model:process.node,note:account.process_node_supplierpaymentorder0
msgid "Select invoices you want to pay and manages advances"
msgstr ""
msgstr "Izbere račune, ki jih želite plačati in upravlja z avansi"
#. module: account
#: selection:account.account,type:0
@ -1354,13 +1368,13 @@ msgstr "Analitične vrstice"
#. module: account
#: help:account.tax,type:0
msgid "The computation method for the tax amount."
msgstr ""
msgstr "Metoda izračuna za znesek davka"
#. module: account
#: model:process.node,note:account.process_node_accountingentries0
#: model:process.node,note:account.process_node_supplieraccountingentries0
msgid "Validated accounting entries."
msgstr ""
msgstr "Potrjene knjižbe"
#. module: account
#: wizard_view:account.move.line.unreconcile,init:0
@ -1467,6 +1481,8 @@ msgid ""
"The partner bank account to pay\n"
"Keep empty to use the default"
msgstr ""
"Partnerjev bančni račun\n"
"Pustite prazno za privzeti račun"
#. module: account
#: field:res.partner,debit:0
@ -1603,7 +1619,7 @@ msgstr "Konti terjatev in obveznosti"
#: view:account.subscription:0
#: field:account.subscription,lines_id:0
msgid "Subscription Lines"
msgstr ""
msgstr "Postavke naročnine"
#. module: account
#: selection:account.analytic.journal,type:0
@ -1712,7 +1728,7 @@ msgstr "Znova odpri"
#. module: account
#: wizard_view:account.fiscalyear.close,init:0
msgid "Are you sure you want to create entries?"
msgstr ""
msgstr "prosim potrdite knjiženje"
#. module: account
#: field:account.tax,include_base_amount:0
@ -1733,7 +1749,7 @@ msgstr "Prekliči uskladitev vknjižb"
#. module: account
#: model:process.node,note:account.process_node_supplierdraftinvoices0
msgid "Pre-generated invoice from control"
msgstr ""
msgstr "Predgeneriran račun iz kontrole"
#. module: account
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
@ -1756,7 +1772,7 @@ msgstr "Od"
#: model:process.node,note:account.process_node_reconciliation0
#: model:process.node,note:account.process_node_supplierreconciliation0
msgid "Reconciliation of entries from invoice(s) and payment(s)"
msgstr ""
msgstr "Zapiranje računov in plačil"
#. module: account
#: wizard_view:account.central.journal.report,init:0
@ -1802,11 +1818,13 @@ msgid ""
"The fiscal position will determine taxes and the accounts used for the the "
"partner."
msgstr ""
"Davčna pozicija bo določila davke in konte, ki se bodo uporabljali za tega "
"partnerja."
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "Date or Code"
msgstr ""
msgstr "Datum ali šifra"
#. module: account
#: field:account.analytic.account,user_id:0
@ -2023,6 +2041,9 @@ msgid ""
"'draft' state and instead goes directly to the 'posted state' without any "
"manual validation."
msgstr ""
"Odkljukajte ta kvadratek, če ne želite, da bo za vknjižbe na tem kontu "
"potrebna dodatna ročna potrditev prehoda statusa iz \"osnutka\" v "
"\"knjiženo\" (status \"knjiženo\" bodo pridobile avtomatično)."
#. module: account
#: field:account.bank.statement.line,partner_id:0
@ -2042,6 +2063,7 @@ msgid ""
"Unique number of the invoice, computed automatically when the invoice is "
"created."
msgstr ""
"Zaporedna številka računa, izračunana avtomatično ob kreiranju računa."
#. module: account
#: rml:account.invoice:0
@ -2071,12 +2093,12 @@ msgstr "Proces računa stranke"
#. module: account
#: rml:account.invoice:0
msgid "Fiscal Position Remark :"
msgstr ""
msgstr "Opomba za davčno pozicijo"
#. module: account
#: wizard_field:account.fiscalyear.close,init,period_id:0
msgid "Opening Entries Period"
msgstr ""
msgstr "Obdobje za otvoritve"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves
@ -2117,7 +2139,7 @@ msgstr "Naplačani računi"
#. module: account
#: model:process.transition,name:account.process_transition_paymentreconcile0
msgid "Payment Reconcile"
msgstr ""
msgstr "Zapiranje plačil"
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_reconciliation_form
@ -2145,7 +2167,7 @@ msgstr "Analitičen vnos"
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
msgstr "Sporočilo za opomin za zapadle postavke"
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_tree
@ -2187,7 +2209,7 @@ msgstr "Pripravljeni računi dobaviteljev"
#. module: account
#: wizard_field:account.invoice.refund,init,period:0
msgid "Force period"
msgstr ""
msgstr "Vsili obdobje"
#. module: account
#: selection:account.account.type,close_method:0
@ -2203,7 +2225,7 @@ msgstr "Zgoščeno"
#. module: account
#: field:account.chart.template,account_root_id:0
msgid "Root Account"
msgstr ""
msgstr "Osnovni konto"
#. module: account
#: rml:account.overdue:0
@ -2236,17 +2258,17 @@ msgstr ""
#: model:ir.actions.wizard,name:account.wizard_generate_subscription
#: model:ir.ui.menu,name:account.menu_generate_subscription
msgid "Create subscription entries"
msgstr ""
msgstr "Kreiraj periodične vnose"
#. module: account
#: wizard_field:account.fiscalyear.close,init,journal_id:0
msgid "Opening Entries Journal"
msgstr ""
msgstr "Dnevnik otvoritev"
#. module: account
#: view:account.config.wizard:0
msgid "Create a Fiscal Year"
msgstr ""
msgstr "Kreiraj poslovno leto"
#. module: account
#: field:product.template,taxes_id:0
@ -2265,7 +2287,7 @@ msgstr "Datum računa"
#: help:account.third_party_ledger.report,init,periods:0
#: help:account.vat.declaration,init,periods:0
msgid "All periods if empty"
msgstr ""
msgstr "Če prazno, potem vsa obdobja"
#. module: account
#: model:account.account.type,name:account.account_type_liability
@ -2280,7 +2302,7 @@ msgstr "2"
#. module: account
#: wizard_view:account.chart,init:0
msgid "(If you do not select Fiscal year it will take all open fiscal years)"
msgstr ""
msgstr "( Če ne izberete poslovnega leta bo izbrano tekoče poslovno leto)"
#. module: account
#: help:account.invoice.tax,base_code_id:0
@ -2327,7 +2349,7 @@ msgstr "Vrsta davka"
#. module: account
#: model:process.transition,name:account.process_transition_statemententries0
msgid "Statement Entries"
msgstr ""
msgstr "Postavke izpiska"
#. module: account
#: field:account.analytic.line,user_id:0
@ -2354,7 +2376,7 @@ msgstr ""
#. module: account
#: rml:account.journal.period.print:0
msgid "Voucher No"
msgstr ""
msgstr "Številka kupona"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_automatic_reconcile
@ -2370,12 +2392,12 @@ msgstr "Uvozi račun"
#. module: account
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
msgid "and Journals"
msgstr ""
msgstr "in dnevniki"
#. module: account
#: view:account.tax:0
msgid "Account Tax"
msgstr ""
msgstr "Davek za konto"
#. module: account
#: field:account.analytic.line,move_id:0
@ -2385,7 +2407,7 @@ msgstr "Postavka prenosa"
#. module: account
#: field:account.bank.accounts.wizard,acc_no:0
msgid "Account No."
msgstr ""
msgstr "Številka konta"
#. module: account
#: help:account.tax,child_depend:0
@ -2393,11 +2415,13 @@ msgid ""
"Set if the tax computation is based on the computation of child taxes rather "
"than on the total amount."
msgstr ""
"Izberite če izračun davka temelji na izračunih podrejenih davkov in ne na "
"celotnem znesku."
#. module: account
#: rml:account.central.journal:0
msgid "Journal Code"
msgstr ""
msgstr "Šifra dnevnika"
#. module: account
#: help:account.tax,applicable_type:0
@ -2630,12 +2654,12 @@ msgstr "Stanje bilance"
#. module: account
#: field:wizard.company.setup,overdue_msg:0
msgid "Overdue Payment Message"
msgstr ""
msgstr "Besedilo za opomin za zapadle terjatve"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
msgid "Tax Code Template"
msgstr ""
msgstr "Vzorec davčnih šifer"
#. module: account
#: rml:account.partner.balance:0
@ -2660,7 +2684,7 @@ msgstr "Postopek zaključevanja leta"
#. module: account
#: model:ir.ui.menu,name:account.menu_generic_report
msgid "Generic Reports"
msgstr ""
msgstr "Splošna poročila"
#. module: account
#: wizard_field:account.automatic.reconcile,init,power:0
@ -2701,7 +2725,7 @@ msgstr "Analitični kontni plan"
#. module: account
#: wizard_view:account.analytic.line,init:0
msgid "View Account Analytic Lines"
msgstr ""
msgstr "Pregled analitičnih vknjižb"
#. module: account
#: wizard_view:account.move.validate,init:0
@ -2732,7 +2756,7 @@ msgstr "Neobdavčeno"
#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance
#: model:ir.actions.wizard,name:account.account_analytic_account_inverted_balance_report
msgid "Inverted Analytic Balance"
msgstr ""
msgstr "Obrnjena bilanca po analitičnih kontih"
#. module: account
#: field:account.tax,applicable_type:0
@ -2765,12 +2789,12 @@ msgstr "Naziv"
#: wizard_view:account.move.line.reconcile,init_full:0
#: wizard_view:account.move.line.reconcile,init_partial:0
msgid "Reconciliation transactions"
msgstr ""
msgstr "transakcije zapiranja"
#. module: account
#: wizard_field:account.aged.trial.balance,init,direction_selection:0
msgid "Analysis Direction"
msgstr ""
msgstr "Smer analize"
#. module: account
#: wizard_button:populate_statement_from_inv,init,go:0
@ -2856,12 +2880,12 @@ msgstr "S spoštovanjem,"
#. module: account
#: model:ir.model,name:account.model_report_hr_timesheet_invoice_journal
msgid "Analytic account costs and revenues"
msgstr ""
msgstr "Prihodki in stroški na analitičnem kontu"
#. module: account
#: wizard_view:account.invoice.refund,init:0
msgid "Are you sure you want to refund this invoice ?"
msgstr ""
msgstr "Res želite narediti dobropis za ta račun?"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_paid_open
@ -2882,7 +2906,7 @@ msgstr "Konto davkov"
#. module: account
#: model:process.transition,note:account.process_transition_statemententries0
msgid "From statement, create entries"
msgstr ""
msgstr "Iz izpiska naredi vknjižbe"
#. module: account
#: field:account.analytic.account,complete_name:0
@ -2929,7 +2953,7 @@ msgstr "Računovodstvo"
#. module: account
#: view:account.fiscal.position.template:0
msgid "Taxes Mapping"
msgstr ""
msgstr "Preslikava davkov"
#. module: account
#: wizard_view:account.move.line.unreconcile,init:0
@ -2941,7 +2965,7 @@ msgstr ""
#: model:process.transition,note:account.process_transition_paymentorderbank0
#: model:process.transition,note:account.process_transition_paymentorderreconcilation0
msgid "Reconcilation of entries from payment order."
msgstr ""
msgstr "Zapiranje vknjižb plačilnega naloga"
#. module: account
#: field:account.bank.statement,move_line_ids:0
@ -2978,7 +3002,7 @@ msgstr "Davčna stopnja"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "Analytic Journal -"
msgstr ""
msgstr "Analitični dnevnik"
#. module: account
#: rml:account.analytic.account.analytic.check:0
@ -3013,7 +3037,7 @@ msgstr ""
#: selection:account.analytic.journal,type:0
#: selection:account.journal,type:0
msgid "Situation"
msgstr ""
msgstr "Stanje"
#. module: account
#: rml:account.invoice:0
@ -4756,7 +4780,7 @@ msgstr ""
#: selection:account.partner.balance.report,init,result_selection:0
#: selection:account.third_party_ledger.report,init,result_selection:0
msgid "Receivable Accounts"
msgstr ""
msgstr "Konti terjatev"
#. module: account
#: wizard_button:account.move.line.unreconcile.select,init,open:0
@ -4845,7 +4869,7 @@ msgstr "Potrdi"
#. module: account
#: wizard_view:account.account.balance.report,account_selection:0
msgid "Select parent account"
msgstr ""
msgstr "Izberite nadrejeni konto"
#. module: account
#: field:account.account.template,parent_id:0
@ -5292,7 +5316,7 @@ msgstr "Poslovno leto"
#. module: account
#: wizard_button:account.analytic.line,init,open:0
msgid "Open Entries"
msgstr ""
msgstr "Odprte postavke"
#. module: account
#: selection:account.analytic.account,type:0
@ -5392,7 +5416,7 @@ msgstr "Izdani predračuni"
#. module: account
#: field:account.subscription,period_total:0
msgid "Number of Periods"
msgstr ""
msgstr "Število obdobij"
#. module: account
#: wizard_field:account.analytic.account.analytic.check.report,init,date2:0

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -7,30 +7,30 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-18 15:14+0000\n"
"Last-Translator: Jay (Open ERP) <jvo@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-16 11:32+0000\n"
"Last-Translator: Treecko <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2010-02-17 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
#: field:account.tax.template,description:0
msgid "Internal Name"
msgstr ""
msgstr "Internt namn"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr ""
msgstr "Skattekonto kod"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
#: model:ir.ui.menu,name:account.menu_action_invoice_tree9
msgid "Unpaid Supplier Invoices"
msgstr ""
msgstr "Obetalda leverantörsfakturor"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_entries
@ -40,7 +40,7 @@ msgstr ""
#. module: account
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
msgid "Specify The Message for the Overdue Payment Report."
msgstr ""
msgstr "Ange meddelande till rapporten försenade betalningar."
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 13:39+0000\n"
"Last-Translator: sudarat Thongsamai <sudarat.t@almacom.co.th>\n"
"PO-Revision-Date: 2009-12-23 10:50+0000\n"
"Last-Translator: Songpon Phusing <p.songpon@gmail.com>\n"
"Language-Team: Thai <th@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: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-24 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
#: field:account.tax.template,description:0
msgid "Internal Name"
msgstr ""
msgstr "ชื่อเรียกภายใน"
#. module: account
#: view:account.tax.code:0

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-16 01:49+0000\n"
"PO-Revision-Date: 2010-01-11 07:51+0000\n"
"Last-Translator: Nguyễn Thịnh <thinhnverp@gmail.com>\n"
"Language-Team: Vietnamese <vi@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: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2010-01-12 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -73,34 +73,35 @@ msgstr ""
msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
msgstr "tài khoản này sẽ được dùng cho giá của sản phẩm đưa vào danh mục"
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
"Giữ sản phẩm nào để sử dụng khoảng thời gian xác nhận của (hoá đơn) ngày"
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
msgid "Reconciliation result"
msgstr ""
msgstr "kết quả hòa giả"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled
msgid "Unreconciled entries"
msgstr ""
msgstr "không thể hòa giải"
#. module: account
#: field:account.invoice.tax,base_code_id:0
#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr ""
msgstr "mã số cơ bản"
#. module: account
#: view:account.account:0
msgid "Account Statistics"
msgstr ""
msgstr "thống kê tài chính"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_vat_declaration
@ -121,7 +122,7 @@ msgstr ""
#. module: account
#: field:account.invoice,residual:0
msgid "Residual"
msgstr ""
msgstr "số dư"
#. module: account
#: field:account.tax,base_sign:0
@ -610,6 +611,8 @@ msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
msgstr ""
"Các lĩnh vực chuỗi được dùng để sắp các nguồn lực từ các chuỗi thấp hơn cho "
"những người cao"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@ -657,12 +660,12 @@ msgstr ""
#. module: account
#: help:account.fiscalyear,company_id:0
msgid "Keep empty if the fiscal year belongs to several companies."
msgstr ""
msgstr "Hãy bỏ trống nếu năm tài chính thuộc về một số công ty"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
msgstr "phân tích tài chính kế toán"
#. module: account
#: rml:account.overdue:0

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-17 05:00+0000\n"
"X-Launchpad-Export-Date: 2009-12-16 05:13+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from operator import itemgetter
from osv import fields, osv
import netsvc
class account_installer(osv.osv_memory):
_name = 'account.installer'
_inherit = 'res.config.installer'
def _get_charts(self, cr, uid, context=None):
modules = self.pool.get('ir.module.module')
ids = modules.search(cr, uid, [('category_id','=','Account Charts')])
return list(
sorted(((m.name, m.shortdesc)
for m in modules.browse(cr, uid, ids)),
key=itemgetter(1)))
_columns = {
# Accounting
'charts':fields.selection(_get_charts, 'Chart of Accounts',
required=True,
help="Installs localized accounting charts to match as closely as "
"possible the accounting needs of your company based on your "
"country."),
'account_analytic_default':fields.boolean('Analytic Accounting',
help="Automatically selects analytic accounts based on various "
"criteria."),
'account_analytic_plans':fields.boolean('Multiple Analytic Plans',
help="Allows invoice lines to impact multiple analytic accounts "
"simultaneously."),
'account_payment':fields.boolean('Suppliers Payment Management',
help="Streamlines invoice payment and creates hooks to plug "
"automated payment systems in."),
'account_followup':fields.boolean('Followups Management',
help="Helps you generate reminder letters for unpaid invoices, "
"including multiple levels of reminding and customized "
"per-partner policies."),
'account_asset':fields.boolean('Assets Management',
help="Enables asset management in the accounting application, "
"including asset categories and usage periods.")
}
_defaults = {
'account_analytic_default':True,
}
def modules_to_install(self, cr, uid, ids, context=None):
modules = super(account_installer, self).modules_to_install(
cr, uid, ids, context=context)
chart = self.read(cr, uid, ids, ['charts'],
context=context)[0]['charts']
self.logger.notifyChannel(
'installer', netsvc.LOG_DEBUG,
'Installing chart of accounts %s'%chart)
return modules | set([chart])
account_installer()

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -29,17 +29,17 @@ from mx.DateTime import RelativeDateTime
from tools import config
from tools.translate import _
class fiscalyear_seq(osv.osv):
_name = "fiscalyear.seq"
_description = "Maintains Invoice sequences with Fiscal Year"
_rec_name = 'fiscalyear_id'
_columns = {
'journal_id': fields.many2one('account.journal', 'Journal'),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year',required=True),
'sequence_id':fields.many2one('ir.sequence', 'Sequence',required=True),
}
fiscalyear_seq()
#class fiscalyear_seq(osv.osv):
# _name = "fiscalyear.seq"
# _description = "Maintains Invoice sequences with Fiscal Year"
# _rec_name = 'fiscalyear_id'
# _columns = {
# 'journal_id': fields.many2one('account.journal', 'Journal'),
# 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year',required=True),
# 'sequence_id':fields.many2one('ir.sequence', 'Sequence',required=True),
# }
#
#fiscalyear_seq()
class account_invoice(osv.osv):
def _amount_all(self, cr, uid, ids, name, args, context=None):
@ -61,9 +61,14 @@ class account_invoice(osv.osv):
if context is None:
context = {}
type_inv = context.get('type', 'out_invoice')
user = self.pool.get('res.users').browse(cr, uid, uid)
company_id = context.get('company_id', user.company_id.id)
type2journal = {'out_invoice': 'sale', 'in_invoice': 'purchase', 'out_refund': 'sale', 'in_refund': 'purchase'}
refund_journal = {'out_invoice': False, 'in_invoice': False, 'out_refund': True, 'in_refund': True}
journal_obj = self.pool.get('account.journal')
res = journal_obj.search(cr, uid, [('type', '=', type2journal.get(type_inv, 'sale'))], limit=1)
res = journal_obj.search(cr, uid, [('type', '=', type2journal.get(type_inv, 'sale')),
('company_id', '=', company_id),('refund_journal', '=', refund_journal.get(type_inv, False))],
limit=1)
if res:
return res[0]
else:
@ -128,7 +133,7 @@ class account_invoice(osv.osv):
else:
debit+=debit_tmp
credit+=credit_tmp
if not inv.amount_total:
result = 0.0
elif inv.type in ('out_invoice','in_refund'):
@ -139,7 +144,7 @@ class account_invoice(osv.osv):
result = inv.amount_total - amount
# Use is_zero function to avoid rounding trouble => should be fixed into ORM
res[inv.id] = not self.pool.get('res.currency').is_zero(cr, uid, inv.company_id.currency_id,result) and result or 0.0
return res
def _get_lines(self, cr, uid, ids, name, arg, context=None):
@ -149,7 +154,9 @@ class account_invoice(osv.osv):
if not move_lines:
res[id] = []
continue
res[id] = []
data_lines = self.pool.get('account.move.line').browse(cr,uid,move_lines)
partial_ids = []# Keeps the track of ids where partial payments are done with payment terms
for line in data_lines:
ids_line = []
if line.reconcile_id:
@ -157,7 +164,8 @@ class account_invoice(osv.osv):
elif line.reconcile_partial_id:
ids_line = line.reconcile_partial_id.line_partial_ids
l = map(lambda x: x.id, ids_line)
res[id]=[x for x in l if x <> line.id]
partial_ids.append(line.id)
res[id] =[x for x in l if x <> line.id and x not in partial_ids]
return res
def _get_invoice_line(self, cr, uid, ids, context=None):
@ -179,11 +187,14 @@ class account_invoice(osv.osv):
src = []
lines = []
for m in self.pool.get('account.move.line').browse(cr, uid, moves, context):
temp_lines = []#Added temp list to avoid duplicate records
if m.reconcile_id:
lines += map(lambda x: x.id, m.reconcile_id.line_id)
temp_lines = map(lambda x: x.id, m.reconcile_id.line_id)
elif m.reconcile_partial_id:
lines += map(lambda x: x.id, m.reconcile_partial_id.line_partial_ids)
temp_lines = map(lambda x: x.id, m.reconcile_partial_id.line_partial_ids)
lines += [x for x in temp_lines if x not in lines]
src.append(m.id)
lines = filter(lambda x: x not in src, lines)
result[invoice.id] = lines
return result
@ -209,7 +220,7 @@ class account_invoice(osv.osv):
move[line.move_id.id] = True
for line in r.line_id:
move[line.move_id.id] = True
invoice_ids = []
if move:
invoice_ids = self.pool.get('account.invoice').search(cr, uid, [('move_id','in',move.keys())], context=context)
@ -220,19 +231,19 @@ class account_invoice(osv.osv):
_order = "number"
_columns = {
'name': fields.char('Description', size=64, select=True,readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this invoice."),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice."),
'type': fields.selection([
('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'),
('out_refund','Customer Refund'),
('in_refund','Supplier Refund'),
],'Type', readonly=True, select=True),
],'Type', readonly=True, select=True, change_default=True),
'number': fields.char('Invoice Number', size=32, readonly=True, help="Unique number of the invoice, computed automatically when the invoice is created."),
'reference': fields.char('Invoice Reference', size=64, help="The partner reference of this invoice."),
'reference_type': fields.selection(_get_reference_type, 'Reference Type',
required=True),
'comment': fields.text('Additional Information'),
'comment': fields.text('Additional Information', translate=True),
'state': fields.selection([
('draft','Draft'),
@ -241,8 +252,12 @@ class account_invoice(osv.osv):
('open','Open'),
('paid','Done'),
('cancel','Cancelled')
],'State', select=True, readonly=True),
],'State', select=True, readonly=True,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \
\n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \
\n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
\n* The \'Done\' state is set automatically when invoice is paid.\
\n* The \'Cancelled\' state is used when user cancel invoice.'),
'date_invoice': fields.date('Date Invoiced', states={'open':[('readonly',True)],'close':[('readonly',True)]}, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'open':[('readonly',True)],'close':[('readonly',True)]},
help="If you use payment terms, the due date will be computed automatically at the generation "\
@ -260,7 +275,7 @@ class account_invoice(osv.osv):
'invoice_line': fields.one2many('account.invoice.line', 'invoice_id', 'Invoice Lines', readonly=True, states={'draft':[('readonly',False)]}),
'tax_line': fields.one2many('account.invoice.tax', 'invoice_id', 'Tax Lines', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('account.move', 'Invoice Movement', readonly=True, help="Link to the automatically generated account moves."),
'move_id': fields.many2one('account.move', 'Invoice Movement', readonly=True, help="Links to the automatically generated Ledger Postings."),
'amount_untaxed': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])),string='Untaxed',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
@ -284,17 +299,17 @@ class account_invoice(osv.osv):
multi='all'),
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True,readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True),
'check_total': fields.float('Total', digits=(16, int(config['price_accuracy'])), states={'open':[('readonly',True)],'close':[('readonly',True)]}),
'reconciled': fields.function(_reconciled, method=True, string='Paid/Reconciled', type='boolean',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ?
'account.move.line': (_get_invoice_from_line, None, 50),
'account.move.reconcile': (_get_invoice_from_reconcile, None, 50),
}, help="The account moves of the invoice have been reconciled with account moves of the payment(s)."),
}, help="The Ledger Postings of the invoice have been reconciled with Ledger Postings of the payment(s)."),
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',
help='The bank account to pay to or to be paid from'),
'move_lines':fields.function(_get_lines , method=True,type='many2many' , relation='account.move.line',string='Move Lines'),
'move_lines':fields.function(_get_lines , method=True,type='many2many' , relation='account.move.line',string='Entry Lines'),
'residual': fields.function(_amount_residual, method=True, digits=(16, int(config['price_accuracy'])),string='Residual',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50),
@ -305,7 +320,7 @@ class account_invoice(osv.osv):
},
help="Remaining amount due."),
'payment_ids': fields.function(_compute_lines, method=True, relation='account.move.line', type="many2many", string='Payments'),
'move_name': fields.char('Account Move', size=64),
'move_name': fields.char('Ledger Posting', size=64),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position')
}
_defaults = {
@ -314,10 +329,9 @@ class account_invoice(osv.osv):
'state': lambda *a: 'draft',
'journal_id': _get_journal,
'currency_id': _get_currency,
'company_id': lambda self, cr, uid, context: \
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.invoice', context=c),
'reference_type': lambda *a: 'none',
'check_total': lambda *a: 0.0,
}
def unlink(self, cr, uid, ids, context=None):
@ -334,9 +348,8 @@ class account_invoice(osv.osv):
# def get_invoice_address(self, cr, uid, ids):
# res = self.pool.get('res.partner').address_get(cr, uid, [part], ['invoice'])
# return [{}]
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
date_invoice=False, payment_term=False, partner_bank_id=False):
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
invoice_addr_id = False
contact_addr_id = False
partner_payment_term = False
@ -352,6 +365,26 @@ class account_invoice(osv.osv):
contact_addr_id = res['contact']
invoice_addr_id = res['invoice']
p = self.pool.get('res.partner').browse(cr, uid, partner_id)
if company_id:
if p.property_account_receivable.company_id.id != company_id and p.property_account_payable.company_id.id != company_id:
rec_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_receivable'),('res_id','=','res.partner,'+str(partner_id)+''),('company_id','=',company_id)])
pay_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_payable'),('res_id','=','res.partner,'+str(partner_id)+''),('company_id','=',company_id)])
if not rec_pro_id:
rec_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_receivable'),('company_id','=',company_id)])
if not pay_pro_id:
pay_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_payable'),('company_id','=',company_id)])
rec_line_data = self.pool.get('ir.property').read(cr,uid,rec_pro_id,['name','value','res_id'])
pay_line_data = self.pool.get('ir.property').read(cr,uid,pay_pro_id,['name','value','res_id'])
rec_res_id = rec_line_data and int(rec_line_data[0]['value'].split(',')[1]) or False
pay_res_id = pay_line_data and int(pay_line_data[0]['value'].split(',')[1]) or False
if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configration Error !'),
_('Can not find account chart for this company, Please Create account.'))
rec_obj_acc=self.pool.get('account.account').browse(cr,uid,[rec_res_id])
pay_obj_acc=self.pool.get('account.account').browse(cr,uid,[pay_res_id])
p.property_account_receivable = rec_obj_acc[0]
p.property_account_payable = pay_obj_acc[0]
if type in ('out_invoice', 'out_refund'):
acc_id = p.property_account_receivable.id
else:
@ -373,12 +406,25 @@ class account_invoice(osv.osv):
if type in ('in_invoice', 'in_refund'):
result['value']['partner_bank'] = bank_id
if payment_term != partner_payment_term:
if partner_payment_term:
to_update = self.onchange_payment_term_date_invoice(
cr,uid,ids,partner_payment_term,date_invoice)
result['value'].update(to_update['value'])
else:
result['value']['date_due'] = False
if partner_bank_id != bank_id:
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
result['value'].update(to_update['value'])
return result
def onchange_currency_id(self, cr, uid, ids, curr_id):
def onchange_currency_id(self, cr, uid, ids, curr_id, company_id):
if curr_id and company_id:
currency = self.pool.get('res.currency').browse(cr, uid, curr_id)
if currency.company_id.id != company_id:
raise osv.except_osv(_('Configration Error !'),
_('Can not select currency that is not related to current company.\nPlease select accordingly !.'))
return {}
def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice):
@ -406,6 +452,76 @@ class account_invoice(osv.osv):
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id):
return {'value': {}}
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id):
val={}
dom={}
if company_id and part_id and type:
acc_id = False
partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id)
if partner_obj.property_account_payable and partner_obj.property_account_receivable:
if partner_obj.property_account_payable.company_id.id != company_id and partner_obj.property_account_receivable.company_id.id != company_id:
rec_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_receivable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
pay_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_payable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
if not rec_pro_id:
rec_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_receivable'),('company_id','=',company_id)])
if not pay_pro_id:
pay_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_payable'),('company_id','=',company_id)])
rec_line_data = self.pool.get('ir.property').read(cr,uid,rec_pro_id,['name','value','res_id'])
pay_line_data = self.pool.get('ir.property').read(cr,uid,pay_pro_id,['name','value','res_id'])
rec_res_id = rec_line_data and int(rec_line_data[0]['value'].split(',')[1]) or False
pay_res_id = pay_line_data and int(pay_line_data[0]['value'].split(',')[1]) or False
if not rec_res_id and not rec_res_id:
raise osv.except_osv(_('Configration Error !'),
_('Can not find account chart for this company, Please Create account.'))
if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id
else:
acc_id = pay_res_id
val= {'account_id': acc_id}
if ids:
if company_id:
inv_obj = self.browse(cr,uid,ids)
for line in inv_obj[0].invoice_line:
if line.account_id:
if line.account_id.company_id.id != company_id:
result_id = self.pool.get('account.account').search(cr,uid,[('name','=',line.account_id.name),('company_id','=',company_id)])
if not result_id:
raise osv.except_osv(_('Configration Error !'),
_('Can not find account chart for this company in invoice line account, Please Create account.'))
r_id = self.pool.get('account.invoice.line').write(cr,uid,[line.id],{'account_id': result_id[0]})
else:
if invoice_line:
for inv_line in invoice_line:
obj_l = self.pool.get('account.account').browse(cr,uid,inv_line[2]['account_id'])
if obj_l.company_id.id != company_id:
raise osv.except_osv(_('Configration Error !'),
_('invoice line account company is not match with invoice company.'))
else:
continue
if company_id:
val['journal_id']=False
journal_ids=self.pool.get('account.journal').search(cr,uid,[('company_id','=',company_id)])
dom={'journal_id': [('id','in',journal_ids)]}
else:
journal_ids=self.pool.get('account.journal').search(cr,uid,[])
dom={'journal_id': [('id','in',journal_ids)]}
if currency_id and company_id:
currency = self.pool.get('res.currency').browse(cr, uid, currency_id)
if currency.company_id.id != company_id:
val['currency_id'] = False
else:
val['currency_id'] = currency.id
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id)
if company.currency_id.company_id.id != company_id:
val['currency_id'] = False
else:
val['currency_id'] = company.currency_id.id
return {'value' : val, 'domain': dom }
# go from canceled state to draft state
def action_cancel_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
@ -463,7 +579,7 @@ class account_invoice(osv.osv):
for taxe in ait_obj.compute(cr, uid, id, context=context).values():
ait_obj.create(cr, uid, taxe)
# Update the stored value (fields.function), so we write to trigger recompute
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
# self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
return True
@ -648,7 +764,7 @@ class account_invoice(osv.osv):
tmp += '-'+str(l.get('product_id',"False"))
tmp += '-'+str(l.get('analytic_account_id',"False"))
tmp += '-'+str(l.get('date_maturity',"False"))
if tmp in line2:
am = line2[tmp]['debit'] - line2[tmp]['credit'] + (l['debit'] - l['credit'])
line2[tmp]['debit'] = (am > 0) and am or 0.0
@ -677,7 +793,7 @@ class account_invoice(osv.osv):
for i in line:
i[2]['period_id'] = period_id
move_id = self.pool.get('account.move').create(cr, uid, move)
move_id = self.pool.get('account.move').create(cr, uid, move, context=context)
new_move_name = self.pool.get('account.move').browse(cr, uid, move_id).name
# make the invoice point to that move
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name})
@ -740,7 +856,7 @@ class account_invoice(osv.osv):
def action_cancel(self, cr, uid, ids, *args):
account_move_obj = self.pool.get('account.move')
invoices = self.read(cr, uid, ids, ['move_id'])
invoices = self.read(cr, uid, ids, ['move_id', 'payment_ids'])
for i in invoices:
if i['move_id']:
account_move_obj.button_cancel(cr, uid, [i['move_id'][0]])
@ -748,6 +864,8 @@ class account_invoice(osv.osv):
# Note that the corresponding move_lines and move_reconciles
# will be automatically deleted too
account_move_obj.unlink(cr, uid, [i['move_id'][0]])
if i['payment_ids']:
self.pool.get('account.move.line').write(cr, uid, i['payment_ids'], {'reconcile_partial_id': False})
self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
self._log_event(cr, uid, ids,-1.0, 'Cancel Invoice')
return True
@ -793,7 +911,7 @@ class account_invoice(osv.osv):
}
return [(r['id'], types[r['type']]+(r['number'] or '')+' '+(r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
if context is None:
@ -889,7 +1007,7 @@ class account_invoice(osv.osv):
date=context['date_p']
else:
date=time.strftime('%Y-%m-%d')
# Take the amount in currency and the currency of the payment
if 'amount_currency' in context and context['amount_currency'] and 'currency_id' in context and context['currency_id']:
amount_currency = context['amount_currency']
@ -897,27 +1015,32 @@ class account_invoice(osv.osv):
else:
amount_currency = False
currency_id = False
if invoice.type in ('in_invoice', 'in_refund'):
ref = invoice.reference
else:
ref = self._convert_ref(cr, uid, invoice.number)
# Pay attention to the sign for both debit/credit AND amount_currency
l1 = {
'debit': direction * pay_amount>0 and direction * pay_amount,
'credit': direction * pay_amount<0 and - direction * pay_amount,
'account_id': src_account_id,
'partner_id': invoice.partner_id.id,
'ref':invoice.number,
'ref':ref,
'date': date,
'currency_id':currency_id,
'amount_currency':amount_currency and direction * amount_currency or 0.0,
'company_id': invoice.company_id.id,
}
l2 = {
'debit': direction * pay_amount<0 and - direction * pay_amount,
'credit': direction * pay_amount>0 and direction * pay_amount,
'account_id': pay_account_id,
'partner_id': invoice.partner_id.id,
'ref':invoice.number,
'ref':ref,
'date': date,
'currency_id':currency_id,
'amount_currency':amount_currency and - direction * amount_currency or 0.0,
'company_id': invoice.company_id.id,
}
if not name:
@ -926,13 +1049,16 @@ class account_invoice(osv.osv):
l2['name'] = name
lines = [(0, 0, l1), (0, 0, l2)]
move = {'ref': invoice.number, 'line_id': lines, 'journal_id': pay_journal_id, 'period_id': period_id, 'date': date}
move = {'ref': ref, 'line_id': lines, 'journal_id': pay_journal_id, 'period_id': period_id, 'date': date}
move_id = self.pool.get('account.move').create(cr, uid, move, context=context)
line_ids = []
total = 0.0
line = self.pool.get('account.move.line')
cr.execute('select id from account_move_line where move_id in ('+str(move_id)+','+str(invoice.move_id.id)+')')
move_ids = [move_id,]
if invoice.move_id:
move_ids.append(invoice.move_id.id)
cr.execute('SELECT id FROM account_move_line WHERE move_id = ANY(%s)',(move_ids,))
lines = line.browse(cr, uid, map(lambda x: x[0], cr.fetchall()) )
for l in lines+invoice.payment_ids:
if l.account_id.id==src_account_id:
@ -985,7 +1111,7 @@ class account_invoice_line(osv.osv):
_columns = {
'name': fields.char('Description', size=256, required=True),
'origin': fields.char('Origin', size=256, help="Reference of the document that produced this invoice."),
'invoice_id': fields.many2one('account.invoice', 'Invoice Ref', ondelete='cascade', select=True),
'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True),
'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'),
'product_id': fields.many2one('product.product', 'Product', ondelete='set null'),
'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."),
@ -994,8 +1120,9 @@ class account_invoice_line(osv.osv):
'quantity': fields.float('Quantity', required=True),
'discount': fields.float('Discount (%)', digits=(16, int(config['price_accuracy']))),
'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]),
'note': fields.text('Notes'),
'note': fields.text('Notes', translate=True),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company',store=True)
}
_defaults = {
'quantity': lambda *a: 1,
@ -1011,16 +1138,17 @@ class account_invoice_line(osv.osv):
price_unit = price_unit - tax['amount']
return {'price_unit': price_unit,'invoice_line_tax_id': tax_id}
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, context=None):
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
if context is None:
context = {}
company_id = context.get('company_id',False)
if not partner_id:
raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") )
if not product:
if type in ('in_invoice', 'in_refund'):
return {'domain':{'product_uom':[]}}
return {'value': {'categ_id': False}, 'domain':{'product_uom':[]}}
else:
return {'value': {'price_unit': 0.0}, 'domain':{'product_uom':[]}}
return {'value': {'price_unit': 0.0, 'categ_id': False}, 'domain':{'product_uom':[]}}
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
fpos = fposition_id and self.pool.get('account.fiscal.position').browse(cr, uid, fposition_id) or False
@ -1029,6 +1157,61 @@ class account_invoice_line(osv.osv):
result = {}
res = self.pool.get('product.product').browse(cr, uid, product, context=context)
if company_id:
in_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_income'),('res_id','=','product.template,'+str(res.product_tmpl_id.id)+''),('company_id','=',company_id)])
if not in_pro_id:
in_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_income_categ'),('res_id','=','product.template,'+str(res.categ_id.id)+''),('company_id','=',company_id)])
exp_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_expense'),('res_id','=','product.template,'+str(res.product_tmpl_id.id)+''),('company_id','=',company_id)])
if not exp_pro_id:
exp_pro_id = self.pool.get('ir.property').search(cr,uid,[('name','=','property_account_expense_categ'),('res_id','=','product.template,'+str(res.categ_id.id)+''),('company_id','=',company_id)])
if not in_pro_id:
in_acc = res.product_tmpl_id.property_account_income
in_acc_cate = res.categ_id.property_account_income_categ
if in_acc:
app_acc_in = in_acc
else:
app_acc_in = in_acc_cate
else:
app_acc_in = self.pool.get('account.account').browse(cr,uid,in_pro_id)[0]
if not exp_pro_id:
ex_acc = res.product_tmpl_id.property_account_expense
ex_acc_cate = res.categ_id.property_account_expense_categ
if ex_acc:
app_acc_exp = ex_acc
else:
app_acc_exp = ex_acc_cate
else:
app_acc_exp = self.pool.get('account.account').browse(cr,uid,exp_pro_id)[0]
if not in_pro_id and not exp_pro_id:
in_acc = res.product_tmpl_id.property_account_income
in_acc_cate = res.categ_id.property_account_income_categ
ex_acc = res.product_tmpl_id.property_account_expense
ex_acc_cate = res.categ_id.property_account_expense_categ
if in_acc or ex_acc:
app_acc_in = in_acc
app_acc_exp = ex_acc
else:
app_acc_in = in_acc_cate
app_acc_exp = ex_acc_cate
# else:
# app_acc_in = self.pool.get('account.account').browse(cr,uid,in_pro_id)[0]
# app_acc_exp = self.pool.get('account.account').browse(cr,uid,exp_pro_id)[0]
if app_acc_in.company_id.id != company_id and app_acc_exp.company_id.id != company_id:
in_res_id=self.pool.get('account.account').search(cr,uid,[('name','=',app_acc_in.name),('company_id','=',company_id)])
exp_res_id=self.pool.get('account.account').search(cr,uid,[('name','=',app_acc_exp.name),('company_id','=',company_id)])
if not in_res_id and not exp_res_id:
raise osv.except_osv(_('Configration Error !'),
_('Can not find account chart for this company, Please Create account.'))
in_obj_acc=self.pool.get('account.account').browse(cr,uid,in_res_id)
exp_obj_acc=self.pool.get('account.account').browse(cr,uid,exp_res_id)
if in_acc or ex_acc:
res.product_tmpl_id.property_account_income = in_obj_acc[0]
res.product_tmpl_id.property_account_expense = exp_obj_acc[0]
else:
res.categ_id.property_account_income_categ = in_obj_acc[0]
res.categ_id.property_account_expense_categ = exp_obj_acc[0]
if type in ('out_invoice','out_refund'):
a = res.product_tmpl_id.property_account_income.id
if not a:
@ -1051,13 +1234,13 @@ class account_invoice_line(osv.osv):
taxes = res.supplier_taxes_id and res.supplier_taxes_id or (a and self.pool.get('account.account').browse(cr, uid,a).tax_ids or False)
tax_id = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, taxes)
if type in ('in_invoice', 'in_refund'):
to_update = self.product_id_change_unit_price_inv(cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=context)
to_update = self.product_id_change_unit_price_inv(cr, uid, tax_id, price_unit or res.standard_price, qty, address_invoice_id, product, partner_id, context=context)
result.update(to_update)
else:
result.update({'price_unit': res.list_price, 'invoice_line_tax_id': tax_id})
if not name:
result['name'] = res.name
result['name'] = res.partner_ref
domain = {}
result['uos_id'] = uom or res.uom_id.id or False
@ -1065,7 +1248,25 @@ class account_invoice_line(osv.osv):
res2 = res.uom_id.category_id.id
if res2 :
domain = {'uos_id':[('category_id','=',res2 )]}
return {'value':result, 'domain':domain}
prod_pool=self.pool.get('product.product')
result['categ_id'] = res.categ_id.id
res_final = {'value':result, 'domain':domain}
if not company_id and not currency_id:
return res_final
company = self.pool.get('res.company').browse(cr, uid, company_id)
currency = self.pool.get('res.currency').browse(cr, uid, currency_id)
if not currency.company_id.id == company.id:
raise osv.except_osv(_('Configration Error !'),
_('Can not select currency that is not related to any company.\nPlease select accordingly !.'))
if company.currency_id.id != currency.id:
new_price = res_final['value']['price_unit'] * currency.rate
res_final['value']['price_unit'] = new_price
return res_final
def move_line_get(self, cr, uid, invoice_id, context=None):
res = []
@ -1145,19 +1346,20 @@ class account_invoice_tax(osv.osv):
'base': fields.float('Base', digits=(16,int(config['price_accuracy']))),
'amount': fields.float('Amount', digits=(16,int(config['price_accuracy']))),
'manual': fields.boolean('Manual'),
'sequence': fields.integer('Sequence'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of invoice tax."),
'base_code_id': fields.many2one('account.tax.code', 'Base Code', help="The account basis of the tax declaration."),
'base_amount': fields.float('Base Code Amount', digits=(16,int(config['price_accuracy']))),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
'tax_amount': fields.float('Tax Code Amount', digits=(16,int(config['price_accuracy']))),
'company_id': fields.related('account_id','company_id',type='many2one',relation='res.company',string='Company',store=True),
}
def base_change(self, cr, uid, ids, base,currency_id=False,company_id=False,date_invoice=False):
cur_obj = self.pool.get('res.currency')
company_obj = self.pool.get('res.company')
company_currency=False
if company_id:
if company_id:
company_currency = company_obj.read(cr,uid,[company_id],['currency_id'])[0]['currency_id'][0]
if currency_id and company_currency:
base = cur_obj.compute(cr, uid, currency_id, company_currency, base, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
@ -1172,7 +1374,7 @@ class account_invoice_tax(osv.osv):
if currency_id and company_currency:
amount = cur_obj.compute(cr, uid, currency_id, company_currency, amount, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
return {'value': {'tax_amount':amount}}
_order = 'sequence'
_defaults = {
'manual': lambda *a: 1,

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -90,20 +90,20 @@ class res_partner(osv.osv):
_description = 'Partner'
def _credit_debit_get(self, cr, uid, ids, field_names, arg, context):
query = self.pool.get('account.move.line')._query_get(cr, uid, context=context)
cr.execute(("""select
cr.execute("""select
l.partner_id, a.type, sum(l.debit-l.credit)
from
account_move_line l
left join
account_account a on (l.account_id=a.id)
where
a.type in ('receivable','payable') and
l.partner_id in (%s) and
a.type =ANY(%s) and
l.partner_id =ANY(%s) and
l.reconcile_id is null and
""" % (','.join(map(str, ids)),))+query+"""
"""+query+"""
group by
l.partner_id, a.type
""")
""",(['receivable','payable'],ids,))
tinvert = {
'credit': 'receivable',
'debit': 'payable'
@ -117,7 +117,7 @@ class res_partner(osv.osv):
res[pid][maps[type]] = (type=='receivable') and val or -val
return res
def _credit_search(self, cr, uid, obj, name, args):
def _credit_search(self, cr, uid, obj, name, args, context):
if not len(args):
return []
where = ' and '.join(map(lambda x: '(sum(debit-credit)'+x[1]+str(x[2])+')',args))
@ -128,7 +128,7 @@ class res_partner(osv.osv):
return [('id','=','0')]
return [('id','in',map(lambda x:x[0], res))]
def _debit_search(self, cr, uid, obj, name, args):
def _debit_search(self, cr, uid, obj, name, args, context):
if not len(args):
return []
query = self.pool.get('account.move.line')._query_get(cr, uid, context={})
@ -171,7 +171,7 @@ class res_partner(osv.osv):
string="Fiscal Position",
method=True,
view_load=True,
help="The fiscal position will determine taxes and the accounts used for the the partner.",
help="The fiscal position will determine taxes and the accounts used for the partner.",
),
'property_payment_term': fields.property(
'account.payment.term',

View File

@ -9,7 +9,7 @@
<field name="arch" type="xml">
<form string="Fiscal Position">
<field name="name" select="1"/>
<field name="company_id" widget="selection"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<newline/>
<field name="note" colspan="4"/>
<field name="tax_ids" colspan="4" widget="one2many_list">
@ -42,7 +42,7 @@
<field name="arch" type="xml">
<tree string="Fiscal Position">
<field name="name"/>
<field name="company_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</tree>
</field>
</record>

View File

@ -9,7 +9,7 @@
<record id="process_process_invoiceprocess0" model="process.process">
<field eval="1" name="active"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;Customer Invoice Process&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Customer Invoice&quot;&quot;&quot;" name="name"/>
</record>
<!--
@ -18,21 +18,21 @@
<record id="process_node_analytic0" model="process.node">
<field name="menu_id" ref="account.account_analytic_def_account"/>
<field name="model_id" ref="account.model_account_analytic_account"/>
<field name="model_id" ref="analytic.model_account_analytic_account"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Analytic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs to reinvoice purchases, timesheets, ...&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Analytic Costs&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs to invoice&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'close')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_draftinvoices0" model="process.node">
<field name="menu_id" ref="account.menu_invoice_draft"/>
<field name="menu_id" ref="account.menu_action_invoice_tree1"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft Invoices&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Proposed invoice to be checked, validated and printed&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Draft Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Draft state of an invoice&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -43,7 +43,7 @@
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Create Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Have a number and entries are generated&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Invoice's state is Open&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -53,8 +53,8 @@
<field name="menu_id" ref="account.menu_action_move_line_form"/>
<field name="model_id" ref="account.model_account_move"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Accounting Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Validated accounting entries.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Accounting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="0" name="flow_start"/>
</record>
@ -64,7 +64,7 @@
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Bank Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Statement encoding produces payment entries&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Registered payment&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field name="subflow_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
@ -75,8 +75,8 @@
<field name="menu_id" ref="account.menu_action_move_line_form"/>
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Payment Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Can be draft or validated&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Payment&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Payment entries&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'valid')&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -87,7 +87,7 @@
<field name="model_id" ref="account.model_account_move_reconcile"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Reconciliation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconciliation of entries from invoice(s) and payment(s)&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Comparison between accounting and payment entries&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='valid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -98,7 +98,7 @@
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Paid invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Invoice's state is Done&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='paid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -108,8 +108,8 @@
<field name="menu_id" ref="account.menu_action_move_line_search"/>
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Accounting Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries at statement's confirmation&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Bank Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Bank statement&quot;&quot;&quot;" name="note"/>
<field name="subflow_id" ref="account.process_process_invoiceprocess0"/>
<field name="process_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'valid')&quot;&quot;&quot;" name="model_states"/>
@ -132,8 +132,8 @@
<record id="process_transition_confirmstatementfromdraft0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Confirm statement from draft&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Confirm statement with/without reconciliation from draft statement&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Confirm statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The accountant confirms the statement.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_accountingstatemententries0"/>
<field model="process.node" name="source_node_id" ref="account.process_node_draftstatement0"/>
</record>
@ -141,8 +141,8 @@
<record id="process_transition_analyticinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;analytic Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From analytic accounts, Create invoice.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;From analytic accounts&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft invoices.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_analytic0"/>
</record>
@ -150,8 +150,8 @@
<record id="process_transition_customerinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Customer Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Number of entries are generated&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Draft invoices are checked, validated and printed.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_invoiceinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_draftinvoices0"/>
<field eval="[(6,0,[ref('account.t5')])]" name="transition_ids"/>
@ -160,8 +160,8 @@
<record id="process_transition_validentries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Valid Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Valid entries from invoice&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accountant validates the accounting entries coming from the invoice.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_accountingentries0"/>
<field model="process.node" name="source_node_id" ref="process_node_invoiceinvoice0"/>
</record>
@ -169,8 +169,8 @@
<record id="process_transition_entriesreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Entries Reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcile Entries.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Accounting entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries are the first input of the reconciliation.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_accountingentries0"/>
</record>
@ -178,8 +178,8 @@
<record id="process_transition_statemententries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Statement Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From statement, create entries&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Manual or automatic creation of payment entries according to the statements&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_paymententries0"/>
<field model="process.node" name="source_node_id" ref="process_node_bankstatement0"/>
</record>
@ -187,8 +187,8 @@
<record id="process_transition_paymentreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Payment Reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcilate the entries from payment&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Payment entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Payment entries are the second input of the reconciliation.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_reconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_paymententries0"/>
</record>
@ -196,8 +196,8 @@
<record id="process_transition_reconcilepaid0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Reconcile Paid&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Payment&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;As soon as the reconciliation is done, the invoice can be paid.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_paidinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_reconciliation0"/>
</record>

View File

@ -1,60 +1,60 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
Process
-->
<record id="process_process_statementprocess0" model="process.process">
<field eval="1" name="active"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;Statement Process&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Statement&quot;&quot;&quot;" name="name"/>
</record>
<!--
Process Node
-->
<record id="process_node_electronicfile0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Electronic File&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import from your bank statements&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Automatic entry&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_manually0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Manually&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode manually the statement&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Manual entry&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_importinvoice0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Import invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import from invoices or payments&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Import from invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Statement from invoice or payment&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_draftstatement0" model="process.node">
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Set starting and ending balance for control&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;State is draft&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -63,33 +63,34 @@
<!--
Process Transition
-->
<record id="process_transition_filestatement0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;File statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import file from your bank statement&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Automatic import of the bank statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import of the statement in the system from an electronic file&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_electronicfile0"/>
</record>
<record id="process_transition_invoicemanually0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Manually statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Encode manually statement comes into the draft statement&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Manual entry&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;A statement with manual entries becomes a draft statement.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_manually0"/>
</record>
<record id="process_transition_invoiceimport0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Invoice import&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import invoice from statement&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Import from invoice or payment&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Import of the statement in the system from a supplier or customer invoice&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_importinvoice0"/>
</record>
</data>
</openerp>

View File

@ -9,7 +9,7 @@
<record id="process_process_supplierinvoiceprocess0" model="process.process">
<field eval="1" name="active"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;Supplier Invoice Process&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Supplier Invoice&quot;&quot;&quot;" name="name"/>
</record>
<!--
@ -18,21 +18,21 @@
<record id="process_node_analyticcost0" model="process.node">
<field name="menu_id" ref="account.account_analytic_def_account"/>
<field name="model_id" ref="account.model_account_analytic_account"/>
<field name="model_id" ref="analytic.model_account_analytic_account"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Analytic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs to reinvoice purchases, timesheets, ...&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Analytic Costs&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs to invoice&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state in ('draft', 'open', 'pending', 'close')&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_supplierdraftinvoices0" model="process.node">
<field name="menu_id" ref="account.menu_invoice_draft"/>
<field name="menu_id" ref="account.menu_action_invoice_tree2"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Draft Invoices&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Pre-generated invoice from control&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Draft state of an invoice&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -42,8 +42,8 @@
<field name="menu_id" ref="account.menu_finance_invoice"/>
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Control Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Have a number and entries are generated&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Create Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Invoice's state is Open&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -54,7 +54,7 @@
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Bank Statement&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Statement encoding produces payment entries&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Manually or automatically entered in the system&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field name="subflow_id" ref="process_process_statementprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
@ -65,8 +65,8 @@
<field name="menu_id" ref="account.menu_action_move_line_form"/>
<field name="model_id" ref="account.model_account_move"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Accounting Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Validated accounting entries.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Accounting&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="0" name="flow_start"/>
</record>
@ -76,7 +76,7 @@
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Payment Order&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Select invoices you want to pay and manages advances&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Payment of invoices&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
@ -87,7 +87,7 @@
<field name="model_id" ref="account.model_account_move_reconcile"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Reconciliation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconciliation of entries from invoice(s) and payment(s)&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Comparison between accounting and payment entries&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='valid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -98,7 +98,7 @@
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Paid invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Invoice's state is Done.&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='paid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>
@ -111,8 +111,8 @@
<record id="process_transition_supplieranalyticcost0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Analytic Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;From analytic accounts, Create invoice.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;From analytic accounts&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft supplier invoices.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierdraftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_analyticcost0"/>
</record>
@ -120,8 +120,8 @@
<record id="process_transition_suppliercustomerinvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Customer Invoice&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Number of entries are generated&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Draft invoices are validated. &quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierinvoiceinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplierdraftinvoices0"/>
<field eval="[(6,0,[ref('account.t5')])]" name="transition_ids"/>
@ -130,8 +130,8 @@
<record id="process_transition_suppliervalidentries0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Valid Entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Valid entries from invoice&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accountant validates the accounting entries coming from the invoice. &quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplieraccountingentries0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplierinvoiceinvoice0"/>
</record>
@ -139,8 +139,8 @@
<record id="process_transition_supplierentriesreconcile0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Entries Reconcile&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcile Entries.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Accounting entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Accounting entries are an input of the reconciliation.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplieraccountingentries0"/>
</record>
@ -148,8 +148,8 @@
<record id="process_transition_paymentorderbank0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Payment Reconcilation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcilation of entries from payment order.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Payment entries&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;The payment order is sent to the bank.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierbankstatement0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplierpaymentorder0"/>
</record>
@ -157,8 +157,8 @@
<record id="process_transition_paymentorderreconcilation0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Payment Reconcilation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Reconcilation of entries from payment order.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Validation&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Bank statements are entered in the system.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplierbankstatement0"/>
</record>
@ -166,8 +166,8 @@
<record id="process_transition_supplierreconcilepaid0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Reconcile Paid&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Paid invoice when reconciled.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;System payment&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;As soon as the reconciliation is done, the invoice's state turns to “done” (i.e. paid) in the system.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_supplierpaidinvoice0"/>
<field model="process.node" name="source_node_id" ref="process_node_supplierreconciliation0"/>
</record>

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -25,254 +25,20 @@ import operator
from osv import fields
from osv import osv
#
# Object definition
#
class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
_description = 'Analytic Accounts'
def _credit_calc(self, cr, uid, ids, name, arg, context={}):
acc_set = ",".join(map(str, ids))
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id %s) WHERE l.amount<0 and a.id IN (%s) GROUP BY a.id" % (where_date,acc_set))
r = dict(cr.fetchall())
for i in ids:
r.setdefault(i,0.0)
return r
def _debit_calc(self, cr, uid, ids, name, arg, context={}):
acc_set = ",".join(map(str, ids))
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id %s) WHERE l.amount>0 and a.id IN (%s) GROUP BY a.id" % (where_date,acc_set))
r= dict(cr.fetchall())
for i in ids:
r.setdefault(i,0.0)
return r
def _balance_calc(self, cr, uid, ids, name, arg, context={}):
res = {}
ids2 = self.search(cr, uid, [('parent_id', 'child_of', ids)])
acc_set = ",".join(map(str, ids2))
for i in ids:
res.setdefault(i,0.0)
if not acc_set:
return res
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id %s) WHERE a.id IN (%s) GROUP BY a.id" % (where_date,acc_set))
for account_id, sum in cr.fetchall():
res[account_id] = sum
cr.execute("SELECT a.id, r.currency_id FROM account_analytic_account a INNER JOIN res_company r ON (a.company_id = r.id) where a.id in (%s)" % acc_set)
currency= dict(cr.fetchall())
res_currency= self.pool.get('res.currency')
for id in ids:
if id not in ids2:
continue
for child in self.search(cr, uid, [('parent_id', 'child_of', [id])]):
if child <> id:
res.setdefault(id, 0.0)
if currency[child]<>currency[id]:
res[id] += res_currency.compute(cr, uid, currency[child], currency[id], res.get(child, 0.0), context=context)
else:
res[id] += res.get(child, 0.0)
cur_obj = res_currency.browse(cr,uid,currency.values(),context)
cur_obj = dict([(o.id, o) for o in cur_obj])
for id in ids:
if id in ids2:
res[id] = res_currency.round(cr,uid,cur_obj[currency[id]],res.get(id,0.0))
return dict([(i, res[i]) for i in ids ])
def _quantity_calc(self, cr, uid, ids, name, arg, context={}):
#XXX must convert into one uom
res = {}
ids2 = self.search(cr, uid, [('parent_id', 'child_of', ids)])
acc_set = ",".join(map(str, ids2))
for i in ids:
res.setdefault(i,0.0)
if not acc_set:
return res
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute('SELECT a.id, COALESCE(SUM(l.unit_amount), 0) \
FROM account_analytic_account a \
LEFT JOIN account_analytic_line l ON (a.id = l.account_id ' + where_date + ') \
WHERE a.id IN ('+acc_set+') GROUP BY a.id')
for account_id, sum in cr.fetchall():
res[account_id] = sum
for id in ids:
if id not in ids2:
continue
for child in self.search(cr, uid, [('parent_id', 'child_of', [id])]):
if child <> id:
res.setdefault(id, 0.0)
res[id] += res.get(child, 0.0)
return dict([(i, res[i]) for i in ids])
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
reads = self.read(cr, uid, ids, ['name','parent_id'], context)
res = []
for record in reads:
name = record['name']
if record['parent_id']:
name = record['parent_id'][1]+' / '+name
res.append((record['id'], name))
return res
def _complete_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
res = self.name_get(cr, uid, ids)
return dict(res)
def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
result = {}
for rec in self.browse(cr, uid, ids, context):
result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.code) or False
return result
_columns = {
'name' : fields.char('Account Name', size=64, required=True),
'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'),
'code' : fields.char('Account Code', size=24),
'active' : fields.boolean('Active'),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type'),
'description' : fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'),
'balance' : fields.function(_balance_calc, method=True, type='float', string='Balance'),
'debit' : fields.function(_debit_calc, method=True, type='float', string='Debit'),
'credit' : fields.function(_credit_calc, method=True, type='float', string='Credit'),
'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'),
'quantity_max': fields.float('Maximum Quantity'),
'partner_id' : fields.many2one('res.partner', 'Associated Partner'),
'contact_id' : fields.many2one('res.partner.address', 'Contact'),
'user_id' : fields.many2one('res.users', 'Account Manager'),
'date_start': fields.date('Date Start'),
'date': fields.date('Date End'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Currency'),
'state': fields.selection([('draft','Draft'), ('open','Open'), ('pending','Pending'), ('close','Close'),], 'State', required=True),
}
def _default_company(self, cr, uid, context={}):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if user.company_id:
return user.company_id.id
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
_defaults = {
'active' : lambda *a : True,
'type' : lambda *a : 'normal',
'company_id': _default_company,
'state' : lambda *a : 'draft',
'user_id' : lambda self,cr,uid,ctx : uid,
'partner_id': lambda self,cr, uid, ctx: ctx.get('partner_id', False),
'contact_id': lambda self,cr, uid, ctx: ctx.get('contact_id', False),
}
def check_recursion(self, cr, uid, ids, parent=None):
return super(account_analytic_account, self).check_recursion(cr, uid, ids, parent=parent)
_order = 'parent_id desc,code'
_constraints = [
(check_recursion, 'Error! You can not create recursive analytic accounts.', ['parent_id'])
]
def create(self, cr, uid, vals, context=None):
parent_id = vals.get('parent_id', 0)
if ('code' not in vals or not vals['code']) and not parent_id:
vals['code'] = self.pool.get('ir.sequence').get(cr, uid, 'account.analytic.account')
return super(account_analytic_account, self).create(cr, uid, vals, context=context)
def copy(self, cr, uid, id, default=None, context={}):
if not default:
default = {}
default['code'] = False
default['line_ids'] = []
return super(account_analytic_account, self).copy(cr, uid, id, default, context=context)
def on_change_parent(self, cr, uid, id, parent_id):
if not parent_id:
return {}
parent = self.read(cr, uid, [parent_id], ['partner_id','code'])[0]
childs = self.search(cr, uid, [('parent_id', '=', parent_id), ('active', 'in', [True, False])])
numchild = len(childs)
if parent['partner_id']:
partner = parent['partner_id'][0]
else:
partner = False
res = {'value' : {'code' : '%s - %03d' % (parent['code'] or '', numchild + 1),}}
if partner:
res['value']['partner_id'] = partner
return res
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=80):
if not args:
args=[]
if not context:
context={}
account = self.search(cr, uid, [('code', '=', name)]+args, limit=limit, context=context)
if not account:
account = self.search(cr, uid, [('name', 'ilike', '%%%s%%' % name)]+args, limit=limit, context=context)
newacc = account
while newacc:
newacc = self.search(cr, uid, [('parent_id', 'in', newacc)]+args, limit=limit, context=context)
account+=newacc
return self.name_get(cr, uid, account, context=context)
account_analytic_account()
class account_analytic_journal(osv.osv):
_name = 'account.analytic.journal'
_columns = {
'name' : fields.char('Journal name', size=64, required=True),
'code' : fields.char('Journal code', size=8),
'active' : fields.boolean('Active'),
'type': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('cash','Cash'), ('general','General'), ('situation','Situation')], 'Type', size=32, required=True, help="Gives the type of the analytic journal. When a document (eg: an invoice) needs to create analytic entries, Open ERP will look for a matching journal of the same type."),
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the analytic journal without removing it."),
'type': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('cash','Cash'), ('general','General'), ('situation','Situation')], 'Type', size=32, required=True, help="Gives the type of the analytic journal. When it needs for a document (eg: an invoice) to create analytic entries, Open ERP will look for a matching journal of the same type."),
'line_ids' : fields.one2many('account.analytic.line', 'journal_id', 'Lines'),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
'active': lambda *a: True,
'type': lambda *a: 'general',
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
account_analytic_journal()

View File

@ -8,7 +8,7 @@
<field name="type">tree</field>
<field eval="8" name="priority"/>
<field name="arch" type="xml">
<tree colors="red:date and (date&lt;=current_date)" string="Analytic account">
<tree colors="red:(date&lt;=current_date);black:(date&gt;current_date)" string="Analytic account">
<field name="code"/>
<field name="complete_name"/>
<field name="quantity"/>
@ -18,13 +18,32 @@
</field>
</record>
<record id="view_account_analytic_account_search" model="ir.ui.view">
<field name="name">account.analytic.account.search</field>
<field name="model">account.analytic.account</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Analytic Account">
<group col="8" colspan="4">
<filter icon="gtk-execute" string="My Accounts" domain="[('user_id','=',uid)]" help="My Analytic Accounts"/>
<filter icon="gtk-execute" string="Current" domain="[('state','=','open')]" help="Current Accounts"/>
<filter icon="gtk-execute" string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="partner_id" select="1"/>
</group>
</search>
</field>
</record>
<record id="view_account_analytic_account_tree" model="ir.ui.view">
<field name="name">account.analytic.account.tree</field>
<field name="model">account.analytic.account</field>
<field name="type">tree</field>
<field name="field_parent">child_ids</field>
<field name="arch" type="xml">
<tree toolbar="True" colors="red:date and (date&lt;=current_date)" string="Analytic account">
<tree toolbar="True" colors="red:(date&lt;=current_date);black:(date&gt;current_date)" string="Analytic account">
<field name="name"/>
<field name="code"/>
<field name="date"/>
@ -50,14 +69,15 @@
<field name="parent_id" on_change="on_change_parent(parent_id)"/>
<field name="company_id" select="2" widget="selection"/>
<field name="type" select="2"/>
<field name="company_currency_id" select="2"/>
</group>
<notebook colspan="4">
<page string="Account Data">
<field name="partner_id"/>
<field name="partner_id" select="1"/>
<newline/>
<field name="date_start"/>
<field name="date" select="2"/>
<field name="active" select="2"/>
<newline/>
<field name="quantity_max"/>
<field name="user_id"/>
@ -77,10 +97,11 @@
<field name="view_type">form</field>
<field name="view_mode">tree,graph,form</field>
<field name="view_id" ref="view_account_analytic_account_tree"/>
<field name="search_view_id" ref="account.view_account_analytic_account_search"/>
</record>
<!--<menuitem id="menu_analytic_account" name="Analytic Accounts" parent="account.menu_analytic_accounting"/>-->
<menuitem action="action_account_analytic_account_form" id="account_analytic_def_account" parent="account.menu_analytic_accounting"/>
<record id="act_account_renew_view" model="ir.actions.act_window">
<field name="name">Accounts to Renew</field>
<field name="type">ir.actions.act_window</field>
@ -88,7 +109,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('date','&lt;',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
<field name="filter" eval="True"/>
<field name="filter" eval="True"/>
</record>
<record id="action_account_analytic_account_tree2" model="ir.actions.act_window">
@ -105,20 +126,12 @@
id="account_analytic_def_chart"
parent="account_analytic_def_account"/>
<!-- <menuitem action="action_account_analytic_account_tree2" id="account_analytic_chart" parent="account.menu_finance_charts"/>-->
<wizard id="wizard_analytic_account_chart" menu="False" model="account.analytic.account" name="account.analytic.account.chart" string="Analytic Chart of Accounts"/>
<menuitem icon="STOCK_INDENT" action="wizard_analytic_account_chart" id="menu_action_analytic_account_tree2" parent="account.menu_finance_charts" type="wizard"/>
<record id="analytic_account_form" model="ir.actions.act_window">
<field name="name">New Analytic Account</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree,graph</field>
<field eval="view_account_analytic_account_form" name="view_id"/>
</record>
<menuitem action="analytic_account_form" id="account_analytic_form" parent="account.account_analytic_def_account"/>
<menuitem id="next_id_40" name="Analytic" parent="account.menu_finance_reporting"/><menuitem action="action_account_analytic_account_tree2" id="account_analytic_chart_balance" parent="next_id_40"/>
<menuitem id="next_id_40" name="Analytic" parent="account.menu_finance_generic_reporting" sequence="4"/>
<menuitem action="action_account_analytic_account_tree2" id="account_analytic_chart_balance" parent="next_id_40"/>
<record id="view_account_analytic_line_form" model="ir.ui.view">
<field name="name">account.analytic.line.form</field>
@ -135,6 +148,9 @@
<field name="move_id" select="2"/>
<field name="unit_amount" select="2"/>
<field name="ref" select="2"/>
<field name="currency_id" select="2"/>
<field name="amount_currency" select="2"/>
<field name="company_id" select="2"/>
<newline/>
<field name="product_id" select="2"/>
<field name="product_uom_id" select="2"/>
@ -147,16 +163,19 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="top" string="Analytic Entries">
<field name="date"/>
<field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="name"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" sum="Total quantity"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total quantity"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field domain="[('type','=','normal')]" name="account_id"/>
<field invisible="True" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
<field invisible="True" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="amount" sum="Total amount"/>
<field name="general_account_id"/>
<field name="journal_id"/>
<field name="ref"/>
<field name="currency_id" />
<field name="amount_currency" />
<field name="company_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
</tree>
</field>
</record>
@ -183,7 +202,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_account_analytic_line_tree"/>
</record>
<wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Entries Encoding by Line"/>
<wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Making Entries by Line"/>
<menuitem id="next_id_41" name="Analytic Entries" parent="account.menu_finance_entries"/>
<menuitem type="wizard" icon="STOCK_JUSTIFY_FILL" action="action_account_analytic_line" id="account_entries_analytic_entries" parent="next_id_41"/>
@ -213,13 +232,16 @@
<form string="Project line">
<field name="name"/>
<field name="account_id"/>
<field name="date"/>
<field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="journal_id"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field invisible="True" name="general_account_id"/>
<field name="amount"/>
<field name="currency_id" />
<field name="amount_currency" />
<field name="company_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
</form>
</field>
</record>
@ -258,6 +280,7 @@
<field name="code" select="1"/>
<field name="type" select="2"/>
<field name="active" select="2"/>
<field name="company_id" widget="selection"/>
</form>
</field>
</record>
@ -333,6 +356,7 @@
<field name="arch" type="xml">
<tree string="Analytic Entries Stats">
<field name="name"/>
<field name="month"/>
<field name="account_id"/>
<field name="journal_id"/>
<field name="quantity"/>
@ -349,6 +373,7 @@
<field name="arch" type="xml">
<graph string="Analytic Entries Stats" type="bar">
<field name="name"/>
<field name="month"/>
<field name="cost" operator="+"/>
<field name="revenue" operator="+"/>
<field group="True" name="journal_id"/>
@ -356,26 +381,35 @@
</field>
</record>
<record id="report_hr_timesheet_invoice_journal_search" model="ir.ui.view">
<field name="name">report.hr.timesheet.invoice.journal.search</field>
<field name="model">report.hr.timesheet.invoice.journal</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Analytic Entries Stats">
<group col="8" colspan="4">
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Sale journal in this year"/>
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Sale journal in this month"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="account_id" select="1"/>
</group>
</search>
</field>
</record>
<record id="report_account_analytic_journal_tree" model="ir.actions.act_window">
<field name="name">Account cost and revenue by journal</field>
<field name="res_model">report.hr.timesheet.invoice.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="search_view_id" ref="report_hr_timesheet_invoice_journal_search"/>
</record>
<menuitem id="next_id_42" name="All Months" parent="account.next_id_40"/><menuitem action="report_account_analytic_journal_tree" id="report_account_analytic_journal_print" parent="next_id_42"/>
<record id="report_account_analytic_journal_tree_month" model="ir.actions.act_window">
<field name="name">Account cost and revenue by journal (This Month)</field>
<field name="res_model">report.hr.timesheet.invoice.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem id="next_id_43" name="This Month" parent="account.next_id_40"/><menuitem action="report_account_analytic_journal_tree_month" id="report_account_analytic_journal_print_month" parent="next_id_43"/>
<menuitem action="report_account_analytic_journal_tree" id="report_account_analytic_journal_print" parent="account.next_id_40"/>
<act_window domain="[('account_id', '=', active_id)]" id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal" name="All Analytic Entries" res_model="account.analytic.line" src_model="account.analytic.account" view_mode="tree,form" view_type="form"/>
<act_window domain="[('account_id', '=', active_id)]" id="act_acc_analytic_acc_2_report_hr_timesheet_invoice_journal" name="Costs &amp; Revenues" res_model="report.hr.timesheet.invoice.journal" src_model="account.analytic.account" view_mode="graph,tree,form" view_type="form"/>
<record id="view_account_journal_1" model="ir.ui.view">

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -47,7 +47,7 @@ class account_analytic_balance(report_sxw.rml_parse):
self.empty_acc = False
self.acc_data_dict = {}# maintains a relation with an account with its successors.
self.acc_sum_list = []# maintains a list of all ids
def get_children(self, ids):
ids2 = []
read_data = self.pool.get('account.analytic.account').read(self.cr, self.uid, ids,['child_ids','code','complete_name','balance'])
@ -56,23 +56,23 @@ class account_analytic_balance(report_sxw.rml_parse):
inculde_empty = True
if (not self.empty_acc) and data['balance'] == 0.00:
inculde_empty = False
if inculde_empty:
if inculde_empty:
self.acc_ids.append(data['id'])
self.read_data.append(data)
if data['child_ids']:
res = self.get_children(data['child_ids'])
return True
res = self.get_children(data['child_ids'])
return True
def _get_objects(self, empty_acc):
if self.read_data:
return self.read_data
self.empty_acc = empty_acc
self.read_data = []
self.get_children(self.ids)
return self.read_data
def _lines_g(self, account_id, date1, date2):
account_analytic_obj = self.pool.get('account.analytic.account')
ids = account_analytic_obj.search(self.cr, self.uid,
@ -86,7 +86,7 @@ class account_analytic_balance(report_sxw.rml_parse):
GROUP BY aal.general_account_id, aa.name, aa.code, aal.code \
ORDER BY aal.code", (date1, date2))
res = self.cr.dictfetchall()
for r in res:
if r['balance'] > 0:
r['debit'] = r['balance']
@ -99,7 +99,7 @@ class account_analytic_balance(report_sxw.rml_parse):
r['debit'] = 0.0
r['credit'] = 0.0
return res
def _move_sum(self, account_id, date1, date2, option):
if account_id not in self.acc_data_dict:
account_analytic_obj = self.pool.get('account.analytic.account')
@ -107,24 +107,23 @@ class account_analytic_balance(report_sxw.rml_parse):
self.acc_data_dict[account_id] = ids
else:
ids = self.acc_data_dict[account_id]
if option == "credit" :
self.cr.execute("SELECT -sum(amount) FROM account_analytic_line \
WHERE account_id in ("+ ','.join(map(str, ids)) +") \
AND date>=%s AND date<=%s AND amount<0",
(date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount<0",
(ids,date1, date2))
elif option == "debit" :
self.cr.execute("SELECT sum(amount) FROM account_analytic_line \
WHERE account_id in ("+ ','.join(map(str, ids)) +") \
WHERE account_id =ANY(%s)\
AND date>=%s AND date<=%s AND amount>0",
(date1, date2))
(ids,date1, date2))
elif option == "quantity" :
self.cr.execute("SELECT sum(unit_amount) FROM account_analytic_line \
WHERE account_id in ("+ ','.join(map(str, ids)) +") \
WHERE account_id =ANY(%s)\
AND date>=%s AND date<=%s",
(date1, date2))
(ids,date1, date2))
return self.cr.fetchone()[0] or 0.0
# def _move_sum_debit(self, account_id, date1, date2):
# account_analytic_obj = self.pool.get('account.analytic.account')
@ -147,12 +146,12 @@ class account_analytic_balance(report_sxw.rml_parse):
# AND date>=%s AND date<=%s AND amount<0",
# (date1, date2))
# return self.cr.fetchone()[0] or 0.0
#
#
def _move_sum_balance(self, account_id, date1, date2):
debit = self._move_sum(account_id, date1, date2, 'debit')
debit = self._move_sum(account_id, date1, date2, 'debit')
credit = self._move_sum(account_id, date1, date2, 'credit')
return (debit-credit)
# def _move_sum_quantity(self, account_id, date1, date2):
# account_analytic_obj = self.pool.get('account.analytic.account')
# ids = account_analytic_obj.search(self.cr, self.uid,
@ -166,7 +165,6 @@ class account_analytic_balance(report_sxw.rml_parse):
def _sum_all(self, accounts, date1, date2, option):
ids = map(lambda x: x['id'], accounts)
if not len(ids):
return 0.0
@ -176,25 +174,21 @@ class account_analytic_balance(report_sxw.rml_parse):
self.acc_sum_list = ids2
else:
ids2 = self.acc_sum_list
if option == "debit" :
self.cr.execute("SELECT sum(amount) FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids2))+") \
AND date>=%s AND date<=%s AND amount>0",
(date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount>0",
(ids,date1, date2,))
elif option == "credit" :
self.cr.execute("SELECT -sum(amount) FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids2))+") \
AND date>=%s AND date<=%s AND amount<0",
(date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount<0",
(ids,date1, date2,))
elif option == "quantity" :
self.cr.execute("SELECT sum(unit_amount) FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids2))+") \
AND date>=%s AND date<=%s",
(date1, date2))
WHERE account_id =ANY(%s)AND date>=%s AND date<=%s",
(ids,date1, date2,))
return self.cr.fetchone()[0] or 0.0
# def _sum_debit(self, accounts, date1, date2):
# ids = map(lambda x: x['id'], accounts)
# if not len(ids):
@ -208,7 +202,7 @@ class account_analytic_balance(report_sxw.rml_parse):
# AND date>=%s AND date<=%s AND amount>0",
# (date1, date2))
# return self.cr.fetchone()[0] or 0.0
#
#
# def _sum_credit(self, accounts, date1, date2):
# ids = map(lambda x: x['id'], accounts)
# if not len(ids):

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -43,7 +43,6 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
def _lines_p(self, date1, date2):
res = []
acc_obj = self.pool.get('account.account')
# print"3333333acc_obj3333333",acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code','user_type'])
for a in acc_obj.read(self.cr, self.uid, self.ids, ['name', 'code']):
self.cr.execute("SELECT sum(debit), sum(credit) \

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -85,7 +85,7 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
return self.cr.fetchone()[0] or 0.0
def _account_sum_balance(self, account_id, date1, date2):
debit = self._account_sum_debit(account_id, date1, date2)
debit = self._account_sum_debit(account_id, date1, date2)
credit = self._account_sum_credit(account_id, date1, date2)
return (debit-credit)
@ -93,7 +93,7 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
ids = map(lambda x: x.id, accounts)
if not len(ids):
return 0.0
self.cr.execute("SELECT sum(amount) FROM account_analytic_line WHERE account_id IN ("+','.join(map(str, ids))+") AND date>=%s AND date<=%s AND amount>0", (date1, date2))
self.cr.execute("SELECT sum(amount) FROM account_analytic_line WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount>0", (ids, date1, date2,))
return self.cr.fetchone()[0] or 0.0
def _sum_credit(self, accounts, date1, date2):
@ -101,7 +101,7 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
if not len(ids):
return 0.0
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT -sum(amount) FROM account_analytic_line WHERE account_id IN ("+','.join(map(str, ids))+") AND date>=%s AND date<=%s AND amount<0", (date1, date2))
self.cr.execute("SELECT -sum(amount) FROM account_analytic_line WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount<0", (ids,date1, date2,))
return self.cr.fetchone()[0] or 0.0
def _sum_balance(self, accounts, date1, date2):

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -40,8 +40,8 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT aa.name AS name, aa.code AS code, sum(aal.amount) AS balance, sum(aal.unit_amount) AS quantity, aa.id AS id \
FROM account_analytic_line AS aal, account_account AS aa \
WHERE (aal.general_account_id=aa.id) AND (aal.account_id IN ("+','.join(map(str, ids))+")) AND (date>=%s) AND (date<=%s) AND aa.active \
GROUP BY aal.general_account_id, aa.name, aa.code, aal.code, aa.id ORDER BY aal.code", (date1, date2))
WHERE (aal.general_account_id=aa.id) AND (aal.account_id =ANY(%s)) AND (date>=%s) AND (date<=%s) AND aa.active \
GROUP BY aal.general_account_id, aa.name, aa.code, aal.code, aa.id ORDER BY aal.code", (ids,date1,date2,))
res = self.cr.dictfetchall()
for r in res:
@ -60,8 +60,8 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT sum(aal.amount) AS balance, sum(aal.unit_amount) AS quantity, aaa.code AS code, aaa.name AS name, account_id \
FROM account_analytic_line AS aal, account_analytic_account AS aaa \
WHERE aal.account_id=aaa.id AND aal.account_id IN ("+','.join(map(str, ids))+") AND aal.general_account_id=%s AND aal.date>=%s AND aal.date<=%s \
GROUP BY aal.account_id, general_account_id, aaa.code, aaa.name ORDER BY aal.account_id", (general_account_id, date1, date2))
WHERE aal.account_id=aaa.id AND aal.account_id =ANY(%s) AND aal.general_account_id=%s AND aal.date>=%s AND aal.date<=%s \
GROUP BY aal.account_id, general_account_id, aaa.code, aaa.name ORDER BY aal.account_id", (ids,general_account_id, date1, date2,))
res = self.cr.dictfetchall()
aaa_obj = self.pool.get('account.analytic.account')
@ -86,14 +86,14 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT sum(amount) \
FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids))+") AND date>=%s AND date<=%s AND amount>0", (date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount>0", (ids,date1, date2,))
return self.cr.fetchone()[0] or 0.0
def _sum_credit(self, accounts, date1, date2):
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT -sum(amount) \
FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids))+") AND date>=%s AND date<=%s AND amount<0", (date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s AND amount<0", (ids,date1, date2,))
return self.cr.fetchone()[0] or 0.0
def _sum_balance(self, accounts, date1, date2):
@ -105,7 +105,7 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
ids = map(lambda x: x.id, accounts)
self.cr.execute("SELECT sum(unit_amount) \
FROM account_analytic_line \
WHERE account_id IN ("+','.join(map(str, ids))+") AND date>=%s AND date<=%s", (date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s", (ids,date1, date2,))
return self.cr.fetchone()[0] or 0.0
report_sxw.report_sxw('report.account.analytic.account.inverted.balance', 'account.analytic.account', 'addons/account/project/report/inverted_analytic_balance.rml',parser=account_inverted_analytic_balance, header=False)

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -52,10 +52,9 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
WHERE (aal.account_id=%s) AND (aal.date>=%s) \
AND (aal.date<=%s) AND (aal.general_account_id=aa.id) \
AND aa.active \
AND (aal.journal_id IN (" +
','.join(map(str, journal_ids)) + ")) \
AND (aal.journal_id =ANY(%s) ) \
GROUP BY aa.code, aa.name, aa.id ORDER BY aa.code",
(account_id, date1, date2))
(account_id, date1, date2,journal_ids))
res = self.cr.dictfetchall()
return res
@ -80,10 +79,9 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
account_analytic_journal AS aaj \
WHERE (aal.general_account_id=%s) AND (aal.account_id=%s) \
AND (aal.date>=%s) AND (aal.date<=%s) \
AND (aal.journal_id=aaj.id) AND (aaj.id IN (" +
','.join(map(str, journal_ids)) + ")) \
ORDER BY aal.date, aaj.code, aal.code",
(general_account_id, account_id, date1, date2))
AND (aal.journal_id=aaj.id) AND (aaj.id =ANY(%s)) \
ORDER BY aal.date, aaj.code, aal.code",
(general_account_id, account_id, date1, date2,journal_ids,))
res = self.cr.dictfetchall()
return res
@ -98,9 +96,8 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
self.cr.execute("SELECT sum(unit_amount) \
FROM account_analytic_line \
WHERE account_id = %s AND date >= %s AND date <= %s \
AND journal_id IN (" +
','.join(map(str, journal_ids)) + ")",
(account_id, date1, date2))
AND journal_id =ANY(%s)",
(account_id, date1, date2,journal_ids,))
return self.cr.fetchone()[0] or 0.0
def _sum_quantity(self, accounts, date1, date2, journals):
@ -110,18 +107,14 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
if not journals or not journals[0][2]:
self.cr.execute("SELECT sum(unit_amount) \
FROM account_analytic_line \
WHERE account_id IN (" +
','.join(map(str, ids)) + ") AND date>=%s AND date<=%s",
(date1, date2))
WHERE account_id =ANY(%s) AND date>=%s AND date<=%s",
(date1, date2,ids,))
else:
journal_ids = journals[0][2]
self.cr.execute("SELECT sum(unit_amount) \
FROM account_analytic_line \
WHERE account_id IN (" +
','.join(map(str, ids)) + ") AND date >= %s AND date <= %s \
AND journal_id IN (" +
','.join(map(str, journal_ids)) + ")",
(date1, date2))
WHERE account_id =ANY(%s) AND date >= %s AND date <= %s \
AND journal_id =ANY(%s)",(ids,date1, date2,journal_ids))
return self.cr.fetchone()[0] or 0.0
report_sxw.report_sxw('report.account.analytic.account.quantity_cost_ledger',

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -57,10 +57,10 @@ class account_balance(report_sxw.rml_parse):
def get_periods(self, form):
result=''
if form.has_key('periods') and form['periods'][0][2]:
period_ids = ",".join([str(x) for x in form['periods'][0][2] if x])
self.cr.execute("select name from account_period where id in (%s)" % (period_ids))
period_ids = form['periods'][0][2]
self.cr.execute("select name from account_period where id =ANY(%s)" ,(period_ids))
res = self.cr.fetchall()
len_res = len(res)
len_res = len(res)
for r in res:
if (r == res[len_res-1]):
result+=r[0]+". "
@ -75,10 +75,10 @@ class account_balance(report_sxw.rml_parse):
result+=r.name+". "
else:
result+=r.name+", "
return str(result and result[:-1]) or ''
def lines(self, form, ids={}, done=None, level=1):
if not ids:
ids = self.ids
@ -98,7 +98,7 @@ class account_balance(report_sxw.rml_parse):
ctx['periods'] = form['periods'][0][2]
elif form['state']== 'bydate':
ctx['date_from'] = form['date_from']
ctx['date_to'] = form['date_to']
ctx['date_to'] = form['date_to']
elif form['state'] == 'all' :
ctx['periods'] = form['periods'][0][2]
ctx['date_from'] = form['date_from']
@ -165,7 +165,7 @@ class account_balance(report_sxw.rml_parse):
#
# result_acc += self.lines(form, ids2, done, level+1)
return result_acc
def _sum_credit(self):
return self.sum_credit

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -1,8 +1,9 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +16,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -26,40 +27,43 @@ import copy
from report import report_sxw
import re
def _get_country(record):
if record.partner_id \
and record.partner_id.address \
and record.partner_id.address[0].country_id:
return record.partner_id.address[0].country_id.code
else:
return ''
def _record_to_report_line(record):
return {'date': record.date,
'ref': record.ref,
'acode': record.account_id.code,
'name': record.name,
'debit': record.debit,
'credit': record.credit,
'pname': record.partner_id and record.partner_id.name or '',
'country': _get_country(record)
}
class account_tax_code_report(rml_parse.rml_parse):
#_name = 'report.account.tax.code.entries'
_name = 'report.account.tax.code.entries'
def __init__(self, cr, uid, name, context):
super(account_tax_code_report, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'get_line':self.get_line,
})
def get_line(self,obj):
res = {}
result = []
line_ids = self.pool.get('account.move.line').search(self.cr,self.uid,[('tax_code_id','=',obj.id)])
if line_ids:
move_line_objs = self.pool.get('account.move.line').browse(self.cr,self.uid,line_ids)
for line in move_line_objs:
res['date'] = line.date
res['ref'] = line.ref
res['acode'] = line.account_id.code
res['pname'] = ''
res['country'] = ''
if line.partner_id:
res['pname'] = line.partner_id.name
if line.partner_id.address and line.partner_id.address[0].country_id:
res['country'] = line.partner_id.address[0].country_id.code
res['name'] = line.name
res['debit'] = line.debit
res['credit'] = line.credit
result.append(res)
def get_line(self, obj):
line_ids = self.pool.get('account.move.line').search(self.cr, self.uid, [('tax_code_id','=',obj.id)])
if not line_ids: return []
return map(_record_to_report_line,
self.pool.get('account.move.line')\
.browse(self.cr, self.uid, line_ids))
return result
report_sxw.report_sxw('report.account.tax.code.entries', 'account.tax.code',
'addons/account/report/account_tax_code.rml', parser=account_tax_code_report, header=False)

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -47,26 +47,26 @@ class aged_trial_report(rml_parse.rml_parse):
def _get_lines(self, form):
if (form['result_selection'] == 'customer' ):
self.ACCOUNT_TYPE = "('receivable')"
self.ACCOUNT_TYPE = ['receivable']
elif (form['result_selection'] == 'supplier'):
self.ACCOUNT_TYPE = "('payable')"
self.ACCOUNT_TYPE = ['payable']
else:
self.ACCOUNT_TYPE = "('payable','receivable')"
self.ACCOUNT_TYPE = ['payable','receivable']
res = []
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
self.line_query = account_move_line_obj._query_get(self.cr, self.uid, obj='line',
context={'fiscalyear': form['fiscalyear']})
self.cr.execute("""SELECT DISTINCT res_partner.id AS id,
res_partner.name AS name
FROM res_partner,account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > '%s' )))
AND (line.partner_id=res_partner.id)
AND (account_account.company_id = %s)
ORDER BY res_partner.name""" % (form['date1'],form['company_id']))
self.cr.execute("""SELECT DISTINCT res_partner.id AS id,
res_partner.name AS name
FROM res_partner,account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))
AND (line.partner_id=res_partner.id)
AND (account_account.company_id = %s)
ORDER BY res_partner.name""" , (form['date1'],form['company_id']))
partners = self.cr.dictfetchall()
## mise a 0 du total
for i in range(7):
@ -74,20 +74,20 @@ class aged_trial_report(rml_parse.rml_parse):
#
# Build a string like (1,2,3) for easy use in SQL query
partner_ids = '(' + ','.join( [str(x['id']) for x in partners] ) + ')'
partner_ids = [x['id'] for x in partners]
# This dictionary will store the debit-credit for all partners, using partner_id as key.
totals = {}
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
FROM account_move_line AS line, account_account
WHERE (line.account_id = account_account.id)
AND (account_account.type IN %s)
AND (partner_id in %s)
WHERE (line.account_id = account_account.id)
AND (account_account.type =ANY(%s))
AND (partner_id =ANY (%s))
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > '%s' )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id""" % (self.ACCOUNT_TYPE, partner_ids,form['date1'],form['company_id']))
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id""" , (self.ACCOUNT_TYPE, partner_ids,form['date1'],form['company_id'],))
t = self.cr.fetchall()
for i in t:
totals[i[0]] = i[1]
@ -95,17 +95,17 @@ class aged_trial_report(rml_parse.rml_parse):
# This dictionary will store the future or past of all partners
future_past = {}
if form['direction_selection'] == 'future':
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
FROM account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND (account_account.type IN %s)
AND (COALESCE(date_maturity,date) < '%s')
AND (partner_id in %s)
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
FROM account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND (account_account.type =ANY (%s))
AND (COALESCE(date_maturity,date) < %s)
AND (partner_id =ANY (%s))
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > '%s' )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id"""% (self.ACCOUNT_TYPE, form['date1'], partner_ids,form['date1'], form['company_id']))
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id""", (self.ACCOUNT_TYPE, form['date1'], partner_ids,form['date1'], form['company_id'],))
t = self.cr.fetchall()
for i in t:
future_past[i[0]] = i[1]
@ -113,14 +113,14 @@ class aged_trial_report(rml_parse.rml_parse):
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
FROM account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND (account_account.type IN %s)
AND (COALESCE(date_maturity,date) > '%s')
AND (partner_id in %s)
AND (account_account.type =ANY (%s))
AND (COALESCE(date_maturity,date) > %s)
AND (partner_id =ANY (%s))
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > '%s' )))
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id""" % (self.ACCOUNT_TYPE, form['date1'], partner_ids, form['date1'], form['company_id']))
GROUP BY partner_id""" , (self.ACCOUNT_TYPE, form['date1'], partner_ids, form['date1'], form['company_id'],))
t = self.cr.fetchall()
for i in t:
future_past[i[0]] = i[1]
@ -132,14 +132,14 @@ class aged_trial_report(rml_parse.rml_parse):
self.cr.execute("""SELECT partner_id, SUM(debit-credit)
FROM account_move_line AS line, account_account
WHERE (line.account_id=account_account.id)
AND (account_account.type IN %s)
AND (COALESCE(date_maturity,date) BETWEEN '%s' AND '%s')
AND (partner_id in %s )
AND (account_account.type =ANY (%s))
AND (COALESCE(date_maturity,date) BETWEEN %s AND %s)
AND (partner_id =ANY (%s))
AND ((reconcile_id IS NULL)
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > '%s' )))
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))
AND (account_account.company_id = %s)
AND account_account.active
GROUP BY partner_id""" % (self.ACCOUNT_TYPE, form[str(i)]['start'], form[str(i)]['stop'],partner_ids ,form['date1'] ,form['company_id']))
GROUP BY partner_id""" , (self.ACCOUNT_TYPE, form[str(i)]['start'], form[str(i)]['stop'],partner_ids ,form['date1'] ,form['company_id'],))
t = self.cr.fetchall()
d = {}

Some files were not shown because too many files have changed in this diff Show More