1 -- Engagements non-rapprochés par numéro de commande et el3 {{{1
3 DECLARE @engagements_non_rapproches
TABLE (
4 code_commande
VARCHAR(12) NOT NULL,
5 num_commande
VARCHAR(32) NOT NULL,
7 exercice
SMALLINT NOT NULL,
8 montant MONEY
NOT NULL,
9 UNIQUE (code_commande
, num_commande
, el3
)
12 INSERT INTO @engagements_non_rapproches
14 odoccode
AS code_commande
,
15 odocnum
AS num_commande
,
18 SUM(homevalue
) AS montant
21 doctype
= 31997 -- Engagements
22 AND balyp_yr
IN (2014, 2015)
24 GROUP BY odoccode
, odocnum
, el3
, balyp_yr
25 HAVING SUM(homevalue
) != 0;
27 -- Engagements rapprochés par matchid et el3 {{{1
29 DECLARE @engagements_rapproches
TABLE (
30 matchid
NUMERIC(28, 0) NOT NULL,
32 exercice
SMALLINT NOT NULL,
33 exercice_reception
SMALLINT NOT NULL,
34 montant MONEY
NOT NULL,
38 INSERT INTO @engagements_rapproches
42 c.balyp_yr
AS exercice
,
43 gh.docyearperiod_yr
AS exercice_reception
,
44 SUM(c.homevalue
) AS montant
47 INNER JOIN pim_mline ml
ON ml.mlineid
= c.matchid
48 INNER JOIN pim_line l
ON l.lineid
= ml.lrnlnlineid
49 INNER JOIN pim_lrnhead h
ON h.documentid
= l.docdocumentid
50 INNER JOIN pop_grnhead gh
51 ON gh.doccode
= h.documentcode
52 AND gh.docnum
= h.documentnumber
55 AND c.balyp_yr
IN (2014, 2015)
56 AND c.matchid
IS NOT NULL
57 GROUP BY c.matchid
, c.el3
, c.balyp_yr
, gh.docyearperiod_yr
58 HAVING SUM(homevalue
) != 0
60 -- Montants réceptionnés par commande et el3 {{{1
62 DECLARE @receptions
TABLE (
63 code_commande
VARCHAR(12) NOT NULL,
64 num_commande
VARCHAR(32) NOT NULL,
66 montant_2014 MONEY
NOT NULL,
67 montant_2015 MONEY
NOT NULL,
68 UNIQUE (code_commande
, num_commande
, el3
)
71 INSERT INTO @receptions
73 ll.orderdocumentcode
AS code_commande
,
74 ll.ordernumber
AS num_commande
,
75 LEFT(ll.departmentmastercode
, 8) AS el3
,
78 WHEN h.yearperiod_yr
= 2014
80 ll.unmatchedvaluevalue
/
81 (ll.documentrate_rate
/ 10000000) *
84 (COALESCE(t.rate
, 0) / 1000000000) *
85 (1 - COALESCE(t.rec_percent
, 0) / 1000000000)
93 WHEN h.yearperiod_yr
= 2015
95 ll.unmatchedvaluevalue
/
96 (ll.documentrate_rate
/ 10000000) *
99 (COALESCE(t.rate
, 0) / 1000000000) *
100 (1 - COALESCE(t.rec_percent
, 0) / 1000000000)
107 INNER JOIN pim_line l
ON l.lineid
= ll.lineid
108 INNER JOIN pim_dochead h
ON h.documentid
= l.docdocumentid
109 LEFT JOIN oas_taxlist t
111 AND t.taxcode
= l.linetaxcode
112 AND t.effect_date
= (
113 SELECT MAX(effect_date
)
115 WHERE cmpcode
= 'AUF' AND taxcode
= l.linetaxcode
118 ll.orderdocumentcode
IS NOT NULL
119 AND ll.ordernumber
IS NOT NULL
121 ll.orderdocumentcode
,
123 LEFT(ll.departmentmastercode
, 8);
125 -- Engagements non rapprochés par el3 {{{1
127 DECLARE @engagements_non_rapproches_el3
TABLE (
129 eng2014_rec2014 MONEY
NOT NULL,
130 eng2014_rec2015 MONEY
NOT NULL,
131 eng2015_rec2015 MONEY
NOT NULL,
132 eng2014_non_receptionnes MONEY
NOT NULL,
133 eng2015_non_receptionnes MONEY
NOT NULL,
137 INSERT INTO @engagements_non_rapproches_el3
142 WHEN e.exercice
= 2014 THEN COALESCE(r.montant_2014
, 0)
145 ) AS eng2014_rec2014
,
148 WHEN e.exercice
= 2014 THEN COALESCE(r.montant_2015
, 0)
151 ) AS eng2014_rec2015
,
154 WHEN e.exercice
= 2015 THEN COALESCE(r.montant_2015
, 0)
157 ) AS eng2015_rec2015
,
160 WHEN e.exercice
= 2014
161 THEN e.montant
- COALESCE(r.montant_2014
+ r.montant_2015
, 0)
164 ) AS eng2014_non_receptionnes
,
167 WHEN e.exercice
= 2015
168 THEN e.montant
- COALESCE(r.montant_2014
+ r.montant_2015
, 0)
171 ) AS eng2015_non_receptionnes
173 @engagements_non_rapproches e
174 LEFT JOIN @receptions r
175 ON e.code_commande
= r.code_commande
176 AND e.num_commande
= r.num_commande
180 -- Engagements rapprochés par el3 {{{1
182 DECLARE @engagements_rapproches_el3
TABLE (
184 eng2014_rec2014 MONEY
NOT NULL,
185 eng2014_rec2015 MONEY
NOT NULL,
186 eng2015_rec2015 MONEY
NOT NULL,
190 INSERT INTO @engagements_rapproches_el3
195 WHEN exercice
= 2014 AND exercice_reception
= 2014 THEN montant
198 ) AS eng2014_rec2014
,
201 WHEN exercice
= 2014 AND exercice_reception
= 2015 THEN montant
204 ) AS eng2014_rec2015
,
206 CASE WHEN exercice
= 2015 THEN montant
ELSE 0 END
208 FROM @engagements_rapproches
211 -- Budget par el3 {{{1
213 DECLARE @budget_el3
TABLE (
214 el3
VARCHAR(8) NOT NULL,
215 exercice
SMALLINT NOT NULL,
216 montant MONEY
NOT NULL,
217 UNIQUE (el3
, exercice
)
220 INSERT INTO @budget_el3
224 SUM(debit_value
) AS montant
228 AND yr
IN (2014, 2015)
229 AND balcode
= 'BUDGET'
234 -- Budget sans BSTG par el3
236 DECLARE @budget_sans_bstg_el3
TABLE (
237 el3
VARCHAR(8) NOT NULL,
238 exercice
SMALLINT NOT NULL,
239 montant MONEY
NOT NULL,
240 UNIQUE (el3
, exercice
)
243 INSERT INTO @budget_sans_bstg_el3
247 SUM(debit_value
) AS montant
251 AND yr
IN (2014, 2015)
252 AND balcode
= 'BUDGET'
255 AND el1
NOT LIKE '8%'
258 -- Préengagement par el3 {{{1
260 DECLARE @preengagement_el3
TABLE (
261 el3
VARCHAR(8) NOT NULL,
262 montant MONEY
NOT NULL,
266 INSERT INTO @preengagement_el3
267 SELECT el3
, SUM(full_value
)
272 AND balcode
= 'PRENGAGEMENT'
279 DECLARE @reel_el3
TABLE (
280 el3
VARCHAR(8) NOT NULL,
281 exercice
SMALLINT NOT NULL,
282 montant MONEY
NOT NULL,
283 UNIQUE (el3
, exercice
)
286 INSERT INTO @reel_el3
287 SELECT el3
, yr
, SUM(full_value
)
291 AND yr
IN (2014, 2015)
298 -- Provisions par el3 {{{1
300 DECLARE @provisions_el3
TABLE (
301 el3
VARCHAR(8) NOT NULL,
302 montant MONEY
NOT NULL,
306 INSERT INTO @provisions_el3
307 SELECT l.el3
, SUM(l.valuehome
)
308 FROM oas_docline l
, oas_dochead h
311 AND h.cmpcode
= 'AUF'
312 AND l.doccode
= h.doccode
313 AND l.docnum
= h.docnum
316 OR (h.doccode
= 'G-ODD-WEB' AND h.docnum
BETWEEN 699 AND 702)
317 OR (h.doccode
IN ('F-ANN', 'G-ANN') AND h.origdoccode
= 'F-CTP')
319 h.doccode
IN ('F-ANN', 'G-ANN')
320 AND h.origdoccode
= 'G-ODD-WEB'
321 AND h.origdocnum
BETWEEN 699 AND 702
325 AND l.el3
IS NOT NULL AND l.el3
!= ''
328 -- Engagement par el3 {{{1
330 DECLARE @engagement_el3
TABLE (
332 montant MONEY
NOT NULL,
336 INSERT INTO @engagement_el3
337 SELECT el3
, SUM(full_value
)
341 AND balcode
= 'ENGAGEMENT'
346 -- Sommaire par el3 {{{1
348 DECLARE @sommaire_el3
TABLE (
350 budget_2014 MONEY
NOT NULL,
351 budget_2014_sans_bstg MONEY
NOT NULL,
352 budget_2015 MONEY
NOT NULL,
353 budget_2015_sans_bstg MONEY
NOT NULL,
354 preengagement MONEY
NOT NULL,
355 eng2014_rec2014 MONEY
NOT NULL,
356 eng2014_rec2015 MONEY
NOT NULL,
357 eng2015_rec2015 MONEY
NOT NULL,
358 eng2014_non_receptionnes MONEY
NOT NULL,
359 eng2015_non_receptionnes MONEY
NOT NULL,
360 reel_2014 MONEY
NOT NULL,
361 reel_2015 MONEY
NOT NULL,
362 provisions MONEY
NOT NULL,
363 engagement MONEY
NOT NULL,
367 INSERT INTO @sommaire_el3
371 SUM(budget_2014_sans_bstg
),
373 SUM(budget_2015_sans_bstg
),
375 SUM(eng2014_rec2014
),
376 SUM(eng2014_rec2015
),
377 SUM(eng2015_rec2015
),
378 SUM(eng2014_non_receptionnes
),
379 SUM(eng2015_non_receptionnes
),
388 0 AS budget_2014_sans_bstg
,
390 0 AS budget_2015_sans_bstg
,
395 eng2014_non_receptionnes
,
396 eng2015_non_receptionnes
,
401 FROM @engagements_non_rapproches_el3
406 0 AS budget_2014_sans_bstg
,
408 0 AS budget_2015_sans_bstg
,
413 0 AS eng2014_non_receptionnes
,
414 0 AS eng2015_non_receptionnes
,
419 FROM @engagements_rapproches_el3
423 CASE WHEN exercice
= 2014 THEN montant
ELSE 0 END AS budget_2014
,
424 0 AS budget_2014_sans_bstg
,
425 CASE WHEN exercice
= 2015 THEN montant
ELSE 0 END AS budget_2015
,
426 0 AS budget_2015_sans_bstg
,
428 0 AS eng2014_rec2014
,
429 0 AS eng2014_rec2015
,
430 0 AS eng2015_rec2015
,
431 0 AS eng2014_non_receptionnes
,
432 0 AS eng2015_non_receptionnes
,
442 CASE WHEN exercice
= 2014 THEN montant
ELSE 0 END AS budget_2014_sans_bstg
,
444 CASE WHEN exercice
= 2015 THEN montant
ELSE 0 END AS budget_2015_sans_bstg
,
446 0 AS eng2014_rec2014
,
447 0 AS eng2014_rec2015
,
448 0 AS eng2015_rec2015
,
449 0 AS eng2014_non_receptionnes
,
450 0 AS eng2015_non_receptionnes
,
455 FROM @budget_sans_bstg_el3
460 0 AS budget_2014_sans_bstg
,
462 0 AS budget_2015_sans_bstg
,
463 montant
AS preengagement
,
464 0 AS eng2014_rec2014
,
465 0 AS eng2014_rec2015
,
466 0 AS eng2015_rec2015
,
467 0 AS eng2014_non_receptionnes
,
468 0 AS eng2015_non_receptionnes
,
473 FROM @preengagement_el3
478 0 AS budget_2014_sans_bstg
,
480 0 AS budget_2015_sans_bstg
,
482 0 AS eng2014_rec2014
,
483 0 AS eng2014_rec2015
,
484 0 AS eng2015_rec2015
,
485 0 AS eng2014_non_receptionnes
,
486 0 AS eng2015_non_receptionnes
,
487 CASE WHEN exercice
= 2014 THEN montant
ELSE 0 END AS reel_2014
,
488 CASE WHEN exercice
= 2015 THEN montant
ELSE 0 END AS reel_2015
,
496 0 AS budget_2014_sans_bstg
,
498 0 AS budget_2015_sans_bstg
,
500 0 AS eng2014_rec2014
,
501 0 AS eng2014_rec2015
,
502 0 AS eng2015_rec2015
,
503 0 AS eng2014_non_receptionnes
,
504 0 AS eng2015_non_receptionnes
,
507 montant
AS provisions
,
514 0 AS budget_2014_sans_bstg
,
516 0 AS budget_2015_sans_bstg
,
518 0 AS eng2014_rec2014
,
519 0 AS eng2014_rec2015
,
520 0 AS eng2015_rec2015
,
521 0 AS eng2014_non_receptionnes
,
522 0 AS eng2015_non_receptionnes
,
526 montant
AS engagement
531 -- Consommation 2015 {{{1
537 grpI.code
AS [Code implantation
],
538 grpI.
name AS Implantation
,
539 grpN.code
AS [Code objectif
],
540 grpN.
name AS Objectif
,
541 grpR.code
AS [Code rubrique
],
542 grpR.
name AS Rubrique
,
543 budget_2015
AS Budget
,
544 budget_2015_sans_bstg
AS [Budget sans BSTG
],
545 eng2014_rec2015
AS [Engagements
2014 reçus en
2015],
546 eng2015_rec2015
AS [Engagements
2015 reçus en
2015],
547 preengagement
AS [Pré
-engagement
],
548 eng2014_non_receptionnes
AS [Engagements
2014 non reçus
],
549 eng2015_non_receptionnes
AS [Engagements
2015 non reçus
],
551 eng2014_rec2015
+ eng2015_rec2015
+ preengagement
+
552 eng2014_non_receptionnes
+ eng2015_non_receptionnes
553 ) AS [Total engagé et pré
-engagé
],
555 WHEN budget_2015_sans_bstg
!= 0
557 eng2014_rec2015
+ eng2015_rec2015
+ preengagement
+
558 eng2014_non_receptionnes
+ eng2015_non_receptionnes
559 ) / budget_2015_sans_bstg
560 END AS [Taux de consommation
1],
561 reel_2015
AS [Réel
2015],
562 -provisions
AS [Provisions
2014],
563 engagement
AS [Engagement
],
565 WHEN budget_2015_sans_bstg
!= 0
566 THEN (reel_2015
+ engagement
) / budget_2015_sans_bstg
567 END AS [Taux de consommation
2]
570 INNER JOIN oas_element el3
571 ON el3.cmpcode
= 'AUF'
574 LEFT JOIN oas_grplist glI
575 ON glI.cmpcode
= 'AUF'
578 AND glI.grpcode
LIKE 'I%'
579 LEFT JOIN oas_group grpI
580 ON grpI.cmpcode
= 'AUF'
581 AND grpI.groupwhat
= 3
582 AND grpI.code
= glI.grpcode
583 LEFT JOIN oas_grplist glN
584 ON glN.cmpcode
= 'AUF'
587 AND glN.grpcode
LIKE 'N%'
588 LEFT JOIN oas_group grpN
589 ON grpN.cmpcode
= 'AUF'
590 AND grpN.groupwhat
= 3
591 AND grpN.code
= glN.grpcode
592 LEFT JOIN oas_grplist glR
593 ON glR.cmpcode
= 'AUF'
596 AND glR.grpcode
LIKE 'R%'
597 LEFT JOIN oas_group grpR
598 ON grpR.cmpcode
= 'AUF'
599 AND grpR.groupwhat
= 3
600 AND grpR.code
= glR.grpcode
603 OR budget_2015_sans_bstg
!= 0
604 OR preengagement
!= 0
605 OR eng2014_non_receptionnes
!= 0
606 OR eng2015_non_receptionnes
!= 0
607 OR eng2014_rec2015
!= 0
608 OR eng2015_rec2015
!= 0
614 -- Consommation 2014 {{{1
620 grpI.code
AS [Code implantation
],
621 grpI.
name AS Implantation
,
622 grpN.code
AS [Code objectif
],
623 grpN.
name AS Objectif
,
624 grpR.code
AS [Code rubrique
],
625 grpR.
name AS Rubrique
,
626 budget_2014
AS Budget
,
627 budget_2014_sans_bstg
AS [Budget sans BSTG
],
628 eng2014_rec2014
AS [Engagements
2014 reçus en
2014],
629 eng2014_non_receptionnes
+ eng2014_rec2015
630 AS [Engagements
2014 non reçus en
2014],
632 WHEN budget_2014_sans_bstg
!= 0
633 THEN eng2014_rec2014
/ budget_2014_sans_bstg
634 END AS [Taux exécution
],
636 WHEN budget_2014_sans_bstg
!= 0
637 THEN (eng2014_rec2014
+ eng2014_rec2015
+ eng2014_non_receptionnes
)
638 / budget_2014_sans_bstg
639 END AS [Taux engagement
],
641 provisions
AS Provisions
,
643 WHEN budget_2014_sans_bstg
!= 0
644 THEN reel_2014
/ budget_2014_sans_bstg
645 END AS [Taux de consommation
]
648 INNER JOIN oas_element el3
649 ON el3.cmpcode
= 'AUF'
652 LEFT JOIN oas_grplist glI
653 ON glI.cmpcode
= 'AUF'
656 AND glI.grpcode
LIKE 'I%'
657 LEFT JOIN oas_group grpI
658 ON grpI.cmpcode
= 'AUF'
659 AND grpI.groupwhat
= 3
660 AND grpI.code
= glI.grpcode
661 LEFT JOIN oas_grplist glN
662 ON glN.cmpcode
= 'AUF'
665 AND glN.grpcode
LIKE 'N%'
666 LEFT JOIN oas_group grpN
667 ON grpN.cmpcode
= 'AUF'
668 AND grpN.groupwhat
= 3
669 AND grpN.code
= glN.grpcode
670 LEFT JOIN oas_grplist glR
671 ON glR.cmpcode
= 'AUF'
674 AND glR.grpcode
LIKE 'R%'
675 LEFT JOIN oas_group grpR
676 ON grpR.cmpcode
= 'AUF'
677 AND grpR.groupwhat
= 3
678 AND grpR.code
= glR.grpcode
681 OR budget_2014_sans_bstg
!= 0
682 OR eng2014_non_receptionnes
!= 0
683 OR eng2014_rec2014
!= 0
684 OR eng2014_rec2015
!= 0
689 -- vim: foldmethod=marker