[MERGE] merged the dev3 branch
bzr revid: qdp-launchpad@tinyerp.com-20101001122158-ibthlq0ggzg54kmp
This commit is contained in:
commit
a1d54ac584
|
@ -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,
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -433,7 +433,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 +444,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 +489,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 +600,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 +615,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 +810,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 +820,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 +839,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 +1146,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 +1410,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 +1493,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 +1635,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 +1789,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 +2173,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 +2236,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"/>
|
||||
|
|
|
@ -49,7 +49,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:
|
|
@ -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,
|
||||
|
|
|
@ -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'))
|
||||
|
|
|
@ -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),))
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -51,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})
|
||||
|
@ -66,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
|
||||
|
@ -98,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()
|
||||
|
@ -121,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
|
||||
|
||||
|
@ -160,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]
|
||||
|
@ -172,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:
|
||||
|
@ -184,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'):
|
||||
|
@ -199,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"
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
|
@ -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']:
|
||||
|
|
|
@ -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)
|
||||
|
|
@ -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"/>
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
)
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -37,7 +37,7 @@ class report_voucher_print(report_sxw.rml_parse):
|
|||
def convert(self, amount, cur):
|
||||
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur);
|
||||
return amt_en
|
||||
|
||||
|
||||
def get_lines(self,voucher):
|
||||
result = []
|
||||
if voucher.type in ('payment','receipt'):
|
||||
|
@ -67,13 +67,13 @@ class report_voucher_print(report_sxw.rml_parse):
|
|||
res['amount'] = amount
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
|
||||
def get_title(self, type):
|
||||
title = ''
|
||||
if type:
|
||||
title = type[0].swapcase() + type[1:] + " Voucher"
|
||||
return title
|
||||
|
||||
|
||||
def get_on_account(self, voucher):
|
||||
name = ""
|
||||
if voucher.type == 'receipt':
|
||||
|
@ -85,10 +85,10 @@ class report_voucher_print(report_sxw.rml_parse):
|
|||
elif voucher.type == 'purchase':
|
||||
name = "Purchase from "+str(voucher.partner_id.name)
|
||||
return name
|
||||
|
||||
|
||||
report_sxw.report_sxw(
|
||||
'report.voucher.print',
|
||||
'account.voucher',
|
||||
'addons/account_voucher/report/report_voucher_print.rml',
|
||||
'addons/account_voucher/report/account_voucher_print.rml',
|
||||
parser=report_voucher_print,header="external"
|
||||
)
|
|
@ -71,9 +71,9 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
elif (line.invoice and line.invoice.currency_id.id <> statement.currency.id):
|
||||
amount = currency_obj.compute(cr, uid, line.invoice.currency_id.id,
|
||||
statement.currency.id, amount, context=ctx)
|
||||
|
||||
|
||||
voucher_res = { 'type':(amount < 0 and 'payment' or 'receipt') ,
|
||||
'name': line.name,
|
||||
'name': line.name,
|
||||
'partner_id': line.partner_id.id,
|
||||
'journal_id': statement.journal_id.id,
|
||||
'account_id': line.account_id.id,
|
||||
|
@ -83,7 +83,8 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
'amount':abs(amount),
|
||||
'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=(amount < 0 and 'payment' or 'receipt'))
|
||||
context.update({'move_line_ids': [line.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']:
|
||||
|
|
|
@ -214,7 +214,8 @@ def _import(obj, cursor, user, data, context=None):
|
|||
'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_ids})
|
||||
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']:
|
||||
|
|
|
@ -14,7 +14,6 @@ result = price_unit * 0.10"" name="python_compute_inv"/>
|
|||
<field eval="1.0" name="ref_tax_sign"/>
|
||||
<field eval=""percent"" name="type"/>
|
||||
<field eval="1.0" name="ref_base_sign"/>
|
||||
<field eval=""vat"" name="tax_group"/>
|
||||
<field eval=""1"" name="active"/>
|
||||
<field eval=""testing tax"" name="name"/>
|
||||
<field eval="0.069" name="amount"/>
|
||||
|
|
|
@ -21,12 +21,12 @@
|
|||
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.relativedelta import relativedelta
|
||||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
import decimal_precision as dp
|
||||
import netsvc
|
||||
import time
|
||||
|
||||
|
||||
class sale_shop(osv.osv):
|
||||
_name = "sale.shop"
|
||||
|
@ -62,6 +62,7 @@ class sale_order(osv.osv):
|
|||
'shipped': False,
|
||||
'invoice_ids': [],
|
||||
'picking_ids': [],
|
||||
'date_confirm':False,
|
||||
'name': self.pool.get('ir.sequence').get(cr, uid, 'sale.order'),
|
||||
})
|
||||
return super(sale_order, self).copy(cr, uid, id, default, context=context)
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
this is a test file:
|
||||
-------------------
|
||||
the purpose is to test the buidlbot engine
|
||||
|
||||
how to do?
|
||||
we simply gonna make several commit in a local branch, and also several commits in the main branch, then merge and see what happens
|
||||
|
||||
iii
|
Loading…
Reference in New Issue