[MERGE] Merge with team1 branch

bzr revid: sbh@tinyerp.com-20110201111837-0qd7h3uwbgxexn26
This commit is contained in:
Sbh (OpenERP)
2011-02-01 16:48:37 +05:30
4791 changed files with 451244 additions and 343186 deletions
+56 -12
View File
@@ -419,8 +419,18 @@ class account_account(osv.osv):
ids = child_ids
return True
def _check_type(self, cr, uid, ids, context=None):
if context is None:
context = {}
accounts = self.browse(cr, uid, ids, context=context)
for account in accounts:
if account.child_id and account.type != 'view':
return False
return True
_constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id']),
(_check_type, 'Configuration Error! \nYou cannot define children to an account with internal type different of "View"! ', ['type']),
]
_sql_constraints = [
('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
@@ -526,10 +536,14 @@ class account_account(osv.osv):
if context is None:
context = {}
# Dont allow changing the company_id when account_move_line already exist
if 'company_id' in vals:
move_lines = self.pool.get('account.move.line').search(cr, uid, [('account_id', 'in', ids)])
if move_lines:
raise osv.except_osv(_('Warning !'), _('You cannot modify Company of account as its related record exist in Entry Lines'))
# Allow the write if the value is the same
for i in [i['company_id'][0] for i in self.read(cr,uid,ids,['company_id'])]:
if vals['company_id']!=i:
raise osv.except_osv(_('Warning !'), _('You cannot modify Company of account as its related record exist in Entry Lines'))
if 'active' in vals and not vals['active']:
self._check_moves(cr, uid, ids, "write", context=context)
if 'type' in vals.keys():
@@ -572,11 +586,11 @@ 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', help="Gives the sequence order to journal column."),
'sequence': fields.integer('Sequence', help="Gives the sequence order to journal column.", readonly=True),
'required': fields.boolean('Required'),
'readonly': fields.boolean('Readonly'),
}
_order = "sequence"
_order = "view_id, sequence"
account_journal_column()
@@ -965,7 +979,7 @@ class account_journal_period(osv.osv):
'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.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company')
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
def _check(self, cr, uid, ids, context=None):
@@ -1116,16 +1130,16 @@ class account_move(osv.osv):
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
'amount': fields.function(_amount_compute, method=True, string='Amount', digits_compute=dp.get_precision('Account'), type='float', fnct_search=_search_amount),
'date': fields.date('Date', required=True, states={'posted':[('readonly',True)]}),
'date': fields.date('Date', required=True, states={'posted':[('readonly',True)]}, select=True),
'narration':fields.text('Narration'),
'company_id': fields.related('journal_id','company_id',type='many2one',relation='res.company',string='Company',store=True),
'company_id': fields.related('journal_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
}
_defaults = {
'name': '/',
'state': 'draft',
'period_id': _get_period,
'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,
'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, context=None):
@@ -1612,7 +1626,6 @@ class account_tax_code(osv.osv):
ids = self.search(cr, user, ['|',('name',operator,name),('code',operator,name)] + args, limit=limit, context=context)
return self.name_get(cr, user, ids, context)
def name_get(self, cr, uid, ids, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
@@ -1647,6 +1660,7 @@ class account_tax_code(osv.osv):
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
]
_order = 'code'
account_tax_code()
class account_tax(osv.osv):
@@ -2295,11 +2309,21 @@ class account_account_template(osv.osv):
'nocreate': False,
}
def _check_type(self, cr, uid, ids, context=None):
if context is None:
context = {}
accounts = self.browse(cr, uid, ids, context=context)
for account in accounts:
if account.parent_id and account.parent_id.type != 'view':
return False
return True
_check_recursion = check_cycle
_constraints = [
(_check_recursion, 'Error ! You can not create recursive account templates.', ['parent_id'])
]
(_check_recursion, 'Error ! You can not create recursive account templates.', ['parent_id']),
(_check_type, 'Configuration Error! \nYou cannot define children to an account with internal type different of "View"! ', ['type']),
]
def name_get(self, cr, uid, ids, context=None):
if not ids:
@@ -2512,7 +2536,7 @@ class account_fiscal_position_template(osv.osv):
_description = 'Template for Fiscal Position'
_columns = {
'name': fields.char('Fiscal Position Template', size=64, translate=True, required=True),
'name': fields.char('Fiscal Position Template', size=64, required=True),
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
'account_ids': fields.one2many('account.fiscal.position.account.template', 'position_id', 'Account Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax.template', 'position_id', 'Tax Mapping')
@@ -2586,6 +2610,24 @@ class wizard_multi_charts_accounts(osv.osv_memory):
res['value']["purchase_tax"] = purchase_tax_ids and purchase_tax_ids[0] or False
return res
def _get_purchase_tax(self, cr, uid, context=None):
ids = self.pool.get('account.chart.template').search(cr, uid, [], context=context)
if ids:
chart_template_id = ids[0]
purchase_tax_ids = self.pool.get('account.tax.template').search(cr, uid, [("chart_template_id"
, "=", chart_template_id), ('type_tax_use', 'in', ('purchase','all'))], order="sequence")
return purchase_tax_ids and purchase_tax_ids[0] or False
return False
def _get_sale_tax(self, cr, uid, context=None):
ids = self.pool.get('account.chart.template').search(cr, uid, [], context=context)
if ids:
chart_template_id = ids[0]
sale_tax_ids = self.pool.get('account.tax.template').search(cr, uid, [("chart_template_id"
, "=", chart_template_id), ('type_tax_use', 'in', ('sale','all'))], order="sequence")
return sale_tax_ids and sale_tax_ids[0] or False
return False
def _get_chart(self, cr, uid, context=None):
ids = self.pool.get('account.chart.template').search(cr, uid, [], context=context)
if ids:
@@ -2602,6 +2644,8 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, [uid], c)[0].company_id.id,
'chart_template_id': _get_chart,
'bank_accounts_id': _get_default_accounts,
'sale_tax': _get_sale_tax,
'purchase_tax': _get_purchase_tax,
'code_digits': 6,
'seq_journal': True
}
-2
View File
@@ -51,7 +51,6 @@ class account_analytic_line(osv.osv):
context = {}
if context.get('from_date',False):
args.append(['date', '>=', context['from_date']])
if context.get('to_date',False):
args.append(['date','<=', context['to_date']])
return super(account_analytic_line, self).search(cr, uid, args, offset, limit,
@@ -125,7 +124,6 @@ class account_analytic_line(osv.osv):
result = round(amount, prec)
if not flag:
result *= -1
return {'value': {
'amount': result,
'general_account_id': a,
+21
View File
@@ -405,6 +405,27 @@ account_bank_statement()
class account_bank_statement_line(osv.osv):
def onchange_partner_id(self, cr, uid, ids, partner_id, context=None):
obj_partner = self.pool.get('res.partner')
if context is None:
context = {}
if not partner_id:
return {}
part = obj_partner.browse(cr, uid, partner_id, context=context)
if not part.supplier and not part.customer:
type = 'general'
elif part.supplier and part.customer:
type = 'general'
else:
if part.supplier == True:
type = 'supplier'
if part.customer == True:
type = 'customer'
res_type = self.onchange_type(cr, uid, ids, partner_id=partner_id, type=type, context=context)
if res_type['value'] and res_type['value'].get('account_id', False):
return {'value': {'type': type, 'account_id': res_type['value']['account_id']}}
return {'value': {'type': type}}
def onchange_type(self, cr, uid, line_id, partner_id, type, context=None):
res = {'value': {}}
obj_partner = self.pool.get('res.partner')
+1 -1
View File
@@ -28,7 +28,7 @@
<field name="charts"/>
<group colspan="4" groups="base.group_extended">
<separator col="4" colspan="4" string="Configure Fiscal Year"/>
<field name="company_id" colspan="4" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" colspan="4" widget="selection"/><!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
<field name="date_start" on_change="on_change_start_date(date_start)"/>
<field name="date_stop"/>
<field name="period" colspan="4"/>
+4 -3
View File
@@ -190,6 +190,7 @@
<field name="tax_line" nolabel="1">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_invoice"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
@@ -284,7 +285,8 @@
<field name="tax_line" nolabel="1">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="account_id" groups="account.group_account_invoice"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
<field invisible="True" name="tax_amount"/>
@@ -310,7 +312,7 @@
<button name='%(action_account_state_open)d' type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="base.group_no_one"/>
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" icon="terp-gtk-media-pause" groups="account.group_account_user"/>
<button name="invoice_open" states="draft,proforma2" string="Validate" icon="gtk-go-forward"/>
<button name="%(account_invoices)d" string="Print Invoice" type="action" icon="gtk-print"/>
<button name="%(account_invoices)d" string="Print Invoice" type="action" icon="gtk-print" states="open,paid,proforma,sale,proforma2"/>
</group>
</group>
</page>
@@ -434,7 +436,6 @@
<field name="context">{'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers.</field>
<field name="groups_id" eval="[(6,0,[ref('account.group_account_manager'),ref('account.group_account_user')])]"/>
</record>
+35 -25
View File
@@ -45,7 +45,11 @@ class account_move_line(osv.osv):
if context.get('company_id', False):
company_clause = " AND " +obj+".company_id = %s" % context.get('company_id', False)
if not context.get('fiscalyear', False):
fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('state', '=', 'draft')])
if context.get('all_fiscalyear', False):
#this option is needed by the aged balance report because otherwise, if we search only the draft ones, an open invoice of a closed fiscalyear won't be displayed
fiscalyear_ids = fiscalyear_obj.search(cr, uid, [])
else:
fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('state', '=', 'draft')])
else:
#for initial balance as well as for normal query, we check only the selected FY because the best practice is to generate the FY opening entries
fiscalyear_ids = [context['fiscalyear']]
@@ -57,7 +61,7 @@ class account_move_line(osv.osv):
if context.get('date_from', False) and context.get('date_to', False):
if initial_bal:
where_move_lines_by_date = " OR " +obj+".move_id IN (SELECT id FROM account_move WHERE date < '" +context['date_from']+"')"
where_move_lines_by_date = " AND " +obj+".move_id IN (SELECT id FROM account_move WHERE date < '" +context['date_from']+"')"
else:
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']+"')"
@@ -74,7 +78,7 @@ class account_move_line(osv.osv):
context['periods'] = fiscalperiod_obj.build_ctx_periods(cr, uid, context['period_from'], context['period_to'])
if context.get('periods', False):
if initial_bal:
query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s) %s %s)" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s)) %s %s" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
period_ids = fiscalperiod_obj.search(cr, uid, [('id', 'in', context['periods'])], order='date_start', limit=1)
if period_ids and period_ids[0]:
first_period = fiscalperiod_obj.browse(cr, uid, period_ids[0], context=context)
@@ -87,7 +91,7 @@ class account_move_line(osv.osv):
ids = ','.join([str(x) for x in context['periods']])
query = 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)
else:
query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s) %s %s)" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s)) %s %s" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
if context.get('journal_ids', False):
query += ' AND '+obj+'.journal_id IN (%s)' % ','.join(map(str, context['journal_ids']))
@@ -97,14 +101,13 @@ class account_move_line(osv.osv):
query += ' AND '+obj+'.account_id IN (%s)' % ','.join(map(str, child_ids))
query += company_clause
return query
def _amount_residual(self, cr, uid, ids, field_names, args, context=None):
"""
This function returns the residual amount on a receivable or payable account.move.line.
By default, it returns an amount in the currency of this journal entry (maybe different
of the company currency), but if you pass 'residual_in_company_currency' = True in the
This function returns the residual amount on a receivable or payable account.move.line.
By default, it returns an amount in the currency of this journal entry (maybe different
of the company currency), but if you pass 'residual_in_company_currency' = True in the
context then the returned amount will be in company currency.
"""
res = {}
@@ -116,13 +119,13 @@ class account_move_line(osv.osv):
'amount_residual': 0.0,
'amount_residual_currency': 0.0,
}
if move_line.reconcile_id:
continue
if not move_line.account_id.type in ('payable', 'receivable'):
#this function does not suport to be used on move lines not related to payable or receivable accounts
continue
if move_line.currency_id:
move_line_total = move_line.amount_currency
sign = move_line.amount_currency < 0 and -1 or 1
@@ -491,12 +494,12 @@ 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 this journal item as a litigation with the associated partner"),
'partner_id': fields.many2one('res.partner', 'Partner', select=1, ondelete='restrict'),
'date_maturity': fields.date('Due date', help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line."),
'date': fields.related('move_id','date', string='Effective date', type='date', required=True,
'date_maturity': fields.date('Due date', select=True ,help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line."),
'date': fields.related('move_id','date', string='Effective date', type='date', required=True, select=True,
store = {
'account.move': (_get_move_lines, ['date'], 20)
}),
'date_created': fields.date('Creation date'),
'date_created': fields.date('Creation date', select=True),
'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'),
@@ -585,18 +588,10 @@ class account_move_line(osv.osv):
return False
return True
def _check_partner_id(self, cr, uid, ids, context=None):
lines = self.browse(cr, uid, ids, context=context)
for l in lines:
if l.account_id.type in ('receivable', 'payable') and not l.partner_id:
return False
return True
_constraints = [
(_check_no_view, 'You can not create move line on view account.', ['account_id']),
(_check_no_closed, 'You can not create move line on closed account.', ['account_id']),
(_check_company_id, 'Company must be same for its related account and period.',['company_id'] ),
(_check_partner_id, 'You can not create move line on receivable/payable account without partner', ['account_id'] )
]
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
@@ -898,7 +893,8 @@ class account_move_line(osv.osv):
if context.get('account_id', False):
cr.execute('SELECT code FROM account_account WHERE id = %s', (context['account_id'], ))
res = cr.fetchone()
res = _('Entries: ')+ (res[0] or '')
if res:
res = _('Entries: ')+ (res[0] or '')
return res
if (not context.get('journal_id', False)) or (not context.get('period_id', False)):
return False
@@ -907,7 +903,7 @@ class account_move_line(osv.osv):
cr.execute('SELECT code FROM account_period WHERE id = %s', (context['period_id'], ))
p = cr.fetchone()[0] or ''
if j or p:
return j+(p and (':'+p) or '')
return j + (p and (':' + p) or '')
return False
def onchange_date(self, cr, user, ids, date, context=None):
@@ -941,7 +937,7 @@ class account_move_line(osv.osv):
journal_pool = self.pool.get('account.journal')
if context is None:
context = {}
result = super(osv.osv, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu)
result = super(account_move_line, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu)
if view_type != 'tree':
#Remove the toolbar from the form view
if view_type == 'form':
@@ -950,6 +946,14 @@ class account_move_line(osv.osv):
#Restrict the list of journal view in search view
if view_type == 'search' and result['fields'].get('journal_id', False):
result['fields']['journal_id']['selection'] = journal_pool.name_search(cr, uid, '', [], context=context)
ctx = context.copy()
#we add the refunds journal in the selection field of journal
if context.get('journal_type', False) == 'sale':
ctx.update({'journal_type': 'sale_refund'})
result['fields']['journal_id']['selection'] += journal_pool.name_search(cr, uid, '', [], context=ctx)
elif context.get('journal_type', False) == 'purchase':
ctx.update({'journal_type': 'purchase_refund'})
result['fields']['journal_id']['selection'] += journal_pool.name_search(cr, uid, '', [], context=ctx)
return result
if context.get('view_mode', False):
return result
@@ -1032,7 +1036,13 @@ class account_move_line(osv.osv):
if field in widths:
attrs.append('width="'+str(widths[field])+'"')
attrs.append("invisible=\"context.get('visible_id') not in %s\"" % (fields.get(field)))
if field in ('journal_id',):
attrs.append("invisible=\"context.get('journal_id', False)\"")
elif field in ('period_id',):
attrs.append("invisible=\"context.get('period_id', False)\"")
else:
attrs.append("invisible=\"context.get('visible_id') not in %s\"" % (fields.get(field)))
xml += '''<field name="%s" %s/>\n''' % (field,' '.join(attrs))
xml += '''</tree>'''
+1 -9
View File
@@ -2,6 +2,7 @@
<openerp>
<data>
<report auto="False" id="account_general_ledger" menu="False" model="account.account" name="account.general.ledger" rml="account/report/account_general_ledger.rml" string="General Ledger"/>
<report auto="False" id="account_general_ledger_landscape" menu="False" model="account.account" name="account.general.ledger_landscape" rml="account/report/account_general_ledger_landscape.rml" string="General Ledger"/>
<report auto="False" id="account_3rdparty_ledger" menu="False" model="res.partner" name="account.third_party_ledger" rml="account/report/account_partner_ledger.rml" string="Partner Ledger"/>
<report auto="False" id="account_3rdparty_ledger_other" menu="False" model="res.partner" name="account.third_party_ledger_other" rml="account/report/account_partner_ledger_other.rml" string="Partner Ledger"/>
<report auto="False" id="account_account_balance" menu="False" model="account.account" name="account.account.balance" rml="account/report/account_balance.rml" string="Trial Balance"/>
@@ -34,15 +35,6 @@
rml="account/report/account_tax_report.rml"
string="Taxes Report"/>
<report id="report_account_voucher_new"
string="Print Voucher"
model="account.move"
name="account.move.voucher"
rml="account/report/account_voucher_print.rml"
auto="False"
header = "False"
menu="True"/>
<menuitem
id="menu_tax_report"
name="Taxes"
+22 -91
View File
@@ -170,6 +170,8 @@
</group>
<notebook colspan="4">
<page string="General Information">
<field name="active" groups="base.group_extended" />
<newline/>
<group col="2" colspan="2">
<separator string="Currency" colspan="2"/>
<field name="currency_id"/>
@@ -419,8 +421,8 @@
<group col="2" colspan="2">
<group colspan="2" col="2">
<separator string="Accounts" colspan="4"/>
<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="default_debit_account_id" attrs="{'required':[('type','in', ('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','in',('cash', 'bank'))]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
</group>
<group colspan="2" col="2">
<separator string="Journal View" colspan="4"/>
@@ -556,6 +558,7 @@
<field name="balance_start"/>
<field name="balance_end_real"/>
<field name="currency" invisible="1"/>
<field name='company_id' widget="selection" groups="base.group_multi_company" />
</group>
<notebook colspan="4">
<page string="Transaction" name="statement_line_ids">
@@ -565,7 +568,7 @@
<field name="date" groups="base.group_extended"/>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id','=',parent.journal_id)]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
@@ -574,12 +577,12 @@
<form string="Statement lines">
<field name="date"/>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
<field name="amount"/>
<field name="ref"/>
<field name="sequence" readonly="0"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
@@ -602,7 +605,7 @@
</record>
<record id="view_bank_statement_periodic_form" model="ir.ui.view">
<field name="name">account.bank.statement.form</field>
<field name="name">account.bank.statement.reconcile.form</field>
<field name="model">account.bank.statement</field>
<field name="type">form</field>
<field name="arch" type="xml">
@@ -744,7 +747,6 @@
<group col="2" colspan="2">
<separator string="Reporting Configuration" colspan="4"/>
<field name="report_type" select="2"/>
<field name="sign"/>
</group>
<group col="2" colspan="2">
<separator string="Closing Method" colspan="4"/>
@@ -1191,7 +1193,7 @@
</group>
<newline/>
<group col="10" colspan="4">
<field name="journal_id" widget="selection" context="{'journal_id':self, 'visible_id':self or 0, 'normal_view':False}"/>
<field name="journal_id" widget="selection" context="{'journal_id':self, 'visible_id':self, 'normal_view':False}"/>
<field name="period_id" context="{'period_id':self, 'search_default_period_id':self}"/>
</group>
<newline/>
@@ -1519,70 +1521,6 @@
<field name="act_window_id" ref="action_move_line_search"/>
</record>
<record id="view_bank_statement_reconcile_form" model="ir.ui.view">
<field name="name">account.bank.statement.form</field>
<field name="model">account.bank.statement</field>
<field eval="30" name="priority"/>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Statement">
<group col="6" colspan="4">
<field name="name" select="1"/>
<field name="date" select="1"/>
<field name="journal_id" on_change="onchange_journal_id(journal_id)" select="1"/>
<field name="currency"/>
<field name="balance_start"/>
<field name="balance_end_real"/>
</group>
<notebook colspan="4">
<page string="Select entries">
<field colspan="4" domain="[('statement_id', '=', False), ('journal_id', '=', journal_id)]" name="move_line_ids" nolabel="1" widget="many2many"/>
</page>
<page string="Entry encoding">
<separator colspan="4" string="Entry Lines"/>
<field name="period_id"/>
<field colspan="4" name="line_ids" nolabel="1">
<tree editable="bottom" string="Statement lines">
<field name="date"/>
<field name="name"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id)]" name="account_id"/>
<field name="amount"/>
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'date':date}" name="reconcile_id"/>
</tree>
<form string="Statement lines">
<field name="date"/>
<field name="name"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id)]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" />
<field name="amount"/>
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'date':date}" name="reconcile_id"/>
</form>
</field>
</page>
</notebook>
<group col="7" colspan="4">
<field name="state"/>
<field name="balance_end"/>
<button name="button_cancel" states="confirm" string="Cancel" type="object" icon="gtk-cancel"/>
<button name="button_dummy" states="draft" string="Compute" icon="terp-stock_format-scientific"/>
<button name="button_confirm" states="draft" string="Confirm" type="object" icon="terp-camera_test"/>
</group>
</form>
</field>
</record>
<record id="action_bank_statement_reconciliation_form" model="ir.actions.act_window">
<field name="name">Statements reconciliation</field>
<field name="res_model">account.bank.statement</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="search_view_id" ref="view_bank_statement_search"/>
<field name="view_id" ref="view_bank_statement_reconcile_form"/>
</record>
<act_window
context="{'search_default_next_partner':1,'view_mode':True}"
id="action_account_manual_reconcile" name="Journal Items"
@@ -2449,13 +2387,14 @@
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" widget="selection"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
<field name ="code_digits" groups="base.group_extended"/>
<field name="chart_template_id" widget="selection" on_change="onchange_chart_template_id(chart_template_id)"/>
<field name ="seq_journal" groups="base.group_extended"/>
<field name="sale_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<field name="purchase_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('purchase', 'all'))]"/>
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list">
<field name="sale_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<field name="purchase_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('purchase', 'all'))]"/>
<newline/> <!-- extended view because the web UI is not good for one2many -->
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list" groups="base.group_extended">
<form string="Bank Information">
<field name="acc_name"/>
<field name="account_type"/>
@@ -2631,21 +2570,21 @@ action = self.pool.get('res.config').next(cr, uid, [], context)
<field name="date" groups="base.group_extended"/>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id','=',parent.journal_id)]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" />
<field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]" groups="analytic.group_analytic_accounting" />
<field name="amount"/>
</tree>
<form string="Statement lines">
<field name="date"/>
<field name="name"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="partner_id" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" />
<field name="amount"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]" groups="analytic.group_analytic_accounting" />
<field name="amount"/>
<field name="sequence"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
@@ -2757,14 +2696,6 @@ action = self.pool.get('res.config').next(cr, uid, [], context)
<menuitem action="action_view_bank_statement_tree" id="journal_cash_move_lines"
parent="menu_finance_bank_and_cash"/>
<record id="action_partner_all" model="ir.actions.act_window">
<field name="name">Partners</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="filter" eval="True"/>
</record>
<menuitem id="menu_account_customer" name="Customers"
parent="menu_finance_receivables"
action="base.action_partner_customer_form" sequence="100"/>
+1
View File
@@ -27,6 +27,7 @@
<field name="view_mode">tree,graph</field>
<field name="context">{'group_by':['user_type'], 'group_by_no_leaf':1}</field>
<field name="view_id" ref="account.view_account_entries_report_tree"/>
<field name="domain">[('year','=',time.strftime('%Y'))]</field>
</record>
<record id="action_treasory_graph" model="ir.actions.act_window">
<field name="name">Treasury</field>
+30 -54
View File
@@ -72,13 +72,13 @@
<field name="view_id" ref="account_journal_bank_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="10" name="sequence"/>
<field eval="11" name="sequence"/>
</record>
<record id="bank_col10" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="11" name="sequence"/>
<field eval="12" name="sequence"/>
</record>
<record id="bank_col3" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
@@ -90,7 +90,7 @@
<field name="view_id" ref="account_journal_bank_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
<field eval="19" name="sequence"/>
</record>
<record id="bank_col20" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
@@ -147,25 +147,25 @@
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency Amt.</field>
<field name="field">amount_currency</field>
<field eval="8" name="sequence"/>
<field eval="9" name="sequence"/>
</record>
<record id="bank_col18_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Currency</field>
<field name="field">currency_id</field>
<field eval="9" name="sequence"/>
<field eval="10" name="sequence"/>
</record>
<record id="bank_col9_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="10" name="sequence"/>
<field eval="11" name="sequence"/>
</record>
<record id="bank_col10_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="11" name="sequence"/>
<field eval="12" name="sequence"/>
</record>
<record id="bank_col3_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
@@ -177,7 +177,7 @@
<field name="view_id" ref="account_journal_bank_view_multi"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="16" name="sequence"/>
<field eval="19" name="sequence"/>
</record>
<record id="bank_col20_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
@@ -234,25 +234,25 @@
<field name="view_id" ref="account_journal_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="8" name="sequence"/>
<field eval="11" name="sequence"/>
</record>
<record id="journal_col9" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="9" name="sequence"/>
<field eval="12" name="sequence"/>
</record>
<record id="journal_col11" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
<field eval="14" name="sequence"/>
</record>
<record id="journal_col24" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
<field eval="19" name="sequence"/>
</record>
@@ -284,68 +284,56 @@
<field name="name">Account</field>
<field name="field">account_id</field>
<field eval="True" name="required"/>
<field eval="5" name="sequence"/>
<field eval="6" name="sequence"/>
</record>
<record id="sp_journal_col5" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
<field eval="5" name="sequence"/>
</record>
<record id="sp_journal_col6" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Name</field>
<field name="field">name</field>
<field eval="6" name="sequence"/>
<field eval="7" name="sequence"/>
<field eval="True" name="required"/>
</record>
<record id="sp_journal_col7" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Due Date</field>
<field name="field">date_maturity</field>
<field eval="7" name="sequence"/>
<field eval="8" name="sequence"/>
</record>
<record id="sp_journal_col8" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="8" name="sequence"/>
<field eval="11" name="sequence"/>
</record>
<record id="sp_journal_col9" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="9" name="sequence"/>
<field eval="12" name="sequence"/>
</record>
<record id="sp_journal_col10" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="10" name="sequence"/>
<field eval="13" name="sequence"/>
</record>
<record id="sp_journal_col11" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
</record>
<record id="sp_journal_col25" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax Acc.</field>
<field name="field">tax_code_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="sp_journal_col26" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax</field>
<field name="field">tax_amount</field>
<field eval="13" name="sequence"/>
<field eval="14" name="sequence"/>
</record>
<record id="sp_journal_col24" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
<field eval="19" name="sequence"/>
</record>
<record id="sp_journal_col20" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
@@ -382,68 +370,56 @@
<field name="name">Account</field>
<field name="field">account_id</field>
<field eval="True" name="required"/>
<field eval="5" name="sequence"/>
<field eval="6" name="sequence"/>
</record>
<record id="sp_refund_journal_col5" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
<field eval="5" name="sequence"/>
</record>
<record id="sp_refund_journal_col6" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Name</field>
<field name="field">name</field>
<field eval="6" name="sequence"/>
<field eval="7" name="sequence"/>
<field eval="True" name="required"/>
</record>
<record id="sp_refund_journal_col7" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Due Date</field>
<field name="field">date_maturity</field>
<field eval="7" name="sequence"/>
<field eval="8" name="sequence"/>
</record>
<record id="sp_refund_journal_col8" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="8" name="sequence"/>
<field eval="11" name="sequence"/>
</record>
<record id="sp_refund_journal_col9" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="9" name="sequence"/>
<field eval="12" name="sequence"/>
</record>
<record id="sp_refund_journal_col10" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="10" name="sequence"/>
<field eval="13" name="sequence"/>
</record>
<record id="sp_refund_journal_col11" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
</record>
<record id="sp_refund_journal_col25" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax Acc.</field>
<field name="field">tax_code_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="sp_refund_journal_col26" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax</field>
<field name="field">tax_amount</field>
<field eval="13" name="sequence"/>
<field eval="14" name="sequence"/>
</record>
<record id="sp_refund_journal_col24" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
<field eval="19" name="sequence"/>
</record>
<record id="sp_refund_journal_col20" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
+188 -152
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0.0-rc2\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:56:45+0000\n"
"PO-Revision-Date: 2011-01-03 16:56:45+0000\n"
"POT-Creation-Date: 2011-01-11 11:14:28+0000\n"
"PO-Revision-Date: 2011-01-11 11:14:28+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgstr ""
#. module: account
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#, python-format
msgid "No journal for ending writing has been defined for the fiscal year"
msgid "No End of year journal defined for the fiscal year"
msgstr ""
#. module: account
@@ -62,7 +62,7 @@ msgid "Residual"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:803
#: code:addons/account/invoice.py:785
#, python-format
msgid "Please define sequence on invoice journal"
msgstr ""
@@ -165,7 +165,7 @@ msgid "If the active field is set to False, it will allow you to hide the paymen
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1439
#: code:addons/account/invoice.py:1421
#, python-format
msgid "Warning!"
msgstr ""
@@ -237,7 +237,7 @@ msgid "Check this box if you don't want any VAT related to this Tax Code to appe
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1228
#: code:addons/account/invoice.py:1210
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr ""
@@ -253,7 +253,7 @@ msgid "Belgian Reports"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1102
#: code:addons/account/account_move_line.py:1176
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr ""
@@ -291,7 +291,7 @@ msgid "St."
msgstr ""
#. module: account
#: code:addons/account/invoice.py:547
#: code:addons/account/invoice.py:529
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
@@ -453,7 +453,7 @@ msgstr ""
#: field:account.move.line,journal_id:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
#: code:addons/account/account_move_line.py:909
#: code:addons/account/account_move_line.py:983
#: view:analytic.entries.report:0
#: field:analytic.entries.report,journal_id:0
#: model:ir.actions.report.xml,name:account.account_journal
@@ -631,8 +631,8 @@ msgid "Journal Period"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:675
#: code:addons/account/account_move_line.py:719
#: code:addons/account/account_move_line.py:732
#: code:addons/account/account_move_line.py:776
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -798,7 +798,7 @@ msgid "Next Partner to reconcile"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1117
#: code:addons/account/account_move_line.py:1191
#, python-format
msgid "You can not do this modification on a confirmed entry ! Please note that you can just change some non important fields !"
msgstr ""
@@ -917,9 +917,9 @@ msgstr ""
#. module: account
#: code:addons/account/account.py:2083
#: code:addons/account/account_bank_statement.py:350
#: code:addons/account/account_move_line.py:115
#: code:addons/account/account_move_line.py:170
#: code:addons/account/invoice.py:73
#: code:addons/account/invoice.py:688
#: code:addons/account/invoice.py:670
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1253,7 +1253,7 @@ msgid "Central Journal"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1197
#: code:addons/account/account_move_line.py:1271
#, python-format
msgid "You can not use this general account in this journal !"
msgstr ""
@@ -1308,11 +1308,6 @@ msgstr ""
msgid "Skip 'Draft' State for Manual Entries"
msgstr ""
#. module: account
#: view:account.bank.statement:0
msgid "Entry encoding"
msgstr ""
#. module: account
#: view:account.invoice.report:0
#: field:account.invoice.report,price_total:0
@@ -1346,7 +1341,7 @@ msgid "Example: at 14 net days 2 percents, remaining amount at 30 days end of mo
msgstr ""
#. module: account
#: code:addons/account/invoice.py:833
#: code:addons/account/invoice.py:815
#, python-format
msgid "Cannot create the invoice !\n"
"The payment term defined gives a computed amount greater than the total invoiced amount."
@@ -1496,6 +1491,7 @@ msgid "Separated Journal Sequences"
msgstr ""
#. module: account
#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr ""
@@ -1557,7 +1553,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:751
#: code:addons/account/account_move_line.py:808
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr ""
@@ -1588,7 +1584,7 @@ msgid "Receivables & Payables"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:758
#: code:addons/account/account_move_line.py:815
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr ""
@@ -1978,7 +1974,7 @@ msgid "Income Account"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:370
#: code:addons/account/invoice.py:352
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr ""
@@ -2095,7 +2091,9 @@ msgstr ""
#: selection:account.invoice.report,state:0
#: view:account.open.closed.fiscalyear:0
#: selection:account.period,state:0
#: code:addons/account/wizard/account_move_journal.py:106
#: selection:report.invoice.created,state:0
#, python-format
msgid "Open"
msgstr ""
@@ -2122,7 +2120,7 @@ msgid "Account Tax Code"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:563
#: code:addons/account/invoice.py:545
#, python-format
msgid "Can't find any account journal of %s type for this company.\n"
"\n"
@@ -2262,7 +2260,7 @@ msgid "Accounts"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:369
#: code:addons/account/invoice.py:351
#, python-format
msgid "Configuration Error!"
msgstr ""
@@ -2424,8 +2422,8 @@ msgstr ""
#. module: account
#: code:addons/account/account.py:2083
#: code:addons/account/account_bank_statement.py:350
#: code:addons/account/account_move_line.py:115
#: code:addons/account/invoice.py:688
#: code:addons/account/account_move_line.py:170
#: code:addons/account/invoice.py:670
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2571,7 +2569,6 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
#: model:ir.actions.act_window,name:account.action_account_analytic_line_form
#: model:ir.actions.act_window,name:account.action_account_tree1
msgid "Analytic Entries"
msgstr ""
@@ -2848,7 +2845,7 @@ msgid "Starting Balance"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1302
#: code:addons/account/invoice.py:1284
#, python-format
msgid "No Partner Defined !"
msgstr ""
@@ -2938,7 +2935,7 @@ msgid "All selected journal entries will be validated and posted. It means you w
msgstr ""
#. module: account
#: code:addons/account/invoice.py:388
#: code:addons/account/invoice.py:370
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr ""
@@ -3125,7 +3122,9 @@ msgstr ""
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
#: selection:account.vat.declaration,filter:0
#: code:addons/account/report/common_report_header.py:97
#: field:analytic.entries.report,date:0
#, python-format
msgid "Date"
msgstr ""
@@ -3154,7 +3153,7 @@ msgid "Maturity date of entry line generated by model line '%s' of model '%s' is
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:753
#: code:addons/account/account_move_line.py:810
#, python-format
msgid "Some entries are already reconciled !"
msgstr ""
@@ -3269,7 +3268,12 @@ msgid "Unit Price"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1054
#: model:ir.actions.act_window,name:account.action_account_tree1
msgid "Analytic Items"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1128
#, python-format
msgid "Unable to change tax !"
msgstr ""
@@ -3280,13 +3284,13 @@ msgid "#Entries"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1440
#: code:addons/account/invoice.py:1422
#, python-format
msgid "You selected an Unit of Measure which is not compatible with the product."
msgstr ""
#. module: account
#: code:addons/account/invoice.py:491
#: code:addons/account/invoice.py:473
#, python-format
msgid "The Payment Term of Supplier does not have Payment Term Lines(Computation) defined !"
msgstr ""
@@ -3563,7 +3567,7 @@ msgid "Acc.Type"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:732
#: code:addons/account/invoice.py:714
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -3651,6 +3655,8 @@ msgstr ""
#: selection:account.report.general.ledger,target_move:0
#: selection:account.tax.chart,target_move:0
#: selection:account.vat.declaration,target_move:0
#: code:addons/account/report/common_report_header.py:68
#, python-format
msgid "All Posted Entries"
msgstr ""
@@ -3861,14 +3867,14 @@ msgstr ""
#: code:addons/account/account.py:1290
#: code:addons/account/account.py:1318
#: code:addons/account/account.py:1325
#: code:addons/account/account_move_line.py:981
#: code:addons/account/invoice.py:914
#: code:addons/account/account_move_line.py:1055
#: code:addons/account/invoice.py:896
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
#: code:addons/account/wizard/account_move_journal.py:162
#: code:addons/account/wizard/account_move_journal.py:165
#: code:addons/account/wizard/account_report_aged_partner_balance.py:55
#: code:addons/account/wizard/account_report_aged_partner_balance.py:57
#: code:addons/account/wizard/account_report_aged_partner_balance.py:59
#, python-format
msgid "UserError"
msgstr ""
@@ -3914,6 +3920,12 @@ msgstr ""
msgid "Error ! You can not create recursive accounts."
msgstr ""
#. module: account
#: constraint:account.account:0
msgid "You cannot create an account! \n"
"Make sure if the account has children then it should be type \"View\"!"
msgstr ""
#. module: account
#: view:account.subscription.generate:0
#: model:ir.actions.act_window,name:account.action_account_subscription_generate
@@ -3937,7 +3949,7 @@ msgstr ""
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: code:addons/account/invoice.py:338
#: code:addons/account/invoice.py:320
#, python-format
msgid "Customer"
msgstr ""
@@ -3986,7 +3998,7 @@ msgid "Account Balance -"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1007
#: code:addons/account/invoice.py:989
#, python-format
msgid "Invoice "
msgstr ""
@@ -4024,7 +4036,7 @@ msgid "Invoices"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:822
#: code:addons/account/invoice.py:804
#, python-format
msgid "Please verify the price of the invoice !\n"
"The real total does not match the computed total."
@@ -4102,7 +4114,7 @@ msgstr ""
#. module: account
#: view:account.move:0
#: view:account.move.line:0
#: code:addons/account/wizard/account_move_journal.py:150
#: code:addons/account/wizard/account_move_journal.py:153
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line
#: model:ir.actions.act_window,name:account.act_account_move_to_account_move_line_open
#: model:ir.actions.act_window,name:account.act_account_partner_account_move
@@ -4135,8 +4147,29 @@ msgid "Third Party (Country)"
msgstr ""
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree4
msgid "With Supplier Refunds you can manage the credit notes you receive from your suppliers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form."
#: code:addons/account/account.py:938
#: code:addons/account/account.py:940
#: code:addons/account/account.py:1181
#: code:addons/account/account.py:1393
#: code:addons/account/account.py:1397
#: code:addons/account/account_cash_statement.py:249
#: code:addons/account/account_move_line.py:780
#: code:addons/account/account_move_line.py:803
#: code:addons/account/account_move_line.py:805
#: code:addons/account/account_move_line.py:808
#: code:addons/account/account_move_line.py:810
#: code:addons/account/account_move_line.py:1117
#: code:addons/account/report/common_report_header.py:92
#: code:addons/account/wizard/account_change_currency.py:39
#: code:addons/account/wizard/account_change_currency.py:60
#: code:addons/account/wizard/account_change_currency.py:65
#: code:addons/account/wizard/account_change_currency.py:71
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
msgid "Error"
msgstr ""
#. module: account
@@ -4154,7 +4187,7 @@ msgid "Bank Details"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:738
#: code:addons/account/invoice.py:720
#, python-format
msgid "Taxes missing !"
msgstr ""
@@ -4576,7 +4609,7 @@ msgid "Start of period"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1119
#: code:addons/account/account_move_line.py:1193
#, python-format
msgid "You can not do this modification on a reconciled entry ! Please note that you can just change some non important fields !"
msgstr ""
@@ -4630,12 +4663,12 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:331
#: code:addons/account/invoice.py:423
#: code:addons/account/invoice.py:523
#: code:addons/account/invoice.py:538
#: code:addons/account/invoice.py:546
#: code:addons/account/invoice.py:563
#: code:addons/account/invoice.py:1365
#: code:addons/account/invoice.py:405
#: code:addons/account/invoice.py:505
#: code:addons/account/invoice.py:520
#: code:addons/account/invoice.py:528
#: code:addons/account/invoice.py:545
#: code:addons/account/invoice.py:1347
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -4843,7 +4876,7 @@ msgid "Generate Opening Entries"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:680
#: code:addons/account/account_move_line.py:738
#, python-format
msgid "Already Reconciled!"
msgstr ""
@@ -4877,7 +4910,7 @@ msgstr ""
#. module: account
#: view:account.move.line.reconcile:0
#: code:addons/account/account_move_line.py:773
#: code:addons/account/account_move_line.py:830
#, python-format
msgid "Write-Off"
msgstr ""
@@ -4896,7 +4929,7 @@ msgstr ""
#: selection:account.bank.statement.line,type:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: code:addons/account/invoice.py:340
#: code:addons/account/invoice.py:322
#, python-format
msgid "Supplier"
msgstr ""
@@ -5027,14 +5060,14 @@ msgid "Filter by"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1057
#: code:addons/account/account_move_line.py:1140
#: code:addons/account/account_move_line.py:1131
#: code:addons/account/account_move_line.py:1214
#, python-format
msgid "You can not use an inactive account!"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:746
#: code:addons/account/account_move_line.py:803
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr ""
@@ -5051,6 +5084,12 @@ msgstr ""
msgid "Account General Journal"
msgstr ""
#. module: account
#: code:addons/account/report/common_report_header.py:100
#, python-format
msgid "No Filter"
msgstr ""
#. module: account
#: field:account.payment.term.line,days:0
msgid "Number of Days"
@@ -5063,7 +5102,7 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:391
#: code:addons/account/invoice.py:388
#: code:addons/account/invoice.py:370
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -5157,11 +5196,6 @@ msgstr ""
msgid "Past"
msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_bank_statement_reconciliation_form
msgid "Statements reconciliation"
msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Analytic Entry"
@@ -5204,7 +5238,7 @@ msgid "As soon as the reconciliation is done, the invoice's state turns to “do
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1007
#: code:addons/account/invoice.py:989
#, python-format
msgid "is validated."
msgstr ""
@@ -5354,9 +5388,11 @@ msgstr ""
#: view:account.unreconcile.reconcile:0
#: view:account.use.model:0
#: view:account.vat.declaration:0
#: code:addons/account/wizard/account_move_journal.py:105
#: view:project.account.analytic.line:0
#: view:validate.account.move:0
#: view:validate.account.move.lines:0
#, python-format
msgid "Cancel"
msgstr ""
@@ -5519,15 +5555,15 @@ msgid "Optional create"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:424
#: code:addons/account/invoice.py:524
#: code:addons/account/invoice.py:1366
#: code:addons/account/invoice.py:406
#: code:addons/account/invoice.py:506
#: code:addons/account/invoice.py:1348
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:59
#: code:addons/account/wizard/account_report_aged_partner_balance.py:57
#, python-format
msgid "Enter a Start date !"
msgstr ""
@@ -5669,7 +5705,7 @@ msgstr ""
#. module: account
#: code:addons/account/account_analytic_line.py:143
#: code:addons/account/account_move_line.py:831
#: code:addons/account/account_move_line.py:905
#, python-format
msgid "Entries: "
msgstr ""
@@ -5702,13 +5738,13 @@ msgstr ""
#. module: account
#: view:account.move.line:0
#: code:addons/account/account_move_line.py:929
#: code:addons/account/account_move_line.py:1003
#, python-format
msgid "Total debit"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:724
#: code:addons/account/account_move_line.py:781
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr ""
@@ -5741,7 +5777,7 @@ msgid "Python Code"
msgstr ""
#. module: account
#: code:addons/account/wizard/account_report_balance_sheet.py:72
#: code:addons/account/wizard/account_report_balance_sheet.py:70
#, python-format
msgid "Please define the Reserve and Profit/Loss account for current user company !"
msgstr ""
@@ -5783,12 +5819,12 @@ msgstr ""
#: code:addons/account/account_bank_statement.py:345
#: code:addons/account/account_cash_statement.py:328
#: code:addons/account/account_cash_statement.py:348
#: code:addons/account/account_move_line.py:1102
#: code:addons/account/account_move_line.py:1117
#: code:addons/account/account_move_line.py:1119
#: code:addons/account/invoice.py:803
#: code:addons/account/invoice.py:833
#: code:addons/account/invoice.py:1026
#: code:addons/account/account_move_line.py:1176
#: code:addons/account/account_move_line.py:1191
#: code:addons/account/account_move_line.py:1193
#: code:addons/account/invoice.py:785
#: code:addons/account/invoice.py:815
#: code:addons/account/invoice.py:1008
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
#: code:addons/account/wizard/account_use_model.py:44
@@ -5874,7 +5910,9 @@ msgstr ""
#: selection:account.report.general.ledger,target_move:0
#: selection:account.tax.chart,target_move:0
#: selection:account.vat.declaration,target_move:0
#: code:addons/account/report/common_report_header.py:67
#: model:ir.actions.report.xml,name:account.account_move_line_list
#, python-format
msgid "All Entries"
msgstr ""
@@ -5945,8 +5983,13 @@ msgid "Account tax chart"
msgstr ""
#. module: account
#: view:account.bank.statement:0
msgid "Select entries"
#: report:account.analytic.account.cost_ledger:0
#: report:account.analytic.account.quantity_cost_ledger:0
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.invoice:0
#: report:account.partner.balance:0
msgid "Total:"
msgstr ""
#. module: account
@@ -5978,7 +6021,7 @@ msgid "Child Codes"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:491
#: code:addons/account/invoice.py:473
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6110,7 +6153,7 @@ msgid "Lines"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:539
#: code:addons/account/invoice.py:521
#, python-format
msgid "Can not find account chart for this company in invoice line account, Please Create account."
msgstr ""
@@ -6131,7 +6174,7 @@ msgid "Are you sure you want to open this invoice ?"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:889
#: code:addons/account/account_move_line.py:963
#, python-format
msgid "Accounting Entries"
msgstr ""
@@ -6409,7 +6452,6 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -6433,7 +6475,7 @@ msgid "This field is used for payable and receivable journal entries. You can pu
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1197
#: code:addons/account/account_move_line.py:1271
#, python-format
msgid "Bad account !"
msgstr ""
@@ -6445,13 +6487,19 @@ msgstr ""
msgid "Sales Journal"
msgstr ""
#. module: account
#: code:addons/account/wizard/account_move_journal.py:104
#, python-format
msgid "Open Journal Items !"
msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_invoice_tax
msgid "Invoice Tax"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1172
#: code:addons/account/account_move_line.py:1246
#, python-format
msgid "No piece number !"
msgstr ""
@@ -6678,11 +6726,11 @@ msgstr ""
#: code:addons/account/account.py:532
#: code:addons/account/account.py:640
#: code:addons/account/account.py:927
#: code:addons/account/account_move_line.py:675
#: code:addons/account/account_move_line.py:719
#: code:addons/account/invoice.py:732
#: code:addons/account/invoice.py:735
#: code:addons/account/invoice.py:738
#: code:addons/account/account_move_line.py:732
#: code:addons/account/account_move_line.py:776
#: code:addons/account/invoice.py:714
#: code:addons/account/invoice.py:717
#: code:addons/account/invoice.py:720
#, python-format
msgid "Warning !"
msgstr ""
@@ -6744,7 +6792,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr ""
#. module: account
#: code:addons/account/invoice.py:805
#: code:addons/account/invoice.py:787
#, python-format
msgid "No Invoice Lines !"
msgstr ""
@@ -6791,7 +6839,7 @@ msgid "Deferral Method"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:377
#: code:addons/account/invoice.py:359
#, python-format
msgid "Invoice '%s' is paid."
msgstr ""
@@ -6848,7 +6896,7 @@ msgid "Associated Partner"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1302
#: code:addons/account/invoice.py:1284
#, python-format
msgid "You must first select a partner !"
msgstr ""
@@ -6953,7 +7001,7 @@ msgstr ""
#: view:account.period:0
#: field:account.subscription,period_nbr:0
#: field:account.tax.chart,period_id:0
#: code:addons/account/account_move_line.py:908
#: code:addons/account/account_move_line.py:982
#: field:validate.account.move,period_id:0
#, python-format
msgid "Period"
@@ -7088,7 +7136,7 @@ msgid "Account Types"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:915
#: code:addons/account/invoice.py:897
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr ""
@@ -7228,6 +7276,11 @@ msgstr ""
msgid "Supplier Accounting Properties"
msgstr ""
#. module: account
#: help:account.move.line,amount_residual:0
msgid "The residual amount on a receivable or payable of a journal entry expressed in the company currency."
msgstr ""
#. module: account
#: view:account.payment.term.line:0
msgid " valuation: balance"
@@ -7327,8 +7380,8 @@ msgid "The amount of the voucher must be the same amount as the one on the state
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1057
#: code:addons/account/account_move_line.py:1140
#: code:addons/account/account_move_line.py:1131
#: code:addons/account/account_move_line.py:1214
#, python-format
msgid "Bad account!"
msgstr ""
@@ -7339,7 +7392,7 @@ msgid "Keep empty for all open fiscal years"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:982
#: code:addons/account/account_move_line.py:1056
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -7480,11 +7533,12 @@ msgstr ""
#. module: account
#: view:account.invoice:0
#: field:account.move.line,amount_residual:0
#: field:account.move.line,amount_residual_currency:0
msgid "Residual Amount"
msgstr ""
#. module: account
#: view:account.bank.statement:0
#: field:account.invoice,move_lines:0
#: field:account.move.reconcile,line_id:0
msgid "Entry Lines"
@@ -7563,7 +7617,7 @@ msgid "Purchase Tax(%)"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:805
#: code:addons/account/invoice.py:787
#, python-format
msgid "Please create some invoice lines."
msgstr ""
@@ -7646,7 +7700,7 @@ msgstr ""
#. module: account
#: view:account.move.line:0
#: code:addons/account/account_move_line.py:932
#: code:addons/account/account_move_line.py:1006
#, python-format
msgid "Total credit"
msgstr ""
@@ -7657,7 +7711,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr ""
#. module: account
#: code:addons/account/invoice.py:1026
#: code:addons/account/invoice.py:1008
#, python-format
msgid "You cannot cancel the Invoice which is Partially Paid! You need to unreconcile concerned payment entries!"
msgstr ""
@@ -7689,29 +7743,8 @@ msgid "Current currency is not confirured properly !"
msgstr ""
#. module: account
#: code:addons/account/account.py:938
#: code:addons/account/account.py:940
#: code:addons/account/account.py:1181
#: code:addons/account/account.py:1393
#: code:addons/account/account.py:1397
#: code:addons/account/account_cash_statement.py:249
#: code:addons/account/account_move_line.py:723
#: code:addons/account/account_move_line.py:746
#: code:addons/account/account_move_line.py:748
#: code:addons/account/account_move_line.py:751
#: code:addons/account/account_move_line.py:753
#: code:addons/account/account_move_line.py:1043
#: code:addons/account/report/common_report_header.py:92
#: code:addons/account/wizard/account_change_currency.py:39
#: code:addons/account/wizard/account_change_currency.py:60
#: code:addons/account/wizard/account_change_currency.py:65
#: code:addons/account/wizard/account_change_currency.py:71
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
msgid "Error"
#: model:ir.actions.act_window,help:account.action_invoice_tree4
msgid "With Supplier Refunds you can manage the credit notes you receive from your suppliers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form."
msgstr ""
#. module: account
@@ -7875,7 +7908,7 @@ msgid "Move"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1054
#: code:addons/account/account_move_line.py:1128
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -8008,7 +8041,7 @@ msgid "Account Subscription"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:735
#: code:addons/account/invoice.py:717
#, python-format
msgid "Tax base different !\n"
"Click on compute to update tax base"
@@ -8062,7 +8095,7 @@ msgid "Unreconciled"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:822
#: code:addons/account/invoice.py:804
#, python-format
msgid "Bad total !"
msgstr ""
@@ -8113,7 +8146,7 @@ msgid "Active"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:372
#: code:addons/account/invoice.py:354
#, python-format
msgid "Unknown Error"
msgstr ""
@@ -8238,9 +8271,11 @@ msgstr ""
#: report:account.vat.declaration:0
#: view:account.vat.declaration:0
#: selection:account.vat.declaration,filter:0
#: code:addons/account/report/common_report_header.py:99
#: model:ir.actions.act_window,name:account.action_account_period_form
#: model:ir.ui.menu,name:account.menu_action_account_period_form
#: model:ir.ui.menu,name:account.next_id_23
#, python-format
msgid "Periods"
msgstr ""
@@ -8601,11 +8636,11 @@ msgid "End period"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:680
#: code:addons/account/account_move_line.py:758
#: code:addons/account/account_move_line.py:738
#: code:addons/account/account_move_line.py:815
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:72
#: code:addons/account/wizard/account_report_balance_sheet.py:70
#: code:addons/account/wizard/account_state_open.py:37
#: code:addons/account/wizard/account_validate_account_move.py:39
#: code:addons/account/wizard/account_validate_account_move.py:61
@@ -8689,13 +8724,19 @@ msgstr ""
msgid "Error ! You can not create recursive account templates."
msgstr ""
#. module: account
#: constraint:account.account.template:0
msgid "You cannot create an account template! \n"
"Make sure if the account template has parent then it should be type \"View\"! "
msgstr ""
#. module: account
#: view:account.subscription:0
msgid "Recurring"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:748
#: code:addons/account/account_move_line.py:805
#, python-format
msgid "Entry is already reconciled"
msgstr ""
@@ -8716,7 +8757,7 @@ msgid "Range"
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1172
#: code:addons/account/account_move_line.py:1246
#, python-format
msgid "Can not create an automatic sequence for this piece !\n"
"\n"
@@ -8779,7 +8820,7 @@ msgid "Applicability"
msgstr ""
#. module: account
#: code:addons/account/wizard/account_move_journal.py:162
#: code:addons/account/wizard/account_move_journal.py:165
#, python-format
msgid "This period is already closed !"
msgstr ""
@@ -8837,7 +8878,7 @@ msgid "Accounts Mapping"
msgstr ""
#. module: account
#: code:addons/account/invoice.py:364
#: code:addons/account/invoice.py:346
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr ""
@@ -8862,7 +8903,7 @@ msgid "The income or expense account related to the selected product."
msgstr ""
#. module: account
#: code:addons/account/account_move_line.py:1043
#: code:addons/account/account_move_line.py:1117
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr ""
@@ -8948,16 +8989,6 @@ msgstr ""
msgid "Manual Invoice Taxes"
msgstr ""
#. module: account
#: report:account.analytic.account.cost_ledger:0
#: report:account.analytic.account.quantity_cost_ledger:0
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.invoice:0
#: report:account.partner.balance:0
msgid "Total:"
msgstr ""
#. module: account
#: field:account.account,parent_right:0
msgid "Parent Right"
@@ -9069,7 +9100,7 @@ msgid "Amount currency"
msgstr ""
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:57
#: code:addons/account/wizard/account_report_aged_partner_balance.py:55
#, python-format
msgid "You must enter a period length that cannot be 0 or below !"
msgstr ""
@@ -9085,3 +9116,8 @@ msgstr ""
msgid "Create and manage the accounts you need to record journal entries. An account is part of a ledger allowing your company to register all kinds of debit and credit transactions. Companies present their annual accounts in two main parts: the balance sheet and the income statement (profit and loss account). The annual accounts of a company are required by law to disclose a certain amount of information. They have to be certified by an external auditor annually."
msgstr ""
#. module: account
#: help:account.move.line,amount_residual_currency:0
msgid "The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."
msgstr ""
+636 -530
View File
File diff suppressed because it is too large Load Diff
+648 -514
View File
File diff suppressed because it is too large Load Diff
+608 -505
View File
File diff suppressed because it is too large Load Diff
+648 -518
View File
File diff suppressed because it is too large Load Diff
+653 -519
View File
File diff suppressed because it is too large Load Diff
+630 -517
View File
File diff suppressed because it is too large Load Diff
+615 -506
View File
File diff suppressed because it is too large Load Diff
+1068 -637
View File
File diff suppressed because it is too large Load Diff
+664 -524
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1041 -629
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+634 -510
View File
File diff suppressed because it is too large Load Diff
+612 -506
View File
File diff suppressed because it is too large Load Diff
+612 -506
View File
File diff suppressed because it is too large Load Diff
+665 -529
View File
File diff suppressed because it is too large Load Diff
+1101 -664
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+621 -518
View File
File diff suppressed because it is too large Load Diff
+613 -507
View File
File diff suppressed because it is too large Load Diff
+608 -505
View File
File diff suppressed because it is too large Load Diff
+613 -506
View File
File diff suppressed because it is too large Load Diff
+1211 -1049
View File
File diff suppressed because it is too large Load Diff
+2252 -1612
View File
File diff suppressed because it is too large Load Diff
+648 -527
View File
File diff suppressed because it is too large Load Diff
+1126 -808
View File
File diff suppressed because it is too large Load Diff
+608 -505
View File
File diff suppressed because it is too large Load Diff
+620 -510
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+644 -517
View File
File diff suppressed because it is too large Load Diff
+631 -512
View File
File diff suppressed because it is too large Load Diff
+709 -539
View File
File diff suppressed because it is too large Load Diff
+790 -659
View File
File diff suppressed because it is too large Load Diff
+954 -683
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+618 -506
View File
File diff suppressed because it is too large Load Diff
+824 -579
View File
File diff suppressed because it is too large Load Diff
+703 -541
View File
File diff suppressed because it is too large Load Diff
+1465 -1026
View File
File diff suppressed because it is too large Load Diff
+673 -534
View File
File diff suppressed because it is too large Load Diff
+700 -561
View File
File diff suppressed because it is too large Load Diff
+608 -505
View File
File diff suppressed because it is too large Load Diff
+613 -507
View File
File diff suppressed because it is too large Load Diff
+654 -523
View File
File diff suppressed because it is too large Load Diff
+612 -506
View File
File diff suppressed because it is too large Load Diff
+649 -519
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+701 -546
View File
File diff suppressed because it is too large Load Diff
+612 -506
View File
File diff suppressed because it is too large Load Diff
+619 -507
View File
File diff suppressed because it is too large Load Diff
+842 -734
View File
File diff suppressed because it is too large Load Diff
+608 -505
View File
File diff suppressed because it is too large Load Diff
+771 -589
View File
File diff suppressed because it is too large Load Diff
+612 -506
View File
File diff suppressed because it is too large Load Diff
+643 -513
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1152 -858
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -568,6 +568,7 @@ class account_installer(osv.osv_memory):
def execute(self, cr, uid, ids, context=None):
if context is None:
context = {}
super(account_installer, self).execute(cr, uid, ids, context=context)
fy_obj = self.pool.get('account.fiscalyear')
mod_obj = self.pool.get('ir.model.data')
obj_acc = self.pool.get('account.account')
@@ -576,7 +577,6 @@ class account_installer(osv.osv_memory):
obj_tax = self.pool.get('account.tax')
obj_product = self.pool.get('product.product')
ir_values = self.pool.get('ir.values')
super(account_installer, self).execute(cr, uid, ids, context=context)
record = self.browse(cr, uid, ids, context=context)[0]
company_id = record.company_id
for res in self.read(cr, uid, ids, context=context):
+22 -14
View File
@@ -211,8 +211,8 @@ class account_invoice(osv.osv):
\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 \'Paid\' state is set automatically when invoice is paid.\
\n* The \'Cancelled\' state is used when user cancel invoice.'),
'date_invoice': fields.date('Invoice Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]},
'date_invoice': fields.date('Invoice Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True,
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}),
@@ -328,8 +328,7 @@ class account_invoice(osv.osv):
def get_log_context(self, cr, uid, context=None):
if context is None:
context = {}
mob_obj = self.pool.get('ir.model.data')
res = mob_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account', 'invoice_form')
view_id = res and res[1] or False
context.update({'view_id': view_id})
return context
@@ -541,7 +540,11 @@ class account_invoice(osv.osv):
journal_ids = obj_journal.search(cr, uid, [('company_id','=',company_id), ('type', '=', journal_type)])
if journal_ids:
val['journal_id'] = journal_ids[0]
else:
res_journal_default = self.pool.get('ir.values').get(cr, uid, 'default', 'type=%s' % (type), ['account.invoice'])
for r in res_journal_default:
if r[1] == 'journal_id' and r[2] in journal_ids:
val['journal_id'] = r[2]
if not val.get('journal_id', False):
raise osv.except_osv(_('Configuration Error !'), (_('Can\'t find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Financial Accounting\Accounts\Journals.') % (journal_type)))
dom = {'journal_id': [('id', 'in', journal_ids)]}
else:
@@ -559,7 +562,6 @@ class account_invoice(osv.osv):
val['currency_id'] = False
else:
val['currency_id'] = company.currency_id.id
return {'value': val, 'domain': dom}
# go from canceled state to draft state
@@ -908,7 +910,7 @@ class account_invoice(osv.osv):
}
period_id = inv.period_id and inv.period_id.id or False
if not period_id:
period_ids = self.pool.get('account.period').search(cr, uid, [('date_start','<=',inv.date_invoice or time.strftime('%Y-%m-%d')),('date_stop','>=',inv.date_invoice or time.strftime('%Y-%m-%d'))])
period_ids = self.pool.get('account.period').search(cr, uid, [('date_start','<=',inv.date_invoice or time.strftime('%Y-%m-%d')),('date_stop','>=',inv.date_invoice or time.strftime('%Y-%m-%d')), ('company_id', '=', inv.company_id.id)])
if period_ids:
period_id = period_ids[0]
if period_id:
@@ -991,15 +993,13 @@ class account_invoice(osv.osv):
return True
def action_cancel(self, cr, uid, ids, *args):
context = {} # TODO: Use context from arguments
account_move_obj = self.pool.get('account.move')
invoices = self.read(cr, uid, ids, ['move_id', 'payment_ids'])
move_ids = [] # ones that we will need to remove
for i in invoices:
if i['move_id']:
account_move_obj.button_cancel(cr, uid, [i['move_id'][0]])
# delete the move this invoice was pointing to
# Note that the corresponding move_lines and move_reconciles
# will be automatically deleted too
account_move_obj.unlink(cr, uid, [i['move_id'][0]])
move_ids.append(i['move_id'][0])
if i['payment_ids']:
account_move_line_obj = self.pool.get('account.move.line')
pay_ids = account_move_line_obj.browse(cr, uid, i['payment_ids'])
@@ -1007,7 +1007,15 @@ class account_invoice(osv.osv):
if move_line.reconcile_partial_id and move_line.reconcile_partial_id.line_partial_ids:
raise osv.except_osv(_('Error !'), _('You cannot cancel the Invoice which is Partially Paid! You need to unreconcile concerned payment entries!'))
# First, set the invoices as cancelled and detach the move ids
self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
if move_ids:
# second, invalidate the move(s)
account_move_obj.button_cancel(cr, uid, move_ids, context=context)
# delete the move this invoice was pointing to
# Note that the corresponding move_lines and move_reconciles
# will be automatically deleted too
account_move_obj.unlink(cr, uid, move_ids, context=context)
self._log_event(cr, uid, ids, -1.0, 'Cancel Invoice')
return True
@@ -1267,7 +1275,7 @@ class account_invoice_line(osv.osv):
'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'),
'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),
'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
'partner_id': fields.related('invoice_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True)
}
_defaults = {
@@ -1524,7 +1532,7 @@ class account_invoice_tax(osv.osv):
'base_amount': fields.float('Base Code Amount', digits_compute=dp.get_precision('Account')),
'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_compute=dp.get_precision('Account')),
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True),
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
'factor_base': fields.function(_count_factor, method=True, string='Multipication factor for Base code', type='float', multi="all"),
'factor_tax': fields.function(_count_factor, method=True, string='Multipication factor Tax code', type='float', multi="all")
}
+2 -2
View File
@@ -27,7 +27,7 @@ class account_fiscal_position(osv.osv):
_name = 'account.fiscal.position'
_description = 'Fiscal Position'
_columns = {
'name': fields.char('Fiscal Position', size=64, translate=True, required=True),
'name': fields.char('Fiscal Position', size=64, required=True),
'company_id': fields.many2one('res.company', 'Company'),
'account_ids': fields.one2many('account.fiscal.position.account', 'position_id', 'Account Mapping'),
'tax_ids': fields.one2many('account.fiscal.position.tax', 'position_id', 'Tax Mapping'),
@@ -189,4 +189,4 @@ class res_partner(osv.osv):
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+2 -2
View File
@@ -53,7 +53,7 @@
<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="field_parent">child_complete_ids</field>
<field name="arch" type="xml">
<tree colors="red:(date&lt;current_date);black:(date&gt;=current_date);black:(date==False)" string="Analytic account" toolbar="1">
<field name="name"/>
@@ -243,7 +243,7 @@
<!-- Entries by Line -->
<record id="action_account_tree1" model="ir.actions.act_window">
<field name="name">Analytic Entries</field>
<field name="name">Analytic Items</field>
<field name="res_model">account.analytic.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
-2
View File
@@ -39,8 +39,6 @@ import account_invoice_report
import account_report
import account_entries_report
import account_analytic_entries_report
#import voucher_print
import account_voucher_print
import account_balance_sheet
import account_profit_loss
@@ -45,7 +45,9 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
def set_context(self, objects, data, ids, report_type=None):
obj_move = self.pool.get('account.move.line')
self.query = obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context', {}))
ctx = data['form'].get('used_context', {})
ctx.update({'fiscalyear': False, 'all_fiscalyear': True})
self.query = obj_move._query_get(self.cr, self.uid, obj='l', context=ctx)
self.direction_selection = data['form'].get('direction_selection', 'past')
self.target_move = data['form'].get('target_move', 'all')
self.date_from = data['form'].get('date_from', time.strftime('%Y-%m-%d'))
+3 -1
View File
@@ -20,6 +20,7 @@
##############################################################################
import time
from report import report_sxw
from common_report_header import common_report_header
@@ -111,7 +112,8 @@ class account_balance(report_sxw.rml_parse, common_report_header):
ctx['fiscalyear'] = form['fiscalyear_id']
if form['filter'] == 'filter_period':
ctx['periods'] = form['periods']
ctx['period_from'] = form['period_from']
ctx['period_to'] = form['period_to']
elif form['filter'] == 'filter_date':
ctx['date_from'] = form['date_from']
ctx['date_to'] = form['date_to']
+13 -17
View File
@@ -94,25 +94,21 @@ class account_entries_report(osv.osv):
return super(account_entries_report, self).search(cr, uid, args=args, offset=offset, limit=limit, order=order,
context=context, count=count)
def read_group(self, cr, uid, domain, *args, **kwargs):
todel=[]
def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False):
if context is None:
context = {}
fiscalyear_obj = self.pool.get('account.fiscalyear')
period_obj = self.pool.get('account.period')
for arg in domain:
if arg[0] == 'period_id' and arg[2] == 'current_period':
current_period = period_obj.find(cr, uid)[0]
domain.append(['period_id','in',[current_period]])
todel.append(arg)
break
elif arg[0] == 'period_id' and arg[2] == 'current_year':
current_year = fiscalyear_obj.find(cr, uid)
ids = fiscalyear_obj.read(cr, uid, [current_year], ['period_ids'])[0]['period_ids']
domain.append(['period_id','in',ids])
todel.append(arg)
for a in [['period_id','in','current_year'], ['period_id','in','current_period']]:
if a in domain:
domain.remove(a)
return super(account_entries_report, self).read_group(cr, uid, domain, *args, **kwargs)
if context.get('period', False) == 'current_period':
current_period = period_obj.find(cr, uid)[0]
domain.append(['period_id','in',[current_period]])
elif context.get('year', False) == 'current_year':
current_year = fiscalyear_obj.find(cr, uid)
ids = fiscalyear_obj.read(cr, uid, [current_year], ['period_ids'])[0]['period_ids']
domain.append(['period_id','in',ids])
else:
domain = domain
return super(account_entries_report, self).read_group(cr, uid, domain, fields, groupby, offset, limit, context, orderby)
def init(self, cr):
tools.drop_view_if_exists(cr, 'account_entries_report')
@@ -70,17 +70,17 @@
<group colspan="10" col="12">
<filter icon="terp-go-year" string="This F.Year"
name="thisyear"
domain="[('period_id','in','current_year')]"
context="{'year':'current_year'}"
help="Journal Entries with period in current year"/>
<filter icon="terp-go-month" string="This Period"
name="period"
domain="[('period_id','in','current_period')]"
context="{'period':'current_period'}"
help="Journal Entries with period in current period"/>
<separator orientation="vertical"/>
<filter string="Unposted" icon="terp-document-new" domain="[('move_state','=','draft')]" help = "entries"/>
<filter string="Posted" icon="terp-camera_test" domain="[('move_state','=','posted')]" help = "Posted entries"/>
<separator orientation="vertical"/>
<filter string="Unreconciled" icon="terp-dolar_ok!" domain="[('reconcile_id','=',False)]" help = "Unreconciled entries"/>
<filter string="Unreconciled" icon="terp-dolar_ok!" domain="[('reconcile_id','=',False), ('account_id.reconcile','=',True)]" help = "Unreconciled entries"/>
<filter string="Reconciled" icon="terp-dolar" domain="[('reconcile_id','!=',False)]" help = "Reconciled entries"/>
<separator orientation="vertical"/>
<field name="account_id"/>
@@ -103,7 +103,9 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
def get_children_accounts(self, account):
res = []
currency_obj = self.pool.get('res.currency')
ids_acc = self.pool.get('account.account')._get_children_and_consol(self.cr, self.uid, account.id)
currency = account.currency_id and account.currency_id or account.company_id.currency_id
for child_account in self.pool.get('account.account').browse(self.cr, self.uid, ids_acc, context=self.context):
sql = """
SELECT count(id)
@@ -119,7 +121,7 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
res.append(child_account)
elif self.display_account == 'bal_solde':
if child_account.type != 'view' and num_entry <> 0:
if ( sold_account <> 0.0):
if not currency_obj.is_zero(self.cr, self.uid, currency, sold_account):
res.append(child_account)
else:
res.append(child_account)
+32 -11
View File
@@ -121,18 +121,32 @@ class account_invoice_report(osv.osv):
ai.amount_total * -1
else
ai.amount_total
end)/(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id) /cr.rate as price_total_tax,
end) / (CASE WHEN
(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id) <> 0
THEN
(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id)
ELSE 1
END) / cr.rate as price_total_tax,
(case when ai.type in ('out_refund','in_invoice') then
sum(ail.quantity*ail.price_unit*-1)
else
sum(ail.quantity*ail.price_unit)
end)/(case when ai.type in ('out_refund','in_invoice') then
sum(ail.quantity/u.factor*-1)
else
sum(ail.quantity/u.factor)
end) / cr.rate as price_average,
end) / (CASE WHEN
(case when ai.type in ('out_refund','in_invoice')
then sum(ail.quantity/u.factor*-1)
else sum(ail.quantity/u.factor) end) <> 0
THEN
(case when ai.type in ('out_refund','in_invoice')
then sum(ail.quantity/u.factor*-1)
else sum(ail.quantity/u.factor) end)
ELSE 1
END)
/ cr.rate as price_average,
cr.rate as currency_rate,
sum((select extract(epoch from avg(date_trunc('day',aml.date_created)-date_trunc('day',l.create_date)))/(24*60*60)::decimal(16,2)
from account_move_line as aml
@@ -148,9 +162,16 @@ class account_invoice_report(osv.osv):
ai.residual * -1
else
ai.residual
end)/(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id) / cr.rate as residual
end)/ (CASE WHEN
(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id) <> 0
THEN
(select count(l.id) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id)
ELSE 1
END) / cr.rate as residual
from account_invoice_line as ail
left join account_invoice as ai ON (ai.id=ail.invoice_id)
left join product_template pt on (pt.id=ail.product_id)
@@ -150,6 +150,7 @@
<act_window
id="act_account_invoice_partner_relation"
name="Monthly Turnover"
groups="group_account_manager"
context="{'search_default_partner_id':[active_id], 'search_default_month':1,'search_default_user':1,'group_by_no_leaf':1,'group_by':[]}"
res_model="account.invoice.report"
src_model="res.partner"/>
@@ -1,69 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from report import report_sxw
from tools import amount_to_text_en
class report_voucher_move(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context=None):
super(report_voucher_move, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'convert':self.convert,
'get_title': self.get_title,
'debit':self.debit,
'credit':self.credit,
})
self.user = uid
def convert(self, amount):
user_id = self.pool.get('res.users').browse(self.cr, self.user, [self.user])[0]
return amount_to_text_en.amount_to_text(amount, 'en', user_id.company_id.currency_id.name)
def get_title(self, voucher):
title = ''
if voucher.journal_id:
type = voucher.journal_id.type
title = type[0].swapcase() + type[1:] + " Voucher"
return title
def debit(self, move_ids):
debit = 0.0
for move in move_ids:
debit +=move.debit
return debit
def credit(self, move_ids):
credit = 0.0
for move in move_ids:
credit +=move.credit
return credit
report_sxw.report_sxw(
'report.account.move.voucher',
'account.move',
'addons/account/report/account_voucher_print.rml',
parser=report_voucher_move,header="external"
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,470 +0,0 @@
<?xml version="1.0"?>
<document filename="Voucher.pdf">
<template pageSize="(595.0,842.0)" title="Voucher" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="42.0" width="525" height="772"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#b3b3b3" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEAFTER" colorName="#b3b3b3" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Heading1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="last_info">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#b3b3b3" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#b3b3b3" start="2,-1" stop="2,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica"/>
<paraStyle name="P2" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" fontName="Helvetica-Bold" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" fontName="Helvetica-Bold" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Footer" fontName="Helvetica"/>
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Drawing" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Header" fontName="Helvetica"/>
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica" fontSize="10.0" leading="13"/>
<paraStyle name="Addressee" fontName="Helvetica" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="Signature" fontName="Helvetica"/>
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Salutation" fontName="Helvetica"/>
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_9_30" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_italic" fontName="Helvetica-Oblique" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_30_italic" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<images/>
</stylesheet>
<story>
<pto>
<pto_header>
<blockTable colWidths="313.0,107.0,105.0" style="Heading1">
<tr>
<td>
<para style="terp_tblheader_Details">Particulars</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit</para>
</td>
</tr>
</blockTable>
</pto_header>
<para style="P8">[[ repeatIn(objects,'voucher') ]]</para>
<blockTable colWidths="524.0" style="Table6">
<tr>
<td>
<para style="terp_header_Centre">[[ get_title(voucher) ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="63.0,200.0,52.0,210.0" style="Table4">
<tr>
<td>
<para style="terp_tblheader_General">Journal:</para>
</td>
<td>
<para style="terp_default_9">[[ voucher.journal_id.name ]]</para>
</td>
<td>
<para style="terp_tblheader_General">Number:</para>
</td>
<td>
<para style="terp_default_9">[[ voucher.name ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="63.0,72.0,44.0,84.0,52.0,210.0" style="Table5">
<tr>
<td>
<para style="terp_tblheader_General">State:</para>
</td>
<td>
<para style="terp_default_9">PRO-FORMA [[ ((voucher.state == 'proforma') or removeParentNode('para')) and '' ]]</para>
<para style="terp_default_9">Draft[[ ((voucher.state == 'draft') or removeParentNode('para')) and '' ]]</para>
<para style="terp_default_9">Canceled [[ ((voucher.state == 'cancel') or removeParentNode('para')) and '' ]]</para>
<para style="terp_default_9">Posted [[ ((voucher.state == 'posted') or removeParentNode('para')) and '' ]]</para>
</td>
<td>
<para style="terp_tblheader_General">Ref. :</para>
</td>
<td>
<para style="terp_default_9">[[ voucher.ref]]</para>
</td>
<td>
<para style="terp_tblheader_General">Date:</para>
</td>
<td>
<para style="terp_default_9">[[ formatLang(voucher.date , date=True) or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="313.0,107.0,105.0" style="Heading1">
<tr>
<td>
<para style="terp_tblheader_Details">Particulars</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<section>
<para style="terp_default_8">[[ repeatIn(voucher.line_id,'line_id') ]]</para>
<blockTable colWidths="313.0,106.0,105.0" style="Table2">
<tr>
<td>
<para style="terp_default_Bold_9">[[ (line_id.partner_id and line_id.partner_id.name) or 'Account']]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ formatLang(line_id.debit) ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ formatLang(line_id.credit) ]]</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9_30">[[ line_id.account_id.name ]] </para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9_30_italic">[[ line_id.name ]]-[[voucher.ref]]</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
</section>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="313.0,106.0,105.0" style="last_info">
<tr>
<td>
<para style="P4">Through : </para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9_italic">[[ voucher.narration or '']]</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P4">On Account of : </para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P7">[[ voucher.line_id and voucher.line_id[0].name or removeParentNode('para') ]]</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P4">Amount (in words) : </para>
</td>
<td>
<para style="P4">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P4">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P7">[[ convert(voucher.amount) ]]</para>
</td>
<td>
<para style="P3">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P3">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="313.0,106.0,105.0" style="Table1">
<tr>
<td>
<para style="P5">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">[[ formatLang(debit(voucher.line_id))]]</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">[[ formatLang(credit(voucher.line_id)) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<blockTable colWidths="154.0,160.0,63.0,148.0" style="Table3">
<tr>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Receiver's Signature</para>
</td>
<td>
<para style="P6">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P6">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_default_Right_9">Authorised Signatory</para>
</td>
</tr>
</blockTable>
<para style="P1">
<font color="white"> </font>
</para>
</pto>
</story>
</document>
+4 -1
View File
@@ -21,6 +21,7 @@
from osv import osv
"""Inherit res.currency to handle accounting date values when converting currencies"""
class res_currency_account(osv.osv):
_inherit = "res.currency"
@@ -41,4 +42,6 @@ class res_currency_account(osv.osv):
rate = float(tot2)/float(tot1)
return rate
res_currency_account()
res_currency_account()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -98,6 +98,7 @@
"access_account_bank_statement_manager","account.bank.statement manager","model_account_bank_statement","account.group_account_manager",1,1,1,1
"access_account_entries_report_manager","account.entries.report","model_account_entries_report","account.group_account_manager",1,1,1,1
"access_account_entries_report_user","account.entries.report","model_account_entries_report","account.group_account_user",1,0,0,0
"access_account_entries_report_invoice","account.entries.report","model_account_entries_report","account.group_account_invoice",1,0,0,0
"access_account_entries_report_employee","account.entries.report employee","model_account_entries_report","base.group_user",1,0,0,0
"access_analytic_entries_report_manager","analytic.entries.report","model_analytic_entries_report","account.group_account_manager",1,0,0,0
"access_account_cashbox_line","account.cashbox.line","model_account_cashbox_line","account.group_account_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
98 access_account_bank_statement_manager account.bank.statement manager model_account_bank_statement account.group_account_manager 1 1 1 1
99 access_account_entries_report_manager account.entries.report model_account_entries_report account.group_account_manager 1 1 1 1
100 access_account_entries_report_user account.entries.report model_account_entries_report account.group_account_user 1 0 0 0
101 access_account_entries_report_invoice account.entries.report model_account_entries_report account.group_account_invoice 1 0 0 0
102 access_account_entries_report_employee account.entries.report employee model_account_entries_report base.group_user 1 0 0 0
103 access_analytic_entries_report_manager analytic.entries.report model_analytic_entries_report account.group_account_manager 1 0 0 0
104 access_account_cashbox_line account.cashbox.line model_account_cashbox_line account.group_account_manager 1 1 1 1
@@ -6,14 +6,14 @@
!record {model: account.bank.statement, id: account_bank_statement_0}:
balance_end_real: 0.0
balance_start: 0.0
date: '2010-10-14'
date: !eval time.strftime('%Y-%m-%d')
journal_id: account.bank_journal
name: /
period_id: account.period_10
line_ids:
- account_id: account.a_recv
amount: 1000.0
date: '2010-10-14'
date: !eval time.strftime('%Y-%m-%d')
name: a
partner_id: base.res_partner_4
sequence: 0.0
@@ -2,7 +2,7 @@
In order to test Cash statement I create a Cash statement and confirm it and check it's move created
-
!record {model: account.bank.statement, id: account_bank_statement_1}:
date: '2010-10-16'
date: !eval time.strftime('%Y-%m-%d')
journal_id: account.cash_journal
name: /
period_id: account.period_10
@@ -41,7 +41,7 @@
line_ids:
- account_id: account.a_recv
amount: 1000.0
date: '2010-10-16'
date: !eval time.strftime('%Y-%m-%d')
name: test
partner_id: base.res_partner_4
sequence: 0.0
@@ -7,7 +7,7 @@
address_invoice_id: base.res_partner_address_zen
company_id: base.main_company
currency_id: base.EUR
date_invoice: '2010-05-26'
date_invoice: !eval time.strftime('%Y-%m-%d')
invoice_line:
- account_id: account.a_sale
name: '[PC3] Medium PC'
+4 -4
View File
@@ -4,10 +4,10 @@
-
!record {model: account.period, id: account_period_jan0}:
company_id: base.main_company
date_start: '2010-01-01'
date_stop: '2010-01-31'
date_start: !eval "'%s-01-01' %(datetime.now().year)"
date_stop: !eval "'%s-01-31' %(datetime.now().year)"
fiscalyear_id: account.data_fiscalyear
name: Jan-2010
name: !eval "'Jan-%s' %(datetime.now().year)"
special: 1
-
@@ -16,7 +16,7 @@
!assert {model: account.period, id: account_period_jan0, string: Period is in Draft state}:
- state == 'draft'
-
I use "Close a Period" wizard to close period Jan-2010
I use "Close a Period" wizard to close period
-
!record {model: account.period.close, id: account_period_close_0}:
sure: 1
+6 -14
View File
@@ -28,14 +28,6 @@
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_asus'),ref('base.res_partner_agrolait'),ref('base.res_partner_c2c')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data)
-
In order to test the PDF reports defined on Account Move, we will print the Voucher Report
-
!python {model: account.move}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.move.voucher').create(cr, uid, [ref('account.account_move_0')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-voucher-report.'+format), 'wb+').write(data)
-
Print the Aged Partner Balance Report
-
@@ -44,7 +36,7 @@
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')})
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Sheet in Horizontal mode
-
@@ -53,7 +45,7 @@
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Sheet in Normal mode
-
@@ -62,7 +54,7 @@
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Report in Normal mode through the wizard - From Account Chart
-
@@ -157,7 +149,7 @@
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Profit-Loss Report in Horizontal Mode
-
@@ -166,7 +158,7 @@
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Analytic Balance Report through the wizard
-
@@ -215,4 +207,4 @@
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root')]})
data_dict = {}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_invert_balance',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_analytic_invert_balance',wiz_data=data_dict, context=ctx, our_module='account')
@@ -8,36 +8,36 @@
In order to test the 'Post Journal Entries' wizard in OpenERP, I created an account move
-
!record {model: account.move, id: account_move_0}:
date: '2010-06-07'
date: !eval time.strftime('%Y-%m-%d')
journal_id: account.bank_journal
line_id:
- account_id: account.cash
amount_currency: 0.0
credit: 2000.0
date: '2010-06-07'
date: !eval time.strftime('%Y-%m-%d')
debit: 0.0
journal_id: account.bank_journal
name: Basic Computer
partner_id: base.res_partner_desertic_hispafuentes
period_id: account.period_6
ref: '2010010'
ref: '2011010'
tax_amount: 0.0
- journal_id: account.bank_journal
period_id: account.period_6
ref: '2010010'
ref: '2011010'
tax_code_id: account_tax_code_0
tax_amount: 0.0
account_id: account.a_recv
amount_currency: 0.0
credit: 0.0
date: '2010-06-07'
date: !eval time.strftime('%Y-%m-%d')
debit: 2000.0
name: Basic Computer
partner_id: base.res_partner_desertic_hispafuentes
quantity: 0.0
name: /
period_id: account.period_6
ref: '2010010'
ref: '2011010'
state: draft
-
+2 -2
View File
@@ -43,8 +43,8 @@
-
!record {model: account.analytic.chart, id: account_analytic_chart_0}:
from_date: '2010-01-01'
to_date: '2010-06-30'
from_date: !eval "'%s-01-01' %(datetime.now().year)"
to_date: !eval "'%s-06-30' %(datetime.now().year)"
-
I clicked on Open chart Button to open the charts
@@ -36,7 +36,7 @@ class account_move_journal(osv.osv_memory):
}
_defaults = {
'target_move': 'posted'
'target_move': 'all'
}
def _get_period(self, cr, uid, context={}):
"""
@@ -101,9 +101,12 @@ class account_move_journal(osv.osv_memory):
period = period_pool.browse(cr, uid, [period_id], ['name'])[0]['name']
period_string = _("Period: %s") % tools.ustr(period)
separator_string = _("Open Journal Items !")
cancel_string = _("Cancel")
open_string = _("Open")
view = """<?xml version="1.0" encoding="utf-8"?>
<form string="Standard entries">
<separator string="Open Journal Items !" colspan="4"/>
<separator string="%s" colspan="4"/>
<field name="target_move" />
<newline/>
<group colspan="4" >
@@ -113,10 +116,10 @@ class account_move_journal(osv.osv_memory):
</group>
<group colspan="4" col="4">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="terp-gtk-go-back-rtl" string="Open" name="action_open_window" default_focus="1" type="object"/>
<button icon="gtk-cancel" special="cancel" string="%s"/>
<button icon="terp-gtk-go-back-rtl" string="%s" name="action_open_window" default_focus="1" type="object"/>
</group>
</form>""" % (journal_string, period_string)
</form>""" % (separator_string, journal_string, period_string, cancel_string, open_string)
view = etree.fromstring(view.encode('utf8'))
xarch, xfields = self._view_look_dom_arch(cr, uid, view, view_id, context=context)
@@ -37,7 +37,7 @@ class account_open_closed_fiscalyear(osv.osv_memory):
data = self.read(cr, uid, ids, [], context=context)[0]
data_fyear = fy_obj.browse(cr, uid, data['fyear_id'], context=context)
if not data_fyear.end_journal_period_id:
raise osv.except_osv(_('Error'), _('No journal for ending writing has been defined for the fiscal year'))
raise osv.except_osv(_('Error !'), _('No End of year journal defined for the fiscal year'))
period_journal = data_fyear.end_journal_period_id
ids_move = move_obj.search(cr, uid, [('journal_id','=',period_journal.journal_id.id),('period_id','=',period_journal.period_id.id)])
if ids_move:
@@ -13,7 +13,6 @@
<label colspan="4" nolabel="1" string="Aged Partner Balance is a more detailed report of your receivables by intervals. When opening that report, OpenERP asks for the name of the company, the fiscal period and the size of the interval to be analyzed (in days). OpenERP then calculates a table of credit balance by period. So if you request an interval of 30 days OpenERP generates an analysis of creditors for the past month, past two months, and so on. "/>
<newline/>
<field name="chart_account_id" widget='selection'/>
<field name="fiscalyear_id"/>
<newline/>
<field name="date_from"/>
<field name="period_length"/>
@@ -28,7 +28,7 @@
<field name="res_model">account.tax.chart</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('parent_id','=',False)]</field>
<field name="domain">[]</field>
<field name="view_id" ref="view_account_tax_chart"/>
<field name="help">Chart of Taxes is a tree view reflecting the structure of the Tax Cases (or tax codes) and shows the current tax situation. The tax chart represents the amount of each area of the tax declaration for your country. It’s presented in a hierarchical structure, which can be modified to fit your needs.</field>
<field name="target">new</field>
+1 -1
View File
@@ -37,6 +37,6 @@ items and the chart of accounts.
'test': [],
'installable': True,
'active': False,
'certificate': '',
'certificate': '00395091383933390541',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

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