merged from lp:~openerp-dev/openobject-addons/report_dev
bzr revid: apa@tinyerp.com-20101006045450-411znuyw7xhijdze
This commit is contained in:
@@ -120,7 +120,6 @@ module named account_voucher.
|
||||
'project/analytic_account_demo.xml',
|
||||
'demo/account_minimal.xml',
|
||||
'account_unit_test.xml',
|
||||
'board_account_demo.xml',
|
||||
],
|
||||
'test': [
|
||||
'test/account_customer_invoice.yml',
|
||||
|
||||
@@ -1654,11 +1654,11 @@ class account_tax(osv.osv):
|
||||
_columns = {
|
||||
'name': fields.char('Tax Name', size=64, required=True, translate=True, help="This name will be displayed on reports"),
|
||||
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the tax lines from the lowest sequences to the higher ones. The order is important if you have a tax with several tax children. In this case, the evaluation order is important."),
|
||||
'amount': fields.float('Amount', required=True, digits=(14,4), help="For Tax Type percent enter % ratio between 0-1."),
|
||||
'amount': fields.float('Amount', required=True, digits_compute=dp.get_precision('Account'), help="For taxes of type percentage, enter % ratio between 0-1."),
|
||||
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the tax without removing it."),
|
||||
'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'),('balance','Balance')], 'Tax Type', required=True,
|
||||
'type': fields.selection( [('percent','Percentage'), ('fixed','Fixed Amount'), ('none','None'), ('code','Python Code'), ('balance','Balance')], 'Tax Type', required=True,
|
||||
help="The computation method for the tax amount."),
|
||||
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True,
|
||||
'applicable_type': fields.selection( [('true','Always'), ('code','Given by Python Code')], 'Applicability', required=True,
|
||||
help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
|
||||
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
|
||||
'account_collected_id':fields.many2one('account.account', 'Invoice Tax Account'),
|
||||
@@ -1669,7 +1669,6 @@ class account_tax(osv.osv):
|
||||
'python_compute':fields.text('Python Code'),
|
||||
'python_compute_inv':fields.text('Python Code (reverse)'),
|
||||
'python_applicable':fields.text('Python Code'),
|
||||
'tax_group': fields.selection([('vat','VAT'),('other','Other')], 'Tax Group', help="If a default tax is given in the partner it only overrides taxes from accounts (or products) in the same group."),
|
||||
|
||||
#
|
||||
# Fields used for the VAT declaration
|
||||
@@ -1762,7 +1761,6 @@ class account_tax(osv.osv):
|
||||
'active': 1,
|
||||
'type_tax_use': 'all',
|
||||
'sequence': 1,
|
||||
'tax_group': 'vat',
|
||||
'ref_tax_sign': 1,
|
||||
'ref_base_sign': 1,
|
||||
'tax_sign': 1,
|
||||
@@ -2421,7 +2419,6 @@ class account_tax_template(osv.osv):
|
||||
'python_compute':fields.text('Python Code'),
|
||||
'python_compute_inv':fields.text('Python Code (reverse)'),
|
||||
'python_applicable':fields.text('Python Code'),
|
||||
'tax_group': fields.selection([('vat','VAT'),('other','Other')], 'Tax Group', help="If a default tax if given in the partner it only override taxes from account (or product) of the same group."),
|
||||
|
||||
#
|
||||
# Fields used for the VAT declaration
|
||||
@@ -2464,7 +2461,6 @@ class account_tax_template(osv.osv):
|
||||
'type': 'percent',
|
||||
'amount': 0,
|
||||
'sequence': 1,
|
||||
'tax_group': 'vat',
|
||||
'ref_tax_sign': 1,
|
||||
'ref_base_sign': 1,
|
||||
'tax_sign': 1,
|
||||
@@ -2609,7 +2605,6 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
||||
'python_compute': tax.python_compute,
|
||||
'python_compute_inv': tax.python_compute_inv,
|
||||
'python_applicable': tax.python_applicable,
|
||||
'tax_group':tax.tax_group,
|
||||
'base_code_id': tax.base_code_id and ((tax.base_code_id.id in tax_code_template_ref) and tax_code_template_ref[tax.base_code_id.id]) or False,
|
||||
'tax_code_id': tax.tax_code_id and ((tax.tax_code_id.id in tax_code_template_ref) and tax_code_template_ref[tax.tax_code_id.id]) or False,
|
||||
'base_sign': tax.base_sign,
|
||||
|
||||
@@ -75,6 +75,9 @@ class account_analytic_line(osv.osv):
|
||||
unit=False, journal_id=False, context=None):
|
||||
if context==None:
|
||||
context={}
|
||||
if not journal_id:
|
||||
j_ids = self.pool.get('account.analytic.journal').search(cr, uid, [('type','=','purchase')])
|
||||
j_id = j_ids and j_ids[0] or False
|
||||
if not journal_id or not prod_id:
|
||||
return {}
|
||||
product_obj = self.pool.get('product.product')
|
||||
@@ -86,7 +89,7 @@ class account_analytic_line(osv.osv):
|
||||
result = 0.0
|
||||
is_purchase = False
|
||||
|
||||
if j_id.type == 'purchase':
|
||||
if j_id.type <> 'sale':
|
||||
a = prod.product_tmpl_id.property_account_expense.id
|
||||
if not a:
|
||||
a = prod.categ_id.property_account_expense_categ.id
|
||||
|
||||
@@ -222,11 +222,11 @@ class account_bank_statement(osv.osv):
|
||||
account_move_line_obj = self.pool.get('account.move.line')
|
||||
account_analytic_line_obj = self.pool.get('account.analytic.line')
|
||||
account_bank_statement_line_obj = self.pool.get('account.bank.statement.line')
|
||||
|
||||
st_line = account_bank_statement_line_obj.browse(cr, uid, st_line_id, context)
|
||||
st = st_line.statement_id
|
||||
|
||||
context.update({'date': st_line.date})
|
||||
|
||||
move_id = account_move_obj.create(cr, uid, {
|
||||
'journal_id': st.journal_id.id,
|
||||
'period_id': st.period_id.id,
|
||||
@@ -501,4 +501,4 @@ class account_bank_statement_line(osv.osv):
|
||||
|
||||
account_bank_statement_line()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -247,7 +247,7 @@ class account_cash_statement(osv.osv):
|
||||
open_jrnl = self.search(cr, uid, sql)
|
||||
if open_jrnl:
|
||||
raise osv.except_osv('Error', _('You can not have two open register for the same journal'))
|
||||
|
||||
|
||||
if self.pool.get('account.journal').browse(cr, uid, vals['journal_id']).type == 'cash':
|
||||
open_close = self._get_cash_open_close_box_lines(cr, uid, context)
|
||||
vals.update({
|
||||
@@ -370,16 +370,6 @@ class account_cash_statement(osv.osv):
|
||||
super(account_cash_statement, self).button_confirm_bank(cr, uid, ids, context=context)
|
||||
return self.write(cr, uid, ids, {'closing_date':time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
|
||||
|
||||
|
||||
def button_cancel(self, cr, uid, ids, context={}):
|
||||
done = []
|
||||
for st in self.browse(cr, uid, ids, context):
|
||||
ids = []
|
||||
for line in st.line_ids:
|
||||
ids += [x.id for x in line.move_ids]
|
||||
self.pool.get('account.move').unlink(cr, uid, ids, context)
|
||||
done.append(st.id)
|
||||
self.write(cr, uid, done, {'state':'draft'}, context=context)
|
||||
return True
|
||||
|
||||
account_cash_statement()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -3,33 +3,33 @@
|
||||
<data>
|
||||
|
||||
<menuitem icon="terp-account" id="menu_finance" name="Accounting" sequence="13"/>
|
||||
<menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="1" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="2" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="1" groups="group_account_user,group_account_manager"/>
|
||||
<menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="2" groups="group_account_user,group_account_manager"/>
|
||||
<menuitem id="menu_finance_bank_and_cash" name="Bank and Cash" parent="menu_finance" sequence="3"/>
|
||||
<menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="8" groups="group_account_user,group_account_manager,base.group_system,group_account_invoice"/>
|
||||
<menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="8" groups="group_account_user,group_account_manager,group_account_invoice"/>
|
||||
<!-- This menu is used in account_code module -->
|
||||
<menuitem id="menu_account_pp_statements" name="Statements" parent="menu_finance_periodical_processing" sequence="12"/>
|
||||
<menuitem id="periodical_processing_journal_entries_validation" name="Draft Entries" parent="menu_finance_periodical_processing" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="periodical_processing_journal_entries_validation" name="Draft Entries" parent="menu_finance_periodical_processing" groups="group_account_user,group_account_manager"/>
|
||||
<menuitem id="periodical_processing_reconciliation" name="Reconciliation" parent="menu_finance_periodical_processing"/>
|
||||
<menuitem id="periodical_processing_invoicing" name="Invoicing" parent="menu_finance_periodical_processing"/>
|
||||
<menuitem id="menu_finance_charts" name="Charts" parent="menu_finance" sequence="5" groups="base.group_system"/>
|
||||
<menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="12" groups="base.group_system,group_account_manager,group_account_user"/>
|
||||
<menuitem id="menu_finance_charts" name="Charts" parent="menu_finance" sequence="5"/>
|
||||
<menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="12" groups="group_account_manager,group_account_user"/>
|
||||
<menuitem id="menu_finance_reporting_budgets" name="Budgets" parent="menu_finance_reporting"/>
|
||||
<menuitem id="menu_finance_legal_statement" name="Legal Reports" parent="menu_finance_reporting"/>
|
||||
<menuitem id="menu_finance_management_belgian_reports" name="Belgian Reports" parent="menu_finance_reporting"/>
|
||||
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="13" groups="base.group_system"/>
|
||||
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration" groups="base.group_system"/>
|
||||
<menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration" groups="base.group_system"/>
|
||||
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="13" groups="group_account_manager"/>
|
||||
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration" groups="group_account_manager"/>
|
||||
<menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration" groups="group_account_manager"/>
|
||||
<menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts" groups="analytic.group_analytic_accounting"/>
|
||||
<menuitem id="menu_low_level" name="Low Level" parent="menu_finance_accounting" groups="base.group_extended"/>
|
||||
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="30" groups="base.group_system"/>
|
||||
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="30" groups="group_account_manager"/>
|
||||
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20"/>
|
||||
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100" groups="base.group_system,group_account_manager"/>
|
||||
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100" groups="group_account_manager"/>
|
||||
<menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4"
|
||||
groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
groups="group_account_user,group_account_manager"/>
|
||||
<menuitem id="account.menu_finance_recurrent_entries" name="Recurring Entries" parent="menu_finance_periodical_processing" sequence="15" groups="base.group_extended"/>
|
||||
|
||||
<menuitem id="menu_account_end_year_treatments" name="End of Period" parent="menu_finance_periodical_processing" groups="group_account_user,group_account_manager,base.group_system" sequence="25"/>
|
||||
<menuitem id="menu_account_end_year_treatments" name="End of Period" parent="menu_finance_periodical_processing" groups="group_account_user,group_account_manager" sequence="25"/>
|
||||
<menuitem id="menu_finance_periodical_processing_billing" name="Billing" parent="menu_finance_periodical_processing" sequence="35"/>
|
||||
|
||||
<menuitem id="menu_finance_statistic_report_statement" name="Statistic Reports" parent="menu_finance_reporting" sequence="300" groups="account.group_account_manager"/>
|
||||
|
||||
@@ -36,12 +36,18 @@ class account_move_line(osv.osv):
|
||||
fiscalperiod_obj = self.pool.get('account.period')
|
||||
fiscalyear_ids = []
|
||||
fiscalperiod_ids = []
|
||||
if not context.get('fiscalyear', False) and not context.get('empty_fy_allow', False):
|
||||
initial_bal = context.get('initial_bal', False)
|
||||
company_clause = ""
|
||||
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')])
|
||||
elif context.get('empty_fy_allow', False):
|
||||
fiscalyear_ids = context['fiscalyear']
|
||||
else:
|
||||
fiscalyear_ids = [context['fiscalyear']]
|
||||
if initial_bal:
|
||||
fiscalyear_date_start = fiscalyear_obj.read(cr, uid, context['fiscalyear'], ['date_start'])['date_start']
|
||||
fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('date_stop', '<', fiscalyear_date_start), ('state', '=', 'draft')], context=context)
|
||||
else:
|
||||
fiscalyear_ids = [context['fiscalyear']]
|
||||
|
||||
fiscalyear_clause = (','.join([str(x) for x in fiscalyear_ids])) or '0'
|
||||
state = context.get('state',False)
|
||||
@@ -50,12 +56,23 @@ class account_move_line(osv.osv):
|
||||
where_move_lines_by_date = ''
|
||||
|
||||
if context.get('date_from', False) and context.get('date_to', False):
|
||||
where_move_lines_by_date = " AND " +obj+".move_id in ( select id from account_move where date >= '" +context['date_from']+"' AND date <= '"+context['date_to']+"')"
|
||||
if initital_bal:
|
||||
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']+"')"
|
||||
|
||||
if state:
|
||||
if state.lower() not in ['all']:
|
||||
where_move_state= " AND "+obj+".move_id in (select id from account_move where account_move.state = '"+state+"')"
|
||||
|
||||
if context.get('period_from', False) and context.get('periof_from', False) and not context.get('periods', False):
|
||||
if initial_bal:
|
||||
period_company_id = period_obj.browse(cr, uid, data['form']['period_from'], context=context).company_id.id
|
||||
first_period = self.pool.get('account.period').search(cr, uid, [('company_id', '=', period_company_id)], order='date_start', limit=1)[0]
|
||||
context['periods'] = period_obj.build_ctx_periods(cr, uid, first_period, data['form']['period_from'])
|
||||
else:
|
||||
context['periods'] = period_obj.build_ctx_periods(cr, uid, data['form']['period_from'], data['form']['period_to'])
|
||||
|
||||
if context.get('periods', False):
|
||||
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)
|
||||
@@ -69,6 +86,8 @@ class account_move_line(osv.osv):
|
||||
child_ids = self.pool.get('account.account')._get_children_and_consol(cr, uid, [context['chart_account_id']], context=context)
|
||||
query += ' AND '+obj+'.account_id in (%s)' % ','.join(map(str, child_ids))
|
||||
|
||||
query += company_clause
|
||||
|
||||
if context.get('period_manner','') == 'created':
|
||||
#the query have to be build with no reference to periods but thanks to the creation date
|
||||
if context.get('periods',False):
|
||||
@@ -77,8 +96,6 @@ class account_move_line(osv.osv):
|
||||
else:
|
||||
fiscalperiod_ids = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id','in',fiscalyear_ids)])
|
||||
|
||||
|
||||
|
||||
#remove from the old query the clause related to the period selection
|
||||
res = ''
|
||||
count = 1
|
||||
@@ -309,15 +326,27 @@ class account_move_line(osv.osv):
|
||||
ml = self.browse(cr, uid, id, context)
|
||||
return map(lambda x: x.id, ml.move_id.line_id)
|
||||
|
||||
# TODO: this is false, it does not uses draft and closed periods
|
||||
def _balance(self, cr, uid, ids, prop, unknow_none, unknow_dict):
|
||||
res={}
|
||||
# TODO group the foreach in sql
|
||||
for id in ids:
|
||||
cr.execute('SELECT date,account_id FROM account_move_line WHERE id=%s', (id,))
|
||||
dt, acc = cr.fetchone()
|
||||
cr.execute('SELECT SUM(debit-credit) FROM account_move_line WHERE account_id=%s AND (date<%s OR (date=%s AND id<=%s))', (acc,dt,dt,id))
|
||||
res[id] = cr.fetchone()[0]
|
||||
def _balance(self, cr, uid, ids, name, arg, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
c = context.copy()
|
||||
c['initital_bal'] = True
|
||||
|
||||
sql = [
|
||||
"""select l2.id, sum(l1.debit-l1.credit) from account_move_line l1, account_move_line l2""",
|
||||
"""where l2.account_id=l1.account_id""",
|
||||
"""and""",
|
||||
"""l1.id<=l2.id""",
|
||||
"""and""",
|
||||
"""l2.id in %s""",
|
||||
"""and""",
|
||||
self._query_get(cr, uid, obj='l1', context=c),
|
||||
""" group by l2.id""",
|
||||
]
|
||||
|
||||
cr.execute('\n'.join(sql), [tuple(ids)])
|
||||
res = dict(cr.fetchall())
|
||||
return res
|
||||
|
||||
def _invoice(self, cursor, user, ids, name, arg, context=None):
|
||||
|
||||
@@ -14,6 +14,13 @@
|
||||
<field name="name">Test invoice 1</field>
|
||||
<field name="address_contact_id" ref="base.res_partner_address_tang"/>
|
||||
</record>
|
||||
<record id="test_tax_line" model="account.invoice.tax">
|
||||
<field name="name">Test Tax</field>
|
||||
<field name="base">5.00</field>
|
||||
<field name="amount">100.00</field>
|
||||
<field name="account_id" ref="account.ova"/>
|
||||
<field name="invoice_id" ref="test_invoice_1"/>
|
||||
</record>
|
||||
<record id="test_invoice_1_line_1" model="account.invoice.line">
|
||||
<field name="name">Basic computer with Dvorak keyboard and left-handed mouse</field>
|
||||
<field name="invoice_id" ref="test_invoice_1"/>
|
||||
@@ -27,7 +34,7 @@
|
||||
<field name="price_unit">800</field>
|
||||
<field name="quantity">2</field>
|
||||
<field name="account_id" ref="account.a_sale"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<assert id="test_invoice_1" model="account.invoice" string="The currency unit of Test invoice 1 is EUR">
|
||||
<test expr="currency_id.code">EUR</test>
|
||||
|
||||
@@ -236,6 +236,17 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_treasory_graph" model="ir.ui.view">
|
||||
<field name="name">account.treasory.graph</field>
|
||||
<field name="model">account.account</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Treasory Analysis" type="bar">
|
||||
<field name="name"/>
|
||||
<field name="balance" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_account_form" model="ir.actions.act_window">
|
||||
<field name="name">Accounts</field>
|
||||
<field name="res_model">account.account</field>
|
||||
@@ -433,7 +444,7 @@
|
||||
<menuitem action="action_account_journal_form" id="menu_action_account_journal_form" parent="account_account_menu"/>
|
||||
|
||||
<record id="view_account_bank_statement_filter" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.select</field>
|
||||
<field name="name">account.cash.statement.select</field>
|
||||
<field name="model">account.bank.statement</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
@@ -444,7 +455,7 @@
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="journal_id" widget='selection'/>
|
||||
<field name="journal_id" widget='selection' domain="[('type', '=', 'cash')]" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
@@ -489,7 +500,7 @@
|
||||
<field name="name"/>
|
||||
<field name="date"/>
|
||||
<field name="period_id"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<field name="journal_id" widget="selection" domain="[('type', '=', 'bank')]" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
@@ -600,6 +611,7 @@
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="domain">[('journal_id.type', '=', 'bank')]</field>
|
||||
<field name="context">{'journal_type':'bank'}</field>
|
||||
<field name="search_view_id" ref="view_bank_statement_search"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_bank_statement_tree_bank">
|
||||
<field name="sequence" eval="1"/>
|
||||
@@ -614,12 +626,13 @@
|
||||
<field name="act_window_id" ref="action_bank_statement_tree"/>
|
||||
</record>
|
||||
|
||||
<record id="action_bank_statement_periodic_tree" model="ir.actions.act_window">
|
||||
<record id="action_bank_statement_periodic_tree" model="ir.actions.act_window">
|
||||
<field name="name">Bank Statements</field>
|
||||
<field name="res_model">account.bank.statement</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="domain">[('journal_id.type', '=', 'bank')]</field>
|
||||
<field name="search_view_id" ref="view_bank_statement_search"/>
|
||||
<field name="context">{'journal_type':'bank'}</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_bank_statement_periodic_tree_bank">
|
||||
@@ -808,7 +821,6 @@
|
||||
<field name="name"/>
|
||||
<field name="price_include" groups="base.group_extended"/>
|
||||
<field name="description"/>
|
||||
<field name="tax_group" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -819,15 +831,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Taxes">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-folder-blue" string="Vat Taxes" domain="[('tax_group','=','vat')]" help="Vat Taxes"/>
|
||||
<filter icon="terp-folder-yellow" string="Other Taxes" domain="[('tax_group','=','other')]" help="Other Taxes"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Tax Group" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'tax_group'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -841,52 +850,46 @@
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="description" select="1"/>
|
||||
<field name="tax_group" select="1"/>
|
||||
<field name="type"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<field name="type_tax_use"/>
|
||||
<field name="price_include"/>
|
||||
<field name="active"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Tax Definition" >
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string=""/>
|
||||
<field name="applicable_type"/>
|
||||
<field name="type_tax_use"/>
|
||||
<field groups="base.group_extended" name="domain"/>
|
||||
<field groups="base.group_extended" name="sequence"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string=""/>
|
||||
<field name="amount" attrs="{'readonly':[('type','in',('none', 'code'))]}"/>
|
||||
<field groups="base.group_extended" name="child_depend"/>
|
||||
<field groups="base.group_extended" name="price_include"/>
|
||||
<field groups="base.group_extended" name="include_base_amount"/>
|
||||
</group>
|
||||
<field name="account_collected_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<label colspan="2" nolabel="1" string="Keep empty to use the income account"/>
|
||||
<field name="account_paid_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<label colspan="2" nolabel="1" string="Keep empty to use the expense account"/>
|
||||
<separator colspan="4" string="Child Taxes"/>
|
||||
<field colspan="4" groups="base.group_extended" name="child_ids" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Tax Declaration">
|
||||
<separator colspan="4" string="Invoices"/>
|
||||
<field name="base_code_id"/>
|
||||
<field name="base_sign"/>
|
||||
<field name="tax_code_id"/>
|
||||
<field name="tax_sign"/>
|
||||
|
||||
<separator colspan="4" string="Credit Notes"/>
|
||||
<field name="ref_base_code_id"/>
|
||||
<field name="ref_base_sign"/>
|
||||
<field name="ref_tax_code_id"/>
|
||||
<field name="ref_tax_sign"/>
|
||||
<group colspan="4" col="4">
|
||||
<field name="type"/>
|
||||
<field name="amount" attrs="{'readonly':[('type','in',('none', 'code', 'balance'))]}"/>
|
||||
<separator colspan="4" string="Accounting Information"/>
|
||||
<field name="account_collected_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<label colspan="2" nolabel="1" string="Keep empty to use the income account"/>
|
||||
<field name="account_paid_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<label colspan="2" nolabel="1" string="Keep empty to use the expense account"/>
|
||||
<separator colspan="4" string="Tax Declaration: Invoices"/>
|
||||
<field name="base_code_id"/>
|
||||
<field name="base_sign"/>
|
||||
<field name="tax_code_id"/>
|
||||
<field name="tax_sign"/>
|
||||
<separator colspan="4" string="Tax Declaration: Credit Notes"/>
|
||||
<field name="ref_base_code_id"/>
|
||||
<field name="ref_base_sign"/>
|
||||
<field name="ref_tax_code_id"/>
|
||||
<field name="ref_tax_sign"/>
|
||||
<separator groups="base.group_extended" colspan="4" string="Children Definition"/>
|
||||
<field groups="base.group_extended" name="child_depend"/>
|
||||
<field groups="base.group_extended" name="sequence"/>
|
||||
<field groups="base.group_extended" name="include_base_amount"/>
|
||||
<field groups="base.group_extended" colspan="4" name="child_ids"/>
|
||||
</group>
|
||||
</page>
|
||||
<page groups="base.group_extended" string="Special Computation">
|
||||
<separator colspan="4" string="Compute Code (if type=code)"/>
|
||||
<field colspan="4" name="python_compute" nolabel="1" attrs="{'readonly':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
||||
<separator colspan="4" string="Applicability Options"/>
|
||||
<field name="applicable_type"/>
|
||||
<field name="domain"/>
|
||||
<separator colspan="4" string="Applicable Code (if type=code)"/>
|
||||
<field colspan="4" name="python_applicable" nolabel="1" attrs="{'readonly':[('applicable_type','=','true')], 'required':[('applicable_type','=','code')]}"/>
|
||||
<separator colspan="4" string="Compute Code (if type=code)"/>
|
||||
<field colspan="4" name="python_compute" nolabel="1" attrs="{'readonly':[('type','!=','code')],'required':[('type','=','code')]}"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -1154,7 +1157,7 @@
|
||||
id="menu_action_account_moves_all"
|
||||
parent="account.menu_finance_entries"
|
||||
sequence="1"
|
||||
groups="group_account_user,group_account_manager,base.group_system"
|
||||
groups="group_account_user,group_account_manager"
|
||||
/>
|
||||
|
||||
<record id="action_move_line_select" model="ir.actions.act_window">
|
||||
@@ -1418,10 +1421,6 @@
|
||||
res_model="account.move.line"
|
||||
src_model="account.move"/>
|
||||
|
||||
<record id="account.act_account_move_to_account_move_line_open" model="ir.actions.act_window">
|
||||
<field eval="[(6,0,[ref('account.group_accounting_accountant')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="action_move_line_search" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
@@ -1505,6 +1504,7 @@
|
||||
<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>
|
||||
|
||||
@@ -1646,17 +1646,17 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Journal Entry Model">
|
||||
<group>
|
||||
<filter string="Sale" icon="terp-sale" domain="[('journal_id.type', '=', 'sale')]"/>
|
||||
<filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group>
|
||||
<filter string="Sale" icon="terp-sale" domain="[('journal_id.type', '=', 'sale')]"/>
|
||||
<filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -1800,7 +1800,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_subscription_search" model="ir.ui.view">
|
||||
<record id="view_subscription_search" model="ir.ui.view">
|
||||
<field name="name">account.subscription.search</field>
|
||||
<field name="model">account.subscription</field>
|
||||
<field name="type">search</field>
|
||||
@@ -2184,7 +2184,6 @@
|
||||
<field name="description"/>
|
||||
<newline/>
|
||||
<field name="chart_template_id"/>
|
||||
<field name="tax_group"/>
|
||||
<field name="type"/>
|
||||
<field name="type_tax_use"/>
|
||||
</group>
|
||||
@@ -2248,8 +2247,6 @@
|
||||
<filter icon="terp-sale" string="Sale" domain="[('type_tax_use','=','sale')]" help="Taxes used in Sales"/>
|
||||
<filter icon="terp-purchase" string="Purchase" domain="[('type_tax_use','=','purchase')]" help="Taxes used in Purchases"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-folder-blue" string="Vat Taxes" domain="[('tax_group','=','vat')]" help="Vat Taxes"/>
|
||||
<filter icon="terp-folder-yellow" string="Other Taxes" domain="[('tax_group','=','other')]" help="Other Taxes"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="description"/>
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!--
|
||||
Administrator shortcut
|
||||
Demo user startup menu
|
||||
-->
|
||||
<record id="base.user_root" model="res.users">
|
||||
<field name="action_id" ref="open_board_account"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -20,7 +20,22 @@
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('type','=','income')]</field>
|
||||
</record>
|
||||
|
||||
<record id="action_company_analysis_tree" model="ir.actions.act_window">
|
||||
<field name="name">Company Analysis</field>
|
||||
<field name="res_model">account.entries.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<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_company_analysis_tree"/>
|
||||
</record>
|
||||
<record id="action_treasory_graph" model="ir.actions.act_window">
|
||||
<field name="name">Treasory</field>
|
||||
<field name="res_model">account.account</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('type','=','liquidity')]</field>
|
||||
<field name="view_id" ref="account.view_treasory_graph"/>
|
||||
</record>
|
||||
<record id="board_account_form" model="ir.ui.view">
|
||||
<field name="name">board.account.form</field>
|
||||
<field name="model">board.board</field>
|
||||
@@ -30,10 +45,12 @@
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action colspan="4" height="160" width="400" name="%(account.action_invoice_tree1)d" string="Draft Customer Invoices" domain="[('state','=','draft'),('type','=','out_invoice')]"/>
|
||||
<action colspan="4" height="160" width="400" name="%(action_company_analysis_tree)d" string="Company Analysis" />
|
||||
</child1>
|
||||
<child2>
|
||||
<action colspan="4" height="220" name="%(action_treasory_graph)d" string="Treasory"/>
|
||||
<action colspan="4" height="220" name="%(action_aged_receivable)d" string="Aged receivables"/>
|
||||
<action colspan="4" height="220" name="%(action_aged_income)d" string="Aged income"/>
|
||||
<!-- <action colspan="4" height="220" name="%(action_aged_income)d" string="Aged income"/> -->
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
@@ -49,7 +66,7 @@
|
||||
<field name="view_id" ref="board_account_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_dashboard_acc" name="Dashboard" sequence="2" parent="account.menu_finance_reporting" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_dashboard_acc" name="Dashboard" sequence="2" parent="account.menu_finance_reporting" groups="group_account_user,group_account_manager"/>
|
||||
<menuitem action="open_board_account" icon="terp-graph" id="menu_board_account" parent="menu_dashboard_acc" sequence="1"/>
|
||||
<menuitem icon="terp-account" id="account.menu_finance" name="Accounting" sequence="13" action="open_board_account"/>
|
||||
</data>
|
||||
|
||||
@@ -24,7 +24,7 @@ from osv import fields, osv
|
||||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'overdue_msg' : fields.text('Overdue Payments Message', translate=True),
|
||||
'overdue_msg': fields.text('Overdue Payments Message', translate=True),
|
||||
'property_reserve_and_surplus_account': fields.property(
|
||||
'account.account',
|
||||
type='many2one',
|
||||
@@ -41,6 +41,7 @@ class res_company(osv.osv):
|
||||
out after this mail was sent, please consider the present one as \
|
||||
void. Do not hesitate to contact our accounting department'
|
||||
}
|
||||
|
||||
res_company()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-09-29 10:28+0000\n"
|
||||
"PO-Revision-Date: 2010-09-30 06:57+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-30 04:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-01 08:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
||||
+54
-54
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-09-29 08:13+0000\n"
|
||||
"PO-Revision-Date: 2010-10-04 06:51+0000\n"
|
||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-30 04:41+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-05 04:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
@@ -2116,7 +2116,7 @@ msgstr "дней"
|
||||
#. module: account
|
||||
#: selection:account.aged.trial.balance,init,direction_selection:0
|
||||
msgid "Past"
|
||||
msgstr ""
|
||||
msgstr "Прошлые"
|
||||
|
||||
#. module: account
|
||||
#: field:account.analytic.account,company_currency_id:0
|
||||
@@ -2267,7 +2267,7 @@ msgstr "Создать проводки подписки"
|
||||
#. module: account
|
||||
#: wizard_field:account.fiscalyear.close,init,journal_id:0
|
||||
msgid "Opening Entries Journal"
|
||||
msgstr ""
|
||||
msgstr "Открытие журнала проводок"
|
||||
|
||||
#. module: account
|
||||
#: view:account.config.wizard:0
|
||||
@@ -3839,7 +3839,7 @@ msgstr ""
|
||||
#: model:ir.actions.act_window,name:account.action_wizard_company_setup_form
|
||||
#: view:wizard.company.setup:0
|
||||
msgid "Overdue Payment Report Message"
|
||||
msgstr ""
|
||||
msgstr "Сообщение о просроченном платеже"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.tax,tax_group:0
|
||||
@@ -3894,12 +3894,12 @@ msgstr "Финансовые журналы"
|
||||
#: selection:account.partner.balance.report,init,state:0
|
||||
#: selection:account.third_party_ledger.report,init,state:0
|
||||
msgid "By Period"
|
||||
msgstr ""
|
||||
msgstr "По периоду"
|
||||
|
||||
#. module: account
|
||||
#: help:account.invoice,date_invoice:0
|
||||
msgid "Keep empty to use the current date"
|
||||
msgstr ""
|
||||
msgstr "Оставьте пустым для текущей даты"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.overdue:0
|
||||
@@ -3909,7 +3909,7 @@ msgstr "."
|
||||
#. module: account
|
||||
#: field:account.analytic.account,quantity_max:0
|
||||
msgid "Maximum Quantity"
|
||||
msgstr ""
|
||||
msgstr "Максимальное количество"
|
||||
|
||||
#. module: account
|
||||
#: field:account.period,name:0
|
||||
@@ -3932,7 +3932,7 @@ msgstr "Группы"
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.quantity_cost_ledger:0
|
||||
msgid "Code/Date"
|
||||
msgstr ""
|
||||
msgstr "Код/Дата"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account,active:0
|
||||
@@ -3953,7 +3953,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.chart.template:0
|
||||
msgid "Properties"
|
||||
msgstr ""
|
||||
msgstr "Параметры"
|
||||
|
||||
#. module: account
|
||||
#: view:res.partner:0
|
||||
@@ -3973,7 +3973,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: wizard_field:account.vat.declaration,init,based_on:0
|
||||
msgid "Base on"
|
||||
msgstr ""
|
||||
msgstr "Основан на"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
@@ -4365,7 +4365,7 @@ msgstr ""
|
||||
#: field:account.config.wizard,date2:0
|
||||
#: field:account.fiscalyear,date_stop:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
msgstr "Дата окончания"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_open_closed_fiscalyear
|
||||
@@ -4381,7 +4381,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.payment.term.line,days2:0
|
||||
msgid "Day of the Month"
|
||||
msgstr ""
|
||||
msgstr "День месяца"
|
||||
|
||||
#. module: account
|
||||
#: field:account.analytic.journal,line_ids:0
|
||||
@@ -4542,7 +4542,7 @@ msgstr "Разрегить сверку"
|
||||
#: selection:account.partner.balance.report,init,state:0
|
||||
#: selection:account.third_party_ledger.report,init,state:0
|
||||
msgid "By Date"
|
||||
msgstr ""
|
||||
msgstr "По дате"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_invoice_tree4
|
||||
@@ -4558,7 +4558,7 @@ msgstr "Дата сгенерированных проводок"
|
||||
#. module: account
|
||||
#: wizard_button:account.invoice.refund,init,modify_invoice:0
|
||||
msgid "Modify Invoice"
|
||||
msgstr ""
|
||||
msgstr "Изменить счет"
|
||||
|
||||
#. module: account
|
||||
#: view:res.partner:0
|
||||
@@ -4568,7 +4568,7 @@ msgstr "Настройки бухгалтерского учета для кон
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Analytic Account Statistics"
|
||||
msgstr ""
|
||||
msgstr "Статистика счета аналитики"
|
||||
|
||||
#. module: account
|
||||
#: view:wizard.multi.charts.accounts:0
|
||||
@@ -4598,12 +4598,12 @@ msgstr ""
|
||||
#. module: account
|
||||
#: wizard_field:account.aged.trial.balance,init,result_selection:0
|
||||
msgid "Filter on Partners"
|
||||
msgstr ""
|
||||
msgstr "Фильтр по партнерам"
|
||||
|
||||
#. module: account
|
||||
#: field:account.tax,price_include:0
|
||||
msgid "Tax Included in Price"
|
||||
msgstr ""
|
||||
msgstr "Налог включен в цену"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree2
|
||||
@@ -4684,7 +4684,7 @@ msgstr "Учетные годы"
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_importinvoice0
|
||||
msgid "Import from invoices or payments"
|
||||
msgstr ""
|
||||
msgstr "Импорт из счетов или платежей"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_reconcile_select
|
||||
@@ -4741,7 +4741,7 @@ msgstr "Адрес выставления счета"
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.analytic.check:0
|
||||
msgid "General Credit"
|
||||
msgstr ""
|
||||
msgstr "Общий кредит"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal,centralisation:0
|
||||
@@ -4754,7 +4754,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.invoice,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Отменено"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree
|
||||
@@ -4765,7 +4765,7 @@ msgstr "Черновые выписки"
|
||||
#. module: account
|
||||
#: wizard_field:populate_statement_from_inv,init,date:0
|
||||
msgid "Date payment"
|
||||
msgstr ""
|
||||
msgstr "Дата оплаты"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.journal.period.print:0
|
||||
@@ -4782,7 +4782,7 @@ msgstr "Расходы и доходы по журналам (текущий м
|
||||
#: selection:account.partner.balance.report,init,result_selection:0
|
||||
#: selection:account.third_party_ledger.report,init,result_selection:0
|
||||
msgid "Receivable Accounts"
|
||||
msgstr ""
|
||||
msgstr "Счета к получению"
|
||||
|
||||
#. module: account
|
||||
#: wizard_button:account.move.line.unreconcile.select,init,open:0
|
||||
@@ -4838,7 +4838,7 @@ msgstr "НДС:"
|
||||
#: rml:account.general.journal:0
|
||||
#: rml:account.invoice:0
|
||||
msgid "Total:"
|
||||
msgstr ""
|
||||
msgstr "Всего:"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_analytic_journal
|
||||
@@ -4893,7 +4893,7 @@ msgstr ""
|
||||
#: field:account.bank.statement.reconcile,total_amount:0
|
||||
#: field:account.bank.statement.reconcile,total_second_amount:0
|
||||
msgid "Payment amount"
|
||||
msgstr ""
|
||||
msgstr "Сумма оплаты"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
@@ -4940,7 +4940,7 @@ msgstr "Все месяцы"
|
||||
#. module: account
|
||||
#: wizard_field:account.invoice.refund,init,date:0
|
||||
msgid "Operation date"
|
||||
msgstr ""
|
||||
msgstr "Дата операции"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,invoice_line:0
|
||||
@@ -4950,7 +4950,7 @@ msgstr "Позиции счета"
|
||||
#. module: account
|
||||
#: field:account.period,date_start:0
|
||||
msgid "Start of Period"
|
||||
msgstr ""
|
||||
msgstr "Начало периода"
|
||||
|
||||
#. module: account
|
||||
#: wizard_field:account.fiscalyear.close,init,report_name:0
|
||||
@@ -5008,12 +5008,12 @@ msgstr ""
|
||||
#. module: account
|
||||
#: rml:account.account.balance:0
|
||||
msgid "Account Balance -"
|
||||
msgstr ""
|
||||
msgstr "Баланс по счету -"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,group_invoice_lines:0
|
||||
msgid "Group invoice lines"
|
||||
msgstr ""
|
||||
msgstr "Группировать позиции счета"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_finance_configuration
|
||||
@@ -5058,7 +5058,7 @@ msgstr ""
|
||||
#: wizard_view:account.partner.balance.report,init:0
|
||||
#: wizard_view:account.third_party_ledger.report,init:0
|
||||
msgid "Select Date-Period"
|
||||
msgstr ""
|
||||
msgstr "Выбор даты-периода"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.inverted.balance:0
|
||||
@@ -5069,7 +5069,7 @@ msgstr ""
|
||||
#: model:process.node,name:account.process_node_paidinvoice0
|
||||
#: model:process.node,name:account.process_node_supplierpaidinvoice0
|
||||
msgid "Paid invoice"
|
||||
msgstr ""
|
||||
msgstr "Оплаченный счет"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
@@ -5099,7 +5099,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_populate_statement_from_inv
|
||||
msgid "Import invoices"
|
||||
msgstr ""
|
||||
msgstr "Импорт счетов"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.move.line.unreconcile,init:0
|
||||
@@ -5143,7 +5143,7 @@ msgstr "Периоды подписки"
|
||||
#. module: account
|
||||
#: model:process.node,name:account.process_node_manually0
|
||||
msgid "Manually"
|
||||
msgstr ""
|
||||
msgstr "Вручную"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
@@ -5162,7 +5162,7 @@ msgstr "Счета"
|
||||
#: selection:account.partner.balance.report,init,result_selection:0
|
||||
#: selection:account.third_party_ledger.report,init,result_selection:0
|
||||
msgid "Payable Accounts"
|
||||
msgstr ""
|
||||
msgstr "Кредиторская задолженность"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.line:0
|
||||
@@ -5183,12 +5183,12 @@ msgstr "Полный платеж"
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
msgid "Journal Purchase"
|
||||
msgstr ""
|
||||
msgstr "Журнал покупок"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
msgid "Cash Receipt"
|
||||
msgstr ""
|
||||
msgstr "Денежное поступление"
|
||||
|
||||
#. module: account
|
||||
#: field:account.fiscal.position.tax,tax_dest_id:0
|
||||
@@ -5254,12 +5254,12 @@ msgstr ""
|
||||
#: wizard_view:account.partner.balance.report,init:0
|
||||
#: wizard_view:account.third_party_ledger.report,init:0
|
||||
msgid "Date Filter"
|
||||
msgstr ""
|
||||
msgstr "Фильтр дат"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:populate_statement_from_inv,init:0
|
||||
msgid "Choose Journal and Payment Date"
|
||||
msgstr ""
|
||||
msgstr "Выбрать журнал и дату платежа"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.analytic.account,state:0
|
||||
@@ -5288,7 +5288,7 @@ msgstr "Невыплаченные возвраты клиентам"
|
||||
#. module: account
|
||||
#: help:account.invoice,residual:0
|
||||
msgid "Remaining amount due."
|
||||
msgstr ""
|
||||
msgstr "Оставшиеся суммы"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.period.close,init:0
|
||||
@@ -5304,7 +5304,7 @@ msgstr "Проформа"
|
||||
#. module: account
|
||||
#: field:account.move.reconcile,line_partial_ids:0
|
||||
msgid "Partial Entry lines"
|
||||
msgstr ""
|
||||
msgstr "Частичная проводка"
|
||||
|
||||
#. module: account
|
||||
#: help:account.move.line,statement_id:0
|
||||
@@ -5319,7 +5319,7 @@ msgstr "Отчетный год"
|
||||
#. module: account
|
||||
#: wizard_button:account.analytic.line,init,open:0
|
||||
msgid "Open Entries"
|
||||
msgstr ""
|
||||
msgstr "Открытые проводки"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.analytic.account,type:0
|
||||
@@ -5344,7 +5344,7 @@ msgstr ""
|
||||
#: rml:account.third_party_ledger_other:0
|
||||
#: rml:account.vat.declaration:0
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
msgstr "Страница"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move:0
|
||||
@@ -5377,7 +5377,7 @@ msgstr "Сверенная сумма"
|
||||
#. module: account
|
||||
#: selection:account.account,currency_mode:0
|
||||
msgid "At Date"
|
||||
msgstr ""
|
||||
msgstr "На дату"
|
||||
|
||||
#. module: account
|
||||
#: help:account.move.line,tax_amount:0
|
||||
@@ -5419,7 +5419,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.subscription,period_total:0
|
||||
msgid "Number of Periods"
|
||||
msgstr ""
|
||||
msgstr "Количество периодов"
|
||||
|
||||
#. module: account
|
||||
#: wizard_field:account.analytic.account.analytic.check.report,init,date2:0
|
||||
@@ -5488,7 +5488,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,bank_accounts_id:0
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
msgstr "Банковские счета"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.period:0
|
||||
@@ -5500,7 +5500,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: help:account.journal,invoice_sequence_id:0
|
||||
msgid "The sequence used for invoice numbers in this journal."
|
||||
msgstr ""
|
||||
msgstr "Последовательность используемая для нумерации счетов в этом журнале"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -5549,7 +5549,7 @@ msgstr "Список счетов"
|
||||
#: view:product.product:0
|
||||
#: view:product.template:0
|
||||
msgid "Sales Properties"
|
||||
msgstr ""
|
||||
msgstr "Свойства продаж"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.general.journal:0
|
||||
@@ -5565,12 +5565,12 @@ msgstr "Книга расходов (только количество)"
|
||||
#. module: account
|
||||
#: wizard_view:account.move.validate,init:0
|
||||
msgid "Validate Account Entries"
|
||||
msgstr ""
|
||||
msgstr "Утвердить проводки"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.print.journal.report,init,sort_selection:0
|
||||
msgid "Reference Number"
|
||||
msgstr ""
|
||||
msgstr "Ссылка"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.overdue:0
|
||||
@@ -5586,7 +5586,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form
|
||||
msgid "Entries of Open Analytic Journals"
|
||||
msgstr ""
|
||||
msgstr "Проводки открытых журналов аналитики"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.tax:0
|
||||
@@ -5601,7 +5601,7 @@ msgstr "Текущая дата"
|
||||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
msgid "Journal Sale"
|
||||
msgstr ""
|
||||
msgstr "Журнал продаж"
|
||||
|
||||
#. module: account
|
||||
#: wizard_field:account.fiscalyear.close,init,fy_id:0
|
||||
@@ -5624,12 +5624,12 @@ msgstr "Начало периода"
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.account_template_folder
|
||||
msgid "Templates"
|
||||
msgstr ""
|
||||
msgstr "Шаблоны"
|
||||
|
||||
#. module: account
|
||||
#: wizard_button:account.vat.declaration,init,report:0
|
||||
msgid "Print VAT Decl."
|
||||
msgstr ""
|
||||
msgstr "Печать декл. НДС"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.report.xml,name:account.account_intracom
|
||||
@@ -5682,7 +5682,7 @@ msgstr "Шаблоны для плана счетов"
|
||||
#. module: account
|
||||
#: view:account.config.wizard:0
|
||||
msgid "Account Configure"
|
||||
msgstr ""
|
||||
msgstr "Настройка счета"
|
||||
|
||||
#. module: account
|
||||
#: help:res.partner,property_account_payable:0
|
||||
|
||||
@@ -170,7 +170,6 @@ class account_installer(osv.osv_memory):
|
||||
'python_compute': tax.python_compute,
|
||||
'python_compute_inv': tax.python_compute_inv,
|
||||
'python_applicable': tax.python_applicable,
|
||||
'tax_group':tax.tax_group,
|
||||
'base_code_id': tax.base_code_id and ((tax.base_code_id.id in tax_code_template_ref) and tax_code_template_ref[tax.base_code_id.id]) or False,
|
||||
'tax_code_id': tax.tax_code_id and ((tax.tax_code_id.id in tax_code_template_ref) and tax_code_template_ref[tax.tax_code_id.id]) or False,
|
||||
'base_sign': tax.base_sign,
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
-->
|
||||
|
||||
<record id="process_transition_confirmstatementfromdraft0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Confirm statement"""" name="name"/>
|
||||
<field eval=""""The accountant confirms the statement."""" name="note"/>
|
||||
@@ -131,7 +130,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_analyticinvoice0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""From analytic accounts"""" name="name"/>
|
||||
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft invoices."""" name="note"/>
|
||||
@@ -140,7 +138,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_customerinvoice0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Draft invoices are checked, validated and printed."""" name="note"/>
|
||||
@@ -150,7 +147,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_validentries0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Accountant validates the accounting entries coming from the invoice."""" name="note"/>
|
||||
@@ -159,7 +155,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_entriesreconcile0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Accounting entries"""" name="name"/>
|
||||
<field eval=""""Accounting entries are the first input of the reconciliation."""" name="note"/>
|
||||
@@ -168,7 +163,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_statemententries0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Manual or automatic creation of payment entries according to the statements"""" name="note"/>
|
||||
@@ -177,7 +171,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_paymentreconcile0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Payment entries"""" name="name"/>
|
||||
<field eval=""""Payment entries are the second input of the reconciliation."""" name="note"/>
|
||||
@@ -186,7 +179,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_reconcilepaid0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Payment"""" name="name"/>
|
||||
<field eval=""""As soon as the reconciliation is done, the invoice can be paid."""" name="note"/>
|
||||
|
||||
@@ -65,7 +65,6 @@
|
||||
-->
|
||||
|
||||
<record id="process_transition_filestatement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Automatic import of the bank statement"""" name="name"/>
|
||||
<field eval=""""Import of the statement in the system from an electronic file"""" name="note"/>
|
||||
@@ -74,7 +73,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_invoicemanually0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Manual entry"""" name="name"/>
|
||||
<field eval=""""A statement with manual entries becomes a draft statement."""" name="note"/>
|
||||
@@ -84,7 +82,6 @@
|
||||
</record>
|
||||
|
||||
<record id="process_transition_invoiceimport0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Import from invoice or payment"""" name="name"/>
|
||||
<field eval=""""Import of the statement in the system from a supplier or customer invoice"""" name="note"/>
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
Process
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_process_supplierinvoiceprocess0" model="process.process">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="model_id" ref="account.model_account_invoice"/>
|
||||
<field eval=""""Supplier Invoice"""" name="name"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_analyticcost0" model="process.node">
|
||||
<field name="menu_id" ref="account.account_analytic_def_account"/>
|
||||
<field name="model_id" ref="analytic.model_account_analytic_account"/>
|
||||
@@ -26,7 +26,7 @@
|
||||
<field eval=""""object.state in ('draft', 'open', 'pending', 'close')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierdraftinvoices0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_action_invoice_tree2"/>
|
||||
<field name="model_id" ref="account.model_account_invoice"/>
|
||||
@@ -37,7 +37,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierinvoiceinvoice0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_finance_payables"/>
|
||||
<field name="model_id" ref="account.model_account_invoice"/>
|
||||
@@ -48,7 +48,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierbankstatement0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
@@ -60,7 +60,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplieraccountingentries0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_action_move_journal_line_form"/>
|
||||
<field name="model_id" ref="account.model_account_move"/>
|
||||
@@ -70,7 +70,7 @@
|
||||
<field name="process_id" ref="process_process_supplierinvoiceprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierpaymentorder0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_eaction_account_moves_all"/>
|
||||
<field name="model_id" ref="account.model_account_move_line"/>
|
||||
@@ -81,7 +81,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierreconciliation0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_eaction_account_moves_all"/>
|
||||
<field name="model_id" ref="account.model_account_move_reconcile"/>
|
||||
@@ -92,7 +92,7 @@
|
||||
<field eval=""""object.state=='valid'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_supplierpaidinvoice0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_action_invoice_tree1"/>
|
||||
<field name="model_id" ref="account.model_account_invoice"/>
|
||||
@@ -103,22 +103,20 @@
|
||||
<field eval=""""object.state=='paid'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_supplieranalyticcost0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""From analytic accounts"""" name="name"/>
|
||||
<field eval=""""Analytic costs (timesheets, some purchased products, ...) come from analytic accounts. These generate draft supplier invoices."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplierdraftinvoices0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_analyticcost0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_suppliercustomerinvoice0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Draft invoices are validated. """" name="note"/>
|
||||
@@ -126,51 +124,46 @@
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplierdraftinvoices0"/>
|
||||
<field eval="[(6,0,[ref('account.pro2_to_open')])]" name="transition_ids"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_suppliervalidentries0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Accountant validates the accounting entries coming from the invoice. """" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplieraccountingentries0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplierinvoiceinvoice0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_supplierentriesreconcile0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Accounting entries"""" name="name"/>
|
||||
<field eval=""""Accounting entries are an input of the reconciliation."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplieraccountingentries0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_paymentorderbank0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Payment entries"""" name="name"/>
|
||||
<field eval=""""The payment order is sent to the bank."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplierbankstatement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplierpaymentorder0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_paymentorderreconcilation0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Validation"""" name="name"/>
|
||||
<field eval=""""Bank statements are entered in the system."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplierreconciliation0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplierbankstatement0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_supplierreconcilepaid0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""System payment"""" name="name"/>
|
||||
<field eval=""""As soon as the reconciliation is done, the invoice's state turns to “done” (i.e. paid) in the system."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_supplierpaidinvoice0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_supplierreconciliation0"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -28,8 +28,8 @@ from osv import osv
|
||||
class account_analytic_journal(osv.osv):
|
||||
_name = 'account.analytic.journal'
|
||||
_columns = {
|
||||
'name' : fields.char('Journal name', size=64, required=True),
|
||||
'code' : fields.char('Journal code', size=8),
|
||||
'name' : fields.char('Journal Name', size=64, required=True),
|
||||
'code' : fields.char('Journal Code', size=8),
|
||||
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the analytic journal without removing it."),
|
||||
'type': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('cash','Cash'), ('general','General'), ('situation','Situation')], 'Type', size=32, required=True, help="Gives the type of the analytic journal. When it needs for a document (eg: an invoice) to create analytic entries, OpenERP will look for a matching journal of the same type."),
|
||||
'line_ids' : fields.one2many('account.analytic.line', 'journal_id', 'Lines'),
|
||||
|
||||
@@ -172,19 +172,16 @@
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="top" string="Analytic Entries">
|
||||
<field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
|
||||
<field name="date"/>
|
||||
<field name="ref" invisible="context.get('to_invoice', False)"/>
|
||||
<field name="name"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total quantity"/>
|
||||
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
|
||||
<field domain="[('type','=','normal')]" name="account_id" groups="base.group_extended"/>
|
||||
<field invisible="True" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
|
||||
<field name="amount" sum="Total amount"/>
|
||||
<field name="general_account_id"/>
|
||||
<field name="ref"/>
|
||||
<field name="currency_id" />
|
||||
<field name="amount_currency" />
|
||||
<field name="company_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" groups="base.group_multi_company"/>
|
||||
<field name="journal_id" invisible="context.get('to_invoice', False)"/>
|
||||
<field name="amount" sum="Total" invisible="context.get('to_invoice', False)"/>
|
||||
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)" invisible="not context.get('to_invoice', False)"/>
|
||||
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total Quantity" invisible="not context.get('to_invoice', False)"/>
|
||||
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" invisible="not context.get('to_invoice', False)"/>
|
||||
<field domain="[('type','=','normal')]" name="account_id"/>
|
||||
<field name="general_account_id" invisible="context.get('to_invoice', False)"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -195,22 +192,24 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Analytic Lines">
|
||||
<group col='6' colspan='4'>
|
||||
<filter string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-sale" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-sale" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation')]" icon="terp-folder-orange"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-go-today" string="Overdue Accounts" domain="[('account_id.date','<',time.strftime('%%Y-%%m-%%d'))]" help="Analytic Journal Items related to accounts having a past deadline."/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="user_id" widget="selection"/>
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="account_id"/>
|
||||
<field name="user_id">
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/>
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group string="Group By..." expand="0">
|
||||
<filter string="Analytic Account" context="{'group_by':'account_id'}" groups="base.group_extended" icon="terp-folder-blue"/>
|
||||
<filter string="Analytic Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="Account" context="{'group_by':'account_id'}" groups="base.group_extended" icon="terp-folder-blue"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="General Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/>
|
||||
</group>
|
||||
|
||||
@@ -30,7 +30,6 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(aged_trial_report, self).__init__(cr, uid, name, context=context)
|
||||
self.query_line = ''
|
||||
self.total_account = []
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
@@ -47,7 +46,8 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
||||
})
|
||||
|
||||
def set_context(self, objects, data, ids, report_type=None):
|
||||
self.query = data['form'].get('query_line', '')
|
||||
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', {}))
|
||||
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'))
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
<para style="terp_default_9"><font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a['balance'])) ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[(a['code'] and a['name']) and formatLang(abs(a['balance'])) or removeParentNode('font')]] [[ company.currency_id.symbol ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
@@ -51,12 +51,13 @@ class journal_print(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')
|
||||
new_ids = ids
|
||||
self.query_get_clause = ''
|
||||
if (data['model'] == 'ir.ui.menu'):
|
||||
new_ids = 'active_ids' in data['form'] and data['form']['active_ids'] or []
|
||||
self.query_get_clause = 'AND '
|
||||
self.query_get_clause += data['form']['query_line'] or ''
|
||||
self.query_get_clause += obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context', {}))
|
||||
objects = self.pool.get('account.journal.period').browse(self.cr, self.uid, new_ids)
|
||||
if new_ids:
|
||||
self.cr.execute('SELECT period_id, journal_id FROM account_journal_period WHERE id IN %s', (tuple(new_ids),))
|
||||
|
||||
@@ -48,6 +48,19 @@
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_company_analysis_tree" model="ir.ui.view">
|
||||
<field name="name">account.company.analysis.tree</field>
|
||||
<field name="model">account.entries.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Company Analysis" >
|
||||
<field name="user_type"/>
|
||||
<field name="debit" />
|
||||
<field name="credit" />
|
||||
<field name="balance" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_account_entries_report_search" model="ir.ui.view">
|
||||
<field name="name">account.entries.report.search</field>
|
||||
<field name="model">account.entries.report</field>
|
||||
|
||||
@@ -53,12 +53,13 @@ class journal_print(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')
|
||||
new_ids = ids
|
||||
self.query_get_clause = ''
|
||||
if (data['model'] == 'ir.ui.menu'):
|
||||
new_ids = 'active_ids' in data['form'] and data['form']['active_ids'] or []
|
||||
self.query_get_clause = 'AND '
|
||||
self.query_get_clause += data['form']['query_line'] or ''
|
||||
self.query_get_clause += obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context', {}))
|
||||
objects = self.pool.get('account.journal.period').browse(self.cr, self.uid, new_ids)
|
||||
if new_ids:
|
||||
self.cr.execute('SELECT period_id, journal_id FROM account_journal_period WHERE id IN %s', (tuple(new_ids),))
|
||||
|
||||
@@ -38,9 +38,12 @@ class general_ledger(rml_parse.rml_parse, common_report_header):
|
||||
|
||||
def set_context(self, objects, data, ids, report_type=None):
|
||||
new_ids = ids
|
||||
obj_move = self.pool.get('account.move.line')
|
||||
self.sortby = data['form'].get('sortby', 'sort_date')
|
||||
self.query = data['form'].get('query_line', '')
|
||||
self.init_query = data['form']['initial_bal_query']
|
||||
self.query = obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context',{}))
|
||||
ctx2 = data['form'].get('used_context',{}).copy()
|
||||
ctx2.update({'initial_bal': True})
|
||||
self.init_query = obj_move._query_get(self.cr, self.uid, obj='l', context=ctx2)
|
||||
self.init_balance = data['form']['initial_balance']
|
||||
self.display_account = data['form']['display_account']
|
||||
self.target_move = data['form'].get('target_move', 'all')
|
||||
@@ -97,7 +100,7 @@ class general_ledger(rml_parse.rml_parse, common_report_header):
|
||||
FROM account_move_line l \
|
||||
WHERE l.account_id = %s AND %s '%(account.id, self.init_query))
|
||||
sum_currency += self.cr.fetchone()[0] or 0.0
|
||||
return str(sum_currency)
|
||||
return sum_currency
|
||||
|
||||
def get_children_accounts(self, account):
|
||||
res = []
|
||||
|
||||
@@ -266,10 +266,10 @@
|
||||
<tr>
|
||||
<td><para style="Standard"><font color="white">[[ '..'*(o.level-1) ]]</font>[[ o.code ]] [[ o.name ]]</para></td>
|
||||
<td><para style="Standard"></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[formatLang(sum_debit_account(o)) ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[formatLang(sum_credit_account(o)) ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[formatLang(sum_balance_account(o)) ]] [[ company.currency_id.symbol ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[ o.currency_id and sum_currency_amount_account(o) +o.currency_id.code or '' ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[ formatLang(sum_debit_account(o), digits=get_digits(dp='Account')) ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[ formatLang(sum_credit_account(o), digits=get_digits(dp='Account')) ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[ formatLang(sum_balance_account(o), digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[ o.currency_id and formatLang(sum_currency_amount_account(o), digits=get_digits(dp='Account')) + o.currency_id.code or '' ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
@@ -292,9 +292,9 @@
|
||||
<td><para style="P2_content">[[ line['move'] ]]</para></td>
|
||||
<td><para style="P3_content">[[ line['lname'] ]]</para></td>
|
||||
<td><para style="P3_content_center">[[ strip_name(line['line_corresp'].replace(', ',','),40) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['debit']) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['credit']) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['progress']) ]] [[ company.currency_id.symbol ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['debit'], digits=get_digits(dp='Account')) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['credit'], digits=get_digits(dp='Account')) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['progress'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['amount_currency'] or '')]] [[ line['currency_code'] or '' ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -327,9 +327,9 @@
|
||||
<tr>
|
||||
<td><para style="Standard"><font color="white">[[ '..'*(o.level-1) ]]</font>[[ o.code ]] [[ o.name ]]</para></td>
|
||||
<td><para style="Standard"></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[formatLang(sum_debit_account(o)) ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[formatLang(sum_credit_account(o)) ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[formatLang(sum_balance_account(o)) ]] [[ company.currency_id.symbol ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[ formatLang(sum_debit_account(o), digits=get_digits(dp='Account')) ]]</u></para></td>
|
||||
<td alignment="right"><para style="P9b"><u>[[ formatLang(sum_credit_account(o), digits=get_digits(dp=Account)) ]]</u></para></td>
|
||||
<td><para style="P9b"><u>[[ formatLang(sum_balance_account(o), digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
@@ -352,9 +352,9 @@
|
||||
<td><para style="P2_content">[[ line['move'] ]]</para></td>
|
||||
<td><para style="P3_content">[[ line['lname'] ]]</para></td>
|
||||
<td><para style="P3_content_center">[[ strip_name(line['line_corresp'],15) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['debit']) ]] </para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['credit']) ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['progress']) ]] [[ company.currency_id.symbol ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['debit'], dp='Account') ]] </para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['credit'], dp='Account') ]]</para></td>
|
||||
<td><para style="P4_content">[[ formatLang(line['progress'], dp='Account') ]] [[ company.currency_id.symbol ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
|
||||
@@ -52,13 +52,14 @@ class journal_print(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')
|
||||
new_ids = ids
|
||||
self.query_get_clause = ''
|
||||
self.target_move = data['form'].get('target_move', 'all')
|
||||
if (data['model'] == 'ir.ui.menu'):
|
||||
new_ids = data['form'].get('active_ids', [])
|
||||
self.query_get_clause = 'AND '
|
||||
self.query_get_clause += data['form'].get('query_line', '')
|
||||
self.query_get_clause += obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context', {}))
|
||||
self.sort_selection = data['form'].get('sort_selection', 'date')
|
||||
objects = self.pool.get('account.journal.period').browse(self.cr, self.uid, new_ids)
|
||||
if new_ids:
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
import time
|
||||
import re
|
||||
import copy
|
||||
|
||||
from tools.translate import _
|
||||
from report import report_sxw
|
||||
from common_report_header import common_report_header
|
||||
@@ -52,8 +53,8 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
||||
|
||||
def set_context(self, objects, data, ids, report_type=None):
|
||||
self.display_partner = data['form'].get('display_partner', 'non-zero_balance')
|
||||
self.query = data['form'].get('query_line', '')
|
||||
self.init_query = data['form'].get('initial_bal_query', '')
|
||||
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', {}))
|
||||
self.result_selection = data['form'].get('result_selection')
|
||||
self.target_move = data['form'].get('target_move', 'all')
|
||||
|
||||
@@ -116,7 +117,7 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
||||
for rec in full_account:
|
||||
if not rec.get('name', False):
|
||||
rec.update({'name': _('Unknown Partner')})
|
||||
|
||||
|
||||
## We will now compute Total
|
||||
subtotal_row = self._add_subtotal(full_account)
|
||||
return subtotal_row
|
||||
@@ -141,8 +142,8 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
||||
new_header['ref'] = ''
|
||||
new_header['name'] = r['account_name']
|
||||
new_header['code'] = r['code']
|
||||
new_header['debit'] = r['debit']
|
||||
new_header['credit'] = r['credit']
|
||||
new_header['debit'] = r['debit']
|
||||
new_header['credit'] = r['credit']
|
||||
new_header['scredit'] = tot_scredit
|
||||
new_header['sdebit'] = tot_sdebit
|
||||
new_header['enlitige'] = tot_enlitige
|
||||
|
||||
@@ -56,8 +56,11 @@ class third_party_ledger(rml_parse.rml_parse, common_report_header):
|
||||
})
|
||||
|
||||
def set_context(self, objects, data, ids, report_type=None):
|
||||
self.query = data['form'].get('query_line', '')
|
||||
self.init_query = data['form'].get('initial_bal_query', '')
|
||||
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', {}))
|
||||
ctx2 = data['form'].get('used_context',{}).copy()
|
||||
ctx2.update({'initial_bal': True})
|
||||
self.init_query = obj_move._query_get(self.cr, self.uid, obj='l', context=ctx2)
|
||||
self.reconcil = data['form'].get('reconcil', True)
|
||||
self.initial_balance = data['form'].get('initial_balance', True)
|
||||
self.result_selection = data['form'].get('result_selection', 'customer')
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a['balance1'])) ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[(a['code1'] and a['name1']) and formatLang(abs(a['balance1'])) or removeParentNode('font') ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
@@ -132,7 +132,7 @@ class report_aged_receivable(osv.osv):
|
||||
|
||||
while (last_month_date > fy_start_date):
|
||||
LIST_RANGES.append(today + " to " + last_month_date.strftime('%Y-%m-%d'))
|
||||
today = (last_month_date- 1).strftime('%Y-%m-%d')
|
||||
today = (last_month_date- relativedelta(days=1)).strftime('%Y-%m-%d')
|
||||
last_month_date = datetime.strptime(today, '%Y-%m-%d') - relativedelta(months=1)
|
||||
|
||||
LIST_RANGES.append(today +" to " + fy_start_date.strftime('%Y-%m-%d'))
|
||||
|
||||
@@ -232,10 +232,10 @@
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.price_unit) ]][[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.discount) ]] </para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.discount, digits=get_digits(dp='Account')) ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.price_subtotal) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.price_subtotal, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -294,7 +294,7 @@
|
||||
<para style="terp_default_9">Taxes:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -338,7 +338,7 @@
|
||||
<para style="terp_default_8">[[ t.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]] [[ o.currency_id.symbol ]]</para>
|
||||
@@ -373,4 +373,4 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
</document>
|
||||
|
||||
@@ -21,12 +21,10 @@
|
||||
|
||||
from report import report_sxw
|
||||
import xml.dom.minidom
|
||||
import os, time
|
||||
import time
|
||||
import osv
|
||||
import re
|
||||
import tools
|
||||
import pooler
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
|
||||
@@ -13,17 +13,12 @@
|
||||
<field name="name">Accounting / Manager</field>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="group_accounting_accountant">
|
||||
<field name="name">Accounting / Accountant and Manager</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="menu_finance_reporting" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'), ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_legal_statement" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_receivables" model="ir.ui.menu">
|
||||
@@ -47,27 +42,27 @@
|
||||
</record>
|
||||
|
||||
<record id="menu_action_invoice_tree1" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_invoice_tree2" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_invoice_tree3" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_invoice_tree4" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_invoice'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_bank_and_cash" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_account_tree2" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_entries" model="ir.ui.menu">
|
||||
@@ -75,7 +70,7 @@
|
||||
</record>
|
||||
|
||||
<record id="menu_action_move_journal_line_form" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_eaction_account_moves_all" model="ir.ui.menu">
|
||||
@@ -87,15 +82,15 @@
|
||||
</record>
|
||||
|
||||
<record id="final_accounting_reports" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system'), ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager'), ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_journals_report" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_tax_code_tree" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_user'),ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_periodical_processing" model="ir.ui.menu">
|
||||
@@ -103,27 +98,27 @@
|
||||
</record>
|
||||
|
||||
<record id="menu_general_ledger" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_general_Balance_report" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_account_bs_report" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_account_pl_report" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_tax_report" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="next_id_22" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('group_account_manager'),ref('base.group_system')])]" name="groups_id"/>
|
||||
<field eval="[(6,0,[ref('group_account_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_action_account_invoice_report_all" model="ir.ui.menu">
|
||||
@@ -142,17 +137,17 @@
|
||||
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_finance_configuration" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
<!--record id="menu_finance_configuration" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record-->
|
||||
|
||||
<record id="menu_finance_entries" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="menu_analytic_accounting" model="ir.ui.menu">
|
||||
<!--record id="menu_analytic_accounting" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
|
||||
</record>
|
||||
</record-->
|
||||
|
||||
<record id="account_move_comp_rule" model="ir.rule">
|
||||
<field name="name">Account Entry</field>
|
||||
|
||||
@@ -149,51 +149,6 @@
|
||||
"access_report_account_receivable_invoice","report.account.receivable.invoice","model_report_account_receivable","account.group_account_invoice",1,1,1,1
|
||||
"access_report_account_receivable_user","report.account.receivable.user","model_report_account_receivable","account.group_account_user",1,1,1,1
|
||||
"access_account_sequence_fiscal_year_invoice","account.sequence.fiscalyear invoice","model_account_sequence_fiscalyear","account.group_account_invoice",1,1,1,1
|
||||
"access_account_invoice_accounting_accountant","account.invoice","model_account_invoice","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_invoice_line_accounting_accountant","account.invoice.line","model_account_invoice_line","account.group_accounting_accountant",1,1,1,1
|
||||
"access_res_partner_accounting_accountant","res.partner","base.model_res_partner","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_account_accounting_accountant","account.account","model_account_account","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_account_type_accounting_accountant","account.type","model_account_account_type","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_tax_accounting_accountant","account.tax","model_account_tax","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_tax_code_accounting_accountant","account.tax.code","model_account_tax_code","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_invoice_tax_accounting_accountant","account.invoice.tax","model_account_invoice_tax","account.group_accounting_accountant",1,0,0,0
|
||||
"access_res_partner_address_accounting_accountant","res.partner.address","base.model_res_partner_address","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_move_accounting_accountant","account.move","model_account_move","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_move_line_accounting_accountant","account.move.line","model_account_move_line","account.group_accounting_accountant",1,1,1,1
|
||||
"access_res_partner_bank_accounting_accountant","res.partner.bank","base.model_res_partner_bank","account.group_accounting_accountant",1,0,0,0
|
||||
"access_res_partner_event_accounting_accountant","res.partner.event","base.model_res_partner_event","account.group_accounting_accountant",1,0,0,0
|
||||
"access_res_currency_rate_accounting_accountant","res.currency.rate","base.model_res_currency_rate","account.group_accounting_accountant",1,1,0,0
|
||||
"access_res_currency_accounting_accountant","res.currency","base.model_res_currency","account.group_accounting_accountant",1,1,0,0
|
||||
"access_product_template_accounting_accountant","product.template","product.model_product_template","account.group_accounting_accountant",1,0,0,0
|
||||
"access_product_product_accounting_accountant","product.product","product.model_product_product","account.group_accounting_accountant",1,0,0,0
|
||||
"access_product_category_accounting_accountant","product.category","product.model_product_category","account.group_accounting_accountant",1,0,0,0
|
||||
"access_product_pricelist_accounting_accountant","product.pricelist","product.model_product_pricelist","account.group_accounting_accountant",1,0,0,0
|
||||
"access_product_pricelist_version_accounting_accountant","product.pricelist.version","product.model_product_pricelist_version","account.group_accounting_accountant",1,0,0,0
|
||||
"access_product_pricelist_item_accounting_accountant","product.pricelist.item","product.model_product_pricelist_item","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_payment_term_accounting_accountant","account.payment.term","model_account_payment_term","account.group_accounting_accountant",1,0,0,0
|
||||
"access_res_payterm_accounting_accountant","res.payterm","base.model_res_payterm","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_payment_term_line_accounting_accountant","account.payment.term.line","model_account_payment_term_line","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_journal_accounting_accountant","account.journal","model_account_journal","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_fiscalyear_accounting_accountant","account.fiscalyear","model_account_fiscalyear","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_period_accounting_accountant","account.period","model_account_period","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_move_reconcile_accounting_accountant","account.move.reconcile","model_account_move_reconcile","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_tax_code_accounting_accountant","account.tax.code","model_account_tax_code","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_bank_statement_accounting_accountant","account.bank.statement","model_account_bank_statement","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_cashbox_line_accounting_accountant","account.cashbox.line","model_account_cashbox_line","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_bank_statement_line_accounting_accountant","account.bank.statement.line","model_account_bank_statement_line","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_invoice_report_accounting_accountant","account.invoice.report","model_account_invoice_report","account.group_accounting_accountant",1,0,0,0
|
||||
"access_report_account_receivable_accounting_accountant","report.account.receivable","model_report_account_receivable","account.group_accounting_accountant",1,0,0,0
|
||||
"access_temp_range_accounting_accountant","temp.range","model_temp_range","account.group_accounting_accountant",1,0,0,0
|
||||
"access_report_aged_receivable_accounting_accountant","report.aged.receivable","model_report_aged_receivable","account.group_accounting_accountant",1,0,0,0
|
||||
"access_report_invoice_created_accounting_accountant","report.invoice.created","model_report_invoice_created","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_entries_report_accounting_accountant","account.entries.report","model_account_entries_report","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_invoice_report_accounting_accountant","account.invoice.report","model_account_invoice_report","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_journal_view_accounting_accountant","account.journal.view","model_account_journal_view","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_journal_period_accounting_accountant","account.journal.period","model_account_journal_period","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_journal_column_accounting_accountant","account.journal.column","model_account_journal_column","account.group_accounting_accountant",1,1,1,1
|
||||
"access_account_analytic_account_accounting_accountant","account.analytic.account","analytic.model_account_analytic_account","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_analytic_line_accounting_accountant","account.analytic.line","analytic.model_account_analytic_line","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_analytic_journal_accounting_accountant","account.analytic.journal","model_account_analytic_journal","account.group_accounting_accountant",1,0,0,0
|
||||
"access_account_analytic_journal_analytic_accounting","account.analytic.journal","model_account_analytic_journal","analytic.group_analytic_accounting",1,1,1,1
|
||||
"access_account_account_analytic_accounting","account.account","model_account_account","analytic.group_analytic_accounting",1,0,0,0
|
||||
"access_product_product_analytic_accounting","product.product","product.model_product_product","analytic.group_analytic_accounting",1,0,0,0
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
-
|
||||
In order to test the PDF reports defined on an invoice, we will print an Invoice Report
|
||||
-
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
-
|
||||
In order to test the PDF reports defined on a partner, we will print the Overdue Report
|
||||
-
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
import netsvc, tools, os
|
||||
(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')], {}, {})
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
-
|
||||
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')], {}, {})
|
||||
@@ -30,29 +30,30 @@
|
||||
-
|
||||
!record {model: account.tax.code, id: account_tax_code_0}:
|
||||
name : Tax Code Test
|
||||
sign : 1.00
|
||||
sign : 10.00
|
||||
-
|
||||
Print Tax Code entries report
|
||||
-
|
||||
-
|
||||
!python {model: account.tax.code}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.account.tax.code.entries').create(cr, uid, [ref('account_tax_code_0')], {}, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-tax-code-entries.'+format), 'wb+').write(data)
|
||||
|
||||
|
||||
-
|
||||
Print Vat Declaration Report
|
||||
-
|
||||
!python {model: account.tax.code}: |
|
||||
import netsvc, tools, os
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'based_on': 'invoices','company_id':ref('base.main_company'),'periods':[]}}
|
||||
(data, format) = netsvc.LocalService('report.account.vat.declaration').create(cr, uid, [ref("account_tax_code_0")], data_dict, {})
|
||||
(data, format) = netsvc.LocalService('report.account.vat.declaration').create(cr, uid, [ref("account_move_0")], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-vat-declaration.'+format), 'wb+').write(data)
|
||||
|
||||
-
|
||||
In order to test the PDF reports defined on an invoice, we will print an invoice
|
||||
-
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
|
||||
@@ -85,9 +86,9 @@
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
|
||||
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'chart_account_id':ref('account.chart0'),'initial_balance': 1, 'periods': period_list,'journal_ids':journal_ids, 'page_split': 0, 'date_from': time.strftime('%Y-%m-%d'), 'period_length': 30, 'amount_currency': 0,'query_line' : query_line, 'result_selection': 'customer','direction_selection': 'past','fiscalyear_id':fy_id}}
|
||||
data_dict['form'].update(res)
|
||||
(data, format) = netsvc.LocalService('report.account.aged_trial_balance').create(cr, uid, [], data_dict, {})
|
||||
@@ -123,10 +124,10 @@
|
||||
(data, format) = netsvc.LocalService('report.account.account.balance').create(cr, uid, [ref('account.bal'),ref('account.gpf')], data_dict, {'periods': []})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-account_balance-normal.'+format), 'wb+').write(data)
|
||||
|
||||
|
||||
data_dict.update({'model': 'ir.ui.menu'})
|
||||
data_dict['form'].update({'active_ids':[ref('account.bal'),ref('account.gpf')]})
|
||||
|
||||
|
||||
(data, format) = netsvc.LocalService('report.account.account.balance').create(cr, uid, [], data_dict, {'periods': []})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-account_balance-normal-menu.'+format), 'wb+').write(data)
|
||||
@@ -146,16 +147,16 @@
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
data_dict = {'model': 'account.journal.period', 'id':journal_period_ids[0], 'form': {'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
|
||||
(data, format) = netsvc.LocalService('report.account.central.journal').create(cr, uid, journal_period_ids, data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-central_journal.'+format), 'wb+').write(data)
|
||||
|
||||
|
||||
data_dict.update({'model': 'ir.ui.menu'})
|
||||
data_dict['form'].update({'active_ids':journal_period_ids})
|
||||
|
||||
|
||||
(data, format) = netsvc.LocalService('report.account.central.journal').create(cr, uid, [], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-central_journal-menu.'+format), 'wb+').write(data)
|
||||
@@ -168,13 +169,13 @@
|
||||
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
|
||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||
journal_period_ids = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', journal_ids), ('period_id', 'in', period_list)], context=context)
|
||||
|
||||
|
||||
obj_move = self.pool.get('account.move.line')
|
||||
ctx = {}
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
data_dict = {'model': 'ir.ui.menu','id':journal_period_ids[0], 'form': {'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids, 'active_ids':journal_period_ids}}
|
||||
(data, format) = netsvc.LocalService('report.account.general.journal').create(cr, uid, journal_period_ids, data_dict, {})
|
||||
@@ -190,15 +191,15 @@
|
||||
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
|
||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||
acc_ids = [ref('account.bal'),ref('account.gpf')]
|
||||
|
||||
|
||||
obj_move = self.pool.get('account.move.line')
|
||||
ctx = {}
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
|
||||
|
||||
data_dict = {'model': 'account.account', 'form': {'initial_balance': 1,'initial_bal_query': query_line,'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','sortby': 'sort_date','amount_currency': 0,'landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
|
||||
(data, format) = netsvc.LocalService('report.account.general.ledger').create(cr, uid, acc_ids, data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
@@ -218,15 +219,15 @@
|
||||
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
|
||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||
acc_ids = [ref('account.bal'),ref('account.gpf')]
|
||||
|
||||
|
||||
obj_move = self.pool.get('account.move.line')
|
||||
ctx = {}
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
|
||||
|
||||
data_dict = {'model': 'account.account', 'form': {'initial_balance': 1,'initial_bal_query':query_line,'chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','sortby': 'sort_date','amount_currency': 0,'landscape':1,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
|
||||
(data, format) = netsvc.LocalService('report.account.general.ledger_landscape').create(cr, uid, acc_ids, data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
@@ -253,17 +254,17 @@
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
|
||||
|
||||
data_dict = {'model': 'account.journal.period', 'id':journal_period_ids[0], 'form': {'sort_selection': 'date','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','amount_currency': 0,'compare_pattern': 'none','account_choice': 'moves','landscape':0,'period_manner': 'actual','fiscalyear_id': fy_id ,'query_line':query_line,'target_move': 'all','periods': period_list,'journal_ids':journal_ids,'id':ref('account.bal') }}
|
||||
(data, format) = netsvc.LocalService('report.account.journal.period.print').create(cr, uid, journal_period_ids, data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-print_journal.'+format), 'wb+').write(data)
|
||||
|
||||
|
||||
data_dict.update({'model': 'ir.ui.menu'})
|
||||
data_dict['form'].update({'active_ids':journal_period_ids})
|
||||
|
||||
|
||||
(data, format) = netsvc.LocalService('report.account.journal.period.print').create(cr, uid, [], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-print_journal-menu.'+format), 'wb+').write(data)
|
||||
@@ -276,16 +277,17 @@
|
||||
fy_id = ref('account.data_fiscalyear')
|
||||
period_list = self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', [fy_id])], context=context)
|
||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||
|
||||
journal_period_ids = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', journal_ids), ('period_id', 'in', period_list)], context=context)
|
||||
obj_move = self.pool.get('account.move.line')
|
||||
ctx = {}
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
|
||||
(data, format) = netsvc.LocalService('report.account.partner.balance').create(cr, uid, [], data_dict, {})
|
||||
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'active_ids':journal_period_ids,'display_partner': 'all','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
|
||||
(data, format) = netsvc.LocalService('report.account.partner.balance').create(cr, uid, journal_period_ids, data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account-partner_balance.'+format), 'wb+').write(data)
|
||||
|
||||
@@ -303,9 +305,9 @@
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
|
||||
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'initial_bal_query':query_line,'amount_currency': 0,'reconcil': True,'initial_balance':1,'page_split': True,'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
|
||||
(data, format) = netsvc.LocalService('report.account.third_party_ledger').create(cr, uid, [], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
@@ -325,7 +327,7 @@
|
||||
ctx['fiscalyear'] = fy_id
|
||||
ctx['journal_ids'] = journal_ids
|
||||
ctx['chart_account_id'] = ref('account.chart0')
|
||||
|
||||
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=ctx)
|
||||
data_dict = {'model': 'ir.ui.menu', 'form': {'initial_bal_query':query_line,'amount_currency': 0,'reconcil': True,'initial_balance':1,'page_split': False,'result_selection': 'customer','chart_account_id':ref('account.chart0'),'display_account':'bal_all','filter': 'filter_no','display_type': 0,'journal_ids':journal_ids,'display_partner': 'non-zero_balance','fiscalyear': fy_id ,'target_move': 'all','query_line':query_line}}
|
||||
(data, format) = netsvc.LocalService('report.account.third_party_ledger_other').create(cr, uid, [], data_dict, {})
|
||||
|
||||
@@ -8,29 +8,27 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Reconciliation">
|
||||
<group width="660" height="430">
|
||||
<separator string="Options" colspan="4"/>
|
||||
<group>
|
||||
<field name="account_ids" colspan="4" domain="[('reconcile','=',1)]"/>
|
||||
<field name="date1"/>
|
||||
<field name="date2"/>
|
||||
<field name="power"/>
|
||||
<field name="allow_write_off"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group attrs="{'readonly':[('allow_write_off', '!=', True)]}">
|
||||
<separator string="Write-Off Move" colspan="4"/>
|
||||
<field name="max_amount"/>
|
||||
<field name="writeoff_acc_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
<field name="journal_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
<field name="period_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
</group>
|
||||
<separator string ="" colspan="4"/>
|
||||
<group colspan="2" col="4">
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="reconcile" string="Reconcile" type="object" icon="terp-stock_effects-object-colorize"/>
|
||||
</group>
|
||||
<separator string="Options" colspan="4"/>
|
||||
<group>
|
||||
<field name="account_ids" colspan="4" domain="[('reconcile','=',1)]"/>
|
||||
<field name="date1"/>
|
||||
<field name="date2"/>
|
||||
<field name="power"/>
|
||||
<field name="allow_write_off"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group attrs="{'readonly':[('allow_write_off', '!=', True)]}">
|
||||
<separator string="Write-Off Move" colspan="4"/>
|
||||
<field name="max_amount"/>
|
||||
<field name="writeoff_acc_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
<field name="journal_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
<field name="period_id" attrs="{ 'required':[('allow_write_off', '=', True)]}"/>
|
||||
</group>
|
||||
<separator string ="" colspan="4"/>
|
||||
<group colspan="2" col="4">
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="reconcile" string="Reconcile" type="object" icon="terp-stock_effects-object-colorize"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -73,7 +73,7 @@ class account_move_journal(osv.osv_memory):
|
||||
|
||||
period_pool = self.pool.get('account.period')
|
||||
journal_pool = self.pool.get('account.journal')
|
||||
|
||||
|
||||
journal_id = self._get_journal(cr, uid, context)
|
||||
period_id = self._get_period(cr, uid, context)
|
||||
|
||||
@@ -97,15 +97,16 @@ class account_move_journal(osv.osv_memory):
|
||||
</group>
|
||||
<group colspan="4" col="4">
|
||||
<label string ="" colspan="2"/>
|
||||
<button icon="terp-gtk-go-back-rtl" string="Ok" name="action_open_window" type="object"/>
|
||||
<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"/>
|
||||
</group>
|
||||
</form>""" % (str(journal), str(period))
|
||||
|
||||
|
||||
res.update({
|
||||
'arch':view
|
||||
})
|
||||
return res
|
||||
|
||||
|
||||
def action_open_window(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
This function Open action move line window on given period and Journal/Payment Mode
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<field name="context">{'journal_type':'sale','view_mode':False}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
<menuitem action="action_account_moves_sale" sequence="16" id="menu_eaction_account_moves_sale" parent="menu_finance_receivables" icon="STOCK_JUSTIFY_FILL" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem action="action_account_moves_sale" sequence="16" id="menu_eaction_account_moves_sale" parent="menu_finance_receivables" icon="STOCK_JUSTIFY_FILL" groups="group_account_user,group_account_manager"/>
|
||||
|
||||
<!-- <record id="action_account_moves_purchase_refund" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">Journal Refund Items</field>-->
|
||||
@@ -46,7 +46,7 @@
|
||||
parent="menu_finance_payables"
|
||||
icon="STOCK_JUSTIFY_FILL"
|
||||
sequence="16"
|
||||
groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
groups="group_account_user,group_account_manager"/>
|
||||
|
||||
<!-- <record id="action_account_moves_sale_refund" model="ir.actions.act_window">-->
|
||||
<!-- <field name="name">Journal Refund Items</field>-->
|
||||
@@ -73,7 +73,7 @@
|
||||
id="menu_action_account_moves_bank"
|
||||
parent="account.menu_finance_bank_and_cash"
|
||||
sequence="16"
|
||||
groups="group_account_user,group_account_manager,base.group_system"
|
||||
groups="group_account_user,group_account_manager"
|
||||
/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -49,8 +49,8 @@ class account_balance_report(osv.osv_memory):
|
||||
res['arch'] = etree.tostring(doc)
|
||||
return res
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['target_move'])[0])
|
||||
return {'type': 'ir.actions.report.xml', 'report_name': 'account.account.balance', 'datas': data}
|
||||
|
||||
|
||||
@@ -55,12 +55,12 @@ class account_aged_trial_balance(osv.osv_memory):
|
||||
res['arch'] = etree.tostring(doc)
|
||||
return res
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
res = {}
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['period_length', 'direction_selection'])[0])
|
||||
|
||||
period_length = data['form']['period_length']
|
||||
@@ -70,7 +70,7 @@ class account_aged_trial_balance(osv.osv_memory):
|
||||
raise osv.except_osv(_('UserError'), _('Enter a Start date !'))
|
||||
|
||||
start = datetime.strptime(data['form']['date_from'], "%Y-%m-%d")
|
||||
|
||||
|
||||
if data['form']['direction_selection'] == 'past':
|
||||
for i in range(5)[::-1]:
|
||||
stop = start - relativedelta(days=period_length)
|
||||
|
||||
@@ -57,10 +57,10 @@ class account_bs_report(osv.osv_memory):
|
||||
res['arch'] = etree.tostring(doc)
|
||||
return res
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
account = self.pool.get('account.account').browse(cr, uid, data['form']['chart_account_id'])
|
||||
if not account.company_id.property_reserve_and_surplus_account:
|
||||
raise osv.except_osv(_('Warning'),_('Please define the Reserve and Profit/Loss account for current user company !'))
|
||||
|
||||
@@ -25,8 +25,8 @@ class account_central_journal(osv.osv_memory):
|
||||
_description = 'Account Central Journal'
|
||||
_inherit = "account.common.journal.report"
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.central.journal',
|
||||
|
||||
@@ -63,10 +63,10 @@ class account_common_report(osv.osv_memory):
|
||||
if filter == 'filter_period' and fiscalyear_id:
|
||||
start_period = end_period = False
|
||||
cr.execute('''
|
||||
SELECT * FROM (SELECT p.id
|
||||
FROM account_period p
|
||||
LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id)
|
||||
WHERE f.id = %s
|
||||
SELECT * FROM (SELECT p.id
|
||||
FROM account_period p
|
||||
LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id)
|
||||
WHERE f.id = %s
|
||||
ORDER BY p.date_start ASC
|
||||
LIMIT 1) AS period_start
|
||||
UNION
|
||||
@@ -112,29 +112,16 @@ class account_common_report(osv.osv_memory):
|
||||
result['fiscalyear'] = 'fiscalyear_id' in data['form'] and data['form']['fiscalyear_id'] or False
|
||||
result['journal_ids'] = 'journal_ids' in data['form'] and data['form']['journal_ids'] or False
|
||||
result['chart_account_id'] = 'chart_account_id' in data['form'] and data['form']['chart_account_id'] or False
|
||||
result_initial_bal = result.copy()
|
||||
if data['form']['filter'] == 'filter_date':
|
||||
result['date_from'] = data['form']['date_from']
|
||||
result['date_to'] = data['form']['date_to']
|
||||
result_initial_bal['date_from'] = '0001-01-01'
|
||||
result_initial_bal['date_to'] = (datetime.datetime.strptime(data['form']['date_from'], "%Y-%m-%d") + timedelta(days=-1)).strftime('%Y-%m-%d')
|
||||
elif data['form']['filter'] == 'filter_period':
|
||||
if not data['form']['period_from'] or not data['form']['period_to']:
|
||||
raise osv.except_osv(_('Error'),_('Select a starting and an ending period'))
|
||||
company_id = period_obj.browse(cr, uid, data['form']['period_from'], context=context).company_id.id
|
||||
result['periods'] = period_obj.build_ctx_periods(cr, uid, data['form']['period_from'], data['form']['period_to'])
|
||||
first_period = self.pool.get('account.period').search(cr, uid, [('company_id', '=', company_id)], order='date_start', limit=1)[0]
|
||||
result_initial_bal['periods'] = period_obj.build_ctx_periods(cr, uid, first_period, data['form']['period_from'])
|
||||
else:
|
||||
if data['form']['fiscalyear_id']:
|
||||
fiscal_date_start = fiscal_obj.browse(cr, uid, [data['form']['fiscalyear_id']], context=context)[0].date_start
|
||||
result_initial_bal['empty_fy_allow'] = True #Improve me => there should be something generic in account.move.line -> query get
|
||||
result_initial_bal['fiscalyear'] = fiscal_obj.search(cr, uid, [('date_stop', '<', fiscal_date_start), ('state', '=', 'draft')], context=context)
|
||||
result_initial_bal['date_from'] = '0001-01-01'
|
||||
result_initial_bal['date_to'] = (datetime.datetime.strptime(fiscal_date_start, "%Y-%m-%d") + timedelta(days=-1)).strftime('%Y-%m-%d')
|
||||
return result, result_initial_bal
|
||||
return result
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
raise (_('Error'), _('not implemented'))
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
@@ -145,12 +132,10 @@ class account_common_report(osv.osv_memory):
|
||||
data['ids'] = context.get('active_ids', [])
|
||||
data['model'] = context.get('active_model', 'ir.ui.menu')
|
||||
data['form'] = self.read(cr, uid, ids, ['date_from', 'date_to', 'fiscalyear_id', 'journal_ids', 'period_from', 'period_to', 'filter', 'chart_account_id'])[0]
|
||||
used_context, used_context_initial_bal = self._build_contexts(cr, uid, ids, data, context=context)
|
||||
query_line = obj_move._query_get(cr, uid, obj='l', context=used_context)
|
||||
used_context = self._build_contexts(cr, uid, ids, data, context=context)
|
||||
data['form']['periods'] = used_context.get('periods', False) and used_context['periods'] or []
|
||||
data['form']['query_line'] = query_line
|
||||
data['form']['initial_bal_query'] = obj_move._query_get(cr, uid, obj='l', context=used_context_initial_bal)
|
||||
return self._print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data['form']['used_context'] = used_context
|
||||
return self._print_report(cr, uid, ids, data, context=context)
|
||||
|
||||
account_common_report()
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ class account_common_account_report(osv.osv_memory):
|
||||
'display_account': 'bal_all',
|
||||
}
|
||||
|
||||
def pre_print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def pre_print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data['form'].update(self.read(cr, uid, ids, ['display_account'])[0])
|
||||
@@ -43,4 +43,4 @@ class account_common_account_report(osv.osv_memory):
|
||||
|
||||
account_common_account_report()
|
||||
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -38,7 +38,7 @@ class account_common_journal_report(osv.osv_memory):
|
||||
result['periods'] = map(lambda x: x[0], cr.fetchall())
|
||||
return result
|
||||
|
||||
def pre_print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def pre_print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data['form'].update(self.read(cr, uid, ids, ['amount_currency'])[0])
|
||||
|
||||
@@ -39,7 +39,7 @@ class account_common_partner_report(osv.osv_memory):
|
||||
'target_move': 'all'
|
||||
}
|
||||
|
||||
def pre_print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def pre_print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data['form'].update(self.read(cr, uid, ids, ['result_selection', 'target_move'])[0])
|
||||
|
||||
@@ -26,8 +26,8 @@ class account_general_journal(osv.osv_memory):
|
||||
_name = 'account.general.journal'
|
||||
_description = 'Account General Journal'
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
return {'type': 'ir.actions.report.xml', 'report_name': 'account.general.journal', 'datas': data}
|
||||
|
||||
account_general_journal()
|
||||
|
||||
@@ -49,10 +49,10 @@ class account_report_general_ledger(osv.osv_memory):
|
||||
res['value'] = {'initial_balance': False}
|
||||
return res
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['landscape', 'initial_balance', 'amount_currency', 'sortby', 'target_move'])[0])
|
||||
if not data['form']['fiscalyear_id']:# GTK client problem onchange does not consider in save record
|
||||
data['form'].update({'initial_balance': False})
|
||||
@@ -62,4 +62,4 @@ class account_report_general_ledger(osv.osv_memory):
|
||||
|
||||
account_report_general_ledger()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -40,10 +40,10 @@ class account_partner_balance(osv.osv_memory):
|
||||
'display_partner': 'non-zero_balance',
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['display_partner'])[0])
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
|
||||
@@ -43,10 +43,10 @@ class account_partner_ledger(osv.osv_memory):
|
||||
'page_split': False,
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'reconcil', 'page_split', 'amount_currency'])[0])
|
||||
if data['form']['page_split']:
|
||||
return {
|
||||
|
||||
@@ -38,10 +38,10 @@ class account_print_journal(osv.osv_memory):
|
||||
'target_move': 'all'
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['sort_selection','target_move'])[0])
|
||||
return {'type': 'ir.actions.report.xml', 'report_name': 'account.journal.period.print', 'datas': data}
|
||||
|
||||
|
||||
@@ -50,10 +50,10 @@ class account_pl_report(osv.osv_memory):
|
||||
res['arch'] = etree.tostring(doc)
|
||||
return res
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, query_line, context=None):
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.pre_print_report(cr, uid, ids, data, query_line, context=context)
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
data['form'].update(self.read(cr, uid, ids, ['display_type'])[0])
|
||||
if data['form']['display_type']:
|
||||
return {
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create Entries From Models">
|
||||
<group height="240" width="510">
|
||||
<separator string="This wizard will create recurring accounting entries" colspan="4"/>
|
||||
<label string="Select recurring to create a manualy recurring accounting entries" width="400"/>
|
||||
<field name="model" colspan="4" nolabel="1"/>
|
||||
@@ -17,7 +16,6 @@
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-execute" string="Create Entries" name="create_entries" type="object"/>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -2,129 +2,5 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="account.menu_eaction_account_moves_sale" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_eaction_account_moves_purchase" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_receivables" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_payables" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_invoice_tree1" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_invoice_tree2" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_invoice_tree3" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_invoice_tree4" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_bank_and_cash" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_charts" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_account_tree2" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_tax_code_tree" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_entries" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_move_journal_line_form" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_eaction_account_moves_all" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_reporting" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_dashboard_acc" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_board_account" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_legal_statement" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.final_accounting_reports" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_general_ledger" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_general_Balance_report" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_tax_report" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_journals_report" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_generic_reporting" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.next_id_22" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_account_journal_period_tree" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_finance_statistic_report_statement" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_account_invoice_report_all" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_account_entries_report_all" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="account.menu_action_account_account_report" model="ir.ui.menu">
|
||||
<field eval="[(4,ref('account.group_accounting_accountant'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -23,6 +23,8 @@ from osv import osv, fields
|
||||
from osv.orm import intersect
|
||||
import tools.sql
|
||||
from tools.translate import _
|
||||
from decimal_precision import decimal_precision as dp
|
||||
|
||||
|
||||
class account_analytic_account(osv.osv):
|
||||
_name = "account.analytic.account"
|
||||
@@ -66,6 +68,8 @@ class account_analytic_account(osv.osv):
|
||||
and invoice_id is not null \
|
||||
GROUP BY account_analytic_line.account_id;", (parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
if account_id not in res:
|
||||
res[account_id] = {}
|
||||
res[account_id][f] = sum
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
@@ -102,6 +106,8 @@ class account_analytic_account(osv.osv):
|
||||
and account_analytic_journal.type in ('purchase','general') \
|
||||
GROUP BY account_analytic_account.id;""", (parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
if account_id not in res:
|
||||
res[account_id] = {}
|
||||
res[account_id][f] = round(sum, dp)
|
||||
|
||||
for account in accounts:
|
||||
@@ -142,6 +148,8 @@ class account_analytic_account(osv.osv):
|
||||
and invoice_id is null \
|
||||
GROUP BY account_analytic_line.account_id" ,(parent_ids,))
|
||||
for account_id, lwd in cr.fetchall():
|
||||
if account_id not in res:
|
||||
res[account_id] = {}
|
||||
res[account_id][f] = lwd
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
@@ -161,6 +169,8 @@ class account_analytic_account(osv.osv):
|
||||
AND to_invoice IS NOT NULL \
|
||||
GROUP BY account_analytic_line.account_id;",(parent_ids,))
|
||||
for account_id, sua in cr.fetchall():
|
||||
if account_id not in res:
|
||||
res[account_id] = {}
|
||||
res[account_id][f] = round(sua, dp)
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
@@ -181,10 +191,14 @@ class account_analytic_account(osv.osv):
|
||||
GROUP BY account_analytic_line.account_id",(parent_ids,))
|
||||
ff = cr.fetchall()
|
||||
for account_id, hq in ff:
|
||||
if account_id not in res:
|
||||
res[account_id] = {}
|
||||
res[account_id][f] = round(hq, dp)
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
if account.id != child.id:
|
||||
if account.id not in res:
|
||||
res[account.id] = {f: 0.0}
|
||||
res[account.id][f] += res.get(child.id, {}).get(f, 0.0)
|
||||
for id in ids:
|
||||
res[id][f] = round(res[id][f], dp)
|
||||
@@ -223,6 +237,8 @@ class account_analytic_account(osv.osv):
|
||||
res2.setdefault(account.id, 0.0)
|
||||
for child in account.child_ids:
|
||||
if account.id != child.id:
|
||||
if account.id not in res:
|
||||
res[account.id] = {f: 0.0}
|
||||
res[account.id][f] += res.get(child.id, {}).get(f, 0.0)
|
||||
res[account.id][f] += res2.get(child.id, 0.0)
|
||||
|
||||
@@ -337,22 +353,47 @@ class account_analytic_account(osv.osv):
|
||||
return res
|
||||
|
||||
_columns ={
|
||||
'ca_invoiced': fields.function(_ca_invoiced_calc, method=True, type='float', string='Invoiced Amount', help="Total customer invoiced amount for this account."),
|
||||
'total_cost': fields.function(_total_cost_calc, method=True, type='float', string='Total Costs', help="Total of costs for this account. It includes real costs (from invoices) and indirect costs, like time spent on timesheets."),
|
||||
'ca_to_invoice': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Amount', help="If invoice from analytic account, the remaining amount you can invoice to the customer based on the total costs."),
|
||||
'ca_theorical': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Theorical Revenue', help="Based on the costs you had on the project, what would have been the revenue if all these costs have been invoiced at the normal sale price provided by the pricelist."),
|
||||
'hours_quantity': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Hours Tot', help="Number of hours you spent on the analytic account (from timesheet). It computes on all journal of type 'general'."),
|
||||
'last_invoice_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Last Invoice Date', help="Date of the last invoice created for this analytic account."),
|
||||
'last_worked_invoiced_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Invoiced Cost', help="If invoice from the costs, this is the date of the latest work or cost that have been invoiced."),
|
||||
'last_worked_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Cost/Work', help="Date of the latest work done on this account."),
|
||||
'hours_qtt_non_invoiced': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Hours', help="Number of hours (from journal of type 'general') that can be invoiced if you invoice based on analytic account."),
|
||||
'hours_qtt_invoiced': fields.function(_hours_qtt_invoiced_calc, method=True, type='float', string='Invoiced Hours', help="Number of hours that can be invoiced plus those that already have been invoiced."),
|
||||
'remaining_hours': fields.function(_remaining_hours_calc, method=True, type='float', string='Remaining Hours', help="Computed using the formula: Maximum Quantity - Hours Tot."),
|
||||
'remaining_ca': fields.function(_remaining_ca_calc, method=True, type='float', string='Remaining Revenue', help="Computed using the formula: Max Invoice Price - Invoiced Amount."),
|
||||
'revenue_per_hour': fields.function(_revenue_per_hour_calc, method=True, type='float', string='Revenue per Hours (real)', help="Computed using the formula: Invoiced Amount / Hours Tot."),
|
||||
'real_margin': fields.function(_real_margin_calc, method=True, type='float', string='Real Margin', help="Computed using the formula: Invoiced Amount - Total Costs."),
|
||||
'theorical_margin': fields.function(_theorical_margin_calc, method=True, type='float', string='Theorical Margin', help="Computed using the formula: Theorial Revenue - Total Costs"),
|
||||
'real_margin_rate': fields.function(_real_margin_rate_calc, method=True, type='float', string='Real Margin Rate (%)', help="Computes using the formula: (Real Margin / Total Costs) * 100."),
|
||||
'ca_invoiced': fields.function(_ca_invoiced_calc, method=True, type='float', string='Invoiced Amount',
|
||||
help="Total customer invoiced amount for this account.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'total_cost': fields.function(_total_cost_calc, method=True, type='float', string='Total Costs',
|
||||
help="Total of costs for this account. It includes real costs (from invoices) and indirect costs, like time spent on timesheets.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'ca_to_invoice': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Amount',
|
||||
help="If invoice from analytic account, the remaining amount you can invoice to the customer based on the total costs.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'ca_theorical': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Theorical Revenue',
|
||||
help="Based on the costs you had on the project, what would have been the revenue if all these costs have been invoiced at the normal sale price provided by the pricelist.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'hours_quantity': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Hours Tot',
|
||||
help="Number of hours you spent on the analytic account (from timesheet). It computes on all journal of type 'general'."),
|
||||
'last_invoice_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Last Invoice Date',
|
||||
help="Date of the last invoice created for this analytic account."),
|
||||
'last_worked_invoiced_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Invoiced Cost',
|
||||
help="If invoice from the costs, this is the date of the latest work or cost that have been invoiced."),
|
||||
'last_worked_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Cost/Work',
|
||||
help="Date of the latest work done on this account."),
|
||||
'hours_qtt_non_invoiced': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Hours',
|
||||
help="Number of hours (from journal of type 'general') that can be invoiced if you invoice based on analytic account."),
|
||||
'hours_qtt_invoiced': fields.function(_hours_qtt_invoiced_calc, method=True, type='float', string='Invoiced Hours',
|
||||
help="Number of hours that can be invoiced plus those that already have been invoiced."),
|
||||
'remaining_hours': fields.function(_remaining_hours_calc, method=True, type='float', string='Remaining Hours',
|
||||
help="Computed using the formula: Maximum Quantity - Hours Tot."),
|
||||
'remaining_ca': fields.function(_remaining_ca_calc, method=True, type='float', string='Remaining Revenue',
|
||||
help="Computed using the formula: Max Invoice Price - Invoiced Amount.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'revenue_per_hour': fields.function(_revenue_per_hour_calc, method=True, type='float', string='Revenue per Hours (real)',
|
||||
help="Computed using the formula: Invoiced Amount / Hours Tot.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'real_margin': fields.function(_real_margin_calc, method=True, type='float', string='Real Margin',
|
||||
help="Computed using the formula: Invoiced Amount - Total Costs.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'theorical_margin': fields.function(_theorical_margin_calc, method=True, type='float', string='Theorical Margin',
|
||||
help="Computed using the formula: Theorial Revenue - Total Costs",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'real_margin_rate': fields.function(_real_margin_rate_calc, method=True, type='float', string='Real Margin Rate (%)',
|
||||
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
|
||||
digits_compute=dp.get_precision('Account')),
|
||||
'month_ids': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
|
||||
'user_ids': fields.function(_analysis_all, method=True, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
|
||||
}
|
||||
|
||||
@@ -343,7 +343,6 @@ class account_invoice(osv.osv):
|
||||
def _get_analytic_lines(self, cr, uid, id):
|
||||
inv = self.browse(cr, uid, [id])[0]
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
|
||||
company_currency = inv.company_id.currency_id.id
|
||||
if inv.type in ('out_invoice', 'in_refund'):
|
||||
sign = 1
|
||||
@@ -354,7 +353,7 @@ class account_invoice(osv.osv):
|
||||
acct_ins_obj = self.pool.get('account.analytic.plan.instance')
|
||||
|
||||
for il in iml:
|
||||
if il['analytics_id']:
|
||||
if il.get('analytics_id', False):
|
||||
|
||||
if inv.type in ('in_invoice', 'in_refund'):
|
||||
ref = inv.reference
|
||||
@@ -363,7 +362,7 @@ class account_invoice(osv.osv):
|
||||
obj_move_line = acct_ins_obj.browse(cr, uid, il['analytics_id'])
|
||||
amount_calc = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, il['price'], context={'date': inv.date_invoice}) * sign
|
||||
qty = il['quantity']
|
||||
il['analytic_lines']=[]
|
||||
il['analytic_lines'] = []
|
||||
for line2 in obj_move_line.account_ids:
|
||||
amt = amount_calc * (line2.rate/100)
|
||||
qtty = qty* (line2.rate/100)
|
||||
@@ -419,5 +418,4 @@ class sale_order_line(osv.osv):
|
||||
|
||||
sale_order_line()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-02 20:54+0000\n"
|
||||
"Last-Translator: mga (Open ERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-01 11:48+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-02 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -61,7 +61,7 @@ msgstr "Kostenplaatsschema"
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
|
||||
msgid "Analytic Instance Line"
|
||||
msgstr ""
|
||||
msgstr "Kostenverdelingsregel"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.instance.line:0
|
||||
@@ -210,7 +210,7 @@ msgstr "Kostenverdelingsmodel opgeslagen"
|
||||
#. module: account_analytic_plans
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
|
||||
msgid "Analytic Plan Instance"
|
||||
msgstr ""
|
||||
msgstr "Kostenverdeling"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: constraint:ir.ui.view:0
|
||||
@@ -294,7 +294,7 @@ msgstr "Meedere schema's beheren in kostenplaatsen"
|
||||
#: view:account.analytic.plan.line:0
|
||||
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
|
||||
msgid "Analytic Plan Lines"
|
||||
msgstr "Kostenpalatsboekingen"
|
||||
msgstr "Kostenplaatsboekingen"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: rml:account.analytic.account.crossovered.analytic:0
|
||||
@@ -361,7 +361,7 @@ msgstr ""
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Reeks"
|
||||
msgstr "Volgnummer"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.instance.line,analytic_account_id:0
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-24 12:50+0000\n"
|
||||
"PO-Revision-Date: 2010-07-16 15:49+0000\n"
|
||||
"Last-Translator: Jan Verlaan (Veritos) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-01 11:59+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:17+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-02 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: view:product.category:0
|
||||
msgid " Accounting Property"
|
||||
msgstr ""
|
||||
msgstr " Administratieve instelling"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.module.module,description:account_anglo_saxon.module_meta_information
|
||||
@@ -38,6 +38,19 @@ msgid ""
|
||||
" when the invoice is created to transfer this amount to the debtor or "
|
||||
"creditor account."
|
||||
msgstr ""
|
||||
"Deze module geeft ondersteuning voor de Angelsaksische boekhoud methoden "
|
||||
"door \n"
|
||||
" de boekingslogica bij voorraad transacties te veranderen. Het verschil "
|
||||
"tussen de Angelsaksische boekhoud landen en de\n"
|
||||
" Rijn- of ook wel continentale boekhoud landen is het moment van het "
|
||||
"nemen van de kosten van verkochte goederen versus kostprijs verkopen. \n"
|
||||
" Angelsaksische boekhoudingen nemen de kosten op het wanneer de "
|
||||
"verkoopfactuur wordt gemaakt, Continentale boekhoudingen wanneer wordt "
|
||||
"geleverd.\n"
|
||||
" Deze module voegt deze functionaliteit toe door een tussenrekening te "
|
||||
"gebruiken voor het boeken van de geleverde goederen en \n"
|
||||
" voor het tegenboeken wanneer de factuur wordt gemaakt om het over te "
|
||||
"boeken naar de klant of leverancier."
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
|
||||
|
||||
@@ -26,9 +26,8 @@
|
||||
'category': 'Generic Modules/Accounting',
|
||||
'description': """This module allows accountants to manage analytic and crossovered budgets.
|
||||
|
||||
Once the Master Budgets and the Budgets are defined (in Financial
|
||||
Management/Budgets/), the Project Managers can set the planned amount on each
|
||||
Analytic Account.
|
||||
Once the Master Budgets and the Budgets are defined (in Accounting/Budgets/),
|
||||
the Project Managers can set the planned amount on each Analytic Account.
|
||||
|
||||
The accountant has the possibility to see the total of amount planned for each
|
||||
Budget and Master Budget in order to ensure the total planned is not
|
||||
|
||||
@@ -24,6 +24,8 @@ import datetime
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
import decimal_precision as dp
|
||||
|
||||
def strToDate(dt):
|
||||
dt_date=datetime.date(int(dt[0:4]),int(dt[5:7]),int(dt[8:10]))
|
||||
return dt_date
|
||||
@@ -49,12 +51,13 @@ class account_budget_post(osv.osv):
|
||||
|
||||
def spread(self, cr, uid, ids, fiscalyear_id=False, amount=0.0):
|
||||
dobj = self.pool.get('account.budget.post.dotation')
|
||||
obj_fiscalyear = self.pool.get('account.fiscalyear')
|
||||
for o in self.browse(cr, uid, ids):
|
||||
# delete dotations for this post
|
||||
dobj.unlink(cr, uid, dobj.search(cr, uid, [('post_id','=',o.id)]))
|
||||
|
||||
# create one dotation per period in the fiscal year, and spread the total amount/quantity over those dotations
|
||||
fy = self.pool.get('account.fiscalyear').browse(cr, uid, [fiscalyear_id])[0]
|
||||
fy = obj_fiscalyear.browse(cr, uid, [fiscalyear_id])[0]
|
||||
num = len(fy.period_ids)
|
||||
for p in fy.period_ids:
|
||||
dobj.create(cr, uid, {'post_id': o.id, 'period_id': p.id, 'amount': amount/num})
|
||||
@@ -64,26 +67,27 @@ account_budget_post()
|
||||
|
||||
class account_budget_post_dotation(osv.osv):
|
||||
def _tot_planned(self, cr, uid, ids, name, args, context):
|
||||
obj_budget_lines = self.pool.get('crossovered.budget.lines')
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
if line.period_id:
|
||||
obj_period=self.pool.get('account.period').browse(cr, uid, line.period_id.id)
|
||||
obj_period = self.pool.get('account.period').browse(cr, uid, line.period_id.id)
|
||||
|
||||
total_days=strToDate(obj_period.date_stop) - strToDate(obj_period.date_start)
|
||||
budget_id=line.post_id and line.post_id.id or False
|
||||
query="select id from crossovered_budget_lines where \
|
||||
general_budget_id= %s AND (date_from >=%s and date_from <= %s ) \
|
||||
OR (date_to >=%s and date_to <= %s) OR (date_from < %s and date_to > %s)"
|
||||
cr.execute(query,(budget_id,obj_period.date_start,obj_period.date_stop,obj_period.date_start,obj_period.date_stop,obj_period.date_start,obj_period.date_stop,))
|
||||
res1=cr.fetchall()
|
||||
tot_planned=0.00
|
||||
total_days = strToDate(obj_period.date_stop) - strToDate(obj_period.date_start)
|
||||
budget_id = line.post_id and line.post_id.id or False
|
||||
query="SELECT id FROM crossovered_budget_lines WHERE \
|
||||
general_budget_id= %s AND (date_from >=%s AND date_from <= %s ) \
|
||||
OR (date_to >=%s AND date_to <= %s) OR (date_from < %s AND date_to > %s)"
|
||||
cr.execute(query, (budget_id, obj_period.date_start, obj_period.date_stop, obj_period.date_start, obj_period.date_stop, obj_period.date_start, obj_period.date_stop,))
|
||||
res1 = cr.fetchall()
|
||||
tot_planned = 0.00
|
||||
for record in res1:
|
||||
obj_lines = self.pool.get('crossovered.budget.lines').browse(cr, uid, record[0])
|
||||
count_days = min(strToDate(obj_period.date_stop),strToDate(obj_lines.date_to)) - max(strToDate(obj_period.date_start), strToDate(obj_lines.date_from))
|
||||
days_in_period = count_days.days +1
|
||||
obj_lines = obj_budget_lines.browse(cr, uid, record[0])
|
||||
count_days = min(strToDate(obj_period.date_stop), strToDate(obj_lines.date_to)) - max(strToDate(obj_period.date_start), strToDate(obj_lines.date_from))
|
||||
days_in_period = count_days.days + 1
|
||||
count_days = strToDate(obj_lines.date_to) - strToDate(obj_lines.date_from)
|
||||
total_days_of_rec = count_days.days +1
|
||||
tot_planned += obj_lines.planned_amount/total_days_of_rec* days_in_period
|
||||
total_days_of_rec = count_days.days + 1
|
||||
tot_planned += obj_lines.planned_amount / total_days_of_rec * days_in_period
|
||||
res[line.id] = tot_planned
|
||||
else:
|
||||
res[line.id] = 0.00
|
||||
@@ -96,7 +100,7 @@ class account_budget_post_dotation(osv.osv):
|
||||
'post_id': fields.many2one('account.budget.post', 'Item', select=True),
|
||||
'period_id': fields.many2one('account.period', 'Period'),
|
||||
'amount': fields.float('Amount', digits=(16,2)),
|
||||
'tot_planned':fields.function(_tot_planned, method=True, string='Total Planned Amount', type='float', store=True),
|
||||
'tot_planned': fields.function(_tot_planned, method=True, string='Total Planned Amount', type='float', store=True),
|
||||
}
|
||||
|
||||
account_budget_post_dotation()
|
||||
@@ -119,38 +123,38 @@ class crossovered_budget(osv.osv):
|
||||
|
||||
_defaults = {
|
||||
'state': 'draft',
|
||||
'creating_user_id': lambda self,cr,uid,context: uid,
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.budget.post', context=c)
|
||||
'creating_user_id': lambda self, cr, uid, context: uid,
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.budget.post', context=c)
|
||||
}
|
||||
|
||||
def budget_confirm(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'confirm'
|
||||
'state': 'confirm'
|
||||
})
|
||||
return True
|
||||
|
||||
def budget_draft(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'draft'
|
||||
'state': 'draft'
|
||||
})
|
||||
return True
|
||||
|
||||
def budget_validate(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'validate',
|
||||
'state': 'validate',
|
||||
'validating_user_id': uid,
|
||||
})
|
||||
return True
|
||||
|
||||
def budget_cancel(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'cancel'
|
||||
'state': 'cancel'
|
||||
})
|
||||
return True
|
||||
|
||||
def budget_done(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {
|
||||
'state':'done'
|
||||
'state': 'done'
|
||||
})
|
||||
return True
|
||||
|
||||
@@ -158,7 +162,7 @@ crossovered_budget()
|
||||
|
||||
class crossovered_budget_lines(osv.osv):
|
||||
|
||||
def _prac_amt(self, cr, uid, ids,context={}):
|
||||
def _prac_amt(self, cr, uid, ids, context={}):
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
acc_ids = [x.id for x in line.general_budget_id.account_ids]
|
||||
@@ -170,8 +174,8 @@ class crossovered_budget_lines(osv.osv):
|
||||
date_from = context['wizard_date_from']
|
||||
if context.has_key('wizard_date_to'):
|
||||
date_to = context['wizard_date_to']
|
||||
cr.execute("select sum(amount) from account_analytic_line where account_id=%s and (date "
|
||||
"between to_date(%s,'yyyy-mm-dd') and to_date(%s,'yyyy-mm-dd')) and "
|
||||
cr.execute("SELECT SUM(amount) FROM account_analytic_line WHERE account_id=%s AND (date "
|
||||
"between to_date(%s,'yyyy-mm-dd') AND to_date(%s,'yyyy-mm-dd')) AND "
|
||||
"general_account_id=ANY(%s)", (line.analytic_account_id.id, date_from, date_to,acc_ids,))
|
||||
result = cr.fetchone()[0]
|
||||
if result is None:
|
||||
@@ -182,13 +186,13 @@ class crossovered_budget_lines(osv.osv):
|
||||
def _prac(self, cr, uid, ids, name, args, context):
|
||||
res={}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
res[line.id]=self._prac_amt(cr, uid, [line.id], context=context)[line.id]
|
||||
res[line.id] = self._prac_amt(cr, uid, [line.id], context=context)[line.id]
|
||||
return res
|
||||
|
||||
def _theo_amt(self, cr, uid, ids,context={}):
|
||||
def _theo_amt(self, cr, uid, ids, context={}):
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
today=datetime.datetime.today()
|
||||
today = datetime.datetime.today()
|
||||
date_to = today.strftime("%Y-%m-%d")
|
||||
date_from = line.date_from
|
||||
if context.has_key('wizard_date_from'):
|
||||
@@ -197,38 +201,37 @@ class crossovered_budget_lines(osv.osv):
|
||||
date_to = context['wizard_date_to']
|
||||
|
||||
if line.paid_date:
|
||||
if strToDate(line.date_to)<=strToDate(line.paid_date):
|
||||
theo_amt=0.00
|
||||
if strToDate(line.date_to) <= strToDate(line.paid_date):
|
||||
theo_amt = 0.00
|
||||
else:
|
||||
theo_amt=line.planned_amount
|
||||
theo_amt = line.planned_amount
|
||||
else:
|
||||
total=strToDate(line.date_to) - strToDate(line.date_from)
|
||||
total = strToDate(line.date_to) - strToDate(line.date_from)
|
||||
elapsed = min(strToDate(line.date_to),strToDate(date_to)) - max(strToDate(line.date_from),strToDate(date_from))
|
||||
if strToDate(date_to) < strToDate(line.date_from):
|
||||
elapsed = strToDate(date_to) - strToDate(date_to)
|
||||
|
||||
if total.days:
|
||||
theo_amt = float(elapsed.days/float(total.days))*line.planned_amount
|
||||
theo_amt = float(elapsed.days / float(total.days)) * line.planned_amount
|
||||
else:
|
||||
theo_amt = line.planned_amount
|
||||
|
||||
res[line.id]=theo_amt
|
||||
res[line.id] = theo_amt
|
||||
return res
|
||||
|
||||
def _theo(self, cr, uid, ids, name, args, context):
|
||||
res={}
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
res[line.id]=self._theo_amt(cr, uid, [line.id], context=context)[line.id]
|
||||
|
||||
res[line.id] = self._theo_amt(cr, uid, [line.id], context=context)[line.id]
|
||||
return res
|
||||
|
||||
def _perc(self, cr, uid, ids, name, args, context):
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
if line.theoritical_amount<>0.00:
|
||||
res[line.id]=float(line.practical_amount or 0.0 / line.theoritical_amount)*100
|
||||
if line.theoritical_amount <> 0.00:
|
||||
res[line.id] = float(line.practical_amount or 0.0 / line.theoritical_amount) * 100
|
||||
else:
|
||||
res[line.id]=0.00
|
||||
res[line.id] = 0.00
|
||||
return res
|
||||
|
||||
_name = "crossovered.budget.lines"
|
||||
@@ -240,9 +243,9 @@ class crossovered_budget_lines(osv.osv):
|
||||
'date_from': fields.date('Start Date', required=True),
|
||||
'date_to': fields.date('End Date', required=True),
|
||||
'paid_date': fields.date('Paid Date'),
|
||||
'planned_amount':fields.float('Planned Amount', required=True, digits=(16,2)),
|
||||
'practical_amount':fields.function(_prac, method=True, string='Practical Amount', type='float', digits=(16,2)),
|
||||
'theoritical_amount':fields.function(_theo, method=True, string='Theoritical Amount', type='float', digits=(16,2)),
|
||||
'planned_amount':fields.float('Planned Amount', required=True, digits_compute=dp.get_precision('Account')),
|
||||
'practical_amount':fields.function(_prac, method=True, string='Practical Amount', type='float', digits_compute=dp.get_precision('Account')),
|
||||
'theoritical_amount':fields.function(_theo, method=True, string='Theoritical Amount', type='float', digits_compute=dp.get_precision('Account')),
|
||||
'percentage':fields.function(_perc, method=True, string='Percentage', type='float'),
|
||||
'company_id': fields.related('crossovered_budget_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
|
||||
}
|
||||
@@ -258,4 +261,4 @@ class account_analytic_account(osv.osv):
|
||||
|
||||
account_analytic_account()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -65,28 +65,24 @@
|
||||
<field name="act_from" ref="act_confirm" />
|
||||
<field name="act_to" ref="act_validate" />
|
||||
<field name="signal">validate</field>
|
||||
<field name="role_id" ref="crossovered_budget_role"/>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="t3">
|
||||
<field name="act_from" ref="act_confirm" />
|
||||
<field name="act_to" ref="act_cancel" />
|
||||
<field name="signal">cancel</field>
|
||||
<field name="role_id" ref="crossovered_budget_role"/>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="t4">
|
||||
<field name="act_from" ref="act_validate" />
|
||||
<field name="act_to" ref="act_cancel" />
|
||||
<field name="signal">cancel</field>
|
||||
<field name="role_id" ref="crossovered_budget_role"/>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="t5">
|
||||
<field name="act_from" ref="act_validate" />
|
||||
<field name="act_to" ref="act_done" />
|
||||
<field name="signal">done</field>
|
||||
<field name="role_id" ref="crossovered_budget_role"/>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="t6">
|
||||
|
||||
@@ -33,47 +33,43 @@ class analytic_account_budget_report(report_sxw.rml_parse):
|
||||
'funct_total': self.funct_total,
|
||||
'time': time,
|
||||
})
|
||||
self.context=context
|
||||
|
||||
def funct(self,object,form,ids={}, done=None, level=1):
|
||||
self.context = context
|
||||
|
||||
def funct(self, object, form, ids={}, done=None, level=1):
|
||||
if not ids:
|
||||
ids = self.ids
|
||||
if not done:
|
||||
done={}
|
||||
done = {}
|
||||
|
||||
global tot
|
||||
tot={
|
||||
tot = {
|
||||
'theo':0.00,
|
||||
'pln':0.00,
|
||||
'prac':0.00,
|
||||
'perc':0.00
|
||||
}
|
||||
result=[]
|
||||
result = []
|
||||
accounts = self.pool.get('account.analytic.account').browse(self.cr, self.uid, [object.id], self.context.copy())
|
||||
c_b_lines_obj = self.pool.get('crossovered.budget.lines')
|
||||
obj_c_budget = self.pool.get('crossovered.budget')
|
||||
|
||||
c_b_lines_obj=self.pool.get('crossovered.budget.lines')
|
||||
for account_id in accounts:
|
||||
res={}
|
||||
b_line_ids=[]
|
||||
|
||||
res = {}
|
||||
b_line_ids = []
|
||||
for line in account_id.crossovered_budget_line:
|
||||
b_line_ids.append(line.id)
|
||||
|
||||
if not b_line_ids:
|
||||
return []
|
||||
d_from = form['date_from']
|
||||
d_to = form['date_to']
|
||||
|
||||
d_from=form['date_from']
|
||||
d_to=form['date_to']
|
||||
self.cr.execute('SELECT DISTINCT(crossovered_budget_id) FROM crossovered_budget_lines WHERE id =ANY(%s)',(b_line_ids,))
|
||||
budget_ids = self.cr.fetchall()
|
||||
|
||||
self.cr.execute('select distinct(crossovered_budget_id) from crossovered_budget_lines where id =ANY(%s)',(b_line_ids,))
|
||||
budget_ids=self.cr.fetchall()
|
||||
|
||||
context={'wizard_date_from':d_from,'wizard_date_to':d_to}
|
||||
for i in range(0,len(budget_ids)):
|
||||
|
||||
budget_name=self.pool.get('crossovered.budget').browse(self.cr, self.uid,[budget_ids[i][0]])
|
||||
res={
|
||||
context = {'wizard_date_from':d_from,'wizard_date_to':d_to}
|
||||
for i in range(0, len(budget_ids)):
|
||||
budget_name = obj_c_budget.browse(self.cr, self.uid, [budget_ids[i][0]])
|
||||
res= {
|
||||
'b_id':'-1',
|
||||
'a_id':'-1',
|
||||
'name':budget_name[0].name,
|
||||
@@ -85,48 +81,42 @@ class analytic_account_budget_report(report_sxw.rml_parse):
|
||||
}
|
||||
result.append(res)
|
||||
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', b_line_ids),('crossovered_budget_id','=',budget_ids[i][0])])
|
||||
line_id =c_b_lines_obj.browse(self.cr,self.uid,line_ids)
|
||||
tot_theo=tot_pln=tot_prac=tot_perc=0
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', b_line_ids), ('crossovered_budget_id','=',budget_ids[i][0])])
|
||||
line_id = c_b_lines_obj.browse(self.cr, self.uid, line_ids)
|
||||
tot_theo = tot_pln = tot_prac = tot_perc = 0
|
||||
|
||||
done_budget=[]
|
||||
done_budget = []
|
||||
for line in line_id:
|
||||
|
||||
if line.id in b_line_ids:
|
||||
theo=pract=0.00
|
||||
theo=c_b_lines_obj._theo_amt(self.cr, self.uid, [line.id],context)[line.id]
|
||||
pract=c_b_lines_obj._prac_amt(self.cr, self.uid, [line.id],context)[line.id]
|
||||
|
||||
theo = pract = 0.00
|
||||
theo = c_b_lines_obj._theo_amt(self.cr, self.uid, [line.id], context)[line.id]
|
||||
pract = c_b_lines_obj._prac_amt(self.cr, self.uid, [line.id], context)[line.id]
|
||||
if line.general_budget_id.id in done_budget:
|
||||
|
||||
for record in result:
|
||||
if record['b_id']==line.general_budget_id.id and record['a_id']==line.analytic_account_id.id:
|
||||
|
||||
record['theo'] +=theo
|
||||
record['pln'] +=line.planned_amount
|
||||
record['prac'] +=pract
|
||||
record['perc'] +=line.percentage
|
||||
tot_theo +=theo
|
||||
tot_pln +=line.planned_amount
|
||||
tot_prac +=pract
|
||||
tot_perc +=line.percentage
|
||||
if record['b_id'] == line.general_budget_id.id and record['a_id'] == line.analytic_account_id.id:
|
||||
record['theo'] += theo
|
||||
record['pln'] += line.planned_amount
|
||||
record['prac'] += pract
|
||||
record['perc'] += line.percentage
|
||||
tot_theo += theo
|
||||
tot_pln += line.planned_amount
|
||||
tot_prac += pract
|
||||
tot_perc += line.percentage
|
||||
else:
|
||||
|
||||
res1={
|
||||
'b_id':line.general_budget_id.id,
|
||||
'a_id':line.analytic_account_id.id,
|
||||
'name':line.general_budget_id.name,
|
||||
'status':2,
|
||||
'theo':theo,
|
||||
'pln':line.planned_amount,
|
||||
'prac':pract,
|
||||
'perc':line.percentage
|
||||
res1 = {
|
||||
'b_id': line.general_budget_id.id,
|
||||
'a_id': line.analytic_account_id.id,
|
||||
'name': line.general_budget_id.name,
|
||||
'status': 2,
|
||||
'theo': theo,
|
||||
'pln': line.planned_amount,
|
||||
'prac': pract,
|
||||
'perc': line.percentage
|
||||
}
|
||||
|
||||
tot_theo += theo
|
||||
tot_pln +=line.planned_amount
|
||||
tot_prac +=pract
|
||||
tot_perc +=line.percentage
|
||||
tot_pln += line.planned_amount
|
||||
tot_prac += pract
|
||||
tot_perc += line.percentage
|
||||
result.append(res1)
|
||||
done_budget.append(line.general_budget_id.id)
|
||||
else:
|
||||
@@ -134,50 +124,45 @@ class analytic_account_budget_report(report_sxw.rml_parse):
|
||||
continue
|
||||
else:
|
||||
res1={
|
||||
'b_id':line.general_budget_id.id,
|
||||
'a_id':line.analytic_account_id.id,
|
||||
'name':line.general_budget_id.name,
|
||||
'status':2,
|
||||
'theo':0.00,
|
||||
'pln':0.00,
|
||||
'prac':0.00,
|
||||
'perc':0.00
|
||||
'b_id': line.general_budget_id.id,
|
||||
'a_id': line.analytic_account_id.id,
|
||||
'name': line.general_budget_id.name,
|
||||
'status': 2,
|
||||
'theo': 0.00,
|
||||
'pln': 0.00,
|
||||
'prac': 0.00,
|
||||
'perc': 0.00
|
||||
}
|
||||
|
||||
result.append(res1)
|
||||
done_budget.append(line.general_budget_id.id)
|
||||
|
||||
if tot_theo==0.00:
|
||||
tot_perc=0.00
|
||||
if tot_theo == 0.00:
|
||||
tot_perc = 0.00
|
||||
else:
|
||||
tot_perc=float(tot_prac /tot_theo)*100
|
||||
tot_perc = float(tot_prac / tot_theo) * 100
|
||||
|
||||
result[-(len(done_budget) +1)]['theo']=tot_theo
|
||||
result[-(len(done_budget) +1)]['theo'] = tot_theo
|
||||
tot['theo'] +=tot_theo
|
||||
result[-(len(done_budget) +1)]['pln']=tot_pln
|
||||
result[-(len(done_budget) +1)]['pln'] = tot_pln
|
||||
tot['pln'] +=tot_pln
|
||||
result[-(len(done_budget) +1)]['prac']=tot_prac
|
||||
result[-(len(done_budget) +1)]['prac'] = tot_prac
|
||||
tot['prac'] +=tot_prac
|
||||
result[-(len(done_budget) +1)]['perc']=tot_perc
|
||||
|
||||
if tot['theo']==0.00:
|
||||
tot['perc'] =0.00
|
||||
result[-(len(done_budget) +1)]['perc'] = tot_perc
|
||||
if tot['theo'] == 0.00:
|
||||
tot['perc'] = 0.00
|
||||
else:
|
||||
tot['perc']=float(tot['prac'] /tot['theo'])*100
|
||||
|
||||
tot['perc'] = float(tot['prac'] / tot['theo']) * 100
|
||||
return result
|
||||
|
||||
def funct_total(self,form):
|
||||
result=[]
|
||||
res={}
|
||||
res={
|
||||
'tot_theo':tot['theo'],
|
||||
'tot_pln':tot['pln'],
|
||||
'tot_prac':tot['prac'],
|
||||
'tot_perc':tot['perc']
|
||||
result = []
|
||||
res = {}
|
||||
res = {
|
||||
'tot_theo': tot['theo'],
|
||||
'tot_pln': tot['pln'],
|
||||
'tot_prac': tot['prac'],
|
||||
'tot_perc': tot['perc']
|
||||
}
|
||||
result.append(res)
|
||||
|
||||
return result
|
||||
|
||||
report_sxw.report_sxw('report.account.analytic.account.budget', 'account.analytic.account', 'addons/account_budget/report/analytic_account_budget_report.rml',parser=analytic_account_budget_report,header='internal')
|
||||
|
||||
@@ -38,17 +38,19 @@ class budget_report(report_sxw.rml_parse):
|
||||
def post_total(self, post_obj, date1, date2):
|
||||
def str2date(date_str):
|
||||
return datetime.date.fromtimestamp(time.mktime(time.strptime(date_str, '%Y-%m-%d')))
|
||||
|
||||
def interval(d1str, d2str):
|
||||
return (str2date(d2str) - str2date(d1str) + datetime.timedelta(days=1)).days
|
||||
|
||||
prev = reduce(lambda x,d: x + d.amount, post_obj.dotation_ids, 0.0)
|
||||
period_days = interval(date1, date2)
|
||||
for d in post_obj.dotation_ids:
|
||||
i = interval(d.period_id.date_start, d.period_id.date_stop)
|
||||
total_days = reduce(lambda x,d: x+interval(d.period_id.date_start, d.period_id.date_stop), post_obj.dotation_ids, 0)
|
||||
achievements = reduce(lambda x,l: x+l['achievements'], self.lines(post_obj, date1, date2), 0.0)
|
||||
prev_1=1.00
|
||||
if total_days<>0.00:
|
||||
prev_1=prev * period_days / total_days
|
||||
prev_1 = 1.00
|
||||
if total_days <> 0.00:
|
||||
prev_1 = prev * period_days / total_days
|
||||
return [{'prev': prev, 'prev_period': prev_1, 'achievements': achievements}]
|
||||
|
||||
def budget_total(self, post_obj, date1, date2):
|
||||
@@ -66,7 +68,7 @@ class budget_report(report_sxw.rml_parse):
|
||||
res.append({'name': a.name, 'code': a.code, 'achievements': achievements})
|
||||
return res
|
||||
|
||||
report_sxw.report_sxw('report.account.budget', 'account.budget.post', 'addons/account_budget/report/budget_report.rml',parser=budget_report, header="internal")
|
||||
report_sxw.report_sxw('report.account.budget', 'account.budget.post', 'addons/account_budget/report/budget_report.rml', parser=budget_report, header="internal")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -20,48 +20,46 @@
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import datetime
|
||||
|
||||
import pooler
|
||||
from report import report_sxw
|
||||
import datetime
|
||||
import operator
|
||||
import osv
|
||||
|
||||
class budget_report(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(budget_report, self).__init__(cr, uid, name, context=context)
|
||||
self.localcontext.update( {
|
||||
self.localcontext.update({
|
||||
'funct': self.funct,
|
||||
'funct_total': self.funct_total,
|
||||
'time': time,
|
||||
})
|
||||
self.context=context
|
||||
self.context = context
|
||||
|
||||
def funct(self, object, form, ids={}, done=None, level=1):
|
||||
|
||||
if not ids:
|
||||
ids = self.ids
|
||||
if not done:
|
||||
done={}
|
||||
|
||||
done = {}
|
||||
global tot
|
||||
tot={
|
||||
tot = {
|
||||
'theo':0.00,
|
||||
'pln':0.00,
|
||||
'prac':0.00,
|
||||
'perc':0.00
|
||||
}
|
||||
result=[]
|
||||
result = []
|
||||
|
||||
budgets = self.pool.get('crossovered.budget').browse(self.cr, self.uid, [object.id], self.context.copy())
|
||||
|
||||
c_b_lines_obj=self.pool.get('crossovered.budget.lines')
|
||||
c_b_lines_obj = self.pool.get('crossovered.budget.lines')
|
||||
acc_analytic_obj = self.pool.get('account.analytic.account')
|
||||
for budget_id in budgets:
|
||||
|
||||
res={}
|
||||
budget_lines=[]
|
||||
budget_ids=[]
|
||||
d_from=form['date_from']
|
||||
d_to=form['date_to']
|
||||
res = {}
|
||||
budget_lines = []
|
||||
budget_ids = []
|
||||
d_from = form['date_from']
|
||||
d_to = form['date_to']
|
||||
|
||||
for line in budget_id.crossovered_budget_line:
|
||||
budget_ids.append(line.id)
|
||||
@@ -69,78 +67,69 @@ class budget_report(report_sxw.rml_parse):
|
||||
if not budget_ids:
|
||||
return []
|
||||
|
||||
self.cr.execute('select distinct(analytic_account_id) from crossovered_budget_lines where id =ANY(%s)',(budget_ids,))
|
||||
an_ids=self.cr.fetchall()
|
||||
|
||||
context={'wizard_date_from':d_from,'wizard_date_to':d_to}
|
||||
for i in range(0,len(an_ids)):
|
||||
|
||||
analytic_name=self.pool.get('account.analytic.account').browse(self.cr, self.uid, [an_ids[i][0]])
|
||||
self.cr.execute('SELECT DISTINCT(analytic_account_id) FROM crossovered_budget_lines WHERE id = ANY(%s)',(budget_ids,))
|
||||
an_ids = self.cr.fetchall()
|
||||
|
||||
context = {'wizard_date_from': d_from, 'wizard_date_to': d_to}
|
||||
for i in range(0, len(an_ids)):
|
||||
analytic_name = acc_analytic_obj.browse(self.cr, self.uid, [an_ids[i][0]])
|
||||
res={
|
||||
'b_id':'-1',
|
||||
'a_id':'-1',
|
||||
'name':analytic_name[0].name,
|
||||
'status':1,
|
||||
'theo':0.00,
|
||||
'pln':0.00,
|
||||
'prac':0.00,
|
||||
'perc':0.00
|
||||
'b_id': '-1',
|
||||
'a_id': '-1',
|
||||
'name': analytic_name[0].name,
|
||||
'status': 1,
|
||||
'theo': 0.00,
|
||||
'pln': 0.00,
|
||||
'prac': 0.00,
|
||||
'perc': 0.00
|
||||
}
|
||||
result.append(res)
|
||||
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', budget_ids),('analytic_account_id','=',an_ids[i][0])])
|
||||
|
||||
line_ids = c_b_lines_obj.search(self.cr, self.uid, [('id', 'in', budget_ids), ('analytic_account_id','=',an_ids[i][0])])
|
||||
line_id = c_b_lines_obj.browse(self.cr, self.uid, line_ids)
|
||||
tot_theo=tot_pln=tot_prac=tot_perc=0.00
|
||||
tot_theo = tot_pln = tot_prac = tot_perc = 0.00
|
||||
|
||||
done_budget=[]
|
||||
done_budget = []
|
||||
for line in line_id:
|
||||
|
||||
if line.id in budget_ids:
|
||||
theo=pract=0.00
|
||||
theo=c_b_lines_obj._theo_amt(self.cr, self.uid, [line.id],context)[line.id]
|
||||
pract=c_b_lines_obj._prac_amt(self.cr, self.uid, [line.id],context)[line.id]
|
||||
|
||||
theo = pract = 0.00
|
||||
theo = c_b_lines_obj._theo_amt(self.cr, self.uid, [line.id], context)[line.id]
|
||||
pract = c_b_lines_obj._prac_amt(self.cr, self.uid, [line.id], context)[line.id]
|
||||
if line.general_budget_id.id in done_budget:
|
||||
|
||||
for record in result:
|
||||
if record['b_id']==line.general_budget_id.id and record['a_id']==line.analytic_account_id.id:
|
||||
|
||||
record['theo'] +=theo
|
||||
record['pln'] +=line.planned_amount
|
||||
record['prac'] +=pract
|
||||
if record['theo']<>0.00:
|
||||
perc=(record['prac']/record['theo'])*100
|
||||
if record['b_id'] == line.general_budget_id.id and record['a_id'] == line.analytic_account_id.id:
|
||||
record['theo'] += theo
|
||||
record['pln'] += line.planned_amount
|
||||
record['prac'] += pract
|
||||
if record['theo'] <> 0.00:
|
||||
perc = (record['prac'] / record['theo']) * 100
|
||||
else:
|
||||
perc=0.00
|
||||
record['perc'] =perc
|
||||
perc = 0.00
|
||||
record['perc'] = perc
|
||||
tot_theo += theo
|
||||
tot_pln +=line.planned_amount
|
||||
tot_prac +=pract
|
||||
tot_perc +=perc
|
||||
|
||||
tot_pln += line.planned_amount
|
||||
tot_prac += pract
|
||||
tot_perc += perc
|
||||
else:
|
||||
|
||||
if theo<>0.00:
|
||||
perc=(pract/theo)*100
|
||||
if theo <> 0.00:
|
||||
perc = (pract / theo) * 100
|
||||
else:
|
||||
perc=0.00
|
||||
res1={
|
||||
'a_id':line.analytic_account_id.id,
|
||||
'b_id':line.general_budget_id.id,
|
||||
'name':line.general_budget_id.name,
|
||||
'status':2,
|
||||
'theo':theo,
|
||||
'pln':line.planned_amount,
|
||||
'prac':pract,
|
||||
'perc':perc,
|
||||
perc = 0.00
|
||||
res1 = {
|
||||
'a_id': line.analytic_account_id.id,
|
||||
'b_id': line.general_budget_id.id,
|
||||
'name': line.general_budget_id.name,
|
||||
'status': 2,
|
||||
'theo': theo,
|
||||
'pln': line.planned_amount,
|
||||
'prac': pract,
|
||||
'perc': perc,
|
||||
}
|
||||
tot_theo += theo
|
||||
tot_pln +=line.planned_amount
|
||||
tot_prac +=pract
|
||||
tot_perc +=perc
|
||||
if form['report']=='analytic-full':
|
||||
tot_pln += line.planned_amount
|
||||
tot_prac += pract
|
||||
tot_perc += perc
|
||||
if form['report'] == 'analytic-full':
|
||||
result.append(res1)
|
||||
done_budget.append(line.general_budget_id.id)
|
||||
else:
|
||||
@@ -149,61 +138,57 @@ class budget_report(report_sxw.rml_parse):
|
||||
continue
|
||||
else:
|
||||
res1={
|
||||
'a_id':line.analytic_account_id.id,
|
||||
'b_id':line.general_budget_id.id,
|
||||
'name':line.general_budget_id.name,
|
||||
'status':2,
|
||||
'theo':0.00,
|
||||
'pln':0.00,
|
||||
'prac':0.00,
|
||||
'perc':0.00
|
||||
}
|
||||
|
||||
if form['report']=='analytic-full':
|
||||
'a_id': line.analytic_account_id.id,
|
||||
'b_id': line.general_budget_id.id,
|
||||
'name': line.general_budget_id.name,
|
||||
'status': 2,
|
||||
'theo': 0.00,
|
||||
'pln': 0.00,
|
||||
'prac': 0.00,
|
||||
'perc': 0.00
|
||||
}
|
||||
if form['report'] == 'analytic-full':
|
||||
result.append(res1)
|
||||
done_budget.append(line.general_budget_id.id)
|
||||
|
||||
if tot_theo==0.00:
|
||||
tot_perc=0.00
|
||||
if tot_theo == 0.00:
|
||||
tot_perc = 0.00
|
||||
else:
|
||||
tot_perc=float(tot_prac /tot_theo)*100
|
||||
|
||||
if form['report']=='analytic-full':
|
||||
|
||||
result[-(len(done_budget) +1)]['theo']=tot_theo
|
||||
tot['theo'] +=tot_theo
|
||||
result[-(len(done_budget) +1)]['pln']=tot_pln
|
||||
tot['pln'] +=tot_pln
|
||||
result[-(len(done_budget) +1)]['prac']=tot_prac
|
||||
tot['prac'] +=tot_prac
|
||||
result[-(len(done_budget) +1)]['perc']=tot_perc
|
||||
tot_perc = float(tot_prac / tot_theo) * 100
|
||||
if form['report'] == 'analytic-full':
|
||||
result[-(len(done_budget) +1)]['theo'] = tot_theo
|
||||
tot['theo'] += tot_theo
|
||||
result[-(len(done_budget) +1)]['pln'] = tot_pln
|
||||
tot['pln'] += tot_pln
|
||||
result[-(len(done_budget) +1)]['prac'] = tot_prac
|
||||
tot['prac'] += tot_prac
|
||||
result[-(len(done_budget) +1)]['perc'] = tot_perc
|
||||
else:
|
||||
result[-1]['theo']=tot_theo
|
||||
tot['theo'] +=tot_theo
|
||||
result[-1]['pln']=tot_pln
|
||||
tot['pln'] +=tot_pln
|
||||
result[-1]['prac']=tot_prac
|
||||
tot['prac'] +=tot_prac
|
||||
result[-1]['perc']=tot_perc
|
||||
if tot['theo']==0.00:
|
||||
tot['perc'] =0.00
|
||||
result[-1]['theo'] = tot_theo
|
||||
tot['theo'] += tot_theo
|
||||
result[-1]['pln'] = tot_pln
|
||||
tot['pln'] += tot_pln
|
||||
result[-1]['prac'] = tot_prac
|
||||
tot['prac'] += tot_prac
|
||||
result[-1]['perc'] = tot_perc
|
||||
if tot['theo'] == 0.00:
|
||||
tot['perc'] = 0.00
|
||||
else:
|
||||
tot['perc']=float(tot['prac'] /tot['theo'])*100
|
||||
tot['perc'] = float(tot['prac'] / tot['theo']) * 100
|
||||
return result
|
||||
|
||||
def funct_total(self, form):
|
||||
result=[]
|
||||
res={}
|
||||
|
||||
res={
|
||||
'tot_theo':tot['theo'],
|
||||
'tot_pln':tot['pln'],
|
||||
'tot_prac':tot['prac'],
|
||||
'tot_perc':tot['perc']
|
||||
result = []
|
||||
res = {}
|
||||
res = {
|
||||
'tot_theo': tot['theo'],
|
||||
'tot_pln': tot['pln'],
|
||||
'tot_prac': tot['prac'],
|
||||
'tot_perc': tot['perc']
|
||||
}
|
||||
result.append(res)
|
||||
|
||||
return result
|
||||
|
||||
report_sxw.report_sxw('report.crossovered.budget.report', 'crossovered.budget', 'addons/account_budget/report/crossovered_budget_report.rml',parser=budget_report,header='internal')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -148,16 +148,16 @@
|
||||
<para style="terp_default_9"><font color="white">[['.....' *(a['status']-1) ]]</font><font face="Helvetica">[[ (a['status']==1 and (setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ a['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]]</font> [[ '%.2f' % a['theo'] ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]]</font> [[ formatLang(a['theo'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ '%.2f' % a['pln'] ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ formatLang(a['pln'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ '%.2f' % a['prac'] ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ formatLang(a['prac'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ '%.2f' % a['perc'] ]]%</para>
|
||||
<para style="terp_default_Right_9"><font face="Helvetica">[[ (a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'}))) or removeParentNode('font') ]] </font>[[ formatLang(a['perc'], digits=2) ]]%</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -168,16 +168,16 @@
|
||||
<para style="terp_default_Bold_9"><font face="Helvetica">[[ repeatIn(funct_total(data['form']),'b') ]]</font>Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_theo']) ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_theo'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_pln']) ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_pln'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_prac']) ]] [[ company.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_prac'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_right_9">[[ '%.2f' % b['tot_perc'] ]]%</para>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_perc'], digits=2) ]]%</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -185,4 +185,4 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
</document>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
-
|
||||
!python {model: account.analytic.account}: |
|
||||
import netsvc, tools, os, time
|
||||
data_dict = {'model': 'account.analytic.account', 'form': {'date1':time.strftime("%Y-01-01"),'date2':time.strftime('%Y-%m-%d'),'id':ref('account.analytic_root'),'context':{}}}
|
||||
data_dict = {'model': 'account.analytic.account', 'form': {'date_from':time.strftime("%Y-01-01"),'date_to':time.strftime('%Y-%m-%d'),'id':ref('account.analytic_root'),'context':{}}}
|
||||
(data, format) = netsvc.LocalService('report.account.analytic.account.budget').create(cr, uid, [ref('account.analytic_root')], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account_budget-analytic_budget_report.'+format), 'wb+').write(data)
|
||||
@@ -12,7 +12,7 @@
|
||||
-
|
||||
!python {model: account.budget.post}: |
|
||||
import netsvc, tools, os, time
|
||||
data_dict = {'model': 'account.budget.post', 'form': {'date1':time.strftime("%Y-01-01"),'date2':time.strftime('%Y-%m-%d'),'id':ref('account_budget.account_budget_post_sales0'),'context':{}}}
|
||||
data_dict = {'model': 'account.budget.post', 'form': {'date_from':time.strftime("%Y-01-01"),'date_to':time.strftime('%Y-%m-%d'),'id':ref('account_budget.account_budget_post_sales0'),'context':{}}}
|
||||
(data, format) = netsvc.LocalService('report.account.analytic.account.budget').create(cr, uid, [ref('account_budget.account_budget_post_sales0')], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account_budget-budget_report.'+format), 'wb+').write(data)
|
||||
@@ -24,4 +24,4 @@
|
||||
data_dict = {'model': 'account.budget.post', 'form': {'date_from':time.strftime("%Y-01-01"),'date_to':time.strftime('%Y-%m-%d'),'report':'analytic-full','id':ref('account_budget.crossovered_budget_budgetoptimistic0'),'context':{}}}
|
||||
(data, format) = netsvc.LocalService('report.crossovered.budget.report').create(cr, uid, [ref('account_budget.crossovered_budget_budgetoptimistic0')], data_dict, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account_budget-crossovered_budget_report.'+format), 'wb+').write(data)
|
||||
file(os.path.join(tools.config['test_report_directory'], 'account_budget-crossovered_budget_report.'+format), 'wb+').write(data)
|
||||
|
||||
@@ -29,11 +29,11 @@ class account_budget_analytic(osv.osv_memory):
|
||||
_columns = {
|
||||
'date_from': fields.date('Start of period', required=True),
|
||||
'date_to': fields.date('End of period', required=True),
|
||||
}
|
||||
}
|
||||
_defaults= {
|
||||
'date_from': time.strftime('%Y-01-01'),
|
||||
'date_to': time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
}
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
datas = {}
|
||||
@@ -44,12 +44,12 @@ class account_budget_analytic(osv.osv_memory):
|
||||
'ids': context.get('active_ids',[]),
|
||||
'model': 'account.analytic.account',
|
||||
'form': data
|
||||
}
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.analytic.account.budget',
|
||||
'datas': datas,
|
||||
}
|
||||
}
|
||||
|
||||
account_budget_analytic()
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
@@ -30,11 +29,11 @@ class account_budget_crossvered_report(osv.osv_memory):
|
||||
_columns = {
|
||||
'date_from': fields.date('Start of period', required=True),
|
||||
'date_to': fields.date('End of period', required=True),
|
||||
}
|
||||
}
|
||||
_defaults= {
|
||||
'date_from': time.strftime('%Y-01-01'),
|
||||
'date_to': time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
}
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
datas = {}
|
||||
@@ -45,13 +44,13 @@ class account_budget_crossvered_report(osv.osv_memory):
|
||||
'ids': context.get('active_ids',[]),
|
||||
'model': 'crossovered.budget',
|
||||
'form': data
|
||||
}
|
||||
}
|
||||
datas['form']['report']='analytic-full'
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'crossovered.budget.report',
|
||||
'datas': datas,
|
||||
}
|
||||
}
|
||||
|
||||
account_budget_crossvered_report()
|
||||
|
||||
|
||||
@@ -31,11 +31,11 @@ class account_budget_crossvered_summary_report(osv.osv_memory):
|
||||
_columns = {
|
||||
'date_from': fields.date('Start of period', required=True),
|
||||
'date_to': fields.date('End of period', required=True),
|
||||
}
|
||||
}
|
||||
_defaults= {
|
||||
'date_from': time.strftime('%Y-01-01'),
|
||||
'date_to': time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
}
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
datas = {}
|
||||
@@ -46,14 +46,13 @@ class account_budget_crossvered_summary_report(osv.osv_memory):
|
||||
'ids': context.get('active_ids',[]),
|
||||
'model': 'crossovered.budge',
|
||||
'form': data
|
||||
}
|
||||
datas['form']['report']='analytic-one'
|
||||
}
|
||||
datas['form']['report'] = 'analytic-one'
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'crossovered.budget.report',
|
||||
'datas': datas,
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
account_budget_crossvered_summary_report()
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
@@ -31,11 +30,11 @@ class account_budget_report(osv.osv_memory):
|
||||
_columns = {
|
||||
'date1': fields.date('Start of period', required=True),
|
||||
'date2': fields.date('End of period', required=True),
|
||||
}
|
||||
}
|
||||
_defaults= {
|
||||
'date1': time.strftime('%Y-01-01'),
|
||||
'date2': time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
}
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
datas = {}
|
||||
@@ -46,7 +45,7 @@ class account_budget_report(osv.osv_memory):
|
||||
'ids': context.get('active_ids',[]),
|
||||
'model': 'account.budget.post',
|
||||
'form': data
|
||||
}
|
||||
}
|
||||
|
||||
data_model = self.pool.get(datas['model']).browse(cr, uid, context['active_id'])
|
||||
if not data_model.dotation_ids:
|
||||
@@ -55,7 +54,7 @@ class account_budget_report(osv.osv_memory):
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.budget',
|
||||
'datas': datas,
|
||||
}
|
||||
}
|
||||
|
||||
account_budget_report()
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class account_budget_spread(osv.osv_memory):
|
||||
_columns = {
|
||||
'fiscalyear': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True),
|
||||
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
|
||||
}
|
||||
}
|
||||
|
||||
def check_spread(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-19 12:03+0000\n"
|
||||
"PO-Revision-Date: 2010-09-29 10:33+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-09-30 06:58+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-30 04:44+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-01 08:47+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_cancel
|
||||
|
||||
@@ -8,71 +8,72 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-24 13:11+0000\n"
|
||||
"PO-Revision-Date: 2010-09-26 20:12+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-10-01 11:59+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:17+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-02 05:05+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,journal_id:0
|
||||
#: wizard_field:account.coda_import,init,journal_id:0
|
||||
msgid "Bank Journal"
|
||||
msgstr ""
|
||||
msgstr "Bank Dagafschrift"
|
||||
|
||||
#. module: account_coda
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"De objectnaam moet beginnen met x_ en mag geen speciale tekens bevatten!"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_field:account.coda_import,extraction,note:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
msgstr "Logboek"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_button:account.coda_import,extraction,open:0
|
||||
msgid "_Open Statement"
|
||||
msgstr ""
|
||||
msgstr "_Open Afschrift"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,shortdesc:account_coda.module_meta_information
|
||||
msgid "Account CODA"
|
||||
msgstr ""
|
||||
msgstr "Rekening CODA"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,name:0
|
||||
msgid "Coda file"
|
||||
msgstr ""
|
||||
msgstr "Coda bestand"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_view:account.coda_import,init:0
|
||||
msgid "Clic on 'New' to select your file :"
|
||||
msgstr ""
|
||||
msgstr "Klik op 'Nieuw' om uw bestand te selecteren :"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import
|
||||
msgid "Import Coda File"
|
||||
msgstr ""
|
||||
msgstr "Importeer Coda bestand"
|
||||
|
||||
#. module: account_coda
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Ongeldige modelnaam in de definitie van de actie."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,note:0
|
||||
msgid "Import log"
|
||||
msgstr ""
|
||||
msgstr "Import logboek"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_field:account.coda_import,init,def_receivable:0
|
||||
msgid "Default receivable Account"
|
||||
msgstr ""
|
||||
msgstr "Standaard ontvangstenrekening"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.module.module,description:account_coda.module_meta_information
|
||||
@@ -81,86 +82,89 @@ msgid ""
|
||||
" bank statements from .csv file.\n"
|
||||
" Import coda file wizard is used to import bank statements."
|
||||
msgstr ""
|
||||
"Module voorziet in functies voor het importeren van bankafschriften in "
|
||||
".csv.bestanden.\n"
|
||||
"Import coda bestand wizard importeert bankafschriften."
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_button:account.coda_import,extraction,end:0
|
||||
msgid "_Close"
|
||||
msgstr ""
|
||||
msgstr "_Afsluiten"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,statement_id:0
|
||||
msgid "Generated Bank Statement"
|
||||
msgstr ""
|
||||
msgstr "Gegenereerd bankafschrift"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda
|
||||
msgid "Coda import"
|
||||
msgstr ""
|
||||
msgstr "Coda import"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Gebruiker"
|
||||
|
||||
#. module: account_coda
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige XML voor weergave opbouw!"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda
|
||||
msgid "coda for an Account"
|
||||
msgstr ""
|
||||
msgstr "coda voor een rekening"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_field:account.coda_import,init,def_payable:0
|
||||
msgid "Default Payable Account"
|
||||
msgstr ""
|
||||
msgstr "Standaard uitgavenrekening"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda
|
||||
msgid "Coda Statements"
|
||||
msgstr ""
|
||||
msgstr "Coda afschriften"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard
|
||||
msgid "Import Coda Statements"
|
||||
msgstr ""
|
||||
msgstr "Importeer Coda afschriften"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_button:account.coda_import,init,extraction:0
|
||||
msgid "_Ok"
|
||||
msgstr ""
|
||||
msgstr "_Ok"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_view:account.coda_import,extraction:0
|
||||
#: wizard_view:account.coda_import,init:0
|
||||
msgid "Import Coda Statement"
|
||||
msgstr ""
|
||||
msgstr "Importeer Coda afschrift"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.bank.statement,coda_id:0
|
||||
msgid "Coda"
|
||||
msgstr ""
|
||||
msgstr "Coda"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_view:account.coda_import,extraction:0
|
||||
msgid "Results :"
|
||||
msgstr ""
|
||||
msgstr "Resultaten :"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_field:account.coda_import,init,coda:0
|
||||
msgid "Coda File"
|
||||
msgstr ""
|
||||
msgstr "Coda Bestand"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,date:0
|
||||
msgid "Import Date"
|
||||
msgstr ""
|
||||
msgstr "Importdatum"
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_view:account.coda_import,init:0
|
||||
msgid "Select your bank journal :"
|
||||
msgstr ""
|
||||
msgstr "Selecteer bank dagboek :"
|
||||
|
||||
@@ -224,24 +224,24 @@ class account_coda_import(osv.osv_memory):
|
||||
'period_id':statement.get('period_id',False) or period,# statement.period_id.id
|
||||
}
|
||||
voucher_id = voucher_obj.create(cr, uid, voucher_res, context=context)
|
||||
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'))
|
||||
context.update({'move_line_ids': rec_id})
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), context=context)
|
||||
voucher_line_dict = False
|
||||
if result['value']['line_ids']:
|
||||
for line_dict in result['value']['line_ids']:
|
||||
move_line = line_obj.browse(cr, uid, line_dict['move_line_id'], context)
|
||||
if line.move_id.id == move_line.move_id.id:
|
||||
voucher_line_dict = line_dict
|
||||
|
||||
|
||||
if voucher_line_dict:
|
||||
voucher_line_dict.update({'voucher_id':voucher_id})
|
||||
voucher_line_obj.create(cr, uid, voucher_line_dict, context=context)
|
||||
|
||||
|
||||
# reconcile_id = statement_reconcile_obj.create(cr, uid, {
|
||||
# 'line_ids': [(6, 0, rec_id)]
|
||||
# }, context=context)
|
||||
#
|
||||
|
||||
|
||||
mv = self.pool.get('account.move.line').browse(cr, uid, rec_id[0], context=context)
|
||||
if mv.partner_id:
|
||||
line['partner_id'] = mv.partner_id.id
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
</record>
|
||||
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_configuration_misc" groups="base.group_system"/>
|
||||
|
||||
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/report_followp_print.rml" string="Followup Report"/>
|
||||
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Followup Report"/>
|
||||
|
||||
<record id="account_move_line_partner_tree" model="ir.ui.view">
|
||||
<field name="name">account.move.line.partner.tree</field>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import report_followup_print
|
||||
import account_followup_print
|
||||
import account_followup_report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ class report_rappel(report_sxw.rml_parse):
|
||||
return text
|
||||
|
||||
report_sxw.report_sxw('report.account_followup.followup.print',
|
||||
'res.partner', 'addons/account_followup/report/report_followp_print.rml',
|
||||
'res.partner', 'addons/account_followup/report/account_followup_print.rml',
|
||||
parser=report_rappel)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -130,19 +130,22 @@ class account_invoice_line(osv.osv):
|
||||
default['state'] = self.browse(cr, uid, id).state
|
||||
return super(account_invoice_line, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
def _fnct(self, cr, uid, id, name, args, context=None):
|
||||
def _fnct(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for m in self.browse(cr, uid, id):
|
||||
if m.state != 'article':
|
||||
if m.state == 'line':
|
||||
res[m.id] = '-----------------------------------------'
|
||||
elif m.state == 'break':
|
||||
res[m.id] = 'PAGE BREAK'
|
||||
|
||||
lines = self.browse(cr, uid, ids)
|
||||
account_ids = [line.account_id.id for line in lines]
|
||||
account_names = dict(self.pool.get('account.account').name_get(cr, uid, account_ids, context=context))
|
||||
for line in lines:
|
||||
if line.state != 'article':
|
||||
if line.state == 'line':
|
||||
res[line.id] = '-----------------------------------------'
|
||||
elif line.state == 'break':
|
||||
res[line.id] = 'PAGE BREAK'
|
||||
else:
|
||||
res[m.id] = ' '
|
||||
res[line.id] = ' '
|
||||
else:
|
||||
[(temp)] = self.pool.get('account.account').name_get(cr, uid, [m.account_id.id], context=context)
|
||||
res[m.id] = temp[1]
|
||||
res[line.id] = account_names.get(line.account_id.id, '')
|
||||
return res
|
||||
|
||||
_name = "account.invoice.line"
|
||||
@@ -205,4 +208,4 @@ class account_invoice(osv.osv):
|
||||
|
||||
account_invoice()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -23,6 +23,7 @@ import time
|
||||
|
||||
from report import report_sxw
|
||||
|
||||
|
||||
class account_invoice_1(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(account_invoice_1, self).__init__(cr, uid, name, context=context)
|
||||
@@ -33,112 +34,111 @@ class account_invoice_1(report_sxw.rml_parse):
|
||||
self.context = context
|
||||
self._node = None
|
||||
|
||||
def invoice_lines(self,invoice):
|
||||
result =[]
|
||||
sub_total={}
|
||||
info=[]
|
||||
invoice_list=[]
|
||||
res={}
|
||||
list_in_seq={}
|
||||
def invoice_lines(self, invoice):
|
||||
result = []
|
||||
sub_total = {}
|
||||
info = []
|
||||
invoice_list = []
|
||||
res = {}
|
||||
list_in_seq = {}
|
||||
ids = self.pool.get('account.invoice.line').search(self.cr, self.uid, [('invoice_id', '=', invoice.id)])
|
||||
ids.sort()
|
||||
for id in range(0,len(ids)):
|
||||
for id in range(0, len(ids)):
|
||||
info = self.pool.get('account.invoice.line').browse(self.cr, self.uid, ids[id], self.context.copy())
|
||||
list_in_seq[info]=info.sequence
|
||||
i=1
|
||||
j=0
|
||||
list_in_seq[info] = info.sequence
|
||||
i = 1
|
||||
j = 0
|
||||
final=sorted(list_in_seq.items(), lambda x, y: cmp(x[1], y[1]))
|
||||
invoice_list=[x[0] for x in final]
|
||||
sum_flag={}
|
||||
sum_flag[j]=-1
|
||||
invoice_list = [x[0] for x in final]
|
||||
sum_flag = {}
|
||||
sum_flag[j] = -1
|
||||
for entry in invoice_list:
|
||||
res={}
|
||||
if entry.state=='article':
|
||||
res = {}
|
||||
if entry.state == 'article':
|
||||
self.cr.execute('select tax_id from account_invoice_line_tax where invoice_line_id=%s', (entry.id,))
|
||||
tax_ids=self.cr.fetchall()
|
||||
if tax_ids==[]:
|
||||
res['tax_types']=''
|
||||
tax_ids = self.cr.fetchall()
|
||||
if tax_ids == []:
|
||||
res['tax_types'] = ''
|
||||
else:
|
||||
tax_names_dict={}
|
||||
for item in range(0,len(tax_ids)) :
|
||||
tax_names_dict = {}
|
||||
for item in range(0, len(tax_ids)):
|
||||
self.cr.execute('select name from account_tax where id=%s', (tax_ids[item][0],))
|
||||
type=self.cr.fetchone()
|
||||
tax_names_dict[item] =type[0]
|
||||
tax_names = ','.join([tax_names_dict[x] for x in range(0,len(tax_names_dict))])
|
||||
res['tax_types']=tax_names
|
||||
res['name']=entry.name
|
||||
res['quantity']="%.2f"%(entry.quantity)
|
||||
res['price_unit']="%.2f"%(entry.price_unit)
|
||||
res['discount']="%.2f"%(entry.discount)
|
||||
res['price_subtotal']="%.2f"%(entry.price_subtotal)
|
||||
sub_total[i]=entry.price_subtotal
|
||||
i=i+1
|
||||
res['note']=entry.note
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['type']=entry.state
|
||||
type = self.cr.fetchone()
|
||||
tax_names_dict[item] = type[0]
|
||||
tax_names = ','.join([tax_names_dict[x] for x in range(0, len(tax_names_dict))])
|
||||
res['tax_types'] = tax_names
|
||||
res['name'] = entry.name
|
||||
res['quantity'] = self.formatLang(entry.quantity, digits=self.get_digits(dp='Account'))
|
||||
res['price_unit'] = self.formatLang(entry.price_unit, digits=self.get_digits(dp='Account'))
|
||||
res['discount'] = self.formatLang(entry.discount, digits=self.get_digits(dp='Account'))
|
||||
res['price_subtotal'] = self.formatLang(entry.price_subtotal, digits=self.get_digits(dp='Account'))
|
||||
sub_total[i] = entry.price_subtotal
|
||||
i = i + 1
|
||||
res['note'] = entry.note
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
res['type'] = entry.state
|
||||
|
||||
if entry.uos_id.id==False:
|
||||
res['uos']=''
|
||||
if entry.uos_id.id == False:
|
||||
res['uos'] = ''
|
||||
else:
|
||||
uos_name = self.pool.get('product.uom').read(self.cr, self.uid, entry.uos_id.id, ['name'], self.context.copy())
|
||||
res['uos'] = uos_name['name']
|
||||
else:
|
||||
res['quantity'] = ''
|
||||
res['price_unit'] = ''
|
||||
res['discount'] = ''
|
||||
res['tax_types'] = ''
|
||||
res['type'] = entry.state
|
||||
res['note'] = entry.note
|
||||
res['uos'] = ''
|
||||
|
||||
res['quantity']=''
|
||||
res['price_unit']=''
|
||||
res['discount']=''
|
||||
res['tax_types']=''
|
||||
res['type']=entry.state
|
||||
res['note']=entry.note
|
||||
res['uos']=''
|
||||
|
||||
if entry.state=='subtotal':
|
||||
res['name']=entry.name
|
||||
sum=0
|
||||
sum_id=0
|
||||
if sum_flag[j]==-1:
|
||||
temp=1
|
||||
if entry.state == 'subtotal':
|
||||
res['name'] = entry.name
|
||||
sum = 0
|
||||
sum_id = 0
|
||||
if sum_flag[j] == -1:
|
||||
temp = 1
|
||||
else:
|
||||
temp=sum_flag[j]
|
||||
temp = sum_flag[j]
|
||||
|
||||
for sum_id in range(temp,len(sub_total)+1):
|
||||
sum+=sub_total[sum_id]
|
||||
sum_flag[j+1]= sum_id +1
|
||||
for sum_id in range(temp, len(sub_total)+1):
|
||||
sum += sub_total[sum_id]
|
||||
sum_flag[j+1] = sum_id +1
|
||||
|
||||
j=j+1
|
||||
res['price_subtotal']="%.2f"%(sum)
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['quantity']=''
|
||||
res['price_unit']=''
|
||||
res['discount']=''
|
||||
res['tax_types']=''
|
||||
res['uos']=''
|
||||
elif entry.state=='title':
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
elif entry.state=='text':
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
elif entry.state=='line':
|
||||
res['quantity']='_______________'
|
||||
res['price_unit']='______________'
|
||||
res['discount']='____________'
|
||||
res['tax_types']='____________________'
|
||||
res['uos']='_____'
|
||||
res['name']='_______________________________________________'
|
||||
res['price_subtotal']='____________'
|
||||
res['currency']='____'
|
||||
elif entry.state=='break':
|
||||
res['type']=entry.state
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
j = j + 1
|
||||
res['price_subtotal'] = "%.2f" % (sum)
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
res['quantity'] = ''
|
||||
res['price_unit'] = ''
|
||||
res['discount'] = ''
|
||||
res['tax_types'] = ''
|
||||
res['uos'] = ''
|
||||
elif entry.state == 'title':
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
elif entry.state == 'text':
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
elif entry.state == 'line':
|
||||
res['quantity'] = '_______________'
|
||||
res['price_unit'] = '______________'
|
||||
res['discount'] = '____________'
|
||||
res['tax_types'] = '____________________'
|
||||
res['uos'] = '_____'
|
||||
res['name'] = '_______________________________________________'
|
||||
res['price_subtotal'] = '____________'
|
||||
res['currency'] = '____'
|
||||
elif entry.state == 'break':
|
||||
res['type'] = entry.state
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
else:
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
<para style="terp_default_9">Net Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -391,7 +391,7 @@
|
||||
<para style="terp_default_9">Taxes:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -406,7 +406,7 @@
|
||||
<para style="terp_default_Bold_9">Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -445,10 +445,10 @@
|
||||
<para style="terp_default_8">[[ t.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base, digits=get_digits(dp='Account')) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]</para>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount, digits=get_digits(dp='Account')) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
@@ -485,4 +485,4 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
</document>
|
||||
|
||||
@@ -24,6 +24,7 @@ import time
|
||||
from report import report_sxw
|
||||
import pooler
|
||||
|
||||
|
||||
class account_invoice_with_message(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(account_invoice_with_message, self).__init__(cr, uid, name, context=context)
|
||||
@@ -40,115 +41,113 @@ class account_invoice_with_message(report_sxw.rml_parse):
|
||||
msg = account_msg_data.msg
|
||||
return msg
|
||||
|
||||
|
||||
def invoice_lines(self,invoice):
|
||||
result =[]
|
||||
sub_total={}
|
||||
info=[]
|
||||
invoice_list=[]
|
||||
res={}
|
||||
list_in_seq={}
|
||||
def invoice_lines(self, invoice):
|
||||
result = []
|
||||
sub_total = {}
|
||||
info = []
|
||||
invoice_list = []
|
||||
res = {}
|
||||
list_in_seq = {}
|
||||
ids = self.pool.get('account.invoice.line').search(self.cr, self.uid, [('invoice_id', '=', invoice.id)])
|
||||
ids.sort()
|
||||
for id in range(0,len(ids)):
|
||||
info = self.pool.get('account.invoice.line').browse(self.cr, self.uid,ids[id], self.context.copy())
|
||||
list_in_seq[info]=info.sequence
|
||||
i=1
|
||||
j=0
|
||||
final=sorted(list_in_seq.items(), lambda x, y: cmp(x[1], y[1]))
|
||||
invoice_list=[x[0] for x in final]
|
||||
sum_flag={}
|
||||
sum_flag[j]=-1
|
||||
for id in range(0, len(ids)):
|
||||
info = self.pool.get('account.invoice.line').browse(self.cr, self.uid, ids[id], self.context.copy())
|
||||
list_in_seq[info] = info.sequence
|
||||
i = 1
|
||||
j = 0
|
||||
final = sorted(list_in_seq.items(), lambda x, y: cmp(x[1], y[1]))
|
||||
invoice_list = [x[0] for x in final]
|
||||
sum_flag = {}
|
||||
sum_flag[j] = -1
|
||||
for entry in invoice_list:
|
||||
res={}
|
||||
res = {}
|
||||
|
||||
if entry.state=='article':
|
||||
if entry.state == 'article':
|
||||
self.cr.execute('select tax_id from account_invoice_line_tax where invoice_line_id=%s', (entry.id,))
|
||||
tax_ids=self.cr.fetchall()
|
||||
tax_ids = self.cr.fetchall()
|
||||
|
||||
if tax_ids==[]:
|
||||
res['tax_types']=''
|
||||
if tax_ids == []:
|
||||
res['tax_types'] = ''
|
||||
else:
|
||||
tax_names_dict={}
|
||||
for item in range(0,len(tax_ids)) :
|
||||
tax_names_dict = {}
|
||||
for item in range(0, len(tax_ids)):
|
||||
self.cr.execute('select name from account_tax where id=%s', (tax_ids[item][0],))
|
||||
type=self.cr.fetchone()
|
||||
tax_names_dict[item] =type[0]
|
||||
tax_names = ','.join([tax_names_dict[x] for x in range(0,len(tax_names_dict))])
|
||||
res['tax_types']=tax_names
|
||||
res['name']=entry.name
|
||||
res['quantity']="%.2f"%(entry.quantity)
|
||||
res['price_unit']="%.2f"%(entry.price_unit)
|
||||
res['discount']="%.2f"%(entry.discount)
|
||||
res['price_subtotal']="%.2f"%(entry.price_subtotal)
|
||||
sub_total[i]=entry.price_subtotal
|
||||
i=i+1
|
||||
res['note']=entry.note
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['type']=entry.state
|
||||
type = self.cr.fetchone()
|
||||
tax_names_dict[item] = type[0]
|
||||
tax_names = ','.join([tax_names_dict[x] for x in range(0, len(tax_names_dict))])
|
||||
res['tax_types'] = tax_names
|
||||
res['name'] = entry.name
|
||||
res['quantity'] = self.formatLang(entry.quantity, digits=self.get_digits(dp='Account'))
|
||||
res['price_unit'] = self.formatLang(entry.price_unit, digits=self.get_digits(dp='Account'))
|
||||
res['discount'] = self.formatLang(entry.discount, digits=self.get_digits(dp='Account'))
|
||||
res['price_subtotal'] = self.formatLang(entry.price_subtotal, digits=self.get_digits(dp='Account'))
|
||||
sub_total[i] = entry.price_subtotal
|
||||
i = i + 1
|
||||
res['note'] = entry.note
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
res['type'] = entry.state
|
||||
|
||||
if entry.uos_id.id==False:
|
||||
res['uos']=''
|
||||
if entry.uos_id.id == False:
|
||||
res['uos'] = ''
|
||||
else:
|
||||
uos_name = self.pool.get('product.uom').read(self.cr, self.uid, entry.uos_id.id, ['name'], self.context.copy())
|
||||
res['uos']=uos_name['name']
|
||||
res['uos'] = uos_name['name']
|
||||
else:
|
||||
res['quantity'] = ''
|
||||
res['price_unit'] = ''
|
||||
res['discount'] = ''
|
||||
res['tax_types'] = ''
|
||||
res['type'] = entry.state
|
||||
res['note'] = entry.note
|
||||
res['uos'] = ''
|
||||
|
||||
res['quantity']=''
|
||||
res['price_unit']=''
|
||||
res['discount']=''
|
||||
res['tax_types']=''
|
||||
res['type']=entry.state
|
||||
res['note']=entry.note
|
||||
res['uos']=''
|
||||
|
||||
if entry.state=='subtotal':
|
||||
res['name']=entry.name
|
||||
sum=0
|
||||
sum_id=0
|
||||
if sum_flag[j]==-1:
|
||||
temp=1
|
||||
if entry.state == 'subtotal':
|
||||
res['name'] = entry.name
|
||||
sum = 0
|
||||
sum_id = 0
|
||||
if sum_flag[j] == -1:
|
||||
temp = 1
|
||||
else:
|
||||
temp=sum_flag[j]
|
||||
temp = sum_flag[j]
|
||||
|
||||
for sum_id in range(temp,len(sub_total)+1):
|
||||
sum+=sub_total[sum_id]
|
||||
sum_flag[j+1]= sum_id +1
|
||||
for sum_id in range(temp, len(sub_total)+1):
|
||||
sum += sub_total[sum_id]
|
||||
sum_flag[j+1] = sum_id +1
|
||||
|
||||
j=j+1
|
||||
res['price_subtotal']="%.2f"%(sum)
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['quantity']=''
|
||||
res['price_unit']=''
|
||||
res['discount']=''
|
||||
res['tax_types']=''
|
||||
res['uos']=''
|
||||
elif entry.state=='title':
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
elif entry.state=='text':
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
elif entry.state=='line':
|
||||
res['quantity']='_______________'
|
||||
res['price_unit']='______________'
|
||||
res['discount']='____________'
|
||||
res['tax_types']='____________________'
|
||||
res['uos']='_____'
|
||||
res['name']='_______________________________________________'
|
||||
res['price_subtotal']='____________'
|
||||
res['currency']='____'
|
||||
elif entry.state=='break':
|
||||
res['type']=entry.state
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=''
|
||||
j = j + 1
|
||||
res['price_subtotal'] = "%.2f" % (sum)
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
res['quantity'] = ''
|
||||
res['price_unit'] = ''
|
||||
res['discount'] = ''
|
||||
res['tax_types'] = ''
|
||||
res['uos'] = ''
|
||||
elif entry.state == 'title':
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
elif entry.state == 'text':
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
elif entry.state == 'line':
|
||||
res['quantity'] = '_______________'
|
||||
res['price_unit'] = '______________'
|
||||
res['discount'] = '____________'
|
||||
res['tax_types'] = '____________________'
|
||||
res['uos'] = '_____'
|
||||
res['name'] = '_______________________________________________'
|
||||
res['price_subtotal'] = '____________'
|
||||
res['currency'] = '____'
|
||||
elif entry.state == 'break':
|
||||
res['type'] = entry.state
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = ''
|
||||
else:
|
||||
res['name']=entry.name
|
||||
res['price_subtotal']=''
|
||||
res['currency']=invoice.currency_id.symbol
|
||||
res['name'] = entry.name
|
||||
res['price_subtotal'] = ''
|
||||
res['currency'] = invoice.currency_id.symbol
|
||||
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
@@ -380,7 +380,7 @@
|
||||
<para style="terp_default_9">Net Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -395,7 +395,7 @@
|
||||
<para style="terp_default_9">Taxes:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -410,7 +410,7 @@
|
||||
<para style="terp_default_Bold_9">Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total) ]] [[ o.currency_id.symbol ]]</para>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total, digits=get_digits(dp='Account')) ]] [[ o.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -449,10 +449,10 @@
|
||||
<para style="terp_default_8">[[ t.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base, digits=get_digits(dp='Account')) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]</para>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount, digits=get_digits(dp='Account')) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
@@ -500,4 +500,4 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
</document>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<field name="acc_number">00987654321</field>
|
||||
<field name="partner_id" ref="base.res_partner_agrolait"></field>
|
||||
<field name="state">bank</field>
|
||||
<field name="bank" ref="base.res_bank_1"/>
|
||||
</record>
|
||||
<record id="payment_mode_1" model="payment.mode">
|
||||
<field name="name">Direct Payment</field>
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-02 22:08+0000\n"
|
||||
"PO-Revision-Date: 2010-10-04 16:08+0000\n"
|
||||
"Last-Translator: Pedro_Maschio <pedro.bicudo@tgtconsult.com.br>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-05 04:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_payment
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
partner_id: base.res_partner_9
|
||||
sequence: 0.0
|
||||
state: bank
|
||||
bank: base.res_bank_1
|
||||
|
||||
-
|
||||
I created a new Payment Mode
|
||||
|
||||
@@ -91,7 +91,8 @@ class account_payment_populate_statement(osv.osv_memory):
|
||||
'period_id': statement.period_id.id
|
||||
}
|
||||
voucher_id = voucher_obj.create(cr, uid, voucher_res, context=context)
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype='payment')
|
||||
context.update({'move_line_ids': [line.move_line_id.id]})
|
||||
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype='payment', context=context)
|
||||
voucher_line_dict = False
|
||||
if result['value']['line_ids']:
|
||||
for line_dict in result['value']['line_ids']:
|
||||
@@ -113,7 +114,7 @@ class account_payment_populate_statement(osv.osv_memory):
|
||||
'voucher_id': voucher_id,
|
||||
}, context=context)
|
||||
|
||||
line_obj.write(cr, uid, [line.id], {'bank_statement_line_id': st_line_id})
|
||||
line_obj.write(cr, uid, [line.id], {'bank_statement_line_id': st_line_id})
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
account_payment_populate_statement()
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="board_account_report_form" model="ir.ui.view">
|
||||
<!-- <record id="board_account_report_form" model="ir.ui.view">
|
||||
<field name="name">board.account.report.form</field>
|
||||
<field name="model">board.board</field>
|
||||
<field name="inherit_id" ref="account.board_account_form"/>
|
||||
<field name="inherit_id" ref="account.board_account_form"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/hpaned/child2/action[@string='Aged receivables']" position="before">
|
||||
<xpath expr="/form/hpaned/child2/action[@string='Aged receivables']" position="before">
|
||||
<button colspan="4" icon="terp-purchase" name="%(account_report.action_account_report_tree_view_indicator)d" string="My indicators" type="action"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</record>-->
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import voucher
|
||||
import account_voucher
|
||||
import report
|
||||
import wizard
|
||||
|
||||
|
||||
@@ -38,22 +38,22 @@
|
||||
|
||||
"update_xml" : [
|
||||
"security/ir.model.access.csv",
|
||||
"voucher_sequence.xml",
|
||||
"voucher_workflow.xml",
|
||||
"voucher_report.xml",
|
||||
"account_voucher_sequence.xml",
|
||||
"account_voucher_workflow.xml",
|
||||
"account_voucher_report.xml",
|
||||
"wizard/account_voucher_unreconcile_view.xml",
|
||||
"wizard/account_statement_from_invoice_view.xml",
|
||||
"voucher_view.xml",
|
||||
"account_voucher_view.xml",
|
||||
"voucher_payment_receipt_view.xml",
|
||||
"voucher_sales_purchase_view.xml",
|
||||
"voucher_wizard.xml",
|
||||
"account_voucher_wizard.xml",
|
||||
"security/account_voucher_security.xml"
|
||||
],
|
||||
"test" : [
|
||||
# "test/account_voucher.yml",
|
||||
"test/sales_receipt.yml",
|
||||
"test/sales_payment.yml",
|
||||
"test/account_voucher_report.yml"
|
||||
"test/account_voucher_report.yml"
|
||||
],
|
||||
'certificate': '0037580727101',
|
||||
"active": False,
|
||||
|
||||
@@ -48,7 +48,7 @@ account_move_line()
|
||||
class account_voucher(osv.osv):
|
||||
def _get_type(self, cr, uid, ids, context={}):
|
||||
return context.get('type', False)
|
||||
|
||||
|
||||
def _get_period(self, cr, uid, context={}):
|
||||
if context.get('period_id', False):
|
||||
return context.get('period_id')
|
||||
@@ -61,7 +61,7 @@ class account_voucher(osv.osv):
|
||||
return context.get('journal_id')
|
||||
if not context.get('journal_id', False) and context.get('search_default_journal_id', False):
|
||||
return context.get('search_default_journal_id')
|
||||
|
||||
|
||||
ttype = context.get('type', 'bank')
|
||||
if ttype in ('payment', 'receipt'):
|
||||
ttype = 'bank'
|
||||
@@ -77,7 +77,7 @@ class account_voucher(osv.osv):
|
||||
if not res:
|
||||
return False
|
||||
journal_id = res[0]
|
||||
|
||||
|
||||
if not journal_id:
|
||||
return False
|
||||
journal = journal_pool.browse(cr, uid, journal_id)
|
||||
@@ -109,7 +109,7 @@ class account_voucher(osv.osv):
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
return []
|
||||
return [(r['id'], (str(r['amount']) or '')) for r in self.read(cr, uid, ids, ['amount'], context, load='_classic_write')]
|
||||
return [(r['id'], (str("%.2f" % r['amount']) or '')) for r in self.read(cr, uid, ids, ['amount'], context, load='_classic_write')]
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
|
||||
res = super(account_voucher,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
|
||||
@@ -187,33 +187,33 @@ class account_voucher(osv.osv):
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher',context=c),
|
||||
'tax_id': _get_tax,
|
||||
}
|
||||
|
||||
|
||||
def compute_tax(self, cr, uid, ids, context={}):
|
||||
tax_pool = self.pool.get('account.tax')
|
||||
partner_pool = self.pool.get('res.partner')
|
||||
position_pool = self.pool.get('account.fiscal.position')
|
||||
voucher_line_pool = self.pool.get('account.voucher.line')
|
||||
voucher_pool = self.pool.get('account.voucher')
|
||||
|
||||
|
||||
for voucher in voucher_pool.browse(cr, uid, ids, context):
|
||||
voucher_amount = 0.0
|
||||
for line in voucher.line_ids:
|
||||
voucher_amount += line.untax_amount or line.amount
|
||||
line.amount = line.untax_amount or line.amount
|
||||
voucher_line_pool.write(cr, uid, [line.id], {'amount':line.amount, 'untax_amount':line.untax_amount})
|
||||
|
||||
|
||||
if not voucher.tax_id:
|
||||
self.write(cr, uid, [voucher.id], {'amount':voucher_amount, 'tax_amount':0.0})
|
||||
continue
|
||||
|
||||
|
||||
tax = [tax_pool.browse(cr, uid, voucher.tax_id.id)]
|
||||
partner = partner_pool.browse(cr, uid, voucher.partner_id.id) or False
|
||||
taxes = position_pool.map_tax(cr, uid, partner and partner.property_account_position or False, tax)
|
||||
tax = tax_pool.browse(cr, uid, taxes)
|
||||
|
||||
|
||||
total = voucher_amount
|
||||
total_tax = 0.0
|
||||
|
||||
|
||||
if not tax[0].price_include:
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_amount, 1).get('taxes',[]):
|
||||
total_tax += tax_line.get('amount')
|
||||
@@ -223,17 +223,17 @@ class account_voucher(osv.osv):
|
||||
for line in voucher.line_ids:
|
||||
line_total = 0.0
|
||||
line_tax = 0.0
|
||||
|
||||
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, line.untax_amount or line.amount, 1).get('taxes',[]):
|
||||
line_tax += tax_line.get('amount')
|
||||
line_total += tax_line.get('price_unit')
|
||||
total_tax += line_tax
|
||||
untax_amount = line.untax_amount or line.amount
|
||||
voucher_line_pool.write(cr, uid, [line.id], {'amount':line_total, 'untax_amount':untax_amount})
|
||||
|
||||
|
||||
self.write(cr, uid, [voucher.id], {'amount':total, 'tax_amount':total_tax})
|
||||
return True
|
||||
|
||||
|
||||
def onchange_price(self, cr, uid, ids, line_ids, tax_id, partner_id=False, context={}):
|
||||
tax_pool = self.pool.get('account.tax')
|
||||
partner_pool = self.pool.get('res.partner')
|
||||
@@ -246,16 +246,16 @@ class account_voucher(osv.osv):
|
||||
voucher_total_tax = 0.0
|
||||
voucher_total = 0.0
|
||||
voucher_line_ids = []
|
||||
|
||||
|
||||
total = 0.0
|
||||
total_tax = 0.0
|
||||
|
||||
|
||||
for line in line_ids:
|
||||
line_amount = 0.0
|
||||
line_amount = line[2].get('amount')
|
||||
voucher_line_ids += [line[1]]
|
||||
voucher_total += line_amount
|
||||
|
||||
|
||||
total = voucher_total
|
||||
total_tax = 0.0
|
||||
if tax_id:
|
||||
@@ -264,12 +264,12 @@ class account_voucher(osv.osv):
|
||||
partner = partner_pool.browse(cr, uid, partner_id) or False
|
||||
taxes = position_pool.map_tax(cr, uid, partner and partner.property_account_position or False, tax)
|
||||
tax = tax_pool.browse(cr, uid, taxes)
|
||||
|
||||
|
||||
if not tax[0].price_include:
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_total, 1).get('taxes',[]):
|
||||
total_tax += tax_line.get('amount')
|
||||
total += total_tax
|
||||
|
||||
|
||||
res.update({
|
||||
'amount':total or voucher_total,
|
||||
'tax_amount':total_tax
|
||||
@@ -277,7 +277,7 @@ class account_voucher(osv.osv):
|
||||
return {
|
||||
'value':res
|
||||
}
|
||||
|
||||
|
||||
def onchange_term_id(self, cr, uid, ids, term_id, amount):
|
||||
term_pool = self.pool.get('account.payment.term')
|
||||
terms = False
|
||||
@@ -291,24 +291,24 @@ class account_voucher(osv.osv):
|
||||
'date_due':due_date
|
||||
})
|
||||
return {'value':default}
|
||||
|
||||
|
||||
def onchange_journal_voucher(self, cr, uid, ids, line_ids=False, tax_id=False, price=0.0, partner_id=False, journal_id=False, ttype=False, context={}):
|
||||
"""price
|
||||
Returns a dict that contains new values and context
|
||||
|
||||
|
||||
@param partner_id: latest value from user input for field partner_id
|
||||
@param args: other arguments
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
|
||||
@return: Returns a dict which contains new values, and context
|
||||
"""
|
||||
default = {
|
||||
'value':{},
|
||||
}
|
||||
|
||||
|
||||
if not partner_id or not journal_id:
|
||||
return default
|
||||
|
||||
|
||||
partner_pool = self.pool.get('res.partner')
|
||||
journal_pool = self.pool.get('account.journal')
|
||||
|
||||
@@ -328,32 +328,35 @@ class account_voucher(osv.osv):
|
||||
|
||||
default['value']['account_id'] = account_id
|
||||
default['value']['type'] = ttype or tr_type
|
||||
|
||||
|
||||
vals = self.onchange_journal(cr, uid, ids, journal_id, line_ids, tax_id, partner_id, context)
|
||||
default['value'].update(vals.get('value'))
|
||||
|
||||
|
||||
return default
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, context={}):
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, context=None):
|
||||
"""price
|
||||
Returns a dict that contains new values and context
|
||||
|
||||
|
||||
@param partner_id: latest value from user input for field partner_id
|
||||
@param args: other arguments
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
|
||||
@return: Returns a dict which contains new values, and context
|
||||
"""
|
||||
if not journal_id:
|
||||
return {}
|
||||
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
currency_pool = self.pool.get('res.currency')
|
||||
move_pool = self.pool.get('account.move')
|
||||
line_pool = self.pool.get('account.voucher.line')
|
||||
move_line_pool = self.pool.get('account.move.line')
|
||||
partner_pool = self.pool.get('res.partner')
|
||||
journal_pool = self.pool.get('account.journal')
|
||||
|
||||
|
||||
vals = self.onchange_journal(cr, uid, ids, journal_id, [], False, partner_id, context)
|
||||
vals = vals.get('value')
|
||||
currency_id = vals.get('currency_id', currency_id)
|
||||
@@ -383,7 +386,7 @@ class account_voucher(osv.osv):
|
||||
default['value']['account_id'] = account_id
|
||||
if journal.type not in ('cash', 'bank'):
|
||||
return default
|
||||
|
||||
|
||||
total_credit = 0.0
|
||||
total_debit = 0.0
|
||||
account_type = 'receivable'
|
||||
@@ -393,21 +396,25 @@ class account_voucher(osv.osv):
|
||||
else:
|
||||
total_credit = price or 0.0
|
||||
account_type = 'receivable'
|
||||
ids = move_line_pool.search(cr, uid, [('account_id.type','=', account_type), ('reconcile_id','=', False), ('partner_id','=',partner_id)], context=context)
|
||||
|
||||
if not context.get('move_line_ids', False):
|
||||
ids = move_line_pool.search(cr, uid, [('account_id.type','=', account_type), ('reconcile_id','=', False), ('partner_id','=',partner_id)], context=context)
|
||||
else:
|
||||
ids = context['move_line_ids']
|
||||
ids.reverse()
|
||||
moves = move_line_pool.browse(cr, uid, ids)
|
||||
|
||||
|
||||
company_currency = journal.company_id.currency_id.id
|
||||
if company_currency != currency_id and ttype == 'payment':
|
||||
total_debit = currency_pool.compute(cr, uid, currency_id, company_currency, total_debit)
|
||||
elif company_currency != currency_id and ttype == 'receipt':
|
||||
total_credit = currency_pool.compute(cr, uid, currency_id, company_currency, total_credit)
|
||||
|
||||
|
||||
for line in moves:
|
||||
if line.credit and line.reconcile_partial_id and ttype == 'receipt':
|
||||
continue
|
||||
if line.debit and line.reconcile_partial_id and ttype == 'payment':
|
||||
continue
|
||||
continue
|
||||
total_credit += line.credit or 0.0
|
||||
total_debit += line.debit or 0.0
|
||||
|
||||
@@ -416,7 +423,7 @@ class account_voucher(osv.osv):
|
||||
continue
|
||||
if line.debit and line.reconcile_partial_id and ttype == 'payment':
|
||||
continue
|
||||
|
||||
|
||||
orignal_amount = line.credit or line.debit or 0.0
|
||||
rs = {
|
||||
'name':line.move_id.name,
|
||||
@@ -442,11 +449,11 @@ class account_voucher(osv.osv):
|
||||
default['value']['line_cr_ids'].append(rs)
|
||||
else:
|
||||
default['value']['line_dr_ids'].append(rs)
|
||||
|
||||
|
||||
if ttype == 'payment' and len(default['value']['line_cr_ids']) > 0:
|
||||
default['value']['pre_line'] = 1
|
||||
elif ttype == 'receipt' and len(default['value']['line_dr_ids']) > 0:
|
||||
default['value']['pre_line'] = 1
|
||||
default['value']['pre_line'] = 1
|
||||
return default
|
||||
|
||||
def onchange_date(self, cr, user, ids, date, context={}):
|
||||
@@ -475,7 +482,7 @@ class account_voucher(osv.osv):
|
||||
tax_id = False
|
||||
if account_id and account_id.tax_ids:
|
||||
tax_id = account_id.tax_ids[0].id
|
||||
|
||||
|
||||
vals = self.onchange_price(cr, uid, ids, line_ids, tax_id, partner_id, context)
|
||||
vals['value'].update({'tax_id':tax_id})
|
||||
currency_id = journal.company_id.currency_id.id
|
||||
@@ -499,7 +506,7 @@ class account_voucher(osv.osv):
|
||||
reconcile_pool = self.pool.get('account.move.reconcile')
|
||||
move_pool = self.pool.get('account.move')
|
||||
voucher_line_pool = self.pool.get('account.voucher.line')
|
||||
|
||||
|
||||
for voucher in self.browse(cr, uid, ids):
|
||||
recs = []
|
||||
for line in voucher.move_ids:
|
||||
@@ -509,7 +516,7 @@ class account_voucher(osv.osv):
|
||||
recs += [line.reconcile_partial_id.id]
|
||||
|
||||
reconcile_pool.unlink(cr, uid, recs)
|
||||
|
||||
|
||||
if voucher.move_id:
|
||||
move_pool.button_cancel(cr, uid, [voucher.move_id.id])
|
||||
move_pool.unlink(cr, uid, [voucher.move_id.id])
|
||||
@@ -547,7 +554,7 @@ class account_voucher(osv.osv):
|
||||
return {'value':res}
|
||||
|
||||
def action_move_line_create(self, cr, uid, ids, context=None):
|
||||
|
||||
|
||||
def _get_payment_term_lines(term_id, amount):
|
||||
term_pool = self.pool.get('account.payment.term')
|
||||
if term_id and amount:
|
||||
@@ -561,10 +568,11 @@ class account_voucher(osv.osv):
|
||||
analytic_pool = self.pool.get('account.analytic.line')
|
||||
currency_pool = self.pool.get('res.currency')
|
||||
invoice_pool = self.pool.get('account.invoice')
|
||||
bank_st_line_obj = self.pool.get('account.bank.statement.line')
|
||||
for inv in self.browse(cr, uid, ids):
|
||||
if inv.move_id:
|
||||
continue
|
||||
if inv.number:
|
||||
if inv.number:
|
||||
name = inv.number
|
||||
elif inv.journal_id.sequence_id:
|
||||
name = self.pool.get('ir.sequence').get_id(cr, uid, inv.journal_id.sequence_id.id)
|
||||
@@ -580,12 +588,17 @@ class account_voucher(osv.osv):
|
||||
'period_id': inv.period_id and inv.period_id.id or False
|
||||
}
|
||||
move_id = move_pool.create(cr, uid, move)
|
||||
|
||||
line_bank_ids = bank_st_line_obj.search(cr, uid, [('voucher_id', '=', inv.id)], context=context)
|
||||
if line_bank_ids:
|
||||
bank_st_line_obj.write(cr, uid, line_bank_ids, {
|
||||
'move_ids': [(4, move_id, False)]
|
||||
})
|
||||
|
||||
#create the first line manually
|
||||
company_currency = inv.journal_id.company_id.currency_id.id
|
||||
debit = 0.0
|
||||
credit = 0.0
|
||||
# TODO: is there any other alternative then the voucher type ??
|
||||
# TODO: is there any other alternative then the voucher type ??
|
||||
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
|
||||
if inv.type in ('purchase', 'payment'):
|
||||
credit = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
|
||||
@@ -597,7 +610,7 @@ class account_voucher(osv.osv):
|
||||
if credit < 0:
|
||||
debit = -credit
|
||||
credit = 0.0
|
||||
|
||||
|
||||
move_line = {
|
||||
'name':inv.name or '/',
|
||||
'debit':debit,
|
||||
@@ -627,7 +640,7 @@ class account_voucher(osv.osv):
|
||||
if not line.amount:
|
||||
continue
|
||||
amount = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, line.amount)
|
||||
|
||||
|
||||
move_line = {
|
||||
'journal_id':inv.journal_id.id,
|
||||
'period_id':inv.period_id.id,
|
||||
@@ -649,7 +662,7 @@ class account_voucher(osv.osv):
|
||||
line.type = 'cr'
|
||||
else:
|
||||
line.type = 'dr'
|
||||
|
||||
|
||||
if (line.type=='dr'):
|
||||
line_total += amount
|
||||
move_line['debit'] = amount
|
||||
@@ -716,7 +729,7 @@ class account_voucher_line(osv.osv):
|
||||
_name = 'account.voucher.line'
|
||||
_description = 'Voucher Lines'
|
||||
_order = "move_line_id"
|
||||
|
||||
|
||||
def _compute_balance(self, cr, uid, ids, name, args, context=None):
|
||||
currency_pool = self.pool.get('res.currency')
|
||||
rs_data = {}
|
||||
@@ -725,16 +738,16 @@ class account_voucher_line(osv.osv):
|
||||
company_currency = line.voucher_id.journal_id.company_id.currency_id.id
|
||||
voucher_currency = line.voucher_id.currency_id.id
|
||||
move_line = line.move_line_id or False
|
||||
|
||||
|
||||
if not move_line:
|
||||
res['amount_original'] = 0.0
|
||||
res['amount_unreconciled'] = 0.0
|
||||
|
||||
|
||||
elif move_line and move_line.credit > 0:
|
||||
res['amount_original'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.credit)
|
||||
else:
|
||||
res['amount_original'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.debit)
|
||||
|
||||
|
||||
if move_line:
|
||||
res['amount_unreconciled'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.amount_unreconciled)
|
||||
rs_data[line.id] = res
|
||||
@@ -767,7 +780,7 @@ class account_voucher_line(osv.osv):
|
||||
@param move_line_id: latest value from user input for field move_line_id
|
||||
@param args: other arguments
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
|
||||
@return: Returns a dict which contains new values, and context
|
||||
"""
|
||||
res = {}
|
||||
@@ -793,9 +806,9 @@ class account_voucher_line(osv.osv):
|
||||
def default_get(self, cr, user, fields_list, context=None):
|
||||
"""
|
||||
Returns default values for fields
|
||||
@param fields_list: list of fields, for which default values are required to be read
|
||||
@param fields_list: list of fields, for which default values are required to be read
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
|
||||
@return: Returns a dict that contains default values for fields
|
||||
"""
|
||||
journal_id = context.get('journal_id', False)
|
||||
@@ -834,14 +847,26 @@ account_voucher_line()
|
||||
class account_bank_statement(osv.osv):
|
||||
_inherit = 'account.bank.statement'
|
||||
|
||||
def button_cancel(self, cr, uid, ids, context=None):
|
||||
done = []
|
||||
for st in self.browse(cr, uid, ids, context):
|
||||
voucher_ids = []
|
||||
for line in st.line_ids:
|
||||
if line.voucher_id:
|
||||
voucher_ids.append(line.voucher_id.id)
|
||||
self.pool.get('account.voucher').cancel_voucher(cr, uid, voucher_ids, context)
|
||||
self.pool.get('account.voucher').unlink(cr, uid, voucher_ids, context)
|
||||
return super(account_bank_statement, self).button_cancel(cr, uid, ids, context=context)
|
||||
|
||||
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, next_number, context=None):
|
||||
voucher_obj = self.pool.get('account.voucher')
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
st_line = self.pool.get('account.bank.statement.line').browse(cr, uid, st_line_id, context=context)
|
||||
if st_line.voucher_id:
|
||||
self.pool.get('account.voucher').write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
voucher_obj.write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
|
||||
wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)
|
||||
return self.pool.get('account.move.line').write(cr, uid, [x.id for x in st_line.voucher_id.move_ids], {'statement_id': st_line.statement_id.id}, context=context)
|
||||
return super(account_bank_statement, self).create_move_from_st_line(cr, uid, st_line, company_currency_id, next_number, context=context)
|
||||
return self.pool.get('account.move.line').write(cr, uid, [x.id for x in st_line.voucher_id.move_ids], {'statement_id': st_line.statement_id.id}, context=context)
|
||||
return super(account_bank_statement, self).create_move_from_st_line(cr, uid, st_line.id, company_currency_id, next_number, context=context)
|
||||
|
||||
account_bank_statement()
|
||||
|
||||
@@ -851,17 +876,18 @@ class account_bank_statement_line(osv.osv):
|
||||
def _amount_reconciled(self, cursor, user, ids, name, args, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
|
||||
res_currency_obj = self.pool.get('res.currency')
|
||||
res = {}
|
||||
company_currency_id = False
|
||||
|
||||
for line in self.browse(cursor, user, ids, context=context):
|
||||
if not company_currency_id:
|
||||
company_currency_id = line.company_id.id
|
||||
# if not company_currency_id:
|
||||
# company_currency_id = line.company_id.id
|
||||
if line.voucher_id:
|
||||
res[line.id] = res_currency_obj.compute(cursor, user,
|
||||
company_currency_id, line.statement_id.currency.id,
|
||||
line.voucher_id.amount, context=context)
|
||||
res[line.id] = line.voucher_id.amount#
|
||||
# res_currency_obj.compute(cursor, user,
|
||||
# company_currency_id, line.statement_id.currency.id,
|
||||
# line.voucher_id.amount, context=context)
|
||||
else:
|
||||
res[line.id] = 0.0
|
||||
return res
|
||||
@@ -877,7 +903,8 @@ class account_bank_statement_line(osv.osv):
|
||||
statement_line = self.browse(cr, uid, ids, context)
|
||||
unlink_ids = []
|
||||
for st_line in statement_line:
|
||||
unlink_ids.append(st_line.voucher_id.id)
|
||||
if st_line.voucher_id:
|
||||
unlink_ids.append(st_line.voucher_id.id)
|
||||
self.pool.get('account.voucher').unlink(cr, uid, unlink_ids, context=context)
|
||||
return super(account_bank_statement_line, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
+3
-3
@@ -5,17 +5,17 @@
|
||||
string="Voucher"
|
||||
model="account.voucher"
|
||||
name="voucher.cash_receipt.drcr"
|
||||
rml="account_voucher/report/report_voucher.rml"
|
||||
rml="account_voucher/report/account_voucher.rml"
|
||||
groups="base.group_extended"
|
||||
auto="False"
|
||||
header = "False"
|
||||
menu="True"/>
|
||||
|
||||
|
||||
<report id="report_account_voucher_print"
|
||||
string="Voucher Print"
|
||||
model="account.voucher"
|
||||
name="voucher.print"
|
||||
rml="account_voucher/report/report_voucher_print.rml"
|
||||
rml="account_voucher/report/account_voucher_print.rml"
|
||||
auto="False"
|
||||
header = "False"
|
||||
menu="True"/>
|
||||
+16
-3
@@ -193,9 +193,8 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_bank_statement_form_voucher" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.voucher.form.inherit</field>
|
||||
<record id="view_bank_statement_tree_voucher" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.voucher.tree.inherit</field>
|
||||
<field name="model">account.bank.statement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
||||
@@ -207,5 +206,19 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_bank_statement_form_voucher" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.voucher.form.inherit</field>
|
||||
<field name="model">account.bank.statement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page[@name='statement_line_ids']/field[@name='line_ids']/form/field[@name='sequence']" position="before">
|
||||
<field name="voucher_id" context="{'default_type': amount < 0 and 'payment' or 'receipt', 'type': amount < 0 and 'payment' or 'receipt', 'default_partner_id': partner_id, 'default_journal_id': parent.journal_id, 'default_amount': abs(amount), 'default_reference': ref, 'default_date': date, 'default_name': name}"/>
|
||||
<field name="amount_reconciled"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,9 +15,9 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import report_voucher
|
||||
import report_voucher_print
|
||||
import account_voucher
|
||||
import account_voucher_print
|
||||
|
||||
+1
-1
@@ -67,6 +67,6 @@ class report_voucher(report_sxw.rml_parse):
|
||||
report_sxw.report_sxw(
|
||||
'report.voucher.cash_receipt.drcr',
|
||||
'account.voucher',
|
||||
'addons/account_voucher/report/report_voucher.rml',
|
||||
'addons/account_voucher/report/account_voucher.rml',
|
||||
parser=report_voucher,header="external"
|
||||
)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user