Commit 9269e35d authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Wip process de calcul du tbl_piece_jointe

parent 34540fac
Loading
Loading
Loading
Loading
Loading
+107 −46
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "7a7db71710b834c735285baffb020cd0",
    "content-hash": "e34098a8e70d6a7c335de21eb2633b00",
    "packages": [
        {
            "name": "apereo/phpcas",
@@ -850,26 +850,29 @@
        },
        {
            "name": "doctrine/deprecations",
            "version": "1.1.4",
            "version": "1.1.5",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/deprecations.git",
                "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
                "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
                "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
                "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
                "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
                "shasum": ""
            },
            "require": {
                "php": "^7.1 || ^8.0"
            },
            "conflict": {
                "phpunit/phpunit": "<=7.5 || >=13"
            },
            "require-dev": {
                "doctrine/coding-standard": "^9 || ^12",
                "phpstan/phpstan": "1.4.10 || 2.0.3",
                "doctrine/coding-standard": "^9 || ^12 || ^13",
                "phpstan/phpstan": "1.4.10 || 2.1.11",
                "phpstan/phpstan-phpunit": "^1.0 || ^2",
                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12",
                "psr/log": "^1 || ^2 || ^3"
            },
            "suggest": {
@@ -889,9 +892,9 @@
            "homepage": "https://www.doctrine-project.org/",
            "support": {
                "issues": "https://github.com/doctrine/deprecations/issues",
                "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
                "source": "https://github.com/doctrine/deprecations/tree/1.1.5"
            },
            "time": "2024-12-07T21:18:45+00:00"
            "time": "2025-04-07T20:06:18+00:00"
        },
        {
            "name": "doctrine/doctrine-laminas-hydrator",
@@ -3107,16 +3110,16 @@
        },
        {
            "name": "laminas/laminas-i18n",
            "version": "2.29.0",
            "version": "2.30.0",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-i18n.git",
                "reference": "9aa7ef6073556e9b4cfd8d9a0cb8e41cd3883454"
                "reference": "397907ee061e147939364df9d6c485ac1e0fed87"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/9aa7ef6073556e9b4cfd8d9a0cb8e41cd3883454",
                "reference": "9aa7ef6073556e9b4cfd8d9a0cb8e41cd3883454",
                "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/397907ee061e147939364df9d6c485ac1e0fed87",
                "reference": "397907ee061e147939364df9d6c485ac1e0fed87",
                "shasum": ""
            },
            "require": {
@@ -3131,18 +3134,18 @@
                "zendframework/zend-i18n": "*"
            },
            "require-dev": {
                "laminas/laminas-cache": "^3.12.1",
                "laminas/laminas-cache-storage-adapter-memory": "^2.3.0",
                "laminas/laminas-cache-storage-deprecated-factory": "^1.2",
                "laminas/laminas-cache": "^3.13.0",
                "laminas/laminas-cache-storage-adapter-memory": "^2.4.0",
                "laminas/laminas-cache-storage-deprecated-factory": "^1.3",
                "laminas/laminas-coding-standard": "~2.5.0",
                "laminas/laminas-config": "^3.9.0",
                "laminas/laminas-eventmanager": "^3.13",
                "laminas/laminas-filter": "^2.34",
                "laminas/laminas-validator": "^2.49",
                "laminas/laminas-view": "^2.34",
                "phpunit/phpunit": "^10.5.11",
                "psalm/plugin-phpunit": "^0.19.0",
                "vimeo/psalm": "^5.22.2"
                "laminas/laminas-config": "^3.10.1",
                "laminas/laminas-eventmanager": "^3.14.0",
                "laminas/laminas-filter": "^2.40",
                "laminas/laminas-validator": "^2.64.2",
                "laminas/laminas-view": "^2.36",
                "phpunit/phpunit": "^10.5.45",
                "psalm/plugin-phpunit": "^0.19.5",
                "vimeo/psalm": "^6.10.0"
            },
            "suggest": {
                "laminas/laminas-cache": "You should install this package to cache the translations",
@@ -3189,7 +3192,7 @@
                    "type": "community_bridge"
                }
            ],
            "time": "2024-10-11T09:44:53+00:00"
            "time": "2025-04-15T09:07:02+00:00"
        },
        {
            "name": "laminas/laminas-i18n-resources",
@@ -3252,16 +3255,16 @@
        },
        {
            "name": "laminas/laminas-inputfilter",
            "version": "2.31.0",
            "version": "2.32.0",
            "source": {
                "type": "git",
                "url": "https://github.com/laminas/laminas-inputfilter.git",
                "reference": "214b033769616f4211ffb63b432b716d786622c9"
                "reference": "5f04f1e5a6b1bd3c82114b6ea748a70ce65787f6"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/214b033769616f4211ffb63b432b716d786622c9",
                "reference": "214b033769616f4211ffb63b432b716d786622c9",
                "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/5f04f1e5a6b1bd3c82114b6ea748a70ce65787f6",
                "reference": "5f04f1e5a6b1bd3c82114b6ea748a70ce65787f6",
                "shasum": ""
            },
            "require": {
@@ -3276,11 +3279,11 @@
            },
            "require-dev": {
                "ext-json": "*",
                "laminas/laminas-coding-standard": "~3.0",
                "phpunit/phpunit": "^10.5.20",
                "psalm/plugin-phpunit": "^0.19.0",
                "laminas/laminas-coding-standard": "^3.0.1",
                "phpunit/phpunit": "^10.5.45",
                "psalm/plugin-phpunit": "^0.19.5",
                "psr/http-message": "^2.0",
                "vimeo/psalm": "^5.24.0",
                "vimeo/psalm": "^6.10.0",
                "webmozart/assert": "^1.11"
            },
            "suggest": {
@@ -3322,7 +3325,7 @@
                    "type": "community_bridge"
                }
            ],
            "time": "2024-11-15T20:17:41+00:00"
            "time": "2025-04-14T00:23:41+00:00"
        },
        {
            "name": "laminas/laminas-json",
@@ -9138,16 +9141,16 @@
        },
        {
            "name": "phpdocumentor/reflection-docblock",
            "version": "5.6.1",
            "version": "5.6.2",
            "source": {
                "type": "git",
                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
                "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8"
                "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
                "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62",
                "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62",
                "shasum": ""
            },
            "require": {
@@ -9196,9 +9199,9 @@
            "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
            "support": {
                "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1"
                "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2"
            },
            "time": "2024-12-07T09:39:29+00:00"
            "time": "2025-04-13T19:20:35+00:00"
        },
        {
            "name": "phpdocumentor/type-resolver",
@@ -9388,6 +9391,64 @@
            },
            "time": "2025-02-19T13:28:12+00:00"
        },
        {
            "name": "phpstan/phpstan",
            "version": "2.1.13",
            "source": {
                "type": "git",
                "url": "https://github.com/phpstan/phpstan.git",
                "reference": "e55e03e6d4ac49cd1240907e5b08e5cd378572a9"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e55e03e6d4ac49cd1240907e5b08e5cd378572a9",
                "reference": "e55e03e6d4ac49cd1240907e5b08e5cd378572a9",
                "shasum": ""
            },
            "require": {
                "php": "^7.4|^8.0"
            },
            "conflict": {
                "phpstan/phpstan-shim": "*"
            },
            "bin": [
                "phpstan",
                "phpstan.phar"
            ],
            "type": "library",
            "autoload": {
                "files": [
                    "bootstrap.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "PHPStan - PHP Static Analysis Tool",
            "keywords": [
                "dev",
                "static analysis"
            ],
            "support": {
                "docs": "https://phpstan.org/user-guide/getting-started",
                "forum": "https://github.com/phpstan/phpstan/discussions",
                "issues": "https://github.com/phpstan/phpstan/issues",
                "security": "https://github.com/phpstan/phpstan/security/policy",
                "source": "https://github.com/phpstan/phpstan-src"
            },
            "funding": [
                {
                    "url": "https://github.com/ondrejmirtes",
                    "type": "github"
                },
                {
                    "url": "https://github.com/phpstan",
                    "type": "github"
                }
            ],
            "time": "2025-04-27T12:28:25+00:00"
        },
        {
            "name": "phpunit/php-code-coverage",
            "version": "9.2.32",
@@ -11367,16 +11428,16 @@
        },
        {
            "name": "squizlabs/php_codesniffer",
            "version": "3.12.0",
            "version": "3.12.2",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
                "reference": "2d1b63db139c3c6ea0c927698e5160f8b3b8d630"
                "reference": "6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/2d1b63db139c3c6ea0c927698e5160f8b3b8d630",
                "reference": "2d1b63db139c3c6ea0c927698e5160f8b3b8d630",
                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa",
                "reference": "6d4cf6032d4b718f168c90a96e36c7d0eaacb2aa",
                "shasum": ""
            },
            "require": {
@@ -11447,7 +11508,7 @@
                    "type": "thanks_dev"
                }
            ],
            "time": "2025-03-18T05:04:51+00:00"
            "time": "2025-04-13T04:10:18+00:00"
        },
        {
            "name": "symfony/config",
+2 −1
Original line number Diff line number Diff line
@@ -357,7 +357,7 @@ return [

            'piece_jointe' => [
                'order'   => 10,
                'process' => 'DbDiff',
                'process' => \PieceJointe\Tbl\Process\PieceJointeProcess::class,
                'cols'    => [
                    'ANNEE_ID',
                    'TYPE_PIECE_JOINTE_ID',
@@ -368,6 +368,7 @@ return [
                    'VALIDEE',
                    'HEURES_POUR_SEUIL',
                    'OBLIGATOIRE',
                    'DEMANDEE_APRES_RECRUTEMENT',
                ],
                'key'     => [
                    'TYPE_PIECE_JOINTE_ID',
+77 −52
Original line number Diff line number Diff line
@@ -9,6 +9,18 @@ return [
    'commentaire' => 'Pièces justificatives',
    'sequence'    => 'TBL_PIECE_JOINTE_ID_SEQ',
    'columns'     => [
        'ID'                   => [
            'name'        => 'ID',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => false,
            'default'     => '"TBL_PIECE_JOINTE_ID_SEQ"."NEXTVAL"',
            'position'    => 1,
            'commentaire' => null,
        ],
        'ANNEE_ID'             => [
            'name'        => 'ANNEE_ID',
            'type'        => 'int',
@@ -21,6 +33,42 @@ return [
            'position'    => 2,
            'commentaire' => null,
        ],
        'TYPE_PIECE_JOINTE_ID' => [
            'name'        => 'TYPE_PIECE_JOINTE_ID',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => false,
            'default'     => null,
            'position'    => 3,
            'commentaire' => null,
        ],
        'PIECE_JOINTE_ID'      => [
            'name'        => 'PIECE_JOINTE_ID',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => true,
            'default'     => null,
            'position'    => 4,
            'commentaire' => null,
        ],
        'INTERVENANT_ID'       => [
            'name'        => 'INTERVENANT_ID',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => false,
            'default'     => null,
            'position'    => 5,
            'commentaire' => null,
        ],
        'DEMANDEE'             => [
            'name'        => 'DEMANDEE',
            'type'        => 'bool',
@@ -45,41 +93,17 @@ return [
            'position'    => 7,
            'commentaire' => 'Témoin (1 si la PJ est fournie)',
        ],
        'HEURES_POUR_SEUIL'    => [
            'name'        => 'HEURES_POUR_SEUIL',
            'type'        => 'float',
            'bdd-type'    => 'FLOAT',
            'length'      => 0,
            'scale'       => null,
            'precision'   => 126,
            'nullable'    => false,
            'default'     => '0',
            'position'    => 9,
            'commentaire' => 'NB d\'heures de seuil pour la demande',
        ],
        'ID'                   => [
            'name'        => 'ID',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => false,
            'default'     => '"TBL_PIECE_JOINTE_ID_SEQ"."NEXTVAL"',
            'position'    => 1,
            'commentaire' => null,
        ],
        'INTERVENANT_ID'       => [
            'name'        => 'INTERVENANT_ID',
            'type'        => 'int',
        'VALIDEE'              => [
            'name'        => 'VALIDEE',
            'type'        => 'bool',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'precision'   => 1,
            'nullable'    => false,
            'default'     => null,
            'position'    => 5,
            'commentaire' => null,
            'default'     => '0',
            'position'    => 8,
            'commentaire' => 'Témoin (1 si la PJ est validée)',
        ],
        'OBLIGATOIRE'          => [
            'name'        => 'OBLIGATOIRE',
@@ -90,47 +114,47 @@ return [
            'precision'   => 1,
            'nullable'    => false,
            'default'     => '1',
            'position'    => 10,
            'position'    => 9,
            'commentaire' => null,
        ],
        'PIECE_JOINTE_ID'      => [
            'name'        => 'PIECE_JOINTE_ID',
        'DATE_ORIGINE' => [
            'name'        => 'DATE_ORIGINE',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => true,
            'default'     => null,
            'position'    => 4,
            'commentaire' => null,
            'nullable'    => false,
            'default'     => '0',
            'position'    => 10,
            'commentaire' => '',
        ],
        'TYPE_PIECE_JOINTE_ID' => [
            'name'        => 'TYPE_PIECE_JOINTE_ID',
        'DATE_VALIDITEE' => [
            'name'        => 'DATE_VALIDITEE',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
            'scale'       => null,
            'precision'   => null,
            'nullable'    => false,
            'default'     => null,
            'position'    => 3,
            'commentaire' => null,
            'default'     => '0',
            'position'    => 11,
            'commentaire' => '',
        ],
        'VALIDEE'              => [
            'name'        => 'VALIDEE',
            'type'        => 'bool',
            'bdd-type'    => 'NUMBER',
        'SEUIL_HETD'    => [
            'name'        => 'SEUIL_HETD',
            'type'        => 'float',
            'bdd-type'    => 'FLOAT',
            'length'      => 0,
            'scale'       => null,
            'precision'   => 1,
            'precision'   => 126,
            'nullable'    => false,
            'default'     => '0',
            'position'    => 8,
            'commentaire' => 'Témoin (1 si la PJ est validée)',
            'position'    => 12,
            'commentaire' => 'NB d\'heures de seuil pour la demande',
        ],
        'DEMANDEE_APRES_RECRUTEMENT' => [
            'name'        => 'DEMANDEE_APRES_RECRUTEMENT',,
            'name'        => 'DEMANDEE_APRES_RECRUTEMENT',
            'type'        => 'int',
            'bdd-type'    => 'NUMBER',
            'length'      => 0,
@@ -138,9 +162,10 @@ return [
            'precision'   => null,
            'nullable'    => false,
            'default'     => '0',
            'position'    => 20,
            'position'    => 13,
            'commentaire' => 'PIECE DEMANDE APRES RECRUTEMENT',
        ],

    ],
];

+8 −3
Original line number Diff line number Diff line
--CREATE OR REPLACE FORCE VIEW V_TBL_PIECE_JOINTE_DEMANDE AS
CREATE OR REPLACE FORCE VIEW V_TBL_PIECE_JOINTE_DEMANDE AS
WITH i_h AS (
	SELECT
		s.intervenant_id,
@@ -29,6 +29,7 @@ hetd AS (
	JOIN etat_volume_horaire evh ON	evh.id = fr.etat_volume_horaire_id
	WHERE
		tvh.code = 'PREVU'
	    /*@INTERVENANT_ID=fr.intervenant_id*/
	GROUP BY
		intervenant_id
)
@@ -40,8 +41,10 @@ SELECT
	MAX(COALESCE(i_h.heures, 0)) 			heures_pour_seuil,
	MAX(tpjs.obligatoire) 					obligatoire,
	MAX(COALESCE(hetd.total_hetd, 0)) 		heures_pour_seuil_hetd,
    MAX(tpjs.seuil_hetd)       				seuil_hetd,
	MIN(tpjs.duree_vie) 				 	duree_vie,
	MAX(tpjs.demandee_apres_recrutement)	demandee_apres_recrutement
	MAX(tpjs.demandee_apres_recrutement)	demandee_apres_recrutement,
	tpj.code                                type_pj_code
FROM
	intervenant i
LEFT JOIN intervenant_dossier d ON d.intervenant_id = i.id
@@ -101,4 +104,6 @@ GROUP BY
	i.annee_id,
	i.id,
	i.code,
	tpj.id
 No newline at end of file
	tpj.id,
	tpj.code
ORDER BY i.annee_id DESC;
 No newline at end of file
+12 −10
Original line number Diff line number Diff line
@@ -6,13 +6,14 @@ SELECT
   pj.intervenant_id,
   pj.id piece_jointe_id,
   v.id validation_id,
  f.id fichier_id,
--  CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN 1 ELSE MIN(COALESCE(tpjs.duree_vie,1)) END duree_vie,
  --CASE WHEN MIN(COALESCE(tpjs.duree_vie,1)) IS NULL THEN i.annee_id+1 ELSE MIN(i.annee_id+COALESCE(tpjs.duree_vie,1)) END date_validite,
   MAX(f.id) fichier_id,
   MIN(COALESCE(tpjs.duree_vie,999)) duree_vie,
  MIN(i.annee_id+COALESCE(tpjs.duree_vie,999)) date_validite,

  pj.date_archive date_archive
   MIN(i.annee_id+COALESCE(tpjs.duree_vie,999)) date_validitee,
   pj.date_archive date_archive,
   pjs.code        type_pj_code,
   COALESCE(max(tpjs.demandee_apres_recrutement),0)  demandee_apres_recrutement,
   COALESCE(max(tpjs.seuil_hetd),0)  seuil_hetd,
   COALESCE(max(tpjs.obligatoire),0)  obligatoire
 FROM
             piece_jointe              pj
        JOIN intervenant                i ON i.id = pj.intervenant_id
@@ -23,7 +24,8 @@ FROM
  LEFT JOIN type_piece_jointe_statut tpjs ON tpjs.statut_id = i.statut_id
                                         AND tpjs.type_piece_jointe_id = pj.type_piece_jointe_id
                                         AND i.annee_id = tpjs.annee_id
                                        AND tpjs.HISTO_DESTRUCTION IS NULL
                                         AND tpjs.histo_destruction IS NULL
  LEFT JOIN type_piece_jointe        pjs ON pjs.id = pj.type_piece_jointe_id
  LEFT JOIN validation                  v ON v.id = pj.validation_id
                                         AND v.histo_destruction IS NULL
 WHERE
@@ -34,6 +36,6 @@ GROUP BY
   pj.type_piece_jointe_id,
   pj.intervenant_id,
   pj.id,
  v.id,
  f.id,
  pj.date_archive
 No newline at end of file
   pj.date_archive,
   pjs.code,
   v.id
Loading