4def3fd77ec5b312377a738c856cf6e24499a620
[odoo/odoo.git] / addons / l10n_fr / wizard / wizard_chart_report.py
1 # -*- encoding: utf-8 -*-
2 #Copyright (c) Vincent Cardon <vincent.cardon@tranquil-it-systems.fr>
3 # Denis Cardon <denis.cardon@tranquilitsystems.com> and Emmanuel RICHARD.
4 #Ingenieur fondateur
5 #Tranquil IT Systems
6
7
8 import wizard
9 import time
10 import datetime
11 import pooler
12 import sys
13 from mx.DateTime import *
14 from pdf_ext import *
15 import tools
16
17 finished_form='''<?xml version="1.0"?>
18 <form string="Mail send ">
19     <label string="Operation Completed Successfully ! " colspan="4"/>
20     </form>'''
21
22
23 _aged_trial_form = """<?xml version="1.0"?>
24 <form string="Aged Trial Balance">
25     <field name="company_id"/>
26     <newline/>
27     <field name="fiscalyear"/>
28     <label align="0.7" colspan="6" string="(If you do not select Fiscal year it will take all open fiscal year)"/>
29     <newline/>
30     <field name="target_move"/>
31 </form>"""
32
33 _aged_trial_fields = {
34     'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
35     'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear',
36     'help': 'Keep empty for all open fiscal year'},
37     'target_move':{'string': 'Target Moves', 'type': 'selection', 'selection': [('all','All Entries'),('posted_only','All Posted Entries')], 'required': True, 'default': lambda *a:"all"}
38 }
39 start_date_year_n="2008-01-01"
40 end_date_year_n='2008-12-31'
41 start_date_year_n_minus_one='2007-01-01'
42 end_date_year_n_minus_one='2007-12-31'
43 company_name="Tiny Sprl"
44 debug=True
45 mytable={}
46 value=[]
47
48 def rightpadding(cr,uid,mystring,padder):
49     return mystring + padder*(6-len(mystring))
50
51 def sumAll(cr,uid,account_from_in,account_to_in,year):
52     global start_date_year_n, end_date_year_n, start_date_year_n_minus_one, end_date_year_n_minus_one
53     if year == 'n':
54         return sumAll_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n,end_date_year_n)
55     else:
56         return sumAll_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n_minus_one,end_date_year_n_minus_one)
57
58 def sumDebtor(cr,uid,account_from_in,account_to_in,year):
59     global start_date_year_n, end_date_year_n, start_date_year_n_minus_one, end_date_year_n_minus_one
60     if year == 'n':
61         return sumDebtor_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n,end_date_year_n)
62     else:
63         return sumDebtor_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n_minus_one,end_date_year_n_minus_one)
64
65 def sumCreditor(cr,uid,account_from_in,account_to_in,year):
66     global start_date_year_n, end_date_year_n, start_date_year_n_minus_one, end_date_year_n_minus_one
67     if year == 'n':
68         return sumCreditor_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n,end_date_year_n)
69     else:
70         return sumCreditor_start_stop(cr,uid,account_from_in,account_to_in,start_date_year_n_minus_one,end_date_year_n_minus_one)
71
72 def sumAll_start_stop(cr,uid,account_from_in,account_to_in,date_start,date_stop):
73     global value
74     account_from = rightpadding(cr,uid,account_from_in,"0")
75     account_to = rightpadding(cr,uid,account_to_in,"9")
76     query = """
77         select sum(debit),sum(credit)
78         from account_account,account_move_line,account_period,account_move
79         where
80             account_account.id = account_move_line.account_id
81             and account_period.id = account_move_line.period_id
82             AND account_move_line.move_id=account_move.id
83             AND account_move.state IN """+str(value)+"""
84             and account_account.code >= '""" + account_from + """'
85             and account_account.code <= '""" + account_to + """'
86             and account_period.date_start >='""" + date_start + """'
87             and account_period.date_stop <= '""" + date_stop + """'
88     """
89     cr.execute(query)
90     row =cr.fetchone()
91     try:
92         return row[0] - row[1]
93     except TypeError:
94         return 0
95
96     #This function calculates the sum of the Debtor accounts that are beetween 2 account numbers : $accNo1 and $accNo2
97 def sumDebtor_start_stop(cr,uid,account_from_in,account_to_in,date_start,date_stop):
98     global value
99     account_from = rightpadding(cr,uid,account_from_in,"0")
100     account_to = rightpadding(cr,uid,account_to_in,"9")
101
102     sumDebtor=0;
103
104     queryAccount = """SELECT distinct account_account.code FROM account_account WHERE code >= '""" + account_from + """' and code <= '""" + account_to  +  """'"""
105     resultAccount =cr.execute(queryAccount)
106     rows =cr.fetchall()
107     for row in rows:
108         query="""
109         select sum(debit),sum(credit)
110                 from account_account,account_move_line,account_period,account_move
111                 where
112                         account_account.id = account_move_line.account_id
113                         and account_period.id = account_move_line.period_id
114                         AND account_move_line.move_id=account_move.id
115                         AND account_move.state IN """+str(value)+"""
116                         and account_account.code = '""" + row[0] + """'
117                         and account_period.date_start >='""" + date_start + """'
118                         and account_period.date_stop <= '""" + date_stop + """'
119         """
120         cr.execute(query)
121         row2 =cr.fetchone()
122         try:
123             if row2[1] - row2[0] < 0:
124                 sumDebtor = sumDebtor - ( row2[1] - row2[0])
125         except TypeError:
126             sumDebtor = sumDebtor
127
128     return sumDebtor
129
130 def sumCreditor_start_stop(cr,uid,account_from_in,account_to_in,date_start,date_stop):
131     global value
132     account_from = rightpadding(cr,uid,account_from_in,"0")
133     account_to = rightpadding(cr,uid,account_to_in,"9")
134
135     sumCreditor=0;
136
137     queryAccount = """SELECT distinct account_account.code FROM account_account WHERE code >= '""" + account_from + """' and code <= '""" + account_to  +  """'"""
138     resultAccount =cr.execute(queryAccount)
139     rows =cr.fetchall()
140
141     for row in rows:
142             query="""
143     select sum(debit),sum(credit)
144             from account_account,account_move_line,account_period,account_move
145             where
146                     account_account.id = account_move_line.account_id
147                     and account_period.id = account_move_line.period_id
148                     AND account_move_line.move_id=account_move.id
149                     AND account_move.state IN """+str(value)+"""
150                     and account_account.code = '""" + row[0] + """'
151                     and account_period.date_start >='""" + date_start + """'
152                     and account_period.date_stop <= '""" + date_stop + """'
153     """
154     result=cr.execute(query)
155     row2 =cr.fetchone()
156     try:
157         if row2[1] - row2[0] > 0:
158             sumCreditor = sumCreditor + (row2[1] - row2[0])
159     except TypeError:
160         sumCreditor = sumCreditor
161
162     return sumCreditor
163
164 def sumOfVar(cr,uid,varTemplate,from_range,to_range):
165     global mytable
166     result = 0
167     myvar = varTemplate
168     for n in range(from_range,to_range+1):
169         varname = myvar.replace('xx',str(n))
170         try:
171             result = result + float(mytable[varname])
172         except KeyError:
173             result = result
174     return result
175
176 def diffOfVar(cr,uid,varTemplate,from_range,to_range):
177     global mytable
178     myvar = varTemplate
179     varname1 = myvar.replace('xx',str(from_range))
180     varname2 = myvar.replace('xx',str(to_range))
181     return  float(mytable[varname1]) - float(mytable[varname2])
182
183 def negative(myvar):
184     return -1 * myvar
185
186 def _calc_dates(cr, uid, data, context):
187     res = {}
188     return res
189
190 def _get_move_states(val):
191     if val == 'all':
192         return ('draft','posted')
193     else:
194         return ('posted','')
195
196 def _test(self,cr,uid,data,context):
197     global mytable, start_date_year_n, end_date_year_n, start_date_year_n_minus_one, end_date_year_n_minus_one,company_name,value
198     mytable={}
199     fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
200     fyear=fiscalyear_obj.browse(cr,uid,data['form']['fiscalyear'])
201     comp_obj=pooler.get_pool(cr.dbname).get('res.company').browse(cr, uid, data['form']['company_id'])
202     company_name=comp_obj.name
203     start_date_year_n=fyear.date_start
204     end_date_year_n=fyear.date_stop
205     newdate=datetime.date.fromtimestamp(time.mktime(time.strptime(fyear.date_start, '%Y-%m-%d')))
206     start_date_year_n_minus_one=newdate.replace(newdate.year-1).strftime('%Y-%m-%d')
207     newdate=datetime.date.fromtimestamp(time.mktime(time.strptime(fyear.date_stop, '%Y-%m-%d')))
208     end_date_year_n_minus_one=newdate.replace(newdate.year-1).strftime('%Y-%m-%d')
209     value = _get_move_states(data['form']['target_move'])
210
211     val_dict={ 'RN_A2_1_1':"abs(sumAll(cr,uid,'109','109','n') )",'RN_ZCL_1':"abs(sumAll(cr,uid,'109','109','n'))",
212         'RN_A2_1_2':"abs(sumAll(cr,uid,'109','109','n-1'))",'RN_A2_2_1':"abs(sumAll(cr,uid,'200','202','n'))",
213         'RN_A2_2_2':"abs(sumAll(cr,uid,'2800','2802','n'))",'RN_ZCL_2':"abs( diffOfVar(cr,uid,'RN_A2_2_xx',1,2))",
214         'RN_A2_2_3':"abs(sumAll(cr,uid,'200','202','n-1'))-abs(sumAll(cr,uid,'2800','2802','n-1'))",
215         'RN_A2_3_1':"abs(sumAll(cr,uid,'203','204','n'))",'RN_A2_3_2':"abs(sumAll(cr,uid,'2803','2804','n'))",
216         'RN_ZCL_3':"abs( diffOfVar(cr,uid,'RN_A2_3_xx',1,2))",'RN_A2_3_3':"abs(sumAll(cr,uid,'203','204','n-1'))-abs(sumAll(cr,uid,'2803','2804','n-1'))",
217         'RN_A2_4_1':"abs(sumAll(cr,uid,'205','205','n'))",'RN_A2_4_2':"abs(sumAll(cr,uid,'2805','2806','n'))+abs(sumAll(cr,uid,'2900','2905','n'))",
218         'RN_ZCL_4':"abs( diffOfVar(cr,uid,'RN_A2_4_xx',1,2))",'RN_A2_4_3':"abs(sumAll(cr,uid,'205','205','n-1'))-abs(sumAll(cr,uid,'2805','2806','n-1'))-abs(sumAll(cr,uid,'2900','2905','n-1'))",
219         'RN_A2_5_1':"abs(sumAll(cr,uid,'206','207','n') )",'RN_A2_5_2':"abs(sumAll(cr,uid,'2807','2807','n'))+abs(sumAll(cr,uid,'2906','2907','n') )",
220         'RN_ZCL_5':"abs( diffOfVar(cr,uid,'RN_A2_5_xx',1,2) )",'RN_A2_5_3':"abs(sumAll(cr,uid,'206','207','n-1'))-abs(sumAll(cr,uid,'2807','2807','n-1'))-abs(sumAll(cr,uid,'2906','2907','n-1') )",
221         'RN_A2_6_1':"abs(sumAll(cr,uid,'208','209','n'))+abs(sumAll(cr,uid,'232','236','n') )",'RN_A2_6_2':"abs(sumAll(cr,uid,'2808','2809','n'))+abs(sumAll(cr,uid,'2908','2909','n') )",
222         'RN_ZCL_6' :"abs( diffOfVar(cr,uid,'RN_A2_6_xx',1,2)  )",'RN_A2_6_3':"abs(sumAll(cr,uid,'208','209','n-1'))+abs(sumAll(cr,uid,'232','236','n-1'))-abs(sumAll(cr,uid,'2808','2809','n-1'))-abs(sumAll(cr,uid,'2908','2909','n-1') )",
223         'RN_A2_7_1':"abs(sumAll(cr,uid,'237','237','n') )",'RN_A2_7_2':"abs(sumAll(cr,uid,'2830','2837','n'))+abs(sumAll(cr,uid,'2937','2937','n') )",
224         'RN_ZCL_7':"abs( diffOfVar(cr,uid,'RN_A2_7_xx',1,2) )",'RN_A2_7_3':"abs(sumAll(cr,uid,'237','237','n-1'))-abs(sumAll(cr,uid,'2830','2837','n-1'))-abs(sumAll(cr,uid,'2937','2937','n-1') )",
225         'RN_A2_8_1':"abs(sumAll(cr,uid,'210','212','n') )",'RN_A2_8_2':"abs(sumAll(cr,uid,'2810','2812','n'))+abs(sumAll(cr,uid,'2910','2914','n') )",
226         'RN_ZCL_8':"abs( diffOfVar(cr,uid,'RN_A2_8_xx',1,2) )",'RN_A2_8_3':"abs(sumAll(cr,uid,'210','212','n-1'))-abs(sumAll(cr,uid,'2810','2812','n-1'))-abs(sumAll(cr,uid,'2910','2914','n-1') )",
227         'RN_A2_9_1':"abs(sumAll(cr,uid,'213','214','n') )",'RN_A2_9_2':"abs(sumAll(cr,uid,'2813','2814','n'))+abs(sumAll(cr,uid,'2913','2914','n') )",
228         'RN_ZCL_9':"abs( diffOfVar(cr,uid,'RN_A2_9_xx',1,2) )",'RN_A2_9_3':"abs(sumAll(cr,uid,'213','214','n-1'))-abs(sumAll(cr,uid,'2813','2814','n-1'))-abs(sumAll(cr,uid,'2913','2914','n-1') )",
229         'RN_A2_10_1':"abs(sumAll(cr,uid,'215','217','n') )",'RN_A2_10_2':"abs(sumAll(cr,uid,'2815','2817','n'))+abs(sumAll(cr,uid,'2915','2917','n') )",
230         'RN_ZCL_10':"abs( diffOfVar(cr,uid,'RN_A2_10_xx',1,2))",'RN_A2_10_3':"abs(sumAll(cr,uid,'215','217','n-1'))-abs(sumAll(cr,uid,'2815','2817','n-1'))+abs(sumAll(cr,uid,'2915','2917','n-1') )",
231         'RN_A2_11_1':"abs(sumAll(cr,uid,'218','229','n') )",'RN_A2_11_2':"abs(sumAll(cr,uid,'2818','2829','n'))+abs(sumAll(cr,uid,'2918','2929','n'))",
232         'RN_ZCL_11':"abs( diffOfVar(cr,uid,'RN_A2_11_xx',1,2) )",'RN_A2_11_3':"abs(sumAll(cr,uid,'218','229','n-1'))- abs(sumAll(cr,uid,'2818','2829','n-1')) -abs(sumAll(cr,uid,'2918','2929','n-1') )",
233         'RN_A2_12_1':"abs(sumAll(cr,uid,'230','231','n') )",'RN_A2_12_2':"abs(sumAll(cr,uid,'2930','2936','n') )",
234         'RN_ZCL_12':"abs( diffOfVar(cr,uid,'RN_A2_12_xx',1,2) )",'RN_A2_12_3':"abs(sumAll(cr,uid,'230','231','n-1'))-abs(sumAll(cr,uid,'2930','2936','n-1') )",
235         'RN_A2_13_1':"abs(sumAll(cr,uid,'238','259','n') )",'RN_A2_13_2':"abs(sumAll(cr,uid,'2838','2899','n'))+abs(sumAll(cr,uid,'2938','2959','n') )",
236         'RN_ZCL_13':"abs( diffOfVar(cr,uid,'RN_A2_13_xx',1,2) )",'RN_A2_13_3':"abs(sumAll(cr,uid,'238','259','n-1'))-abs(sumAll(cr,uid,'2838','2899','n-1'))-abs(sumAll(cr,uid,'2938','2959','n-1') )",
237         'RN_A2_14_1':"abs(sumAll(cr,uid,'262','262','n') )",'RN_A2_14_2':"abs(sumAll(cr,uid,'2962','2962','n') )",
238         'RN_ZCL_14':"abs( diffOfVar(cr,uid,'RN_A2_14_xx',1,2) )",'RN_A2_14_3':"abs(sumAll(cr,uid,'262','262','n-1'))-abs(sumAll(cr,uid,'2962','2962','n-1') )",
239         'RN_A2_15_1':"abs(sumAll(cr,uid,'260','261','n'))+abs(sumAll(cr,uid,'263','266','n') )",'RN_A2_15_2':"abs(sumAll(cr,uid,'2960','2961','n'))+abs(sumAll(cr,uid,'2963','2966','n') )",
240         'RN_ZCL_15':"abs( diffOfVar(cr,uid,'RN_A2_15_xx',1,2) )",
241         'RN_A2_15_3':"abs(sumAll(cr,uid,'260','261','n-1'))+abs(sumAll(cr,uid,'263','266','n-1'))-abs(sumAll(cr,uid,'2960','2961','n-1'))-abs(sumAll(cr,uid,'2963','2966','n-1') )",
242         'RN_A2_16_1':"abs(sumAll(cr,uid,'267','268','n') )",
243         'RN_A2_16_2':"abs(sumAll(cr,uid,'2967','2969','n') )",
244         'RN_ZCL_16':"abs( diffOfVar(cr,uid,'RN_A2_16_xx',1,2) )",
245         'RN_A2_16_3':"abs(sumAll(cr,uid,'267','268','n-1'))-abs(sumAll(cr,uid,'2967','2969','n-1') )",
246         'RN_A2_17_1':"abs(sumAll(cr,uid,'270','273','n') )",
247         'RN_A2_17_2':"abs(sumAll(cr,uid,'2970','2973','n') )",
248         'RN_ZCL_17':"abs( diffOfVar(cr,uid,'RN_A2_17_xx',1,2) )",
249         'RN_A2_17_3':"abs(sumAll(cr,uid,'270','273','n-1'))-abs(sumAll(cr,uid,'2970','2973','n-1') )",
250         'RN_A2_18_1':"abs(sumAll(cr,uid,'274','274','n') )",
251         'RN_A2_18_2':"abs(sumAll(cr,uid,'2974','2974','n') )",
252         'RN_ZCL_18':"abs( diffOfVar(cr,uid,'RN_A2_18_xx',1,2) )",
253         'RN_A2_18_3':"abs(sumAll(cr,uid,'274','274','n-1'))-abs(sumAll(cr,uid,'2974','2974','n-1') )",
254         'RN_A2_19_1':"abs(sumAll(cr,uid,'275','278','n') )",
255         'RN_A2_19_2':"abs(sumAll(cr,uid,'2975','2999','n') )",
256         'RN_ZCL_19':"abs( diffOfVar(cr,uid,'RN_A2_19_xx',1,2) )",
257         'RN_A2_19_3':"abs(sumAll(cr,uid,'275','278','n-1'))-abs(sumAll(cr,uid,'2975','2999','n-1') )",
258         'RN_ZCL_20':"abs(sumOfVar(cr,uid,'RN_A2_xx_1',1,19) )",
259         'RN_ZCL_22':"abs(sumOfVar(cr,uid,'RN_A2_xx_2',2,19) )",
260         'RN_ZCL_23':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',1,19) )",
261         'RN_ZCL_24':"abs(sumAll(cr,uid,'109','109','n-1'))+abs(sumOfVar(cr,uid,'RN_A2_xx_3',2,19) )",
262         'RN_A3_1_1':"abs(sumAll(cr,uid,'30','32','n') )",
263         'RN_A3_1_2':"abs(sumAll(cr,uid,'390','392','n') )",
264         'RN_ZCL_25':"abs( diffOfVar(cr,uid,'RN_A3_1_xx',1,2) )",
265         'RN_A3_1_3':"abs(sumAll(cr,uid,'30','32','n-1'))-abs(sumAll(cr,uid,'390','392','n-1') )",
266         'RN_A3_2_1':"abs(sumAll(cr,uid,'33','33','n') )",
267         'RN_A3_2_2':"abs(sumAll(cr,uid,'393','393','n') )",
268         'RN_ZCL_26':"abs( diffOfVar(cr,uid,'RN_A3_2_xx',1,2) )",
269         'RN_A3_2_3':"abs(sumAll(cr,uid,'33','33','n-1'))-abs(sumAll(cr,uid,'393','393','n-1') )",
270         'RN_A3_3_1':"abs(sumAll(cr,uid,'34','34','n') )",
271         'RN_A3_3_2':"abs(sumAll(cr,uid,'394','394','n') )",
272         'RN_ZCL_27':"abs( diffOfVar(cr,uid,'RN_A3_3_xx',1,2) )",
273         'RN_A3_3_3':"abs(sumAll(cr,uid,'34','34','n-1'))-abs(sumAll(cr,uid,'394','394','n-1') )",
274         'RN_A3_4_1':"abs(sumAll(cr,uid,'35','36','n') )",
275         'RN_A3_4_2':"abs(sumAll(cr,uid,'395','396','n') )",
276         'RN_ZCL_28':"abs( diffOfVar(cr,uid,'RN_A3_4_xx',1,2) )",
277         'RN_A3_4_3':"abs(sumAll(cr,uid,'35','36','n-1'))-abs(sumAll(cr,uid,'395','396','n-1') )",
278         'RN_A3_5_1':"abs(sumAll(cr,uid,'37','38','n') )",
279         'RN_A3_5_2':"abs(sumAll(cr,uid,'397','399','n') )",
280         'RN_ZCL_29':"abs( diffOfVar(cr,uid,'RN_A3_5_xx',1,2) )",
281         'RN_A3_5_3':"abs(sumAll(cr,uid,'37','38','n-1'))-abs(sumAll(cr,uid,'397','399','n-1') )",
282         'RN_A3_6_1':"abs(sumAll(cr,uid,'4090','4095','n') )",
283         'RN_A3_6_2':"abs(sumAll(cr,uid,'490','490','n') )",
284         'RN_ZCL_30':"abs( diffOfVar(cr,uid,'RN_A3_6_xx',1,2) )",
285         'RN_A3_6_3':"abs(sumAll(cr,uid,'4090','4095','n-1'))-abs(sumAll(cr,uid,'490','490','n-1') )",
286         'RN_A3_7_1':"abs(sumDebtor(cr,uid,'410','418','n') )",
287         'RN_A3_7_2':"abs(sumAll(cr,uid,'491','494','n') )",
288         'RN_ZCL_31 ':"abs( diffOfVar(cr,uid,'RN_A3_7_xx',1,2) )",
289         'RN_A3_7_3':"abs(sumDebtor(cr,uid,'410','418','n-1'))-abs(sumAll(cr,uid,'491','494','n-1') )",
290         'RN_A3_8_1':"abs(sumDebtor(cr,uid,'400','408','n'))-abs(sumAll(cr,uid,'4096','4099','n'))+abs(sumDebtor(cr,uid,'420','426','n'))+abs(sumAll(cr,uid,'4287','4299','n'))+abs(sumDebtor(cr,uid,'43','43','n'))+abs(sumDebtor(cr,uid,'44','44','n'))+abs(sumDebtor(cr,uid,'450','453','n'))+abs(sumDebtor(cr,uid,'4550','4561','n'))+abs(sumDebtor(cr,uid,'4563','4599','n'))-abs(sumAll(cr,uid,'460','463','n'))-abs(sumAll(cr,uid,'465','466','n'))+abs(sumDebtor(cr,uid,'467','467','n'))+abs(sumDebtor(cr,uid,'4687','4699','n'))+abs(sumDebtor(cr,uid,'470','475','n'))+abs(sumDebtor(cr,uid,'478','479','n') )",
291         'RN_A3_8_2':"abs(sumAll(cr,uid,'495','499','n') )",
292         'RN_ZCL_32':"abs( diffOfVar(cr,uid,'RN_A3_8_xx',1,2) )",
293         'RN_A3_8_3':"abs(sumDebtor(cr,uid,'400','408','n-1'))-abs(sumAll(cr,uid,'4096','4099','n-1'))+abs(sumDebtor(cr,uid,'420','426','n-1'))+abs(sumAll(cr,uid,'4287','4299','n-1'))+abs(sumDebtor(cr,uid,'43','43','n-1'))+abs(sumDebtor(cr,uid,'44','44','n-1'))+abs(sumDebtor(cr,uid,'450','453','n-1'))+abs(sumDebtor(cr,uid,'4550','4561','n-1'))+abs(sumDebtor(cr,uid,'4563','4599','n-1'))-abs(sumAll(cr,uid,'460','463','n-1'))-abs(sumAll(cr,uid,'465','466','n-1'))+abs(sumDebtor(cr,uid,'467','467','n-1'))+abs(sumDebtor(cr,uid,'4687','4699','n-1'))+abs(sumDebtor(cr,uid,'470','475','n-1'))+abs(sumDebtor(cr,uid,'478','479','n-1'))",
294         'RN_A3_9_1':"abs(sumDebtor(cr,uid,'4562','4562','n') )",
295         'RN_A3_9_2':"abs(0 )",
296         'RN_ZCL_33':"abs( diffOfVar(cr,uid,'RN_A3_9_xx',1,2) )",
297         'RN_A3_9_3':"abs(sumDebtor(cr,uid,'4562','4562','n-1') )",
298         'RN_A3_10_1':"abs(sumAll(cr,uid,'500','508','n') )",
299         'RN_A3_10_2':"abs(sumAll(cr,uid,'59','59','n') )",
300         'RN_ZCL_34':"abs( diffOfVar(cr,uid,'RN_A3_10_xx',1,2) )",
301         'RN_A3_10_3':"abs(sumAll(cr,uid,'500','508','n-1'))-abs(sumAll(cr,uid,'59','59','n-1') )",
302         'RN_A3_11_1':"abs(sumAll(cr,uid,'510','511','n'))+abs(sumDebtor(cr,uid,'512','514','n'))+abs(sumAll(cr,uid,'515','516','n'))+abs(sumDebtor(cr,uid,'517','517','n'))+abs(sumAll(cr,uid,'5187','5189','n'))+abs(sumAll(cr,uid,'52','58','n') )",
303         'RN_A3_11_2':"abs(0 )",
304         'RN_ZCL_35':"abs( diffOfVar(cr,uid,'RN_A3_11_xx',1,2) )",
305         'RN_A3_11_3':"abs(sumAll(cr,uid,'510','511','n-1'))+abs(sumDebtor(cr,uid,'512','514','n-1'))+abs(sumAll(cr,uid,'515','516','n-1'))+abs(sumDebtor(cr,uid,'517','517','n-1'))+abs(sumAll(cr,uid,'5187','5189','n-1'))+abs(sumAll(cr,uid,'52','58','n-1') )",
306         'RN_A3_12_1':"abs(sumAll(cr,uid,'486','486','n'))+abs(sumAll(cr,uid,'4886','4886','n') )",
307         'RN_A3_12_2':"abs(0 )",
308         'RN_ZCL_36':"abs( diffOfVar(cr,uid,'RN_A3_1_xx',1,2) )",
309         'RN_A3_12_3':"abs(sumAll(cr,uid,'486','486','n-1'))+abs(sumAll(cr,uid,'4886','4886','n-1') )",
310         'RN_ZCL_37':"abs(sumOfVar(cr,uid,'RN_A3_xx_1',1,12) )",
311         'RN_ZCL_38':"abs(sumOfVar(cr,uid,'RN_A3_xx_2',1,12) )",
312         'RN_ZCL_39':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',25,36) )",
313         'RN_ZCL_40':"abs(sumOfVar(cr,uid,'RN_A3_xx_3',1,12) )",
314         'RN_A4_1_1':"abs(sumAll(cr,uid,'480','485','n') )",
315         'RN_ZCL_41':"abs(sumAll(cr,uid,'480','485','n') )",
316         'RN_A4_1_2':"abs(sumAll(cr,uid,'480','485','n-1') )",
317         'RN_A4_2_1':"abs(sumAll(cr,uid,'169','169','n') )",
318         'RN_ZCL_42':"abs(sumAll(cr,uid,'169','169','n') )",
319         'RN_A4_2_2':"abs(sumAll(cr,uid,'169','169','n-1') )",
320         'RN_A4_3_1':"abs(sumAll(cr,uid,'476','476','n') )",
321         'RN_ZCL_43':"abs(sumAll(cr,uid,'476','476','n') )",
322         'RN_A4_3_2':"abs(sumAll(cr,uid,'476','476','n-1') )",
323         'RN_ZCL_44':"abs(sumOfVar(cr,uid,'RN_A4_xx_1',1,3)) +abs(sumOfVar(cr,uid,'RN_A2_xx_1',1,1)) + abs(sumOfVar(cr,uid,'RN_ZCL_xx',20,20)) + abs(sumOfVar(cr,uid,'RN_ZCL_xx',37,37) )",
324         'RN_ZCL_45':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',22,22)) +abs(sumOfVar(cr,uid,'RN_ZCL_xx',38,38))",
325         'RN_ZCL_46':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',1,1)) +abs(sumOfVar(cr,uid,'RN_ZCL_xx',23,23)) +abs(sumOfVar(cr,uid,'RN_ZCL_xx',39,39)) +abs(sumOfVar(cr,uid,'RN_ZCL_xx',41,43) )",
326         'RN_ZCL_47':"abs(sumOfVar(cr,uid,'RN_A2_xx_2',1,1)) + abs(sumOfVar(cr,uid,'RN_ZCL_xx',24,24)) +abs(sumOfVar(cr,uid,'RN_ZCL_xx',40,40)) +abs(sumOfVar(cr,uid,'RN_A4_xx_2',1,3) )",
327         'RN_A5_1_1':"abs(sumAll(cr,uid,'206','206','n') )",
328         'RN_A5_2_1':"abs(sumAll(cr,uid,'0','0','n') )",
329         'RN_A5_1_2':"abs(sumAll(cr,uid,'0','0','n') )",
330         'RN_A5_2_2':"abs(sumAll(cr,uid,'0','0','n') )",
331         'RN_A5_1_3':"abs(sumAll(cr,uid,'0','0','n') )",
332         'RN_A5_2_3':"abs(sumAll(cr,uid,'0','0','n') )",
333         'RN_B1_1_3':"abs(sumAll(cr,uid,'1013','1013','n'))",
334         'RN_B1_1_1':"abs(sumAll(cr,uid,'100','103','n'))+abs(sumAll(cr,uid,'108','108','n') )",
335         'RN_B1_1_2':"abs(sumAll(cr,uid,'100','103','n-1'))+abs(sumAll(cr,uid,'108','108','n-1') )",
336         'RN_B1_2_1':"abs(sumAll(cr,uid,'104','104','n') )",
337         'RN_B1_2_2':"abs(sumAll(cr,uid,'104','104','n-1') )",
338         'RN_B1_3_1':"abs(sumAll(cr,uid,'105','105','n'))+abs(sumAll(cr,uid,'107','107','n') )",
339         'RN_B1_3_2':"abs(sumAll(cr,uid,'105','105','n-1'))+abs(sumAll(cr,uid,'107','107','n-1') )",
340         'RN_B1_3_3':"abs(sumAll(cr,uid,'107','107','n-1') )",
341         'RN_B1_4_1':"abs(sumAll(cr,uid,'1060','1061','n') )",
342         'RN_B1_4_2':"abs(sumAll(cr,uid,'1060','1061','n-1') )",
343         'RN_B1_5_1':"abs(sumAll(cr,uid,'1063','1063','n') )",
344         'RN_B1_5_2':"abs(sumAll(cr,uid,'1063','1063','n-1') )",
345         'RN_B1_6_1':"abs(sumAll(cr,uid,'1062','1062','n'))+abs(sumAll(cr,uid,'1064','1067','n') )",
346         'RN_B1_6_2':"abs(sumAll(cr,uid,'1062','1062','n-1'))+abs(sumAll(cr,uid,'1064','1067','n-1') )",
347         'RN_B1_6_3':"abs(sumAll(cr,uid,'0','0','n') )",
348         'RN_B1_7_1':"abs(sumAll(cr,uid,'1068','1079','n') )",
349         'RN_B1_7_2':"abs(sumAll(cr,uid,'1068','1079','n-1') )",
350         'RN_B1_7_3':"abs(sumAll(cr,uid,'0','0','n') )",
351         'RN_B1_8_1':"-(sumAll(cr,uid,'11','11','n'))",
352         'RN_B1_8_2':"-(sumAll(cr,uid,'11','11','n-1'))",
353         'RN_ZCL_47bis':"abs(sumAll(cr,uid,'7','7','n')) -abs(sumAll(cr,uid,'6','6','n')) + abs(sumCreditor(cr,uid,'120','120','n')) - abs(sumDebtor(cr,uid,'120','120','n'))",
354         'RN_ZCL_47ter':"abs(sumAll(cr,uid,'7','7','n-1')) -abs(sumAll(cr,uid,'6','6','n-1')) + abs(sumCreditor(cr,uid,'120','120','n-1')) - abs(sumDebtor(cr,uid,'120','120','n-1'))",
355         'RN_B1_10_1':"abs(sumAll(cr,uid,'13','13','n') )",
356         'RN_B1_10_2':"abs(sumAll(cr,uid,'13','13','n-1') )",
357         'RN_B1_11_1':"abs(sumAll(cr,uid,'14','14','n') )",
358         'RN_B1_11_2':"abs(sumAll(cr,uid,'14','14','n-1') )",
359         'RN_ZCL_48':"abs(sumOfVar(cr,uid,'RN_B1_xx_1',1,11))+abs(sumOfVar(cr,uid,'RN_ZCL_xxbis',47,47) )",
360         'RN_ZCL_49':"abs(sumOfVar(cr,uid,'RN_B1_xx_2',1,11))+abs(sumOfVar(cr,uid,'RN_ZCL_xxter',47,47) )",
361         'RN_B1_12_1':"abs(sumAll(cr,uid,'1670','1673','n') )",
362         'RN_B1_12_2':"abs(sumAll(cr,uid,'1670','1673','n-1') )",
363         'RN_B1_13_1':"abs(sumAll(cr,uid,'1674','1674','n') )",
364         'RN_B1_13_2':"abs(sumAll(cr,uid,'1674','1674','n-1') )",
365         'RN_ZCL_50':"abs(sumOfVar(cr,uid,'RN_xx_1',12,13) )",
366         'RN_ZCL_51':"abs(sumOfVar(cr,uid,'RN_xx_2',12,13) )",
367         'RN_B1_14_1':"abs(sumAll(cr,uid,'150','152','n') )",
368         'RN_B1_14_2':"abs(sumAll(cr,uid,'150','152','n-1') )",
369         'RN_B1_15_1':"abs(sumAll(cr,uid,'153','159','n') )",
370         'RN_B1_15_2':"abs(sumAll(cr,uid,'153','159','n-1') )",
371         'RN_ZCL_52':"abs(sumOfVar(cr,uid,'RN_B1_xx_1',14,15) )",
372         'RN_ZCL_53':"abs(sumOfVar(cr,uid,'RN_B1_xx_2',14,15) )",
373         'RN_B1_16_1':"abs(sumAll(cr,uid,'160','162','n'))+abs(sumAll(cr,uid,'16880','16882','n') )",
374         'RN_B1_16_2':"abs(sumAll(cr,uid,'160','162','n-1'))+abs(sumAll(cr,uid,'16880','16882','n-1') )",
375         'RN_B1_17_1':"abs(sumAll(cr,uid,'163','163','n'))+abs(sumAll(cr,uid,'16883','16883','n') )",
376         'RN_B1_17_2':"abs(sumAll(cr,uid,'163','163','n-1'))+abs(sumAll(cr,uid,'16883','16883','n-1') )",
377         'RN_B1_18_1':"abs(sumAll(cr,uid,'164','164','n'))+abs(sumAll(cr,uid,'16884','16884','n'))+abs(sumCreditor(cr,uid,'512','514','n'))+abs(sumCreditor(cr,uid,'517','517','n'))+abs(sumAll(cr,uid,'5180','5186','n'))+abs(sumAll(cr,uid,'519','519','n') )",
378         'RN_B1_18_2':"abs(sumAll(cr,uid,'164','164','n-1'))+abs(sumAll(cr,uid,'16884','16884','n-1'))+abs(sumCreditor(cr,uid,'512','514','n-1'))+abs(sumCreditor(cr,uid,'517','517','n-1'))+abs(sumAll(cr,uid,'5180','5186','n-1'))+abs(sumAll(cr,uid,'519','519','n-1') )",
379         'RN_B1_19_1':"abs(sumAll(cr,uid,'165','165','n'))+abs(sumAll(cr,uid,'166','166','n'))+abs(sumAll(cr,uid,'1675','1687','n'))+abs(sumAll(cr,uid,'16885','16885','n'))+abs(sumAll(cr,uid,'16886','16899','n'))+abs(sumCreditor(cr,uid,'455','459','n'))+abs(sumAll(cr,uid,'17','19','n') )",
380         'RN_B1_19_2':"abs(sumAll(cr,uid,'165','165','n-1'))+abs(sumAll(cr,uid,'166','166','n-1'))+abs(sumAll(cr,uid,'1675','1687','n-1'))+abs(sumAll(cr,uid,'16885','16885','n-1'))+abs(sumAll(cr,uid,'16886','16899','n-1'))+abs(sumCreditor(cr,uid,'455','459','n-1'))+abs(sumAll(cr,uid,'17','19','n-1') )",
381         'RN_B1_19_3':"abs(sumAll(cr,uid,'1675','1675','n') )",
382         'RN_B1_20_1':"abs(sumAll(cr,uid,'4190','4195','n') )",
383         'RN_B1_20_2':"abs(sumAll(cr,uid,'4190','4195','n-1') )",
384         'RN_B1_21_1':"abs(sumCreditor(cr,uid,'400','403','n'))+abs(sumCreditor(cr,uid,'408','408','n'))+abs(sumCreditor(cr,uid,'4084','4087','n') )",
385         'RN_B1_21_2':"abs(sumCreditor(cr,uid,'400','403','n-1'))+abs(sumCreditor(cr,uid,'408','408','n-1'))+abs(sumCreditor(cr,uid,'4084','4087','n-1') )",
386         'RN_B1_22_1':"abs(sumCreditor(cr,uid,'420','425','n'))+abs(sumCreditor(cr,uid,'426','4286','n'))+abs(sumCreditor(cr,uid,'43','43','n'))+abs(sumCreditor(cr,uid,'44','44','n') )",
387         'RN_B1_22_2':"abs((sumCreditor(cr,uid,'420','425','n-1'))+abs(sumCreditor(cr,uid,'426','4286','n-1'))+abs(sumCreditor(cr,uid,'43','43','n-1'))+abs(sumCreditor(cr,uid,'44','44','n-1')) )",
388         'RN_B1_23_1':"abs(sumAll(cr,uid,'269','269','n'))+abs(sumAll(cr,uid,'279','279','n'))+abs(sumCreditor(cr,uid,'404','407','n'))+abs(sumCreditor(cr,uid,'4084','4087','n') )",
389         'RN_B1_23_2':"abs(sumAll(cr,uid,'269','269','n-1'))+abs(sumAll(cr,uid,'279','279','n-1'))+abs(sumCreditor(cr,uid,'404','407','n-1'))+abs(sumCreditor(cr,uid,'4084','4087','n-1') )",
390         'RN_B1_24_1':"abs(sumCreditor(cr,uid,'410','418','n'))+abs(sumAll(cr,uid,'4196','4199','n'))+abs(sumCreditor(cr,uid,'450','453','n'))+abs(sumAll(cr,uid,'454','454','n'))+abs(sumAll(cr,uid,'464','464','n'))+abs(sumCreditor(cr,uid,'467','467','n'))+abs(sumAll(cr,uid,'4680','4686','n'))+abs(sumCreditor(cr,uid,'470','475','n'))+abs(sumCreditor(cr,uid,'478','479','n'))+abs(sumCreditor(cr,uid,'509','509','n') )",
391         'RN_B1_24_2':"abs(sumCreditor(cr,uid,'410','418','n-1'))+abs(sumAll(cr,uid,'4196','4199','n-1'))+abs(sumCreditor(cr,uid,'450','453','n-1'))+abs(sumAll(cr,uid,'454','454','n-1'))+abs(sumAll(cr,uid,'464','464','n-1'))+abs(sumCreditor(cr,uid,'467','467','n-1'))+abs(sumAll(cr,uid,'4680','4686','n-1'))+abs(sumCreditor(cr,uid,'470','475','n-1'))+abs(sumCreditor(cr,uid,'478','479','n-1'))+abs(sumCreditor(cr,uid,'509','509','n-1') )",
392         'RN_B1_25_1':"abs(sumAll(cr,uid,'487','487','n'))+abs(sumAll(cr,uid,'4880','4885','n'))+abs(sumAll(cr,uid,'4887','4899','n'))",
393         'RN_B1_25_2':"abs(sumAll(cr,uid,'487','487','n-1'))+abs(sumAll(cr,uid,'4880','4885','n-1'))+abs(sumAll(cr,uid,'4887','4899','n-1') )",
394         'RN_ZCL_54':"abs(sumOfVar(cr,uid,'RN_B1_xx_1',16,25) )",
395         'RN_ZCL_55':"abs(sumOfVar(cr,uid,'RN_B1_xx_2',16,25) )",
396         'RN_B1_26_1':"abs(sumAll(cr,uid,'477','477','n') )",
397         'RN_B1_26_2':"abs(sumAll(cr,uid,'477','477','n-1') )",
398         'RN_ZCL_56':"abs(sumOfVar(cr,uid,'RN_B1_xx_1',1,11))+abs(sumOfVar(cr,uid,'RN_ZCL_xxbis',47,47))+abs(sumOfVar(cr,uid,'RN_xx_1',12,13))+abs(sumOfVar(cr,uid,'RN_B1_xx_1',14,15))+abs(sumOfVar(cr,uid,'RN_B1_xx_1',16,25))+abs(sumAll(cr,uid,'477','477','n') )",
399         'RN_ZCL_57':"abs(sumOfVar(cr,uid,'RN_B1_xx_2',1,11))+abs(sumOfVar(cr,uid,'RN_ZCL_xxter',47,47))+abs(sumOfVar(cr,uid,'RN_xx_2',12,13))+abs(sumOfVar(cr,uid,'RN_B1_xx_2',14,15))+abs(sumOfVar(cr,uid,'RN_B1_xx_2',16,25))+abs(sumAll(cr,uid,'477','477','n-1') )",
400         'RN_B1_27_1':"abs(sumAll(cr,uid,'0','0','n') )",
401         'RN_B1_27_2':"abs(sumAll(cr,uid,'0','0','n-1') )",
402         'RN_B1_28_1':"abs(sumAll(cr,uid,'1051','1051','n') )",
403         'RN_B1_28_2':"abs(sumAll(cr,uid,'1051','1051','n-1') )",
404         'RN_B1_29_1':"abs(sumAll(cr,uid,'1052','1052','n') )",
405         'RN_B1_29_2':"abs(sumAll(cr,uid,'1052','1052','n-1') )",
406         'RN_B1_30_1':"abs(sumAll(cr,uid,'1053','1053','n') )",
407         'RN_B1_30_2':"abs(sumAll(cr,uid,'1053','1053','n-1') )",
408         'RN_B1_31_1':"abs(sumAll(cr,uid,'0','0','n') )",
409         'RN_B1_31_2':"abs(sumAll(cr,uid,'0','0','n-1') )",
410         'RN_B1_32_1':"abs(sumAll(cr,uid,'0','0','n') )",
411         'RN_B1_32_2':"abs(sumAll(cr,uid,'0','0','n-1') )",
412         'RN_B1_33_1':"abs(sumCreditor(cr,uid,'512','514','n') )",
413         'RN_B1_33_2':"abs(sumCreditor(cr,uid,'512','514','n-1') )",
414         'RN_C1_1_1':"abs(sumAll(cr,uid,'707','707','n'))+abs(sumAll(cr,uid,'7097','7097','n') )",
415         'RN_C1_1_2':"abs(sumAll(cr,uid,'0','0','n') )",
416         'RN_ZCL_58':"abs(sumOfVar(cr,uid,'RN_C1_1_xx',1,2) )",
417         'N_C1_1_4':"abs(sumAll(cr,uid,'707','707','n-1'))+abs(sumAll(cr,uid,'7097','7097','n-1'))+abs(sumAll(cr,uid,'0','0','n-1') )",
418         'RN_C1_2_1':"abs(sumAll(cr,uid,'700','703','n'))+abs(sumAll(cr,uid,'7090','7093','n') )",
419         'RN_C1_2_2':"abs(sumAll(cr,uid,'0','0','n') )",
420         'RN_ZCL_59':"abs(sumOfVar(cr,uid,'RN_C1_2_xx',1,2) )",
421         'RN_C1_2_4':"abs(sumAll(cr,uid,'700','703','n-1'))+abs(sumAll(cr,uid,'7090','7093','n-1'))+abs(sumAll(cr,uid,'0','0','n-1') )",
422         'RN_C1_3_1':"abs(sumAll(cr,uid,'704','706','n'))+abs(sumAll(cr,uid,'708','708','n'))+abs(sumAll(cr,uid,'7095','7096','n'))+abs(sumAll(cr,uid,'7098','7099','n') )",
423         'RN_C1_3_2':"abs(sumAll(cr,uid,'0','0','n') )",
424         'RN_ZCL_60':"abs(sumOfVar(cr,uid,'RN_C1_3_xx',1,2) )",
425         'RN_C1_3_4':"abs(sumAll(cr,uid,'704','706','n-1'))+abs(sumAll(cr,uid,'708','708','n-1'))+abs(sumAll(cr,uid,'7095','7096','n-1'))+abs(sumAll(cr,uid,'7098','7099','n-1'))+abs(sumAll(cr,uid,'0','0','n-1') )",
426         'RN_ZCL_61':"abs(sumOfVar(cr,uid,'RN_C1_xx_1',1,3) )",
427         'RN_ZCL_62':"abs(sumOfVar(cr,uid,'RN_C1_xx_2',1,3) )",
428         'RN_ZCL_63':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',61,62) )",
429         'RN_ZCL_64':"abs(sumOfVar(cr,uid,'RN_C1_xx_4',1,3) )",
430         'RN_C2_1_1':"abs(sumAll(cr,uid,'71','71','n') )",
431         'RN_C2_1_2':"abs(sumAll(cr,uid,'71','71','n-1') )",
432         'RN_C2_2_1':"abs(sumAll(cr,uid,'72','72','n') )",
433         'RN_C2_2_2':"abs(sumAll(cr,uid,'72','72','n-1') )",
434         'RN_C2_3_1':"abs(sumAll(cr,uid,'74','74','n') )",
435         'RN_C2_3_2':"abs(sumAll(cr,uid,'74','74','n-1') )",
436         'RN_C2_4_1':"abs(sumAll(cr,uid,'780','785','n'))+abs(sumAll(cr,uid,'790','795','n') )",
437         'RN_C2_4_2':"abs(sumAll(cr,uid,'780','785','n-1'))+abs(sumAll(cr,uid,'790','795','n-1') )",
438         'RN_C2_5_1':"abs(sumAll(cr,uid,'73','73','n'))+abs(sumAll(cr,uid,'750','754','n'))+abs(sumAll(cr,uid,'756','759','n') )",
439         'RN_C2_5_2':"abs(sumAll(cr,uid,'73','73','n-1'))+abs(sumAll(cr,uid,'750','754','n-1'))+abs(sumAll(cr,uid,'756','759','n-1') )",
440         'RN_ZCL_65':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',63,63))+abs(sumOfVar(cr,uid,'RN_C2_xx_1',1,5) )",
441         'RN_ZCL_66':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',64,64))+abs(sumOfVar(cr,uid,'RN_C2_xx_2',1,5) )",
442         'RN_C3_1_1':"abs(sumAll(cr,uid,'607','608','n'))+abs(sumAll(cr,uid,'6097','6097','n') )",
443         'RN_C3_1_2':"abs(sumAll(cr,uid,'607','608','n-1'))+abs(sumAll(cr,uid,'6097','6097','n-1') )",
444         'RN_C3_2_1':"sumAll(cr,uid,'6037','6039','n')",
445         'RN_C3_2_2':"sumAll(cr,uid,'6037','6039','n-1')",
446         'RN_C3_3_1':"-sumAll(cr,uid,'600','602','n') + sumAll(cr,uid,'6090','6092','n')",
447         'RN_C3_3_2':"-sumAll(cr,uid,'600','602','n-1') + sumAll(cr,uid,'6090','6092','n-1')",
448         'RN_C3_4_1':"sumAll(cr,uid,'6030','6036','n')",
449         'RN_C3_4_2':"sumAll(cr,uid,'6030','6036','n-1')",
450         'RN_C3_5_1':"abs(sumAll(cr,uid,'604','606','n') + sumAll(cr,uid,'6093','6096','n') + sumAll(cr,uid,'6098','6099','n') + sumAll(cr,uid,'61','62','n') )",
451         'RN_C3_5_2':"abs(sumAll(cr,uid,'604','606','n-1') + sumAll(cr,uid,'6093','6096','n-1') + sumAll(cr,uid,'6098','6099','n-1') + sumAll(cr,uid,'61','62','n-1') )",
452         'RN_C3_6_1':"abs(sumAll(cr,uid,'63','63','n') )",
453         'RN_C3_6_2':"abs(sumAll(cr,uid,'63','63','n-1') )",
454         'RN_C3_7_1':"abs(sumAll(cr,uid,'640','644','n') )",
455         'RN_C3_7_2':"abs(sumAll(cr,uid,'640','644','n-1') )",
456         'RN_C3_8_1':"abs(sumAll(cr,uid,'645','647','n'))+abs(sumAll(cr,uid,'648','649','n') )",
457         'RN_C3_8_2':"abs(sumAll(cr,uid,'645','647','n-1'))+abs(sumAll(cr,uid,'648','649','n-1') )",
458         'RN_C3_9_1':"abs(sumAll(cr,uid,'6800','6814','n') )",
459         'RN_C3_9_2':"abs(sumAll(cr,uid,'6800','6814','n-1') )",
460         'RN_C3_10_1':"abs(sumAll(cr,uid,'6816','6816','n') )",
461         'RN_C3_10_2':"abs(sumAll(cr,uid,'6816','6816','n-1') )",
462         'RN_C3_11_1':"abs(sumAll(cr,uid,'6817','6859','n') )",
463         'RN_C3_11_2':"abs(sumAll(cr,uid,'6817','6859','n-1') )",
464         'RN_C3_12_1':"abs(sumAll(cr,uid,'6815','6615','n'))",
465         'RN_C3_12_2':"abs(sumAll(cr,uid,'6815','6615','n-1') )",
466         'RN_C3_13_1':"abs(sumAll(cr,uid,'650','654','n'))+abs(sumAll(cr,uid,'656','659','n') )",
467         'RN_C3_13_2':"abs(sumAll(cr,uid,'650','654','n-1'))+abs(sumAll(cr,uid,'656','659','n-1') )",
468         'RN_ZCL_67':"abs(sumOfVar(cr,uid,'RN_C3_xx_1',1,13) )",
469         'RN_ZCL_68':"abs(sumOfVar(cr,uid,'RN_C3_xx_2',1,13) )",
470         'RN_ZCL_69':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',63,63))+abs(sumOfVar(cr,uid,'RN_C2_xx_1',1,5))-abs(sumOfVar(cr,uid,'RN_C3_xx_1',1,13) )",
471         'RN_ZCL_70':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',64,64))+abs(sumOfVar(cr,uid,'RN_C2_xx_2',1,5))-abs(sumOfVar(cr,uid,'RN_C3_xx_2',1,13) )",
472         'RN_C4_1_1':"abs(sumAll(cr,uid,'755','755','n') )",
473         'RN_C4_1_2':"abs(sumAll(cr,uid,'755','755','n-1') )",
474         'RN_C4_2_1':"abs(sumAll(cr,uid,'655','655','n') )",
475         'RN_C4_2_2':"abs(sumAll(cr,uid,'655','655','n-1') )",
476         'RN_C4_3_1':"abs(sumAll(cr,uid,'761','761','n') )",
477         'RN_C4_3_2':"abs(sumAll(cr,uid,'761','761','n-1') )",
478         'RN_C4_4_1':"abs(sumAll(cr,uid,'762','762','n') )",
479         'RN_C4_4_2':"abs(sumAll(cr,uid,'762','762','n-1') )",
480         'RN_C4_5_1':"abs(sumAll(cr,uid,'763','765','n'))+abs(sumAll(cr,uid,'768','769','n') )",
481         'RN_C4_5_2':"abs(sumAll(cr,uid,'763','765','n-1'))+abs(sumAll(cr,uid,'768','769','n-1') )",
482         'RN_C4_6_1':"abs(sumAll(cr,uid,'786','786','n'))+abs(sumAll(cr,uid,'796','796','n') )",
483         'RN_C4_6_2':"abs(sumAll(cr,uid,'786','786','n-1'))+abs(sumAll(cr,uid,'796','796','n-1') )",
484         'RN_C4_7_1':"abs(sumAll(cr,uid,'766','766','n'))",
485         'RN_C4_7_2':"abs(sumAll(cr,uid,'766','766','n-1') )",
486         'RN_C4_8_1':"abs(sumAll(cr,uid,'767','767','n') )",
487         'RN_C4_8_2':"abs(sumAll(cr,uid,'767','767','n-1') )",
488         'RN_ZCL_71':"abs(sumOfVar(cr,uid,'RN_C4_xx_1',3,8) )",
489         'RN_ZCL_72':"abs(sumOfVar(cr,uid,'RN_C4_xx_2',3,8) )",
490         'RN_C5_1_1':"abs(sumAll(cr,uid,'686','686','n') )",
491         'RN_C5_1_2':"abs(sumAll(cr,uid,'686','686','n-1') )",
492         'RN_C5_2_1':"abs(sumAll(cr,uid,'660','665','n'))+abs(sumAll(cr,uid,'668','669','n') )",
493         'RN_C5_2_2':"abs(sumAll(cr,uid,'660','665','n-1'))+abs(sumAll(cr,uid,'668','669','n-1') )",
494         'RN_C5_3_1':"abs(sumAll(cr,uid,'666','666','n') )",
495         'RN_C5_3_2':"abs(sumAll(cr,uid,'666','666','n-1') )",
496         'RN_C5_4_1':"abs(sumAll(cr,uid,'667','667','n') )",
497         'RN_C5_4_2':"abs(sumAll(cr,uid,'667','667','n-1') )",
498         'RN_ZCL_73':"abs(sumOfVar(cr,uid,'RN_C5_xx_1',1,4) )",
499         'RN_ZCL_74':"abs(sumOfVar(cr,uid,'RN_C5_xx_2',1,4) )",
500         'RN_ZCL_75':"sumOfVar(cr,uid,'RN_C4_xx_1',3,8)-sumOfVar(cr,uid,'RN_C5_xx_1',1,4)",
501         'RN_ZCL_76':"sumOfVar(cr,uid,'RN_C4_xx_2',3,8)-sumOfVar(cr,uid,'RN_C5_xx_2',1,4)",
502         'RN_ZCL_77':"sumOfVar(cr,uid,'RN_ZCL_xx',65,65) - sumOfVar(cr,uid,'RN_ZCL_xx',67,67) + sumAll(cr,uid,'755','755','n') - sumAll(cr,uid,'655','655','n') + sumOfVar(cr,uid,'RN_ZCL_xx',71,71) - sumOfVar(cr,uid,'RN_ZCL_xx',73,73)",
503         'RN_ZCL_78':"sumOfVar(cr,uid,'RN_ZCL_xx',66,66) - sumOfVar(cr,uid,'RN_ZCL_xx',68,68) + sumAll(cr,uid,'755','755','n-1') - sumAll(cr,uid,'655','655','n-1') + sumOfVar(cr,uid,'RN_ZCL_xx',72,72) - sumOfVar(cr,uid,'RN_ZCL_xx',74,74)",
504         'RN_D1_1_1':"abs(sumAll(cr,uid,'770','774','n') )",
505         'RN_D1_1_2':"abs(sumAll(cr,uid,'770','774','n-1') )",
506         'RN_D1_2_1':"abs(sumAll(cr,uid,'775','779','n') )",
507         'RN_D1_2_2':"abs(sumAll(cr,uid,'775','779','n-1') )",
508         'RN_D1_3_1':"abs(sumAll(cr,uid,'787','789','n'))+abs(sumAll(cr,uid,'797','799','n') )",
509         'RN_D1_3_2':"abs(sumAll(cr,uid,'787','789','n-1'))+abs(sumAll(cr,uid,'797','799','n-1') )",
510         'RN_ZCL_79':"abs(sumOfVar(cr,uid,'RN_D1_xx_1',1,3) )",
511         'RN_ZCL_80':"abs(sumOfVar(cr,uid,'RN_D1_xx_2',1,3) )",
512         'RN_D1_4_1':"abs(sumAll(cr,uid,'670','674','n') )",
513         'RN_D1_4_2':"abs(sumAll(cr,uid,'670','674','n-1') )",
514         'RN_D1_5_1':"abs(sumAll(cr,uid,'675','679','n') )",
515         'RN_D1_5_2':"abs(sumAll(cr,uid,'675','679','n-1') )",
516         'RN_D1_6_1':"abs(sumAll(cr,uid,'687','689','n') )",
517         'RN_D1_6_2':"abs(sumAll(cr,uid,'687','689','n-1') )",
518         'RN_ZCL_81':"abs(sumOfVar(cr,uid,'RN_D1_xx_1',4,6) )",
519         'RN_ZCL_82':"abs(sumOfVar(cr,uid,'RN_D1_xx_2',4,6) )",
520         'RN_ZCL_83':"sumOfVar(cr,uid,'RN_D1_xx_1',1,3) - sumOfVar(cr,uid,'RN_D1_xx_1',4,6)",
521         'RN_ZCL_84':"sumOfVar(cr,uid,'RN_D1_xx_2',1,3) - sumOfVar(cr,uid,'RN_D1_xx_2',4,6)",
522         'RN_D1_7_1':"abs(sumAll(cr,uid,'690','694','n') )",
523         'RN_D1_7_2':"abs(sumAll(cr,uid,'690','694','n-1') )",
524         'RN_D1_8_1':"sumAll(cr,uid,'695','699','n') " ,
525         'RN_D1_8_2':"sumAll(cr,uid,'695','699','n-1')",
526         'RN_ZCL_85':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',65,65) + sumOfVar(cr,uid,'RN_C4_xx_1',1,1) + sumOfVar(cr,uid,'RN_ZCL_xx',71,71) + sumOfVar(cr,uid,'RN_ZCL_xx',79,79) )",
527         'RN_ZCL_86':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',66,66) + sumOfVar(cr,uid,'RN_C4_xx_1',1,1) + sumOfVar(cr,uid,'RN_ZCL_xx',72,72) + sumOfVar(cr,uid,'RN_ZCL_xx',80,80) )",
528         'RN_ZCL_87':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',67,67) + sumOfVar(cr,uid,'RN_C4_xx_1',2,2) + sumOfVar(cr,uid,'RN_ZCL_xx',73,73) + sumOfVar(cr,uid,'RN_ZCL_xx',81,81) + sumOfVar(cr,uid,'RN_D1_xx_1',7,7) + sumOfVar(cr,uid,'RN_D1_xx_1',8,8) )",
529         'RN_ZCL_88':"abs(sumOfVar(cr,uid,'RN_ZCL_xx',68,68) + sumOfVar(cr,uid,'RN_C4_xx_2',2,2) + sumOfVar(cr,uid,'RN_ZCL_xx',74,74) + sumOfVar(cr,uid,'RN_ZCL_xx',82,82) + sumOfVar(cr,uid,'RN_D1_xx_2',7,7) + sumOfVar(cr,uid,'RN_D1_xx_2',8,8) )",
530         'RN_ZCL_89':"sumOfVar(cr,uid,'RN_ZCL_xx',85,85) - sumOfVar(cr,uid,'RN_ZCL_xx',87,87)",
531         'RN_ZCL_90':"sumOfVar(cr,uid,'RN_ZCL_xx',86,86) - sumOfVar(cr,uid,'RN_ZCL_xx',88,88)",
532         }
533
534     key=val_dict.keys()
535     key.sort()
536     for k in key:
537         varname = k
538         vardef = val_dict[k]
539         val = eval(val_dict[varname])
540         mytable[varname] = float(val)
541     for i in mytable:
542         mytable[i] = int(mytable[i])
543
544     mytable['DATE_CLOT_1']=start_date_year_n[3]
545     mytable['DATE_CLOT_2']=start_date_year_n[2]
546     mytable['DATE_CLOT_3']=start_date_year_n[1]
547     mytable['DATE_CLOT_4']=start_date_year_n[0]
548     mytable['DATE_CLOT_5']=start_date_year_n[6]
549     mytable['DATE_CLOT_6']=start_date_year_n[5]
550     mytable['DATE_CLOT_7']=start_date_year_n[9]
551     mytable['DATE_CLOT_8']=start_date_year_n[8]
552
553     mytable['IDENT_DEST_1']=company_name
554
555     ad = tools.config['addons_path']
556     fpath=ad+"/l10n_fr/wizard/fpdftemp.fdf"
557     outfile=ad+"/l10n_fr/wizard/2050x.pdf"
558     fpdftemp = open(fpath,"w")
559     write_fields(fpdftemp,mytable)
560     fpdftemp.close()
561     import threading
562     def pr_report(self):
563         os.system('evince output.pdf')
564     os.system('pdftk %s fill_form %s output output.pdf flatten'% (outfile,fpath))
565     report_th = threading.Thread(target=pr_report, args=('a'))
566     report_th.start()
567 #    os.system('evince output.pdf')
568     return {}
569
570
571 def _get_defaults(self, cr, uid, data, context):
572     fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
573     data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
574
575     user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
576     if user.company_id:
577         company_id = user.company_id.id
578     else:
579         company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
580     data['form']['company_id'] = company_id
581     return data['form']
582
583 class wizard_report(wizard.interface):
584
585     states = {
586         'init': {
587                  'actions': [_get_defaults],
588                  'result': {'type':'form', 'arch':_aged_trial_form, 'fields':_aged_trial_fields, 'state':[('end','Cancel'),('pdf','Print Balance Sheet')]},
589                 },
590         'pdf': {
591                 'actions': [],
592                 'result': {'type':'action', 'action': _test, 'state':'end'},
593                 },
594           }
595 wizard_report('account.chart.report')
596
597
598 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
599