[Add] account: convert account_aged_trial_balance wizard to osv_memory
bzr revid: psi@tinyerp.co.in-20100423060416-wu5vugqm947ek4jz
This commit is contained in:
parent
cb8e0195a0
commit
195a5197e0
|
@ -74,6 +74,7 @@ module named account_voucherss
|
|||
'wizard/account_use_model_view.xml',
|
||||
'wizard/account_partner_balance_report_view.xml',
|
||||
'wizard/account_balance_report_view.xml',
|
||||
'wizard/account_aged_trial_balance_view.xml',
|
||||
'project/wizard/project_account_analytic_line_view.xml',
|
||||
'account_view.xml',
|
||||
'account_end_fy.xml',
|
||||
|
|
|
@ -71,14 +71,14 @@
|
|||
<menuitem action="wizard_generate_subscription" id="menu_generate_subscription" parent="account.menu_finance_periodical_processing" type="wizard"/>
|
||||
-->
|
||||
<!-- Aged partner balance -->
|
||||
<wizard id="wizard_aged_trial_balance" menu="False" model="res.partner" name="account.aged.trial.balance" string="Aged Partner Balance"/>
|
||||
<menuitem id="next_id_22" name="Partner Accounts" parent="menu_finance_generic_reporting" sequence="1"/>
|
||||
<menuitem icon="STOCK_PRINT" action="wizard_aged_trial_balance" id="menu_aged_trial_balance" parent="next_id_22" type="wizard"/>
|
||||
<!-- <wizard id="wizard_aged_trial_balance" menu="False" model="res.partner" name="account.aged.trial.balance" string="Aged Partner Balance"/>
|
||||
|
||||
<menuitem icon="STOCK_PRINT" action="wizard_aged_trial_balance" id="menu_aged_trial_balance" parent="next_id_22" type="wizard"/>-->
|
||||
|
||||
<!-- report-related wizards -->
|
||||
<!-- <wizard id="wizard_partner_balance_report" menu="False" model="res.partner" name="account.partner.balance.report" string="Partner Balance"/>
|
||||
<menuitem icon="STOCK_PRINT" action="wizard_partner_balance_report" id="menu_partner_balance" parent="account.next_id_22" type="wizard"/> -->
|
||||
|
||||
<menuitem id="next_id_22" name="Partner Accounts" parent="menu_finance_generic_reporting" sequence="1"/>
|
||||
<wizard id="wizard_third_party_ledger" menu="False" model="res.partner" name="account.third_party_ledger.report" string="Partner Ledger"/>
|
||||
<menuitem icon="STOCK_PRINT" action="wizard_third_party_ledger" id="menu_third_party_ledger" parent="account.next_id_22" type="wizard"/>
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
import pooler
|
||||
import rml_parse
|
||||
from report import report_sxw
|
||||
|
@ -45,7 +45,6 @@ class aged_trial_report(rml_parse.rml_parse):
|
|||
|
||||
|
||||
def _get_lines(self, form):
|
||||
|
||||
if (form['result_selection'] == 'customer' ):
|
||||
self.ACCOUNT_TYPE = ['receivable']
|
||||
elif (form['result_selection'] == 'supplier'):
|
||||
|
|
|
@ -30,7 +30,7 @@ import account_move_journal
|
|||
import account_journal_select
|
||||
import account_move_bank_reconcile
|
||||
import account_subscription_generate
|
||||
import wizard_aged_trial_balance
|
||||
import account_aged_trial_balance
|
||||
import account_general_ledger_report
|
||||
import wizard_third_party_ledger
|
||||
import account_partner_balance_report
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import time
|
||||
import datetime
|
||||
from mx.DateTime import *
|
||||
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class account_aged_trial_balance(osv.osv_memory):
|
||||
|
||||
_name = 'account.aged.trial.balance'
|
||||
_description = 'Account Aged Trial balance Report'
|
||||
|
||||
_columns = {
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
'period_length':fields.integer('Period length (days)', required=True),
|
||||
'date1': fields.date('Start of period', required=True),
|
||||
'result_selection': fields.selection([('customer','Receivable'),
|
||||
('supplier','Payable'),
|
||||
('all','Receivable and Payable')],
|
||||
'Filter on Partners', required=True),
|
||||
'direction_selection': fields.selection([('past','Past'),
|
||||
('future','Future')],
|
||||
'Analysis Direction', required=True),
|
||||
}
|
||||
|
||||
def _get_company(self, cr, uid, ids, context=None):
|
||||
user_obj = self.pool.get('res.users')
|
||||
company_obj = self.pool.get('res.company')
|
||||
if context is None:
|
||||
context = {}
|
||||
user = user_obj.browse(cr, uid, uid, context=context)
|
||||
if user.company_id:
|
||||
return user.company_id.id
|
||||
else:
|
||||
return company_obj.search(cr, uid, [('parent_id', '=', False)])[0]
|
||||
|
||||
_defaults = {
|
||||
'company_id' : _get_company,
|
||||
'period_length' : 30,
|
||||
'date1' : time.strftime('%Y-%m-%d'),
|
||||
'result_selection' : 'all',
|
||||
'direction_selection' : 'past',
|
||||
}
|
||||
|
||||
def calc_dates(self, cr, uid, ids, context=None):
|
||||
fiscalyear_obj = self.pool.get('account.fiscalyear')
|
||||
data={}
|
||||
res = {}
|
||||
if context is None:
|
||||
context = {}
|
||||
data['ids'] = context.get('active_ids',[])
|
||||
data['model'] = 'res.partner'
|
||||
data['form'] = self.read(cr, uid, ids, [])[0]
|
||||
data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
|
||||
period_length = data['form']['period_length']
|
||||
if period_length<=0:
|
||||
raise osv.except_osv(_('UserError'), _('You must enter a period length that cannot be 0 or below !'))
|
||||
start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d")))
|
||||
start = DateTime(int(start.year),int(start.month),int(start.day))
|
||||
if data['form']['direction_selection'] == 'past':
|
||||
for i in range(5)[::-1]:
|
||||
stop = start - RelativeDateTime(days=period_length)
|
||||
res[str(i)] = {
|
||||
'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length),
|
||||
'stop': start.strftime('%Y-%m-%d'),
|
||||
'start' : stop.strftime('%Y-%m-%d'),
|
||||
}
|
||||
start = stop - RelativeDateTime(days=1)
|
||||
else:
|
||||
for i in range(5):
|
||||
stop = start + RelativeDateTime(days=period_length)
|
||||
res[str(5-(i+1))] = {
|
||||
'name' : str((i)*period_length)+'-'+str((i+1)*period_length),
|
||||
'start': start.strftime('%Y-%m-%d'),
|
||||
'stop' : stop.strftime('%Y-%m-%d'),
|
||||
}
|
||||
start = stop + RelativeDateTime(days=1)
|
||||
data['form'].update(res)
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.aged_trial_balance',
|
||||
'datas': data,
|
||||
}
|
||||
|
||||
account_aged_trial_balance()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem id="next_id_22"
|
||||
name="Partner Accounts"
|
||||
parent="menu_finance_generic_reporting"
|
||||
sequence="1"/>
|
||||
|
||||
<record id="account_aged_balance_view" model="ir.ui.view">
|
||||
<field name="name">Aged Partner Balance</field>
|
||||
<field name="model">account.aged.trial.balance</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Print Aged Trial Balance">
|
||||
<field name="company_id"/>
|
||||
<newline/>
|
||||
<field name="date1"/>
|
||||
<field name="period_length"/>
|
||||
<newline/>
|
||||
<field name="result_selection"/>
|
||||
<newline/>
|
||||
<field name="direction_selection"/>
|
||||
<newline/>
|
||||
<group colspan="4" col="6">
|
||||
<separator colspan="6"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="calc_dates" string="Print" type="object" icon="gtk-print" default_focus="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_aged_balance_view" model="ir.actions.act_window">
|
||||
<field name="name">Aged Partner Balance</field>
|
||||
<field name="res_model">account.aged.trial.balance</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_aged_balance_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
icon="STOCK_PRINT"
|
||||
name="Aged Partner Balance"
|
||||
action="action_account_aged_balance_view"
|
||||
id="menu_aged_trial_balance"
|
||||
parent="next_id_22"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -38,7 +38,7 @@
|
|||
</group>
|
||||
<newline/>
|
||||
<group colspan="4" col="6">
|
||||
<separator string="" colspan="4"/>
|
||||
<separator colspan="4"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="check_report" string="Print" type="object" icon="gtk-print"/>
|
||||
</group>
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import time
|
||||
import datetime
|
||||
import pooler
|
||||
|
||||
from mx.DateTime import *
|
||||
from tools.translate import _
|
||||
|
||||
_aged_trial_form = """<?xml version="1.0"?>
|
||||
<form string="Print Aged Trial Balance">
|
||||
<field name="company_id"/>
|
||||
<newline/>
|
||||
<field name="date1"/>
|
||||
<field name="period_length"/>
|
||||
<newline/>
|
||||
<field name="result_selection"/>
|
||||
<newline/>
|
||||
<field name="direction_selection"/>
|
||||
</form>"""
|
||||
|
||||
_aged_trial_fields = {
|
||||
'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
|
||||
'period_length': {'string': 'Period length (days)', 'type': 'integer', 'required': True, 'default': lambda *a:30},
|
||||
'date1': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
|
||||
'result_selection':{
|
||||
'string':"Filter on Partners",
|
||||
'type':'selection',
|
||||
'selection':[('customer','Receivable'),('supplier','Payable'),('all','Receivable and Payable')],
|
||||
'required':True,
|
||||
'default': lambda *a: 'all',
|
||||
},
|
||||
'direction_selection':{
|
||||
'string':"Analysis Direction",
|
||||
'type':'selection',
|
||||
'selection':[('past','Past'),('future','Future')],
|
||||
'required':True,
|
||||
'default': lambda *a: 'past',
|
||||
},
|
||||
}
|
||||
|
||||
def _calc_dates(self, cr, uid, data, context):
|
||||
res = {}
|
||||
period_length = data['form']['period_length']
|
||||
if period_length<=0:
|
||||
raise wizard.except_wizard(_('UserError'), _('You must enter a period length that cannot be 0 or below !'))
|
||||
start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d")))
|
||||
start = DateTime(int(start.year),int(start.month),int(start.day))
|
||||
if data['form']['direction_selection'] == 'past':
|
||||
for i in range(5)[::-1]:
|
||||
stop = start - RelativeDateTime(days=period_length)
|
||||
res[str(i)] = {
|
||||
'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length),
|
||||
|
||||
'stop': start.strftime('%Y-%m-%d'),
|
||||
'start' : stop.strftime('%Y-%m-%d'),
|
||||
}
|
||||
start = stop - RelativeDateTime(days=1)
|
||||
else:
|
||||
for i in range(5):
|
||||
stop = start + RelativeDateTime(days=period_length)
|
||||
res[str(5-(i+1))] = {
|
||||
'name' : str((i)*period_length)+'-'+str((i+1)*period_length),
|
||||
'start': start.strftime('%Y-%m-%d'),
|
||||
'stop' : stop.strftime('%Y-%m-%d'),
|
||||
}
|
||||
start = stop + RelativeDateTime(days=1)
|
||||
return res
|
||||
|
||||
class wizard_report(wizard.interface):
|
||||
def _get_defaults(self, cr, uid, data, context):
|
||||
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
|
||||
data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
|
||||
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
|
||||
if user.company_id:
|
||||
company_id = user.company_id.id
|
||||
else:
|
||||
company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
|
||||
data['form']['company_id'] = company_id
|
||||
return data['form']
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_get_defaults],
|
||||
'result': {'type':'form', 'arch':_aged_trial_form, 'fields':_aged_trial_fields, 'state':[('end','Cancel', 'gtk-cancel'),('print','Print', 'gtk-ok')]},
|
||||
},
|
||||
'print': {
|
||||
'actions': [_calc_dates],
|
||||
'result': {'type':'print', 'report':'account.aged_trial_balance', 'state':'end'},
|
||||
},
|
||||
}
|
||||
wizard_report('account.aged.trial.balance')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
Loading…
Reference in New Issue