1 /* ************************************************************************** */
2 /* Fichier qui s'occupe d'afficher les états */
3 /* */
4 /* etats_affiche.c */
5 /* */
6 /* Copyright (C) 2000-2008 Cédric Auger (cedric@grisbi.org) */
7 /* 2004-2008 Benjamin Drieu (bdrieu@april.org) */
8 /* https://www.grisbi.org */
9 /* */
10 /* This program is free software; you can redistribute it and/or modify */
11 /* it under the terms of the GNU General Public License as published by */
12 /* the Free Software Foundation; either version 2 of the License, or */
13 /* (at your option) any later version. */
14 /* */
15 /* This program is distributed in the hope that it will be useful, */
16 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
17 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
18 /* GNU General Public License for more details. */
19 /* */
20 /* You should have received a copy of the GNU General Public License */
21 /* along with this program; if not, write to the Free Software */
22 /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
23 /* */
24 /* ************************************************************************** */
25
26 #ifdef HAVE_CONFIG_H
27 #include "config.h"
28 #endif
29
30 #include "include.h"
31 #include <glib/gi18n.h>
32
33 /*START_INCLUDE*/
34 #include "etats_affiche.h"
35 #include "etats_calculs.h"
36 #include "etats_support.h"
37 #include "grisbi_win.h"
38 #include "gsb_data_account.h"
39 #include "gsb_data_budget.h"
40 #include "gsb_data_category.h"
41 #include "gsb_data_fyear.h"
42 #include "gsb_data_payee.h"
43 #include "gsb_data_payment.h"
44 #include "gsb_data_reconcile.h"
45 #include "gsb_data_report.h"
46 #include "gsb_data_transaction.h"
47 #include "utils_dates.h"
48 #include "navigation.h"
49 #include "gsb_real.h"
50 #include "utils_real.h"
51 #include "utils_str.h"
52 #include "structures.h"
53 #include "etats_config.h"
54 #include "erreur.h"
55 /*END_INCLUDE*/
56
57 /*START_STATIC*/
58 static void etat_affiche_attach_hsep ( int x, int x2, int y, int y2);
59 static void etat_affiche_attach_label ( gchar * text, gint properties, int x, int x2, int y, int y2,
60 GtkJustification align, gint transaction_number );
61 static void etat_affiche_attach_vsep ( int x, int x2, int y, int y2);
62 /*END_STATIC*/
63
64
65
66 static gint titres_affiches;
67
68 /*START_EXTERN*/
69 extern gint ancien_tiers_etat;
70 extern gint ancien_compte_etat;
71 extern gint ancienne_categ_etat;
72 extern gint ancienne_categ_speciale_etat;
73 extern gint ancienne_ib_etat;
74 extern gint ancienne_sous_categ_etat;
75 extern gint ancienne_sous_ib_etat;
76 extern gint changement_de_groupe_etat;
77 extern GDate *date_debut_periode;
78 extern gint debut_affichage_etat;
79 extern gint devise_categ_etat;
80 extern gint devise_compte_en_cours_etat;
81 extern gint devise_generale_etat;
82 extern gint devise_ib_etat;
83 extern gint devise_tiers_etat;
84 extern struct EtatAffichage * etat_affichage_output;
85 extern gint exo_en_cours_etat;
86 extern gint ligne_debut_partie;
87 extern GsbReal montant_categ_etat;
88 extern GsbReal montant_compte_etat;
89 extern GsbReal montant_exo_etat;
90 extern GsbReal montant_ib_etat;
91 extern GsbReal montant_periode_etat;
92 extern GsbReal montant_sous_categ_etat;
93 extern GsbReal montant_sous_ib_etat;
94 extern GsbReal montant_tiers_etat;
95 extern gint nb_colonnes;
96 extern gint nb_ope_categ_etat;
97 extern gint nb_ope_compte_etat;
98 extern gint nb_ope_exo_etat;
99 extern gint nb_ope_general_etat;
100 extern gint nb_ope_ib_etat;
101 extern gint nb_ope_partie_etat;
102 extern gint nb_ope_periode_etat;
103 extern gint nb_ope_sous_categ_etat;
104 extern gint nb_ope_sous_ib_etat;
105 extern gint nb_ope_tiers_etat;
106 extern const gchar *nom_categ_en_cours;
107 extern const gchar *nom_compte_en_cours;
108 extern const gchar *nom_ib_en_cours;
109 extern const gchar *nom_ss_categ_en_cours;
110 extern const gchar *nom_ss_ib_en_cours;
111 extern const gchar *nom_tiers_en_cours;
112 /*END_EXTERN*/
113
114
115 /*****************************************************************************************************/
etat_affiche_affiche_titre(gint ligne)116 gint etat_affiche_affiche_titre ( gint ligne )
117 {
118 gchar *titre;
119 gint report_number;
120
121 report_number = gsb_gui_navigation_get_current_report ();
122 titre = etats_titre (report_number);
123
124 if (gsb_data_report_get_compl_name_used (report_number)
125 &&
126 gsb_data_report_get_compl_name_function (report_number) == 1)
127 {
128 gchar **tab;
129
130 tab = g_strsplit (titre, "\n", 2);
131 etat_affiche_attach_label (tab[0], TEXT_BOLD | TEXT_HUGE, 0, nb_colonnes,
132 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0);
133 etat_affiche_attach_label (tab[1], TEXT_NORMAL, 0, nb_colonnes,
134 ligne + 1, ligne + 2, GTK_JUSTIFY_CENTER, 0);
135 g_strfreev (tab);
136
137 return 2;
138 }
139 else
140 {
141 etat_affiche_attach_label (titre, TEXT_BOLD | TEXT_HUGE, 0, nb_colonnes,
142 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
143
144 return 1;
145 }
146 }
147 /*****************************************************************************************************/
148
149
150 /*****************************************************************************************************/
etat_affiche_affiche_separateur(gint ligne)151 gint etat_affiche_affiche_separateur ( gint ligne )
152 {
153 etat_affiche_attach_hsep ( 0, nb_colonnes, ligne, ligne + 1 );
154 return ligne + 1;
155 }
156 /*****************************************************************************************************/
157
158
159 /*****************************************************************************************************/
160 /* affiche le total à l'endroit donné de la table */
161 /* si les catégories sont affichées */
162 /* retourne la ligne suivante de la table */
163 /*****************************************************************************************************/
etat_affiche_affiche_total_categories(gint ligne)164 gint etat_affiche_affiche_total_categories ( gint ligne )
165 {
166 char * text;
167 gint current_report_number;
168 gchar* tmpstr;
169
170 current_report_number = gsb_gui_navigation_get_current_report ();
171
172 if (gsb_data_report_get_category_show_category_amount (current_report_number))
173 {
174 /* si rien n'est affiché en dessous de la catég, on */
175 /* met le résultat sur la ligne de la catég */
176 /* sinon on fait une barre et on met le résultat */
177
178 if ( gsb_data_report_get_category_show_sub_category (current_report_number)
179 ||
180 gsb_data_report_get_budget_used (current_report_number)
181 ||
182 gsb_data_report_get_account_group_reports (current_report_number)
183 ||
184 gsb_data_report_get_payee_used (current_report_number)
185 ||
186 gsb_data_report_get_show_report_transactions (current_report_number) )
187 {
188 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
189 ligne++;
190
191 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
192 ligne++;
193
194 if ( nom_categ_en_cours )
195 {
196 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
197 {
198 gchar* fmtstr;
199 if ( nb_ope_categ_etat <= 1 )
200 fmtstr = _("Total %s (%d transaction)");
201 else
202 fmtstr = _("Total %s (%d transactions)");
203 text = g_strdup_printf ( fmtstr, nom_categ_en_cours, nb_ope_categ_etat );
204 }
205 else
206 text = g_strconcat ( _("Total "), nom_categ_en_cours, NULL );
207 }
208 else
209 {
210 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
211 {
212 gchar* fmtstr;
213 if ( nb_ope_categ_etat <= 1 )
214 fmtstr = _("Category total (%d transaction): ");
215 else
216 fmtstr = _("Category total (%d transactions): ");
217 text = g_strdup_printf ( fmtstr, nb_ope_categ_etat);
218 }
219 else
220 text = g_strdup ( _("Category total: ") );
221 }
222 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1,
223 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
224 g_free ( text );
225
226 text = utils_real_get_string_with_currency (montant_categ_etat, devise_categ_etat, TRUE );
227 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes,
228 ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
229 g_free ( text );
230 ligne++;
231
232 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
233
234 ligne++;
235 }
236 else
237 {
238 ligne--;
239
240 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
241 {
242 gchar* fmtstr;
243 if ( nb_ope_categ_etat <= 1 )
244 fmtstr = _("%s (%d transaction)");
245 else
246 fmtstr = _("%s (%d transactions)");
247
248 tmpstr = utils_real_get_string_with_currency ( montant_categ_etat,
249 devise_categ_etat, TRUE );
250 text = g_strdup_printf ( fmtstr , tmpstr, nb_ope_categ_etat );
251 g_free ( tmpstr );
252 }
253 else
254 text = utils_real_get_string_with_currency ( montant_categ_etat,
255 devise_categ_etat, TRUE );
256
257 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes,
258 ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
259 g_free ( text );
260
261 ligne++;
262 }
263 }
264
265 montant_categ_etat = null_real;
266 nom_categ_en_cours = NULL;
267 titres_affiches = 0;
268 nb_ope_categ_etat = 0;
269
270 return (ligne );
271 }
272 /*****************************************************************************************************/
273
274
275
276 /*****************************************************************************************************/
277 /* affiche le total à l'endroit donné de la table */
278 /* si les sous_categ sont affichées */
279 /* retourne le ligne suivante de la table */
280 /*****************************************************************************************************/
etat_affiche_affiche_total_sous_categ(gint ligne)281 gint etat_affiche_affiche_total_sous_categ ( gint ligne )
282 {
283 gchar * text;
284 gint current_report_number;
285 gchar* tmpstr;
286
287 current_report_number = gsb_gui_navigation_get_current_report ();
288
289 if (gsb_data_report_get_category_show_sub_category_amount (current_report_number))
290 {
291 /* si rien n'est affiché en dessous de la sous_categ, on */
292 /* met le résultat sur la ligne de la ss categ */
293 /* sinon on fait une barre et on met le résultat */
294
295 if ( gsb_data_report_get_budget_used (current_report_number)
296 ||
297 gsb_data_report_get_account_group_reports (current_report_number)
298 ||
299 gsb_data_report_get_payee_used (current_report_number)
300 ||
301 gsb_data_report_get_show_report_transactions (current_report_number))
302 {
303 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
304 ligne++;
305
306 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
307 ligne++;
308
309 if ( nom_categ_en_cours
310 &&
311 nom_ss_categ_en_cours )
312 {
313 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
314 {
315 gchar* fmtstr;
316 if ( nb_ope_sous_categ_etat <= 1 )
317 fmtstr = _("Total %s: %s (%d transaction): ");
318 else
319 fmtstr = _("Total %s: %s (%d transactions): ");
320 text = g_strdup_printf ( fmtstr, nom_categ_en_cours,
321 nom_ss_categ_en_cours, nb_ope_sous_categ_etat );
322 }
323 else
324 text = g_strdup_printf ( _("Total %s: %s"), nom_categ_en_cours, nom_ss_categ_en_cours );
325 }
326 else
327 {
328 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
329 {
330 gchar* fmtstr;
331 if ( nb_ope_sous_categ_etat <= 1 )
332 fmtstr = _("Sub-categories total (%d transaction): ");
333 else
334 fmtstr = _("Sub-categories total (%d transactions): ");
335 text = g_strdup_printf ( fmtstr, nb_ope_sous_categ_etat );
336 }
337 else
338 text = g_strdup( _("Sub-categories total: ") );
339 }
340 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
341 g_free ( text );
342
343 text = utils_real_get_string_with_currency (montant_sous_categ_etat, devise_categ_etat, TRUE);
344 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
345 g_free ( text );
346 ligne++;
347
348 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
349 ligne++;
350 }
351 else
352 {
353 ligne--;
354
355 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
356 {
357 gchar* fmtstr;
358 if ( nb_ope_sous_categ_etat <= 1 )
359 fmtstr = _("%s (%d transaction)");
360 else
361 fmtstr = _("%s (%d transactions)");
362 tmpstr = utils_real_get_string_with_currency ( montant_sous_categ_etat, devise_categ_etat, TRUE );
363 text = g_strdup_printf ( fmtstr, tmpstr,
364 nb_ope_sous_categ_etat );
365 g_free ( tmpstr );
366 }
367 else
368 text = utils_real_get_string_with_currency ( montant_sous_categ_etat,
369 devise_categ_etat, TRUE );
370
371 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
372 g_free ( text );
373 ligne++;
374 }
375 }
376
377 montant_sous_categ_etat = null_real;
378 nom_ss_categ_en_cours = NULL;
379 titres_affiches = 0;
380 nb_ope_sous_categ_etat = 0;
381
382 return (ligne );
383 }
384 /*****************************************************************************************************/
385
386
387
388 /*****************************************************************************************************/
389 /* affiche le total à l'endroit donné de la table */
390 /* si les ib sont affichées */
391 /* retourne le ligne suivante de la table */
392 /*****************************************************************************************************/
etat_affiche_affiche_total_ib(gint ligne)393 gint etat_affiche_affiche_total_ib ( gint ligne )
394 {
395 gchar * text;
396 gint current_report_number;
397 gchar* tmpstr2;
398
399 current_report_number = gsb_gui_navigation_get_current_report ();
400
401
402 if (gsb_data_report_get_budget_show_budget_amount (current_report_number))
403 {
404 /* si rien n'est affiché en dessous de la ib, on */
405 /* met le résultat sur la ligne de l'ib */
406 /* sinon on fait une barre et on met le résultat */
407
408 if ( gsb_data_report_get_budget_show_sub_budget (current_report_number)
409 ||
410 gsb_data_report_get_account_group_reports (current_report_number)
411 ||
412 gsb_data_report_get_payee_used (current_report_number)
413 ||
414 gsb_data_report_get_show_report_transactions (current_report_number))
415 {
416 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
417 ligne++;
418
419 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
420 ligne++;
421
422 if ( nom_ib_en_cours )
423 {
424 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
425 {
426 gchar* fmtstr;
427 if ( nb_ope_ib_etat <= 1 )
428 fmtstr = _("Total %s (%d transaction)");
429 else
430 fmtstr = _("Total %s (%d transactions)");
431 text = g_strdup_printf ( fmtstr, nom_ib_en_cours, nb_ope_ib_etat );
432 }
433 else
434 text = g_strconcat ( _("Total "), nom_ib_en_cours, NULL );
435 }
436 else
437 {
438 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
439 {
440 gchar* fmtstr;
441 if ( nb_ope_ib_etat <= 1 )
442 fmtstr = _("Budgetary lines total: (%d transaction): ");
443 else
444 fmtstr = _("Budgetary lines total: (%d transactions): ");
445 text = g_strdup_printf ( fmtstr, nb_ope_ib_etat );
446 }
447 else
448 text = g_strdup( _("Budgetary lines total: ") );
449 }
450
451 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
452 g_free ( text );
453
454 text = utils_real_get_string_with_currency ( montant_ib_etat, devise_ib_etat, TRUE );
455 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
456 g_free ( text );
457 ligne++;
458
459 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
460 ligne++;
461 }
462 else
463 {
464 ligne--;
465
466 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
467 {
468 gchar* fmtstr;
469 if ( nb_ope_ib_etat <= 1 )
470 fmtstr = _("%s (%d transaction)");
471 else
472 fmtstr = _("%s (%d transactions)");
473 tmpstr2 = utils_real_get_string_with_currency (montant_ib_etat, devise_ib_etat, TRUE );
474 text = g_strdup_printf ( fmtstr, tmpstr2 , nb_ope_ib_etat );
475 g_free (tmpstr2);
476 }
477 else
478 text = utils_real_get_string_with_currency ( montant_ib_etat, devise_ib_etat, TRUE );
479
480 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
481 g_free ( text );
482 ligne++;
483 }
484 }
485
486 montant_ib_etat = null_real;
487 nom_ib_en_cours = NULL;
488 titres_affiches = 0;
489 nb_ope_ib_etat = 0;
490
491 return (ligne );
492 }
493 /*****************************************************************************************************/
494
495
496
497 /*****************************************************************************************************/
498 /* affiche le total à l'endroit donné de la table */
499 /* si les sous_ib sont affichées */
500 /* retourne le ligne suivante de la table */
501 /*****************************************************************************************************/
etat_affiche_affiche_total_sous_ib(gint ligne)502 gint etat_affiche_affiche_total_sous_ib ( gint ligne )
503 {
504 gchar * text;
505 gint current_report_number;
506
507 current_report_number = gsb_gui_navigation_get_current_report ();
508
509
510 if (gsb_data_report_get_budget_show_sub_budget_amount (current_report_number))
511 {
512 /* si rien n'est affiché en dessous de la sous ib, on */
513 /* met le résultat sur la ligne de la sous ib */
514 /* sinon on fait une barre et on met le résultat */
515
516 if ( gsb_data_report_get_account_group_reports (current_report_number)
517 ||
518 gsb_data_report_get_payee_used (current_report_number)
519 ||
520 gsb_data_report_get_show_report_transactions (current_report_number))
521 {
522
523 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
524 ligne++;
525
526 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
527 ligne++;
528
529 if ( nom_ib_en_cours
530 &&
531 nom_ss_ib_en_cours )
532 {
533 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
534 {
535 gchar* fmtstr;
536 if ( nb_ope_sous_ib_etat <= 1 )
537 fmtstr = _("Total %s: %s (%d transaction): ");
538 else
539 fmtstr = _("Total %s: %s (%d transactions): ");
540 text = g_strdup_printf ( fmtstr, nom_ib_en_cours,
541 nom_ss_ib_en_cours, nb_ope_sous_ib_etat );
542 }
543 else
544 text = g_strdup_printf ( _("Total %s: %s"), nom_ib_en_cours, nom_ss_ib_en_cours );
545 }
546 else
547 {
548 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
549 {
550 gchar* fmtstr;
551 if ( nb_ope_sous_ib_etat <= 1 )
552 fmtstr = _("Sub-budgetary lines total: (%d transaction): ");
553 else
554 fmtstr = _("Sub-budgetary lines total: (%d transactions): ");
555 text = g_strdup_printf ( fmtstr, nb_ope_sous_ib_etat );
556 }
557 else
558 text = g_strdup( _("Sub-budgetary lines total: ") );
559 }
560
561 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
562 g_free ( text );
563
564 text = utils_real_get_string_with_currency (montant_sous_ib_etat, devise_ib_etat, TRUE );
565 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
566 g_free ( text );
567 ligne++;
568
569 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
570 ligne++;
571 }
572 else
573 {
574 ligne--;
575
576 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
577 {
578 gchar* fmtstr;
579 gchar* tmpstr;
580
581 if ( nb_ope_sous_ib_etat <= 1 )
582 fmtstr = _("%s (%d transaction)");
583 else
584 fmtstr = _("%s (%d transactions)");
585 tmpstr = utils_real_get_string_with_currency (montant_sous_ib_etat,
586 devise_ib_etat, TRUE );
587 text = g_strdup_printf ( fmtstr, tmpstr,
588 nb_ope_sous_ib_etat );
589 g_free ( tmpstr );
590 }
591 else
592 text = utils_real_get_string_with_currency ( montant_sous_ib_etat, devise_ib_etat, TRUE );
593
594 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
595 g_free ( text );
596 ligne++;
597 }
598 }
599
600 montant_sous_ib_etat = null_real;
601 nom_ss_ib_en_cours = NULL;
602 titres_affiches = 0;
603 nb_ope_sous_ib_etat = 0;
604
605 return (ligne );
606 }
607 /*****************************************************************************************************/
608
609
610
611 /*****************************************************************************************************/
612 /* affiche le total à l'endroit donné de la table */
613 /* si les compte sont affichées */
614 /* retourne le ligne suivante de la table */
615 /*****************************************************************************************************/
etat_affiche_affiche_total_compte(gint ligne)616 gint etat_affiche_affiche_total_compte ( gint ligne )
617 {
618 gchar * text;
619 gint current_report_number;
620 gchar* tmpstr;
621
622 current_report_number = gsb_gui_navigation_get_current_report ();
623
624
625 if (gsb_data_report_get_account_show_amount (current_report_number))
626 {
627 /* si rien n'est affiché en dessous du compte, on */
628 /* met le résultat sur la ligne du compte */
629 /* sinon on fait une barre et on met le résultat */
630
631 if ( gsb_data_report_get_payee_used (current_report_number)
632 ||
633 gsb_data_report_get_show_report_transactions (current_report_number))
634 {
635 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
636 ligne++;
637
638 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
639 ligne++;
640
641 if ( nom_compte_en_cours )
642 {
643 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
644 {
645 gchar* fmtstr;
646 if ( nb_ope_compte_etat <= 1 )
647 fmtstr = _("Total %s (%d transaction)");
648 else
649 fmtstr = _("Total %s (%d transactions)");
650 text = g_strdup_printf ( fmtstr, nom_compte_en_cours, nb_ope_compte_etat );
651 }
652 else
653 text = g_strconcat ( _("Total "), nom_compte_en_cours, NULL );
654 }
655 else
656 {
657 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
658 {
659 gchar* fmtstr;
660 if ( nb_ope_compte_etat <= 1 )
661 fmtstr = _("Account total: (%d transaction): ");
662 else
663 fmtstr = _("Account total: (%d transactions): ");
664 text = g_strdup_printf ( fmtstr, nb_ope_compte_etat );
665 }
666 else
667 text = g_strdup( _("Account total: ") );
668 }
669
670 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
671 g_free ( text );
672
673 text = utils_real_get_string_with_currency (montant_compte_etat, devise_compte_en_cours_etat, TRUE );
674 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
675 g_free ( text );
676 ligne++;
677
678 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
679 ligne++;
680 }
681 else
682 {
683 ligne--;
684
685 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
686 {
687 gchar* fmtstr;
688 if ( nb_ope_compte_etat <= 1 )
689 fmtstr = _("%s (%d transaction)");
690 else
691 fmtstr = _("%s (%d transactions)");
692 tmpstr = utils_real_get_string_with_currency ( montant_compte_etat,
693 devise_compte_en_cours_etat, TRUE );
694 text = g_strdup_printf ( fmtstr, tmpstr,
695 nb_ope_compte_etat );
696 g_free ( tmpstr );
697 }
698 else
699 text = utils_real_get_string_with_currency ( montant_compte_etat, devise_compte_en_cours_etat, TRUE );
700
701 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
702 g_free ( text );
703 ligne++;
704 }
705 }
706
707 montant_compte_etat = null_real;
708 nom_compte_en_cours = NULL;
709 titres_affiches = 0;
710 nb_ope_compte_etat = 0;
711
712 return (ligne );
713 }
714 /*****************************************************************************************************/
715
716
717
718 /*****************************************************************************************************/
719 /* affiche le total à l'endroit donné de la table */
720 /* si les tiers sont affichées */
721 /* retourne le ligne suivante de la table */
722 /*****************************************************************************************************/
etat_affiche_affiche_total_tiers(gint ligne)723 gint etat_affiche_affiche_total_tiers ( gint ligne )
724 {
725 gchar * text;
726 gint current_report_number;
727 gchar* tmpstr;
728
729 current_report_number = gsb_gui_navigation_get_current_report ();
730
731
732 if (gsb_data_report_get_payee_show_payee_amount (current_report_number))
733 {
734 /* si rien n'est affiché en dessous du tiers, on */
735 /* met le résultat sur la ligne du tiers */
736 /* sinon on fait une barre et on met le résultat */
737
738 if ( gsb_data_report_get_show_report_transactions (current_report_number))
739 {
740
741 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
742 ligne++;
743
744 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
745 ligne++;
746
747 if ( nom_tiers_en_cours )
748 {
749 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
750 {
751 gchar* fmtstr;
752 if ( nb_ope_tiers_etat <= 1 )
753 fmtstr = _("Total %s (%d transaction)");
754 else
755 fmtstr = _("Total %s (%d transactions)");
756 text = g_strdup_printf ( fmtstr, nom_tiers_en_cours, nb_ope_tiers_etat );
757 }
758 else
759 text = g_strdup_printf ( _("Total %s"), nom_tiers_en_cours );
760 }
761 else
762 {
763 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
764 {
765 gchar* fmtstr;
766 if ( nb_ope_tiers_etat <= 1 )
767 fmtstr = _("Payee total: (%d transaction): ");
768 else
769 fmtstr = _("Payee total: (%d transactions): ");
770 text = g_strdup_printf ( fmtstr, nb_ope_tiers_etat );
771 }
772 else
773 text = g_strdup( _("Payee total: ") );
774 }
775
776 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
777 g_free ( text );
778
779 text = utils_real_get_string_with_currency (montant_tiers_etat, devise_tiers_etat, TRUE );
780 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
781 g_free ( text );
782 ligne++;
783
784 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
785 ligne++;
786 }
787 else
788 {
789 ligne--;
790
791 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
792 {
793 gchar* fmtstr;
794 if ( nb_ope_tiers_etat <= 1 )
795 fmtstr = _("%s (%d transaction)");
796 else
797 fmtstr = _("%s (%d transactions)");
798 tmpstr = utils_real_get_string_with_currency (montant_tiers_etat,
799 devise_tiers_etat, TRUE );
800 text = g_strdup_printf ( fmtstr, tmpstr, nb_ope_tiers_etat );
801 g_free ( tmpstr );
802 }
803 else
804 text = utils_real_get_string_with_currency (montant_tiers_etat, devise_tiers_etat, TRUE );
805
806 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
807 g_free ( text );
808 ligne++;
809 }
810 }
811
812 montant_tiers_etat = null_real;
813 nom_tiers_en_cours = NULL;
814 titres_affiches = 0;
815 nb_ope_tiers_etat = 0;
816
817 return (ligne );
818 }
819 /*****************************************************************************************************/
820
821
822
823
824
825
826 /*****************************************************************************************************/
827 /* affiche le total de la période à l'endroit donné de la table */
828 /* retourne le ligne suivante de la table */
829 /* si force = 0, vérifie les dates et affiche si nécessaire */
830 /* si force = 1, affiche le total (chgt de categ, ib ...) */
831 /*****************************************************************************************************/
etat_affiche_affiche_total_periode(gint transaction_number,gint ligne,gint force)832 gint etat_affiche_affiche_total_periode ( gint transaction_number,
833 gint ligne,
834 gint force )
835 {
836 gint current_report_number;
837 gchar* dtstr1;
838 gchar* dtstr2;
839
840 current_report_number = gsb_gui_navigation_get_current_report ();
841
842 if ( gsb_data_report_get_period_split (current_report_number))
843 {
844 gchar *text = NULL;
845 const GDate *date;
846 GDateWeekday jour_debut_semaine;
847
848 if (gsb_data_report_get_date_select_value (current_report_number))
849 date = gsb_data_transaction_get_value_date_or_date (transaction_number);
850 else
851 date = gsb_data_transaction_get_date (transaction_number);
852
853 /* on récupère ici le premier jour de la semaine */
854 jour_debut_semaine = gsb_data_report_get_period_split_day ( current_report_number );
855
856 /* si la date de début de période est nulle, on la met au début de la période la date de l'opération */
857 if ( !date_debut_periode )
858 {
859 if ( transaction_number )
860 {
861 /* il y a une opération, on va rechercher le début de la période qui la contient */
862 /* ça peut être le début de la semaine, du mois ou de l'année de l'opé */
863
864 switch ( gsb_data_report_get_period_split_type (current_report_number))
865 {
866 case 0:
867 /* split by day, set the day of the transaction */
868 date_debut_periode = g_date_new_dmy ( g_date_get_day ( date),
869 g_date_get_month ( date),
870 g_date_get_year ( date));
871 break;
872
873 case 1:
874 /* séparation par semaine : on recherche le début de la semaine qui contient l'opé */
875 date_debut_periode = g_date_new_dmy ( g_date_get_day ( date),
876 g_date_get_month ( date),
877 g_date_get_year ( date));
878
879 if ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine )
880 {
881 do
882 {
883 g_date_subtract_days ( date_debut_periode, 1 );
884 }
885 while ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine );
886 }
887 break;
888
889 case 2:
890 /* séparation par mois */
891
892 date_debut_periode = g_date_new_dmy ( 1,
893 g_date_get_month ( date),
894 g_date_get_year ( date));
895 break;
896
897 case 3:
898 /* séparation par an */
899
900 date_debut_periode = g_date_new_dmy ( 1,
901 1,
902 g_date_get_year ( date));
903 break;
904 }
905 }
906 else
907 date_debut_periode = NULL;
908 return ( ligne );
909 }
910
911 gchar buffer[256];
912 gsize rc;
913 GDate *date_tmp;
914
915 /* on vérifie maintenant s'il faut afficher un total ou pas */
916 switch ( gsb_data_report_get_period_split_type (current_report_number))
917 {
918 case 0:
919 /* split by day, we do nothing only if it's the same day as the transaction before */
920 if ( !force
921 &&
922 !g_date_compare ( date,
923 date_debut_periode ))
924 return ( ligne );
925
926 /* ok, not the same day, we show a separation */
927 rc = g_date_strftime ( buffer,
928 sizeof(buffer),
929 "%A %d %B %Y",
930 date_debut_periode );
931 if (rc == 0)
932 strcpy(buffer, "???");
933
934 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
935 {
936 const gchar *fmtstr;
937
938 if ( nb_ope_periode_etat <= 1 )
939 fmtstr = _("Result of %s (%d transaction): ");
940 else
941 fmtstr = _("Result of %s (%d transactions): ");
942 text = g_strdup_printf ( fmtstr, buffer, nb_ope_periode_etat );
943 }
944 else
945 text = g_strdup_printf ( _("Result of %s: "), buffer );
946
947
948 break;
949
950 case 1:
951 /* séparation par semaine */
952
953 /* si c'est le même jour que l'opé précédente, on fait rien */
954
955 if ( !force
956 &&
957 !g_date_compare ( date,
958 date_debut_periode ))
959 return ( ligne );
960
961 /* si on est en début de semaine, on met un sous total */
962
963 date_tmp = g_date_new_dmy ( g_date_get_day ( date_debut_periode ),
964 g_date_get_month ( date_debut_periode ),
965 g_date_get_year ( date_debut_periode ));
966 g_date_add_days ( date_tmp,
967 7 );
968
969 if ( !force
970 &&
971 ( g_date_get_weekday(date) != gsb_data_report_get_period_split_day (current_report_number)
972 &&
973 g_date_compare ( date, date_tmp ) < 0 ))
974 return ( ligne );
975
976 /* on doit retrouver la date du début de semaine et y ajouter 6j pour afficher la période */
977
978 if ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine )
979 {
980 do
981 {
982 g_date_subtract_days ( date_debut_periode, 1 );
983 }
984 while ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine );
985 }
986
987
988 g_date_free ( date_tmp );
989
990 date_tmp = g_date_new_dmy ( g_date_get_day ( date_debut_periode ),
991 g_date_get_month ( date_debut_periode ),
992 g_date_get_year ( date_debut_periode ));
993 g_date_add_days ( date_tmp,
994 6 );
995 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
996 {
997 gchar* fmtstr;
998 if ( nb_ope_periode_etat <= 1 )
999 fmtstr = _("Result from %s to %s (%d transaction): ");
1000 else
1001 fmtstr = _("Result from %s to %s (%d transactions): ");
1002 dtstr1 = gsb_format_gdate ( date_debut_periode );
1003 dtstr2 = gsb_format_gdate ( date_tmp );
1004 text = g_strdup_printf ( fmtstr, dtstr1, dtstr2, nb_ope_periode_etat );
1005 g_free ( dtstr1 );
1006 g_free ( dtstr2 );
1007 }
1008 else
1009 {
1010 dtstr1 = gsb_format_gdate ( date_debut_periode );
1011 dtstr2 = gsb_format_gdate ( date_tmp );
1012 text = g_strdup_printf ( _("Result from %s to %s: "), dtstr1, dtstr2);
1013 g_free ( dtstr1 );
1014 g_free ( dtstr2 );
1015 }
1016
1017 break;
1018
1019 case 2:
1020 /* séparation par mois */
1021
1022 if ( !force
1023 &&
1024 g_date_get_month ( date) == g_date_get_month ( date_debut_periode ) )
1025 return ( ligne );
1026
1027 rc = g_date_strftime ( buffer,
1028 sizeof(buffer),
1029 "%B %Y",
1030 date_debut_periode );
1031 if (rc == 0)
1032 strcpy(buffer, "???");
1033
1034 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1035 {
1036 gchar* fmtstr;
1037 if ( nb_ope_periode_etat <= 1 )
1038 fmtstr = _("Result of %s (%d transaction): ");
1039 else
1040 fmtstr = _("Result of %s (%d transactions): ");
1041 text = g_strdup_printf ( fmtstr, buffer, nb_ope_periode_etat );
1042 }
1043 else
1044 text = g_strdup_printf ( _("Result of %s: "), buffer );
1045
1046 break;
1047
1048 case 3:
1049 /* séparation par an */
1050
1051 if ( !force
1052 &&
1053 g_date_get_year ( date) == g_date_get_year ( date_debut_periode ) )
1054 return ( ligne );
1055
1056 rc = g_date_strftime ( buffer,
1057 sizeof(buffer),
1058 "%Y",
1059 date_debut_periode );
1060 if (rc == 0)
1061 strcpy(buffer, "???");
1062
1063 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1064 {
1065 gchar* fmtstr;
1066 if ( nb_ope_periode_etat <= 1 )
1067 fmtstr = _("Result for %s (%d transaction): ");
1068 else
1069 fmtstr = _("Result for %s (%d transactions): ");
1070 text = g_strdup_printf ( fmtstr, buffer, nb_ope_periode_etat );
1071 }
1072 else
1073 text = g_strdup_printf ( _("Result for %s: "), buffer );
1074 break;
1075 }
1076
1077 /* si on arrive ici, c'est qu'il y a un chgt de période ou que c'est forcé */
1078
1079 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1080 ligne++;
1081
1082 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
1083 ligne++;
1084
1085 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1086 g_free ( text );
1087
1088 text = utils_real_get_string_with_currency (montant_periode_etat, devise_generale_etat, TRUE );
1089 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
1090 g_free ( text );
1091 ligne++;
1092
1093 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1094 ligne++;
1095
1096 montant_periode_etat = null_real;
1097 nb_ope_periode_etat = 0;
1098
1099 /* comme il y a un changement de période, on remet la date_debut_periode à celle du début de la période */
1100 /* de l'opération en cours */
1101
1102
1103 if ( transaction_number )
1104 {
1105 /* il y a une opération, on va rechercher le début de la période qui la contient */
1106 /* ça peut être le début de la semaine, du mois ou de l'année de l'opé */
1107 switch ( gsb_data_report_get_period_split_type (current_report_number))
1108 {
1109 case 0:
1110 /* split by day, set on the transactions day */
1111 date_debut_periode = g_date_new_dmy ( g_date_get_day ( date),
1112 g_date_get_month ( date),
1113 g_date_get_year ( date));
1114 break;
1115 case 1:
1116 /* séparation par semaine : on recherche le début de la semaine qui contient l'opé */
1117
1118 date_debut_periode = g_date_new_dmy ( g_date_get_day ( date),
1119 g_date_get_month ( date),
1120 g_date_get_year ( date));
1121
1122 if ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine )
1123 {
1124 do
1125 {
1126 g_date_subtract_days ( date_debut_periode, 1 );
1127 }
1128 while ( g_date_get_weekday ( date_debut_periode ) != jour_debut_semaine );
1129 }
1130 break;
1131
1132 case 2:
1133 /* séparation par mois */
1134
1135 date_debut_periode = g_date_new_dmy ( 1,
1136 g_date_get_month ( date),
1137 g_date_get_year ( date));
1138 break;
1139
1140 case 3:
1141 /* séparation par an */
1142
1143 date_debut_periode = g_date_new_dmy ( 1,
1144 1,
1145 g_date_get_year ( date));
1146 break;
1147 }
1148 }
1149 else
1150 date_debut_periode = NULL;
1151 }
1152
1153 return (ligne );
1154 }
1155 /*****************************************************************************************************/
1156
1157
1158
1159 /*****************************************************************************************************/
1160 /* affiche le total de l'exo à l'endroit donné de la table */
1161 /* retourne le ligne suivante de la table */
1162 /* si force = 0, vérifie les dates et affiche si nécessaire */
1163 /* si force = 1, affiche le total (chgt de categ, ib ...) */
1164 /*****************************************************************************************************/
etat_affiche_affiche_total_exercice(gint transaction_number,gint ligne,gint force)1165 gint etat_affiche_affiche_total_exercice ( gint transaction_number,
1166 gint ligne,
1167 gint force )
1168 {
1169 gint current_report_number;
1170
1171 current_report_number = gsb_gui_navigation_get_current_report ();
1172
1173 if ( gsb_data_report_get_financial_year_split (current_report_number))
1174 {
1175 gchar *text;
1176
1177 text = NULL;
1178
1179 /* si l'exo précédent est -1, on le met à l'exo de l'opé */
1180 /* utilise ça car des opés peuvent ne pas avoir d'exo */
1181
1182 if ( exo_en_cours_etat == -1 )
1183 {
1184 exo_en_cours_etat = gsb_data_transaction_get_financial_year_number (transaction_number);
1185 return ligne;
1186 }
1187
1188 /* on vérifie maintenant s'il faut afficher un total ou pas */
1189
1190 if ( !force
1191 &&
1192 gsb_data_transaction_get_financial_year_number (transaction_number) == exo_en_cours_etat )
1193 return ligne;
1194
1195 if ( exo_en_cours_etat )
1196 {
1197 /* les opés ont un exo */
1198 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1199 {
1200 gchar* fmtstr;
1201 if ( nb_ope_periode_etat <= 1 )
1202 fmtstr = _("Result of %s (%d transaction): ");
1203 else
1204 fmtstr = _("Result of %s (%d transactions): ");
1205 text = g_strdup_printf ( fmtstr,
1206 gsb_data_fyear_get_name ( exo_en_cours_etat ),
1207 nb_ope_periode_etat );
1208 }
1209 else
1210 text = g_strdup_printf ( _("Result of %s: "),
1211 gsb_data_fyear_get_name ( exo_en_cours_etat ));
1212 }
1213 else
1214 {
1215 /* les opés n'ont pas d'exo */
1216 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1217 {
1218 gchar* fmtstr;
1219 if ( nb_ope_periode_etat <= 1 )
1220 fmtstr = _("Result without financial year (%d transaction): ");
1221 else
1222 fmtstr = _("Result without financial year (%d transactions): ");
1223 text = g_strdup_printf ( fmtstr, nb_ope_periode_etat );
1224 }
1225 else
1226 text = g_strdup_printf ( "%s", _("Result without financial year: ") );
1227 }
1228
1229
1230
1231 /* si on arrive ici, c'est qu'il y a un chgt de période ou que c'est forcé */
1232
1233 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1234 ligne++;
1235
1236 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
1237 ligne++;
1238
1239 etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1240 g_free ( text );
1241
1242 text = utils_real_get_string_with_currency (montant_exo_etat, devise_generale_etat, TRUE );
1243 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
1244 g_free ( text );
1245 ligne++;
1246
1247 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1248 ligne++;
1249
1250 montant_exo_etat = null_real;
1251 nb_ope_exo_etat = 0;
1252
1253 /* comme il y a un changement d'état, on remet exo_en_cours_etat à celle de l'opé en cours */
1254 if (transaction_number)
1255 exo_en_cours_etat = gsb_data_transaction_get_financial_year_number (transaction_number);
1256 else
1257 exo_en_cours_etat = -1;
1258 }
1259
1260 return (ligne );
1261 }
1262 /*****************************************************************************************************/
1263
1264
1265 /*****************************************************************************************************/
etat_affiche_affichage_ligne_ope(gint transaction_number,gint ligne)1266 gint etat_affiche_affichage_ligne_ope ( gint transaction_number,
1267 gint ligne )
1268 {
1269 gint colonne;
1270 gchar *text;
1271 gint current_report_number;
1272
1273 current_report_number = gsb_gui_navigation_get_current_report ();
1274
1275
1276 /* on met tous les labels dans un event_box pour aller directement sur l'opé si elle est clickée */
1277
1278 /* on affiche ce qui est demandé pour les opés */
1279 /* si les titres ne sont pas affichés et qu'il faut le faire, c'est ici */
1280
1281 if ( !titres_affiches
1282 &&
1283 gsb_data_report_get_column_title_show (current_report_number)
1284 &&
1285 gsb_data_report_get_column_title_type (current_report_number))
1286 ligne = etat_affiche_affiche_titres_colonnes ( ligne );
1287
1288 colonne = 1;
1289
1290 /* pour chaque info, on vérifie si on l'opé doit être clickable */
1291 /* si c'est le cas, on place le label dans un event_box */
1292
1293 if ( gsb_data_report_get_show_report_transaction_number (current_report_number))
1294 {
1295 text = utils_str_itoa ( transaction_number);
1296
1297 if ( gsb_data_report_get_report_can_click (current_report_number))
1298 {
1299 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1300 }
1301 else
1302 {
1303 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1304 }
1305
1306 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1307 colonne = colonne + 2;
1308 g_free (text);
1309 }
1310
1311 if ( gsb_data_report_get_show_report_date (current_report_number))
1312 {
1313 text = gsb_format_gdate ( gsb_data_transaction_get_date (transaction_number));
1314
1315 if ( gsb_data_report_get_report_can_click (current_report_number))
1316 {
1317 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1318 }
1319 else
1320 {
1321 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1322 }
1323
1324 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1325 colonne = colonne + 2;
1326 if (text)
1327 g_free (text);
1328 }
1329
1330 if ( gsb_data_report_get_show_report_value_date (current_report_number))
1331 {
1332 text = gsb_format_gdate ( gsb_data_transaction_get_value_date (transaction_number));
1333
1334 if ( gsb_data_report_get_report_can_click (current_report_number))
1335 {
1336 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1337 }
1338 else
1339 {
1340 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1341 }
1342
1343 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1344 colonne = colonne + 2;
1345 if (text)
1346 g_free (text);
1347 }
1348
1349 if ( gsb_data_report_get_show_report_financial_year (current_report_number))
1350 {
1351 if ( gsb_data_transaction_get_financial_year_number ( transaction_number))
1352 {
1353 text = my_strdup (gsb_data_fyear_get_name ( gsb_data_transaction_get_financial_year_number ( transaction_number)));
1354
1355 if ( gsb_data_report_get_report_can_click (current_report_number))
1356 {
1357 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1358 }
1359 else
1360 {
1361 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1362 }
1363 if (text)
1364 g_free (text);
1365 }
1366 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1367 colonne = colonne + 2;
1368 }
1369
1370
1371 if ( gsb_data_report_get_show_report_payee (current_report_number))
1372 {
1373 if ( gsb_data_transaction_get_party_number ( transaction_number))
1374 {
1375 text = my_strdup (gsb_data_payee_get_name ( gsb_data_transaction_get_party_number ( transaction_number), TRUE ));
1376
1377 if ( gsb_data_report_get_report_can_click (current_report_number))
1378 {
1379 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1380 }
1381 else
1382 {
1383 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1384 }
1385 if (text)
1386 g_free (text);
1387 }
1388
1389 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1390 colonne = colonne + 2;
1391 }
1392
1393 if ( gsb_data_report_get_show_report_category (current_report_number))
1394 {
1395 if ( gsb_data_transaction_get_category_number (transaction_number))
1396 text = my_strdup (gsb_data_category_get_name ( gsb_data_transaction_get_category_number (transaction_number),
1397 gsb_data_transaction_get_sub_category_number (transaction_number),
1398 NULL ));
1399 else
1400 {
1401 /* si c'est un virement, on le marque, sinon c'est qu'il n'y a pas de categ */
1402 /* ou que c'est une opé ventilée, et on marque rien */
1403
1404 if ( gsb_data_transaction_get_contra_transaction_number ( transaction_number) > 0)
1405 {
1406 /* c'est un virement */
1407
1408 gchar* fmtstr;
1409 if ( gsb_data_transaction_get_amount ( transaction_number).mantissa < 0 )
1410 fmtstr = _("Transfer to %s");
1411 else
1412 fmtstr = _("Transfer from %s");
1413 text = g_strdup_printf ( fmtstr, gsb_data_account_get_name (
1414 gsb_data_transaction_get_contra_transaction_account ( transaction_number)) );
1415 }
1416 else
1417 text = NULL;
1418 }
1419
1420 if ( text )
1421 {
1422 if ( gsb_data_report_get_report_can_click (current_report_number))
1423 {
1424 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1425 }
1426 else
1427 {
1428 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1429 }
1430 g_free (text);
1431 }
1432
1433 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1434 colonne = colonne + 2;
1435 }
1436
1437
1438 if ( gsb_data_report_get_show_report_budget (current_report_number))
1439 {
1440 if ( gsb_data_transaction_get_budgetary_number ( transaction_number))
1441 {
1442 text = my_strdup (gsb_data_budget_get_name ( gsb_data_transaction_get_budgetary_number ( transaction_number),
1443 gsb_data_transaction_get_sub_budgetary_number ( transaction_number),
1444 NULL ));
1445
1446 if ( gsb_data_report_get_report_can_click (current_report_number))
1447 {
1448 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1449 }
1450 else
1451 {
1452 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1453 }
1454 if (text)
1455 g_free (text);
1456 }
1457
1458 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1459 colonne = colonne + 2;
1460 }
1461
1462
1463 if ( gsb_data_report_get_show_report_note (current_report_number))
1464 {
1465 if ( gsb_data_transaction_get_notes ( transaction_number))
1466 {
1467 text = my_strdup (gsb_data_transaction_get_notes ( transaction_number));
1468
1469 if ( gsb_data_report_get_report_can_click (current_report_number))
1470 {
1471 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1472 }
1473 else
1474 {
1475 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1476 }
1477 if (text)
1478 g_free (text);
1479 }
1480 else
1481 {
1482 etat_affiche_attach_label ( NULL, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1483 }
1484
1485 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1486 colonne = colonne + 2;
1487 }
1488
1489 if ( gsb_data_report_get_show_report_method_of_payment (current_report_number))
1490 {
1491 text = my_strdup (gsb_data_payment_get_name (gsb_data_transaction_get_method_of_payment_number ( transaction_number)));
1492 if (text)
1493 {
1494 if ( gsb_data_report_get_report_can_click (current_report_number))
1495 {
1496 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1497 }
1498 else
1499 {
1500 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1501 }
1502 g_free (text);
1503 }
1504
1505 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1506 colonne = colonne + 2;
1507 }
1508
1509
1510 if ( gsb_data_report_get_show_report_method_of_payment_content (current_report_number))
1511 {
1512 /* Si l'opération est une opération de ventilation, il faut rechercher
1513 l'opération mère pour pouvoir récupérer le n° du chèque */
1514 if ( gsb_data_transaction_get_mother_transaction_number ( transaction_number))
1515 {
1516 GSList *list_tmp_transactions;
1517
1518 /* On récupère donc la liste des opérations du compte et on en fait
1519 le tour jusqu'à ce qu'on trouve l'opération mère */
1520
1521 list_tmp_transactions = gsb_data_transaction_get_complete_transactions_list ();
1522
1523 while ( list_tmp_transactions )
1524 {
1525 gint transaction_number_tmp;
1526 transaction_number_tmp = gsb_data_transaction_get_transaction_number (list_tmp_transactions -> data);
1527
1528 if ( gsb_data_transaction_get_account_number (transaction_number_tmp) == gsb_data_transaction_get_account_number (transaction_number))
1529 {
1530 if ( gsb_data_transaction_get_split_of_transaction (transaction_number_tmp)
1531 &&
1532 transaction_number_tmp == gsb_data_transaction_get_mother_transaction_number ( transaction_number)
1533 &&
1534 gsb_data_transaction_get_method_of_payment_content (transaction_number_tmp))
1535 {
1536 gsb_data_transaction_set_method_of_payment_content ( transaction_number,
1537 gsb_data_transaction_get_method_of_payment_content (transaction_number_tmp));
1538 }
1539 }
1540 list_tmp_transactions = list_tmp_transactions -> next;
1541 }
1542 }
1543
1544 if ( gsb_data_transaction_get_method_of_payment_content ( transaction_number))
1545 {
1546 text = my_strdup (gsb_data_transaction_get_method_of_payment_content ( transaction_number));
1547
1548 if ( gsb_data_report_get_report_can_click (current_report_number))
1549 {
1550 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1551 }
1552 else
1553 {
1554 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1555 }
1556 if (text)
1557 g_free (text);
1558 }
1559
1560 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1561 colonne = colonne + 2;
1562 }
1563
1564
1565 if ( gsb_data_report_get_show_report_voucher (current_report_number))
1566 {
1567 if ( gsb_data_transaction_get_voucher ( transaction_number))
1568 {
1569 text = my_strdup (gsb_data_transaction_get_voucher ( transaction_number));
1570
1571 if ( gsb_data_report_get_report_can_click (current_report_number))
1572 {
1573 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1574 }
1575 else
1576 {
1577 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1578 }
1579 if (text)
1580 g_free (text);
1581 }
1582
1583 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1584 colonne = colonne + 2;
1585 }
1586
1587
1588
1589 if ( gsb_data_report_get_show_report_bank_references (current_report_number))
1590 {
1591 if ( gsb_data_transaction_get_bank_references ( transaction_number))
1592 {
1593 text = my_strdup (gsb_data_transaction_get_bank_references ( transaction_number));
1594
1595 if ( gsb_data_report_get_report_can_click (current_report_number))
1596 {
1597 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1598 }
1599 else
1600 {
1601 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1602 }
1603 if (text)
1604 g_free (text);
1605 }
1606
1607 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1608 colonne = colonne + 2;
1609 }
1610
1611 if ( gsb_data_report_get_show_report_marked (current_report_number))
1612 {
1613 text = my_strdup (gsb_data_reconcile_get_name ( gsb_data_transaction_get_reconcile_number ( transaction_number)));
1614
1615 if ( text )
1616 {
1617 if ( gsb_data_report_get_report_can_click (current_report_number))
1618 {
1619 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, transaction_number );
1620 }
1621 else
1622 {
1623 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1624 }
1625 g_free (text);
1626 }
1627
1628 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
1629 colonne = colonne + 2;
1630 }
1631
1632
1633 /* on affiche le montant au bout de la ligne */
1634
1635 text = utils_real_get_string_with_currency (gsb_data_transaction_get_amount (transaction_number),
1636 gsb_data_transaction_get_currency_number (transaction_number), TRUE );
1637
1638 if ( gsb_data_report_get_report_can_click (current_report_number))
1639 {
1640 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, transaction_number );
1641 }
1642 else
1643 {
1644 etat_affiche_attach_label ( text, TEXT_NORMAL, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
1645 }
1646 if (text)
1647 g_free (text);
1648
1649
1650 if ( ligne_debut_partie == -1 )
1651 ligne_debut_partie = ligne;
1652
1653 ligne++;
1654
1655 return ( ligne );
1656 }
1657 /*****************************************************************************************************/
1658
1659
1660 /*****************************************************************************************************/
etat_affiche_affiche_total_partiel(GsbReal total_partie,gint ligne,gint type)1661 gint etat_affiche_affiche_total_partiel ( GsbReal total_partie,
1662 gint ligne,
1663 gint type )
1664 {
1665 gchar * text;
1666 gint current_report_number;
1667 GrisbiWinEtat *w_etat;
1668
1669 w_etat = grisbi_win_get_w_etat ();
1670
1671 current_report_number = gsb_gui_navigation_get_current_report ();
1672
1673 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1674 ligne++;
1675
1676 etat_affiche_attach_hsep ( 0, nb_colonnes, ligne, ligne + 1 );
1677 ligne++;
1678
1679 if ( type )
1680 {
1681 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1682 {
1683 gchar* fmtstr;
1684
1685 if ( nb_ope_partie_etat <= 1 )
1686 {
1687 if (w_etat->metatree_assoc_mode)
1688 fmtstr = _("Total charge (%d transaction): ");
1689 else
1690 fmtstr = _("Total expense (%d transaction): ");
1691 }
1692 else
1693 {
1694 if (w_etat->metatree_assoc_mode)
1695 fmtstr = _("Total charges (%d transactions): ");
1696 else
1697 fmtstr = _("Total expenses (%d transactions): ");
1698 }
1699 text = g_strdup_printf ( fmtstr, nb_ope_partie_etat );
1700 }
1701 else
1702 {
1703 if (w_etat->metatree_assoc_mode)
1704 text = g_strdup ("Total charges: ");
1705 else
1706 text = g_strdup ( _("Total expenses: ") );
1707 }
1708 }
1709 else
1710 {
1711 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1712 {
1713 gchar* fmtstr;
1714
1715 if ( nb_ope_partie_etat <= 1 )
1716 {
1717 if (w_etat->metatree_assoc_mode)
1718 fmtstr = _("Total product (%d transaction): ");
1719 else
1720 fmtstr = _("Total income (%d transaction): ");
1721 }
1722 else
1723 {
1724 if (w_etat->metatree_assoc_mode)
1725 fmtstr = _("Total products (%d transactions): ");
1726 else
1727 fmtstr = _("Total income (%d transactions): ");
1728 }
1729 text = g_strdup_printf ( fmtstr, nb_ope_partie_etat );
1730 }
1731 else
1732 {
1733 if (w_etat->metatree_assoc_mode)
1734 text = g_strdup (_("Total Products: "));
1735 else
1736 text = g_strdup ( _("Total income: ") );
1737 }
1738 }
1739
1740 etat_affiche_attach_label ( text, TEXT_NORMAL, 0, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1741 g_free ( text );
1742
1743 text = utils_real_get_string_with_currency (total_partie, devise_generale_etat, TRUE );
1744 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
1745 g_free ( text );
1746 ligne++;
1747
1748 etat_affiche_attach_hsep ( 0, nb_colonnes, ligne, ligne + 1 );
1749 ligne++;
1750
1751 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1752 ligne++;
1753
1754 nom_categ_en_cours = NULL;
1755 nom_ss_categ_en_cours = NULL;
1756 nom_ib_en_cours = NULL;
1757 nom_ss_ib_en_cours = NULL;
1758 nom_compte_en_cours = NULL;
1759 nom_tiers_en_cours = NULL;
1760
1761
1762 return ( ligne );
1763 }
1764 /*****************************************************************************************************/
1765
1766 /*****************************************************************************************************/
etat_affiche_affiche_total_general(GsbReal total_general,gint ligne)1767 gint etat_affiche_affiche_total_general ( GsbReal total_general,
1768 gint ligne )
1769 {
1770 gchar * text;
1771 gint current_report_number;
1772
1773 current_report_number = gsb_gui_navigation_get_current_report ();
1774
1775
1776 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1777 ligne++;
1778
1779 etat_affiche_attach_hsep ( 0, nb_colonnes, ligne, ligne + 1 );
1780 ligne++;
1781
1782 if ( gsb_data_report_get_show_report_transaction_amount (current_report_number))
1783 {
1784 gchar* fmtstr;
1785 if ( nb_ope_general_etat <= 1 )
1786 fmtstr = _("General total (%d transaction): ");
1787 else
1788 fmtstr = _("General total (%d transactions): ");
1789 text = g_strdup_printf ( fmtstr, nb_ope_general_etat );
1790 }
1791 else
1792 text = g_strdup( _("General total: ") );
1793
1794 etat_affiche_attach_label ( text, TEXT_NORMAL, 0, nb_colonnes - 1, ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1795 g_free ( text );
1796
1797 text = utils_real_get_string_with_currency (total_general, devise_generale_etat, TRUE );
1798 etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_RIGHT, 0 );
1799 g_free ( text );
1800 ligne++;
1801
1802 etat_affiche_attach_hsep ( 0, nb_colonnes, ligne, ligne + 1 );
1803 ligne++;
1804
1805 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
1806 ligne++;
1807
1808 return ( ligne );
1809 }
1810 /*****************************************************************************************************/
1811
1812
1813
1814 /*****************************************************************************************************/
etat_affiche_affiche_categ_etat(gint transaction_number,const gchar * decalage_categ,gint ligne)1815 gint etat_affiche_affiche_categ_etat ( gint transaction_number,
1816 const gchar *decalage_categ,
1817 gint ligne )
1818 {
1819 gchar *pointeur_char;
1820 gint current_report_number;
1821
1822 current_report_number = gsb_gui_navigation_get_current_report ();
1823
1824 /* vérifie qu'il y a un changement de catégorie */
1825 /* ça peut être aussi chgt pour virement, ventilation ou pas de categ */
1826
1827 if (gsb_data_transaction_get_category_number ( transaction_number)!= ancienne_categ_etat
1828 ||
1829 ( ancienne_categ_speciale_etat == 1
1830 &&
1831 gsb_data_transaction_get_contra_transaction_number ( transaction_number) == 0)
1832 ||
1833 ( ancienne_categ_speciale_etat == 2
1834 &&
1835 !gsb_data_transaction_get_split_of_transaction ( transaction_number))
1836 ||
1837 ( ancienne_categ_speciale_etat == 3
1838 &&
1839 ( gsb_data_transaction_get_split_of_transaction ( transaction_number)
1840 ||
1841 gsb_data_transaction_get_contra_transaction_number ( transaction_number) > 0)))
1842 {
1843
1844 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
1845
1846 if ( !debut_affichage_etat
1847 &&
1848 !changement_de_groupe_etat )
1849 {
1850 /* on affiche le total de la période en le forçant si besoin */
1851 ligne = etat_affiche_affiche_total_periode (transaction_number, ligne, 1);
1852
1853 /* on affiche le total de l'exercice en le forçant si besoin*/
1854 ligne = etat_affiche_affiche_total_exercice (transaction_number, ligne, 1);
1855
1856 /* on ajoute les totaux de tout ce qu'il y a derrière la catégorie */
1857
1858 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 1,
1859 ligne );
1860
1861 /* on ajoute le total de la categ */
1862
1863 ligne = etat_affiche_affiche_total_categories ( ligne );
1864 }
1865
1866 /* si on a demandé de ne pas afficher les noms des catég, on saute la partie suivante */
1867
1868 if ( gsb_data_report_get_category_show_name (current_report_number))
1869 {
1870 if ( gsb_data_transaction_get_category_number ( transaction_number))
1871 {
1872 nom_categ_en_cours = gsb_data_category_get_name ( gsb_data_transaction_get_category_number (transaction_number),
1873 0,
1874 NULL );
1875 pointeur_char = g_strconcat ( decalage_categ,
1876 nom_categ_en_cours,
1877 NULL );
1878 ancienne_categ_speciale_etat = 0;
1879 }
1880 else
1881 {
1882 if ( gsb_data_transaction_get_contra_transaction_number (transaction_number) > 0)
1883 {
1884 pointeur_char = g_strconcat ( decalage_categ,
1885 _("Transfer"),
1886 NULL );
1887 ancienne_categ_speciale_etat = 1;
1888 }
1889 else
1890 {
1891 if ( gsb_data_transaction_get_split_of_transaction (transaction_number))
1892 {
1893 pointeur_char = g_strconcat ( decalage_categ,
1894 _("Split of transaction"),
1895 NULL );
1896 ancienne_categ_speciale_etat = 2;
1897 }
1898 else
1899 {
1900 pointeur_char = g_strconcat ( decalage_categ,
1901 _("No category"),
1902 NULL );
1903 ancienne_categ_speciale_etat = 3;
1904 }
1905 }
1906 }
1907
1908 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
1909 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1910 g_free ( pointeur_char );
1911 ligne++;
1912 }
1913
1914 ligne_debut_partie = ligne;
1915 denote_struct_sous_jaccentes ( 1 );
1916
1917 ancienne_categ_etat = gsb_data_transaction_get_category_number (transaction_number);
1918
1919 debut_affichage_etat = 0;
1920 changement_de_groupe_etat = 1;
1921 }
1922
1923 return ( ligne );
1924 }
1925 /*****************************************************************************************************/
1926
1927
1928
1929 /*****************************************************************************************************/
etat_affiche_affiche_sous_categ_etat(gint transaction_number,const gchar * decalage_sous_categ,gint ligne)1930 gint etat_affiche_affiche_sous_categ_etat ( gint transaction_number,
1931 const gchar *decalage_sous_categ,
1932 gint ligne )
1933 {
1934 gchar *pointeur_char;
1935 gint current_report_number;
1936
1937 current_report_number = gsb_gui_navigation_get_current_report ();
1938
1939
1940 if (gsb_data_transaction_get_category_number (transaction_number)
1941 &&
1942 gsb_data_transaction_get_sub_category_number (transaction_number) != ancienne_sous_categ_etat )
1943 {
1944 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
1945
1946 if ( !debut_affichage_etat
1947 &&
1948 !changement_de_groupe_etat )
1949 {
1950 /* on affiche le total de la période en le forçant */
1951
1952 ligne = etat_affiche_affiche_total_periode ( transaction_number,
1953 ligne,
1954 1 );
1955
1956 /* on ajoute les totaux de tout ce qu'il y a derrière la sous catégorie */
1957
1958 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 2,
1959 ligne );
1960
1961 /* on ajoute le total de la sous categ */
1962
1963 ligne = etat_affiche_affiche_total_sous_categ ( ligne );
1964 }
1965
1966 /* si on a demandé de ne pas afficher les noms des ss-catég, on saute la partie suivante */
1967
1968 if ( gsb_data_report_get_category_show_name (current_report_number))
1969 {
1970 gchar *sub_categ = gsb_data_category_get_sub_category_name ( gsb_data_transaction_get_category_number (transaction_number),
1971 gsb_data_transaction_get_sub_category_number (transaction_number),
1972 0 );
1973 if (sub_categ)
1974 {
1975 pointeur_char = g_strconcat ( decalage_sous_categ,
1976 sub_categ,
1977 NULL );
1978 }
1979 else
1980 {
1981 if ( gsb_data_report_get_category_show_without_category (current_report_number))
1982 pointeur_char = g_strconcat ( decalage_sous_categ,
1983 _("No subcategory"),
1984 NULL );
1985 else
1986 pointeur_char = my_strdup ("");
1987 }
1988
1989 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
1990 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
1991 g_free (pointeur_char);
1992 ligne++;
1993 }
1994
1995 ligne_debut_partie = ligne;
1996 denote_struct_sous_jaccentes ( 2 );
1997
1998 ancienne_sous_categ_etat = gsb_data_transaction_get_sub_category_number (transaction_number );
1999
2000 debut_affichage_etat = 0;
2001 changement_de_groupe_etat = 1;
2002 }
2003
2004 return ( ligne );
2005 }
2006 /*****************************************************************************************************/
2007
2008
2009
2010
2011 /*****************************************************************************************************/
etat_affiche_affiche_ib_etat(gint transaction_number,const gchar * decalage_ib,gint ligne)2012 gint etat_affiche_affiche_ib_etat ( gint transaction_number,
2013 const gchar *decalage_ib,
2014 gint ligne )
2015 {
2016 gchar *pointeur_char;
2017 gint current_report_number;
2018
2019 current_report_number = gsb_gui_navigation_get_current_report ();
2020
2021
2022 /* mise en place de l'ib */
2023
2024
2025 if (gsb_data_transaction_get_budgetary_number (transaction_number) != ancienne_ib_etat)
2026 {
2027 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
2028
2029 if ( !debut_affichage_etat
2030 &&
2031 !changement_de_groupe_etat )
2032 {
2033 /* on affiche le total de la période en le forçant */
2034
2035 ligne = etat_affiche_affiche_total_periode ( transaction_number,
2036 ligne,
2037 1 );
2038
2039 /* on ajoute les totaux de tout ce qu'il y a derrière l'ib */
2040
2041 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 3,
2042 ligne );
2043
2044 /* on ajoute le total de l'ib */
2045
2046 ligne = etat_affiche_affiche_total_ib ( ligne );
2047 }
2048
2049 /* si on a demandé de ne pas afficher les noms des ib, on saute la partie suivante */
2050
2051 if ( gsb_data_report_get_budget_show_name (current_report_number))
2052 {
2053 if ( gsb_data_transaction_get_budgetary_number (transaction_number ))
2054 {
2055 nom_ib_en_cours = gsb_data_budget_get_name ( gsb_data_transaction_get_budgetary_number (transaction_number),
2056 0,
2057 NULL );
2058
2059 pointeur_char = g_strconcat ( decalage_ib,
2060 nom_ib_en_cours,
2061 NULL );
2062 }
2063 else
2064 pointeur_char = g_strconcat ( decalage_ib,
2065 _("No budgetary line"),
2066 NULL );
2067
2068 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
2069 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
2070 g_free ( pointeur_char );
2071 ligne++;
2072 }
2073
2074 ligne_debut_partie = ligne;
2075 denote_struct_sous_jaccentes ( 3 );
2076
2077 ancienne_ib_etat = gsb_data_transaction_get_budgetary_number (transaction_number);
2078
2079 debut_affichage_etat = 0;
2080 changement_de_groupe_etat = 1;
2081 }
2082
2083 return ( ligne );
2084 }
2085 /*****************************************************************************************************/
2086
2087
2088
2089
2090 /*****************************************************************************************************/
etat_affiche_affiche_sous_ib_etat(gint transaction_number,const gchar * decalage_sous_ib,gint ligne)2091 gint etat_affiche_affiche_sous_ib_etat ( gint transaction_number,
2092 const gchar *decalage_sous_ib,
2093 gint ligne )
2094 {
2095 gchar *pointeur_char;
2096 gint current_report_number;
2097
2098 current_report_number = gsb_gui_navigation_get_current_report ();
2099
2100
2101
2102 /* mise en place de la sous_ib */
2103
2104
2105 if (gsb_data_transaction_get_budgetary_number (transaction_number)
2106 &&
2107 gsb_data_transaction_get_sub_budgetary_number (transaction_number) != ancienne_sous_ib_etat )
2108 {
2109 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
2110
2111 if ( !debut_affichage_etat
2112 &&
2113 !changement_de_groupe_etat )
2114 {
2115 /* on affiche le total de la période en le forçant */
2116
2117 ligne = etat_affiche_affiche_total_periode ( transaction_number,
2118 ligne,
2119 1 );
2120
2121 /* on ajoute les totaux de tout ce qu'il y a derrière la sous ib */
2122
2123 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 4,
2124 ligne );
2125
2126 /* on ajoute le total de la sous ib */
2127
2128 ligne = etat_affiche_affiche_total_sous_ib ( ligne );
2129 }
2130
2131 /* si on a demandé de ne pas afficher les noms des ss-ib, on saute la partie suivante */
2132
2133 if ( gsb_data_report_get_budget_show_name (current_report_number))
2134 {
2135 nom_ss_ib_en_cours = gsb_data_budget_get_sub_budget_name ( gsb_data_transaction_get_budgetary_number (transaction_number),
2136 gsb_data_transaction_get_sub_budgetary_number (transaction_number),
2137 0 );
2138 if ( nom_ss_ib_en_cours )
2139 pointeur_char = g_strconcat ( decalage_sous_ib,
2140 nom_ss_ib_en_cours,
2141 NULL );
2142 else
2143 {
2144 if ( gsb_data_report_get_budget_show_without_budget (current_report_number))
2145 pointeur_char = g_strconcat ( decalage_sous_ib,
2146 _("No sub-budgetary line"),
2147 NULL );
2148 else
2149 pointeur_char = g_strdup("");
2150 }
2151
2152 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
2153 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
2154 g_free ( pointeur_char );
2155 ligne++;
2156 }
2157
2158 ligne_debut_partie = ligne;
2159 denote_struct_sous_jaccentes ( 4 );
2160
2161 ancienne_sous_ib_etat = gsb_data_transaction_get_sub_budgetary_number (transaction_number);
2162
2163 debut_affichage_etat = 0;
2164 changement_de_groupe_etat = 1;
2165 }
2166
2167 return ( ligne );
2168 }
2169 /*****************************************************************************************************/
2170
2171
2172
2173
2174 /*****************************************************************************************************/
etat_affiche_affiche_compte_etat(gint transaction_number,const gchar * decalage_compte,gint ligne)2175 gint etat_affiche_affiche_compte_etat ( gint transaction_number,
2176 const gchar *decalage_compte,
2177 gint ligne )
2178 {
2179 gchar *pointeur_char;
2180 gint current_report_number;
2181
2182 current_report_number = gsb_gui_navigation_get_current_report ();
2183
2184
2185 /* mise en place du compte */
2186
2187 if (gsb_data_transaction_get_account_number (transaction_number) != ancien_compte_etat )
2188 {
2189 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
2190
2191 if ( !debut_affichage_etat
2192 &&
2193 !changement_de_groupe_etat )
2194 {
2195 /* on affiche le total de la période en le forçant */
2196
2197 ligne = etat_affiche_affiche_total_periode ( transaction_number,
2198 ligne,
2199 1 );
2200
2201 /* on ajoute les totaux de tout ce qu'il y a derrière le compte */
2202
2203 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 5,
2204 ligne );
2205
2206 /* on ajoute le total du compte */
2207
2208 ligne = etat_affiche_affiche_total_compte ( ligne );
2209 }
2210
2211 /* si on a demandé de ne pas afficher les noms des comptes, on saute la partie suivante */
2212
2213 if ( gsb_data_report_get_account_show_name (current_report_number))
2214 {
2215 pointeur_char = g_strconcat ( decalage_compte,
2216 gsb_data_account_get_name (gsb_data_transaction_get_account_number (transaction_number)),
2217 NULL );
2218 nom_compte_en_cours = gsb_data_account_get_name (gsb_data_transaction_get_account_number (transaction_number));
2219
2220 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
2221 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
2222 g_free ( pointeur_char );
2223 ligne++;
2224 }
2225
2226 ligne_debut_partie = ligne;
2227 denote_struct_sous_jaccentes ( 5 );
2228
2229 ancien_compte_etat = gsb_data_transaction_get_account_number (transaction_number);
2230
2231 debut_affichage_etat = 0;
2232 changement_de_groupe_etat = 1;
2233 }
2234
2235 return ( ligne );
2236 }
2237 /*****************************************************************************************************/
2238
2239
2240
2241
2242 /*****************************************************************************************************/
etat_affiche_affiche_tiers_etat(gint transaction_number,const gchar * decalage_tiers,gint ligne)2243 gint etat_affiche_affiche_tiers_etat ( gint transaction_number,
2244 const gchar *decalage_tiers,
2245 gint ligne )
2246 {
2247 gchar *pointeur_char;
2248 gint current_report_number;
2249
2250 current_report_number = gsb_gui_navigation_get_current_report ();
2251
2252
2253 /* affiche le tiers */
2254
2255 if ( gsb_data_report_get_payee_used (current_report_number)
2256 &&
2257 gsb_data_transaction_get_party_number (transaction_number) != ancien_tiers_etat )
2258 {
2259 /* lorsqu'on est au début de l'affichage de l'état, on n'affiche pas de totaux */
2260
2261 if ( !debut_affichage_etat
2262 &&
2263 !changement_de_groupe_etat )
2264 {
2265 /* on affiche le total de la période en le forçant */
2266
2267 ligne = etat_affiche_affiche_total_periode ( transaction_number,
2268 ligne,
2269 1 );
2270
2271 /* on ajoute les totaux de tout ce qu'il y a derrière le tiers */
2272
2273 ligne = etat_affiche_affiche_totaux_sous_jaccent ( 6,
2274 ligne );
2275
2276 /* on ajoute le total du tiers */
2277
2278 ligne = etat_affiche_affiche_total_tiers ( ligne );
2279 }
2280
2281 /* si on a demandé de ne pas afficher les noms des tiers, on saute la partie suivante */
2282
2283 if ( gsb_data_report_get_payee_show_name (current_report_number))
2284 {
2285 if ( gsb_data_transaction_get_party_number (transaction_number))
2286 {
2287 nom_tiers_en_cours = gsb_data_payee_get_name ( gsb_data_transaction_get_party_number (transaction_number), TRUE );
2288
2289 pointeur_char = g_strconcat ( decalage_tiers,
2290 nom_tiers_en_cours,
2291 NULL );
2292 }
2293 else
2294 pointeur_char = g_strconcat ( decalage_tiers,
2295 _("No payee"),
2296 NULL );
2297
2298 etat_affiche_attach_label ( pointeur_char, TEXT_NORMAL, 0, nb_colonnes-1,
2299 ligne, ligne + 1, GTK_JUSTIFY_LEFT, 0 );
2300 g_free ( pointeur_char );
2301 ligne++;
2302 }
2303
2304 ligne_debut_partie = ligne;
2305 denote_struct_sous_jaccentes ( 6 );
2306
2307 ancien_tiers_etat = gsb_data_transaction_get_party_number (transaction_number);
2308
2309 debut_affichage_etat = 0;
2310 changement_de_groupe_etat = 1;
2311 }
2312 return ( ligne );
2313 }
2314 /*****************************************************************************************************/
2315
2316
2317 /*****************************************************************************************************/
etat_affiche_affiche_titre_revenus_etat(gint ligne)2318 gint etat_affiche_affiche_titre_revenus_etat ( gint ligne )
2319 {
2320 GrisbiWinEtat *w_etat;
2321
2322 w_etat = grisbi_win_get_w_etat ();
2323 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 0, nb_colonnes,
2324 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2325 ligne++;
2326
2327 if (w_etat->metatree_assoc_mode)
2328 etat_affiche_attach_label (_("Products"), TEXT_LARGE, 0, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0);
2329 else
2330 etat_affiche_attach_label (_("Incomes"), TEXT_LARGE, 0, nb_colonnes,
2331 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2332
2333 ligne++;
2334
2335 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 0, nb_colonnes,
2336 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2337 ligne++;
2338
2339 return ( ligne );
2340 }
2341 /*****************************************************************************************************/
2342
2343
2344 /*****************************************************************************************************/
etat_affiche_affiche_titre_depenses_etat(gint ligne)2345 gint etat_affiche_affiche_titre_depenses_etat ( gint ligne )
2346 {
2347 GrisbiWinEtat *w_etat;
2348
2349 w_etat = grisbi_win_get_w_etat ();
2350 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 0, nb_colonnes,
2351 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2352 ligne++;
2353
2354 if (w_etat->metatree_assoc_mode)
2355 etat_affiche_attach_label (_("Charges"), TEXT_LARGE, 0, nb_colonnes, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0);
2356 else
2357 etat_affiche_attach_label ( _("Outgoings"), TEXT_LARGE, 0, nb_colonnes,
2358 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2359 ligne++;
2360
2361 etat_affiche_attach_label ( NULL, TEXT_NORMAL, 0, nb_colonnes,
2362 ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2363 ligne++;
2364
2365 return ( ligne );
2366 }
2367 /*****************************************************************************************************/
2368
2369
2370 /*****************************************************************************************************/
2371 /* appelée lors de l'affichage d'une structure ( catég, ib ... ) */
2372 /* affiche le total de toutes les structures sous jaccentes */
2373 /*****************************************************************************************************/
2374
etat_affiche_affiche_totaux_sous_jaccent(gint origine,gint ligne)2375 gint etat_affiche_affiche_totaux_sous_jaccent ( gint origine,
2376 gint ligne )
2377 {
2378 GSList *pointeur_glist;
2379 gint current_report_number;
2380 gint categ_used = 0;
2381 gint sous_categ_used = 0;
2382 gint group_reports = 0;
2383 gint ib_used = 0;
2384 gint sous_ib_used = 0;
2385 gint payee_used = 0;
2386
2387 current_report_number = gsb_gui_navigation_get_current_report ();
2388 categ_used = gsb_data_report_get_category_used (current_report_number);
2389 sous_categ_used = gsb_data_report_get_category_show_sub_category (current_report_number);
2390 ib_used = gsb_data_report_get_budget_used (current_report_number);
2391 sous_ib_used = gsb_data_report_get_budget_show_sub_budget (current_report_number);
2392 group_reports = gsb_data_report_get_account_group_reports (current_report_number);
2393 payee_used = gsb_data_report_get_payee_used (current_report_number);
2394
2395 /* on doit partir du bout de la liste pour revenir vers la structure demandée */
2396 pointeur_glist = g_slist_reverse (g_slist_copy ( gsb_data_report_get_sorting_type_list (current_report_number)));
2397
2398 while ( GPOINTER_TO_INT ( pointeur_glist -> data ) != origine )
2399 {
2400 switch ( GPOINTER_TO_INT ( pointeur_glist -> data ))
2401 {
2402 case 1:
2403 if (categ_used)
2404 ligne = etat_affiche_affiche_total_categories ( ligne );
2405 break;
2406
2407 case 2:
2408 if (categ_used && sous_categ_used)
2409 ligne = etat_affiche_affiche_total_sous_categ ( ligne );
2410 break;
2411
2412 case 3:
2413 if (ib_used)
2414 ligne = etat_affiche_affiche_total_ib ( ligne );
2415 break;
2416
2417 case 4:
2418 if (ib_used && sous_ib_used)
2419 ligne = etat_affiche_affiche_total_sous_ib ( ligne );
2420 break;
2421
2422 case 5:
2423 if (group_reports)
2424 ligne = etat_affiche_affiche_total_compte ( ligne );
2425 break;
2426
2427 case 6:
2428 if (payee_used)
2429 ligne = etat_affiche_affiche_total_tiers ( ligne );
2430 break;
2431 }
2432 pointeur_glist = pointeur_glist -> next;
2433 }
2434
2435 g_slist_free (pointeur_glist);
2436 return ( ligne );
2437
2438 }
2439 /*****************************************************************************************************/
2440
2441
2442
2443 /*****************************************************************************************************/
etat_affiche_affiche_titres_colonnes(gint ligne)2444 gint etat_affiche_affiche_titres_colonnes ( gint ligne )
2445 {
2446 gint colonne;
2447 gint current_report_number;
2448
2449 current_report_number = gsb_gui_navigation_get_current_report ();
2450
2451
2452 colonne = 1;
2453
2454 if ( gsb_data_report_get_show_report_transaction_number (current_report_number))
2455 {
2456 etat_affiche_attach_label ( _("Number"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2457 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2458 colonne = colonne + 2;
2459 }
2460
2461 if ( gsb_data_report_get_show_report_date (current_report_number))
2462 {
2463 etat_affiche_attach_label ( _("Date"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2464 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2465 colonne = colonne + 2;
2466 }
2467
2468 if ( gsb_data_report_get_show_report_value_date (current_report_number))
2469 {
2470 etat_affiche_attach_label ( _("Value date"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2471 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2472 colonne = colonne + 2;
2473 }
2474
2475 if ( gsb_data_report_get_show_report_financial_year (current_report_number))
2476 {
2477 etat_affiche_attach_label ( _("Financial year"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2478 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2479 colonne = colonne + 2;
2480 }
2481
2482 if ( gsb_data_report_get_show_report_payee (current_report_number))
2483 {
2484 etat_affiche_attach_label ( _("Payee"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2485 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2486 colonne = colonne + 2;
2487 }
2488
2489 if ( gsb_data_report_get_show_report_category (current_report_number))
2490 {
2491 etat_affiche_attach_label ( _("Category"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2492 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2493 colonne = colonne + 2;
2494 }
2495
2496 if ( gsb_data_report_get_show_report_budget (current_report_number))
2497 {
2498 etat_affiche_attach_label ( _("Budgetary line"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2499 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2500 colonne = colonne + 2;
2501 }
2502
2503 if ( gsb_data_report_get_show_report_note (current_report_number))
2504 {
2505 etat_affiche_attach_label ( _("Notes"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2506 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2507 colonne = colonne + 2;
2508 }
2509
2510 if ( gsb_data_report_get_show_report_method_of_payment (current_report_number))
2511 {
2512 etat_affiche_attach_label ( _("Payment methods"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2513 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2514 colonne = colonne + 2;
2515 }
2516
2517 if ( gsb_data_report_get_show_report_method_of_payment_content (current_report_number))
2518 {
2519 etat_affiche_attach_label ( _("Cheque"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2520 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2521 colonne = colonne + 2;
2522 }
2523
2524 if ( gsb_data_report_get_show_report_voucher (current_report_number))
2525 {
2526 etat_affiche_attach_label ( _("Voucher"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2527 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2528 colonne = colonne + 2;
2529 }
2530
2531 if ( gsb_data_report_get_show_report_bank_references (current_report_number))
2532 {
2533 etat_affiche_attach_label ( _("Bank references"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2534 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2535 colonne = colonne + 2;
2536 }
2537
2538 if ( gsb_data_report_get_show_report_marked (current_report_number))
2539 {
2540 etat_affiche_attach_label ( _("Statement"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2541 etat_affiche_attach_vsep ( colonne + 1, colonne + 2, ligne, ligne + 1 );
2542 colonne = colonne + 2;
2543 }
2544
2545 /* on ajoute le montant */
2546 etat_affiche_attach_label ( _("Amount"), TEXT_BOLD, colonne, colonne + 1, ligne, ligne + 1, GTK_JUSTIFY_CENTER, 0 );
2547
2548 ligne++;
2549
2550 etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );
2551 ligne++;
2552
2553 titres_affiches = 1;
2554
2555 return ( ligne );
2556 }
2557 /*****************************************************************************************************/
2558
2559
2560
etat_affiche_attach_hsep(int x,int x2,int y,int y2)2561 void etat_affiche_attach_hsep ( int x, int x2, int y, int y2)
2562 {
2563 etat_affichage_output -> attach_hsep ( x, x2, y, y2);
2564 }
2565
2566
2567
etat_affiche_attach_vsep(int x,int x2,int y,int y2)2568 void etat_affiche_attach_vsep ( int x, int x2, int y, int y2)
2569 {
2570 etat_affichage_output -> attach_vsep ( x, x2, y, y2);
2571 }
2572
2573
2574
etat_affiche_attach_label(gchar * text,gint properties,int x,int x2,int y,int y2,GtkJustification align,gint transaction_number)2575 void etat_affiche_attach_label ( gchar * text, gint properties, int x, int x2, int y, int y2,
2576 GtkJustification align, gint transaction_number )
2577 {
2578 etat_affichage_output -> attach_label ( text, properties, x, x2, y, y2, align, transaction_number );
2579 }
2580
2581
2582
etat_affiche_initialise(GSList * opes_selectionnees,gchar * filename)2583 gint etat_affiche_initialise (GSList * opes_selectionnees, gchar * filename )
2584 {
2585 return etat_affichage_output -> initialise ( opes_selectionnees, filename );
2586 }
2587
2588
2589
etat_affiche_finish(void)2590 gint etat_affiche_finish (void)
2591 {
2592 return etat_affichage_output -> finish ();
2593 }
2594
2595 /* Local Variables: */
2596 /* c-basic-offset: 4 */
2597 /* End: */
2598