/[openfoncier]/trunk/obj/commission.class.php
ViewVC logotype

Diff of /trunk/obj/commission.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 15834 by softime, Thu Dec 15 22:46:03 2022 UTC revision 15835 by softime, Thu Oct 5 12:46:12 2023 UTC
# Line 531  class commission extends commission_gen Line 531  class commission extends commission_gen
531           *           *
532           */           */
533          //          //
534          $query = sprintf(          $sql = 'SELECT
535              'SELECT                  dossier_commission.dossier_commission AS "dossier_commission_id",
536                  dossier_commission.dossier_commission as "dossier_commission_id",                  dossier_commission.dossier AS "dossier",
537                  dossier_commission.dossier as "dossier",                  dossier.dossier_libelle AS "dossier_libelle",
                 dossier.dossier_libelle as "dossier_libelle",  
538                  CASE WHEN demandeur.qualite = \'particulier\'                  CASE WHEN demandeur.qualite = \'particulier\'
539                      THEN TRIM(                      THEN TRIM(
540                          CONCAT(                          CONCAT(
# Line 551  class commission extends commission_gen Line 550  class commission extends commission_gen
550                              demandeur.personne_morale_denomination                              demandeur.personne_morale_denomination
551                          )                          )
552                      )                      )
553                  END as "demandeur",                  END AS "demandeur",
554                  TRIM(                  TRIM(
555                      CASE                      CASE
556                          WHEN dossier.adresse_normalisee IS NULL                          WHEN dossier.adresse_normalisee IS NULL
# Line 566  class commission extends commission_gen Line 565  class commission extends commission_gen
565                          ELSE                          ELSE
566                              dossier.adresse_normalisee                              dossier.adresse_normalisee
567                      END                      END
568                  ) as "terrain",                  ) AS "terrain",
569                  instructeur.nom as "instructeur",                  instructeur.nom AS "instructeur",
570                  dossier_commission.motivation as "motivation",                  dossier_commission.motivation AS "motivation",
571                  to_char(dossier_commission.date_souhaitee, \'DD/MM/YYYY\') as "date_souhaitee",                  to_char(dossier_commission.date_souhaitee, \'DD/MM/YYYY\') AS "date_souhaitee",
572                  to_char(dossier.date_limite, \'DD/MM/YYYY\') as "date_limite",                  to_char(dossier.date_limite, \'DD/MM/YYYY\') AS "date_limite",
573                  etat.libelle as "etat",                  etat.libelle AS "etat",
574                  dossier_commission.avis as "avis"                  dossier_commission.avis AS "avis"
575              FROM              FROM
576                  %1$sdossier_commission                  %1$sdossier_commission
577                  LEFT JOIN %1$sdossier                  LEFT JOIN %1$sdossier
# Line 582  class commission extends commission_gen Line 581  class commission extends commission_gen
581                  LEFT JOIN %1$setat                  LEFT JOIN %1$setat
582                      ON dossier.etat = etat.etat                      ON dossier.etat = etat.etat
583                  LEFT JOIN (                  LEFT JOIN (
584                      SELECT *                      SELECT
585                          FROM %1$slien_dossier_demandeur                          *
586                        FROM
587                            %1$slien_dossier_demandeur
588                          INNER JOIN %1$sdemandeur                          INNER JOIN %1$sdemandeur
589                              ON demandeur.demandeur = lien_dossier_demandeur.demandeur                              ON demandeur.demandeur = lien_dossier_demandeur.demandeur
590                          WHERE lien_dossier_demandeur.petitionnaire_principal IS TRUE                      WHERE
591                            lien_dossier_demandeur.petitionnaire_principal IS TRUE
592                          AND LOWER(demandeur.type_demandeur) = LOWER(\'petitionnaire\')                          AND LOWER(demandeur.type_demandeur) = LOWER(\'petitionnaire\')
593                  ) as "demandeur"                  ) AS "demandeur"
594                      ON demandeur.dossier = dossier.dossier                      ON demandeur.dossier = dossier.dossier
595                  LEFT JOIN %1$sinstructeur                  LEFT JOIN %1$sinstructeur
596                      ON dossier.instructeur = instructeur.instructeur                      ON dossier.instructeur = instructeur.instructeur
597              ',              %2$s
598              DB_PREFIXE              ORDER BY
599          );                  dossier_commission.avis DESC NULLS LAST,
600          $orderby = "                  dossier';
601          ORDER BY          
             dossier_commission.avis DESC NULLS LAST,  
             dossier  
         ";  
602          // Demandes déjà rattachées à la commission.          // Demandes déjà rattachées à la commission.
603          $sql = $query."          $qres = $this->f->get_all_results_from_db_query(
604          WHERE              sprintf(
605              dossier_commission.commission = ".$idx."                  $sql,
606              AND dossier_instruction_type.sous_dossier IS NOT TRUE                  DB_PREFIXE,
607          ".$orderby;                  sprintf(
608          $res = $this->f->db->query($sql);                      'WHERE
609          $this->f->addToLog(                          dossier_commission.commission = \'%d \'
610              __METHOD__."(): db->query(\"".$sql."\");",                          AND dossier_instruction_type.sous_dossier IS NOT TRUE',
611              VERBOSE_MODE                      intVal($idx)
612                    )
613                ),
614                array(
615                    "origin" => __METHOD__,
616                )
617          );          );
         $this->f->isDatabaseError($res);  
618          // Demandes rattachables à la commission.          // Demandes rattachables à la commission.
619          $sqlAjout = $query."          $qresAjout = $this->f->get_all_results_from_db_query(
620          WHERE              sprintf(
621              dossier_commission.commission IS NULL AND                  $sql,
622              dossier_commission.commission_type =                  DB_PREFIXE,
623              (                  sprintf(
624                  SELECT                      'WHERE
625                      commission_type                          dossier_commission.commission IS NULL
626                  FROM                          AND dossier_commission.commission_type = (
627                      ".DB_PREFIXE."commission                              SELECT
628                  WHERE commission.commission = ".$idx."                                  commission_type
629                                FROM
630                                    %1$scommission
631                                WHERE
632                                    commission.commission = \'%2$d\'
633                            )',
634                        DB_PREFIXE,
635                        intVal($idx)
636                    )
637                ),
638                array(
639                    "origin" => __METHOD__,
640              )              )
         ".$orderby;  
         $resAjout = $this->f->db->query($sqlAjout);  
         $this->f->addToLog(  
             __METHOD__."(): db->query(\"".$sqlAjout."\");",  
             VERBOSE_MODE  
641          );          );
         $this->f->isDatabaseError($resAjout);  
642    
643          /**          /**
644           * Aucun résultat. On affiche un message explicite à l'utilisateur           * Aucun résultat. On affiche un message explicite à l'utilisateur
645           * et on sort de la view.           * et on sort de la view.
646           */           */
647          if ($res->numrows() == 0 && $resAjout->numrows() == 0) {          if ($qres['row_count'] == 0 && $qresAjout['row_count'] == 0) {
648              echo _("Aucune demande de passage pour ce type de commission.");              echo _("Aucune demande de passage pour ce type de commission.");
649              return;              return;
650          }          }
# Line 703  class commission extends commission_gen Line 711  class commission extends commission_gen
711          //          //
712          $ct_body = "";          $ct_body = "";
713          //          //
714          while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {          foreach($qres['result'] as $row) {
715              $ct_body .= sprintf(              $ct_body .= sprintf(
716                  $template_line,                  $template_line,
717                  $row['dossier'],                  $row['dossier'],
# Line 722  class commission extends commission_gen Line 730  class commission extends commission_gen
730              );              );
731          }          }
732          //          //
733          while ($row =& $resAjout->fetchRow(DB_FETCHMODE_ASSOC)) {          foreach($qresAjout['result'] as $row) {
734              $ct_body .= sprintf(              $ct_body .= sprintf(
735                  $template_line,                  $template_line,
736                  $row['dossier'],                  $row['dossier'],
# Line 914  class commission extends commission_gen Line 922  class commission extends commission_gen
922    
923          // Vérification de l'existence du dossier          // Vérification de l'existence du dossier
924          $dossier = $val["dossier"];          $dossier = $val["dossier"];
925          $sql = "SELECT dossier, om_collectivite  
926                  FROM ".DB_PREFIXE."dossier          $qresDossier = $this->f->get_all_results_from_db_query(
927                      INNER JOIN ".DB_PREFIXE."dossier_instruction_type              sprintf(
928                    'SELECT
929                        dossier,
930                        om_collectivite
931                    FROM
932                        %1$sdossier
933                        INNER JOIN %1$sdossier_instruction_type
934                          ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type                          ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
935                      INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille                      INNER JOIN %1$sdossier_autorisation_type_detaille
936                          ON dossier_instruction_type.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille                          ON dossier_instruction_type.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
937                      INNER JOIN ".DB_PREFIXE."dossier_autorisation_type                      INNER JOIN %1$sdossier_autorisation_type
938                          ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type                          ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
939                      INNER JOIN ".DB_PREFIXE."groupe                      INNER JOIN %1$sgroupe
940                          ON dossier_autorisation_type.groupe = groupe.groupe                          ON dossier_autorisation_type.groupe = groupe.groupe
941                              AND groupe.code != 'CTX'                              AND groupe.code != \'CTX\'
942                  WHERE dossier = '".$this->f->db->escapeSimple($dossier)."'";                  WHERE
943          $resDossier = $this->f->db->query($sql);                      dossier = \'%2$s\' ',
944          $this->f->addToLog(                  DB_PREFIXE,
945              __METHOD__."(): db->query(\"".$sql."\");",                  $this->f->db->escapeSimple($dossier)
946              VERBOSE_MODE              ),
947                array(
948                    "origin" => __METHOD__,
949                )
950          );          );
951          $this->f->isDatabaseError($resDossier);  
           
952          // Si le dossier n'existe pas          // Si le dossier n'existe pas
953          if ($resDossier->numrows() == 0) {          if ($qresDossier['row_count'] == 0) {
954              $this->correct = false;              $this->correct = false;
955              $this->addToMessage(_("Ce dossier n'existe pas."));              $this->addToMessage(_("Ce dossier n'existe pas."));
956              return $this->end_treatment(__METHOD__, false);              return $this->end_treatment(__METHOD__, false);
957          }          }
958    
959          // Teste si le dossier est déjà à l'ordre du jour          // Teste si le dossier est déjà à l'ordre du jour
960          $sql = sprintf(          $qres = $this->f->get_all_results_from_db_query(
961              'SELECT              sprintf(
962                  dossier                  'SELECT
963              FROM                      dossier
964                  %sdossier_commission                  FROM
965              WHERE                      %1$sdossier_commission
966                  dossier = \'%s\'                  WHERE
967                  AND dossier_commission.commission = %s',                      dossier = \'%2$s\'
968              DB_PREFIXE,                  AND
969              $this->f->db->escapeSimple($dossier),                      dossier_commission.commission = %3$d',
970              $idx                  DB_PREFIXE,
971          );                  $this->f->db->escapeSimple($dossier),
972          $res = $this->f->db->query($sql);                  intVal($idx)
973          $this->f->addToLog(              ),
974              __METHOD__."(): db->query(\"".$sql."\");",              array(
975              VERBOSE_MODE                  "origin" => __METHOD__,
976                )
977          );          );
         $this->f->isDatabaseError($res);  
           
978          // Le dossier est déjà à l'ordre du jour          // Le dossier est déjà à l'ordre du jour
979          if ($res->numrows() != 0) {          if ($qres['row_count'] != 0) {
980              $this->correct = false;              $this->correct = false;
981              $this->addToMessage(_("Ce dossier est deja a l'ordre du jour."));              $this->addToMessage(_("Ce dossier est deja a l'ordre du jour."));
982              return $this->end_treatment(__METHOD__, false);              return $this->end_treatment(__METHOD__, false);
# Line 970  class commission extends commission_gen Line 985  class commission extends commission_gen
985          // Récupération du type de commission          // Récupération du type de commission
986          $inst_commission_type = $this->get_inst_commission_type();          $inst_commission_type = $this->get_inst_commission_type();
987          $commission_type_id = $inst_commission_type->getVal($inst_commission_type->clePrimaire);          $commission_type_id = $inst_commission_type->getVal($inst_commission_type->clePrimaire);
988          $rowDossier = $resDossier->fetchRow(DB_FETCHMODE_ASSOC);          $rowDossier = array_shift($qresDossier['result']);
989          // On vérifie que le type de commission est de la même collectivité que le dossier          // On vérifie que le type de commission est de la même collectivité que le dossier
990          if ($inst_commission_type->getVal("om_collectivite") != $rowDossier['om_collectivite']) {          if ($inst_commission_type->getVal("om_collectivite") != $rowDossier['om_collectivite']) {
991              $this->correct = false;              $this->correct = false;
# Line 1050  class commission extends commission_gen Line 1065  class commission extends commission_gen
1065          /**          /**
1066           * Envoi du mail.           * Envoi du mail.
1067           */           */
1068          $sql = "          $qres = $this->f->get_all_results_from_db_query(
1069              SELECT              sprintf(
1070                  commission.listes_de_diffusion as listes_de_diffusion,                  'SELECT
1071                  commission.code as code,                      commission.listes_de_diffusion AS listes_de_diffusion,
1072                  to_char(commission.date_commission, 'DD/MM/YYYY') as date_commission,                      commission.code AS code,
1073                  commission.libelle as libelle, commission_type.corps_du_courriel as corps_du_courriel                      to_char(commission.date_commission, \'DD/MM/YYYY\') AS date_commission,
1074              FROM                      commission.libelle AS libelle,
1075                  ".DB_PREFIXE."commission                      commission_type.corps_du_courriel AS corps_du_courriel
1076              LEFT JOIN                  FROM
1077                  ".DB_PREFIXE."commission_type                      %1$scommission
1078                  ON                      LEFT JOIN %1$scommission_type
1079                      commission.commission_type = commission_type.commission_type                          ON commission.commission_type = commission_type.commission_type
1080              WHERE                  WHERE
1081                  commission.commission = ".$idx;                      commission.commission = %2$d',
1082          $res = $this->f->db->query($sql);                  DB_PREFIXE,
1083          $this->f->addTolog(                  intVal($idx)
1084              __METHOD__." : db->query(\"".$sql."\");",              ),
1085              VERBOSE_MODE              array(
1086                    "origin" => __METHOD__,
1087                )
1088          );          );
1089          $this->f->isDatabaseError($res);          $row = array_shift($qres['result']);
         $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);  
1090          //          //
1091          $titre = "[".$mention."] ".$row['date_commission']." ".$row['libelle'];          $titre = "[".$mention."] ".$row['date_commission']." ".$row['libelle'];
1092          //          //

Legend:
Removed from v.15834  
changed lines
  Added in v.15835

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26