Documents "Nouveautés"

version n°1 PB le 09/07/2001

Cette page a pour but de lister les documents dans la base répondant aux critères suivants :

*** : S'il n'y a pas de rubrique en cours (Session ("type_doc" == ""), i.e. si le portail est situé sur une mire de département, le lien vers "Nouveautés" pointe sur All_Users/nouveautes_01.asp, laquelle classe les documents trouvés par rubrique dans le département.
Dans le cas contraire, si une rubrique a été choisie pour le département en cours, le lien pointe sur Moteurs/"moteur_de_la_rubrique"/nouveautes.asp. Ainsi la page "Nouveautés" restreint sa recherche à ce type de document et peut éventuellement tenir compte des spécificités de chaque moteur.

All_Users/nouveautes_01.asp
La requête SQL :
  var my_dept = "" + Session ('dept_code');

    var OBJECT_oui = new DWGenerator ("OBJECT_oui", "SuneTeam");
    sqlquery = "select ";
    sqlquery += "documents.doc_id, ";
    sqlquery += "documents.doc_type_doc, "
    sqlquery += "documents_versions.ver_creation_date, "
    sqlquery += "documents.doc_comment, ";
    sqlquery += "documents_versions.ver_application_date, ";
    sqlquery += "documents_versions.ver_nouveaute_duree, ";
    //sqlquery += "documents_versions.ver_peremption_duree, ";
    //sqlquery += "documents_versions.ver_peremption_date, ";    
    sqlquery += "documents_versions.ver_titre, ";    
    sqlquery += "documents_pages.pag_titre, "
    sqlquery += "documents_pages.pag_ref_info, ";
    sqlquery += "param_doc.par_txt_bouton "

    sqlquery += "from documents, documents_versions, documents_pages, param_doc ";
    
    //département et rubrique en cours
    sqlquery += "where documents.doc_dept_code = '" + my_dept + "' "; 
    
    //ON CACHE LES MIRES AUX NON-ADMINISTRATEURS
    if ("" + Session ('client') != "admin") {sqlquery += "and documents.doc_type_doc != 'MIR' "};
    
    //jointures
    sqlquery += "and documents.doc_id = documents_versions.doc_id ";
    sqlquery += "and documents.doc_id = documents_pages.doc_id ";
    sqlquery += "and documents_versions.ver_id = documents_pages.ver_id ";
    sqlquery += "and param_doc.dept_code = documents.doc_dept_code ";
    sqlquery += "and param_doc.type_code = documents.doc_type_doc ";
    
    //versions validées seulement
    if ("" + Session ("projets") == "non") sqlquery += "and documents_versions.ver_no_projet = 0 ";
    
    //page de généralités seulement
    sqlquery += "and documents_pages.pag_type = 'G'"; 
    
    //la plus récente en haut de la datawindow
    sqlquery += " order by";
    sqlquery += " documents.doc_type_doc";
    sqlquery += ", documents_versions.ver_application_date ";
    //sqlquery += ", documents_pages.pag_titre ASC"
                
Titre de la fenêtre :
trad('T_NOUVEAUTES_01') + " - " + Session ("dept_libelle")) 
*** + Session ("type_libelle")
Colonnes affichées :
  • VER_APPLICATION_DATE : date d'application
  • VER_TITRE :  titre du document
  • PAG_TITRE :  titre de la page avec lien sur PAG_REF_INFO
  • DOC_COMMENT :  commentaire
 
	*** var rubrique_cours = ""; 
       	var num_line = 0;
       
       //variables du script vérifiant que le doc_id n'a pas été mis à la ligne du dessus (version plus récente)
          //var my_tab = "-"; 
          //var my_id = "";
       
       for (var i =0; i < OBJECT_oui.startrow; i++) {OBJECT_oui.cursor.MoveNext();}
       for (var i=0; !OBJECT_oui.cursor.EOF(); i++) {
        
        *** //gestion des lignes-titres de rubriques :

          if ((i == 0) || ("" + OBJECT_oui.cursor.GetValue ('doc_type_doc') != rubrique_cours)) {
            rubrique_cours = OBJECT_oui.cursor.GetValue ('doc_type_doc');
            Response.Write ("<TR><TD class=tableTitleRubrique COLSPAN=\"4\">" + OBJECT_oui.cursor.GetValue ('par_txt_bouton') + "</TD></TR>");
            }                  
            
  //VERIFICATION CRITERES DE NOUVEAUTE
            
                //on prépare la date de référence
                    var str_visu = "" + Session("date_visu");
                    var date_ref = new Date ();
                    date_ref.setDate(parseInt(str_visu.substring (0,2)));
                    date_ref.setMonth(parseInt(str_visu.substring (3,5)-1));
                    date_ref.setYear(parseInt(str_visu.substring (6,10)));
                    var int_date_ref = parseInt(format_time_comp(date_ref));
            
                //... la date de publication ...  
                    var str_creation = "" + OBJECT_oui.cursor.GetValue ("ver_creation_date");
                    var date_publi = new Date ();
                    date_publi.setDate(parseInt(str_creation.substring (0,2)));
                    date_publi.setMonth(parseInt(str_creation.substring (3,5)-1));
                    date_publi.setYear(parseInt(str_creation.substring (6,10)));
                    var int_date_publi = parseInt(format_time_comp(date_publi));
            
                // ... la date d'application  ... 
                    var str_application = "" + OBJECT_oui.cursor.GetValue ("ver_application_date");
                    var date_appli = new Date ();
                    date_appli.setDate(parseInt(str_application.substring (0,2)));
                    date_appli.setMonth(parseInt(str_application.substring (3,5)-1));
                    date_appli.setYear(parseInt(str_application.substring (6,10)));          
                    var int_date_appli = parseInt(format_time_comp(date_appli));
                        
                // ... la date de fin de nouveaute grace à la date d'application + la duree de nouveaute
                    var int_duree_nouveaute = parseInt("" + OBJECT_oui.cursor.GetValue ("ver_nouveaute_duree"));
                    date_appli.setDate(date_appli.getDate() + int_duree_nouveaute);
                    var int_date_fin_nouveaute = parseInt(format_time_comp(date_appli));

           if ((int_date_publi <= int_date_ref) && (int_date_ref < int_date_fin_nouveaute)) {
 
            //my_id = "" + OBJECT_oui.cursor.GetValue ('doc_id') + "-";
            //if (my_tab.indexOf("-" + my_id, 0) == -1) {          
          
              num_line++;
              with (psDocument) {
              if (num_line%2==1){Write ("\n      <TR class=tableTD1>");} else {Write ("\n      <TR class=tableTD2>");};
              //decodage "12/01/2000" en 12 janvier 2000
              var str_date_brute = "" + OBJECT_oui.cursor.GetValue ('ver_application_date');
              var str_date_litt = "";
              if (str_date_brute.length == 10) {
                str_date_litt = str_date_brute.substring (0,2) + " " + decode_mois(str_date_brute.substring (3,5)) + " " + str_date_brute.substring (6,10);
                }
              Write ("\n         <TD class=text><font color=\"blue\">New ! </font>" + str_date_litt + "</TD>");
              Write ("\n         <TD class=text>" + OBJECT_oui.cursor.GetValue ('ver_titre') + "</TD>");  
              Write ("\n         <TD class=text><A HREF=\"" + OBJECT_oui.cursor.GetValue ('pag_ref_info') + "\">" + OBJECT_oui.cursor.GetValue ('pag_titre') + "</A></TD>");
              Write ("\n         <TD class=text>" + OBJECT_oui.cursor.GetValue ('doc_comment')+ "</TD>");          
              Write ("\n      </TR>");
              } //fin du with

            //my_tab += my_id;
            //Response.Write ("my_tab = " + my_tab);
            //} //fin du if doc_id              
              
          } //fin du if dates
        OBJECT_oui.cursor.MoveNext();
        } //fin de la boucle i
    
    psDocument.Write ("\n   </TABLE>")