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