2009-10-13 05:58:37 +00:00
# -*- coding: utf-8 -*-
2006-12-07 13:41:40 +00:00
##############################################################################
2010-04-07 13:20:19 +00:00
#
2009-10-14 11:15:34 +00:00
# OpenERP, Open Source Management Solution
2010-01-12 09:18:39 +00:00
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
2008-11-03 19:18:56 +00:00
#
# This program is free software: you can redistribute it and/or modify
2009-10-14 11:15:34 +00:00
# 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.
2008-11-03 19:18:56 +00:00
#
# 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
2009-10-14 11:15:34 +00:00
# GNU Affero General Public License for more details.
2008-11-03 19:18:56 +00:00
#
2009-10-14 11:15:34 +00:00
# You should have received a copy of the GNU Affero General Public License
2010-04-07 13:20:19 +00:00
# along with this program. If not, see <http://www.gnu.org/licenses/>.
2006-12-07 13:41:40 +00:00
#
##############################################################################
import time
2010-07-09 04:18:45 +00:00
2006-12-07 13:41:40 +00:00
from report import report_sxw
2010-07-10 07:21:03 +00:00
from account_journal_common_default import account_journal_common_default
2010-06-29 13:48:46 +00:00
import pooler
2006-12-07 13:41:40 +00:00
#
# Use period and Journal for selection or resources
#
2010-07-10 07:21:03 +00:00
class journal_print ( report_sxw . rml_parse , account_journal_common_default ) :
2010-06-29 16:05:16 +00:00
2010-07-09 04:18:45 +00:00
def __init__ ( self , cr , uid , name , context = None ) :
if context is None :
context = { }
2009-10-09 11:49:00 +00:00
super ( journal_print , self ) . __init__ ( cr , uid , name , context = context )
2010-07-09 13:06:52 +00:00
self . period_ids = [ ]
self . journal_ids = [ ]
2008-07-22 15:11:28 +00:00
self . localcontext . update ( {
' time ' : time ,
' lines ' : self . lines ,
' sum_debit ' : self . _sum_debit ,
2010-06-29 13:48:46 +00:00
' sum_credit ' : self . _sum_credit ,
2010-07-14 12:50:54 +00:00
' get_filter ' : self . _get_filter ,
' get_fiscalyear ' : self . _get_fiscalyear ,
' get_account ' : self . _get_account ,
' get_start_period ' : self . get_start_period ,
' get_end_period ' : self . get_end_period ,
' get_sortby ' : self . _get_sortby
2008-07-22 15:11:28 +00:00
} )
2008-10-22 13:00:47 +00:00
2010-07-13 03:39:27 +00:00
def set_context ( self , objects , data , ids , report_type = None ) : # Improve move to common default?
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 ' '
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 ) , ) )
res = self . cr . fetchall ( )
self . period_ids , self . journal_ids = zip ( * res )
return super ( journal_print , self ) . set_context ( objects , data , ids , report_type )
2010-07-09 04:18:45 +00:00
def lines ( self , period_id , journal_id ) :
self . cr . execute ( ' SELECT a.code, a.name, SUM(debit) AS debit, SUM(credit) AS credit from account_move_line l LEFT JOIN account_account a ON (l.account_id=a.id) WHERE l.period_id= %s AND l.journal_id= %s ' + self . query_get_clause + ' GROUP BY a.id, a.code, a.name ' , ( period_id , journal_id ) )
2008-10-22 13:00:47 +00:00
res = self . cr . dictfetchall ( )
return res
2010-04-07 13:20:19 +00:00
report_sxw . report_sxw ( ' report.account.central.journal ' , ' account.journal.period ' , ' addons/account/report/central_journal.rml ' , parser = journal_print , header = False )
2010-07-13 03:39:27 +00:00
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: