Reprise des marchés SAFI - B_CreationNouveauMarche¶
Cliquer sur créer un nouveau marché et remplir les premières informations¶
Cliquer sur les éléments du menu¶
//Cliquer sur les elements du menu
document.getElementsByClassName("bouton-menu")[0].click()
document.getElementsByClassName("mat-focus-indicator bandeau__button mat-button mat-button-base ng-star-inserted")[3].click()
document.getElementsByClassName('menu ng-star-inserted')[0].click()
document.getElementsByClassName('gda_bouton NouveauImg gda_bouton_actif')[0].click()
Remplir la première page¶
//Remplir les informations sur le marché
document.getElementsByName('marche_miAnnee')[0].value="%ExcelData[LoopIndex]['Numéro de marché - Année AAAA']%";
document.getElementsByName('marche_msNumero')[0].value="%ExcelData[LoopIndex]['Numéro de marché - Code']%";
document.getElementsByName('marche_msObjet')[0].value="%ExcelData[LoopIndex]['Objet']%";
Cliquer sur Suivant¶
On lance le javascript associé au bouton Suivant.
Remplir la durée¶
// Duree
document.getElementsByName('marcheDuree_miAnnees')[0].value="%ExcelData[LoopIndex]['Durée du marché - Années']%";
document.getElementsByName('marcheDuree_miMois')[0].value="%ExcelData[LoopIndex]['Durée du marché - Mois']%";
document.getElementsByName('marcheDuree_miJours')[0].value="%ExcelData[LoopIndex]['Durée du marché - Jours']%";
Ajouter un type d'engagement¶
Cliquer sur la loupe Type d'engagement¶
Plutôt que de cliquer sur la loupe directement, on lance le javascript associé.
Attacher la nouvelle fenêtre de navigateur¶
Remplir la code à rechercher¶
document.getElementsByName('typejCode')[0].value="%ExcelData[LoopIndex]['Type d\'engagement - Code']%";
Cliquer sur le bouton Rechercher¶
On lance le script associé au bouton Rechercher
Cliquer sur le premier élément de la liste¶
Ici, il n'y a pas de Name ou d'ID pour choisir l'élément à cliquer. On fait donc une recherche par TagName. Il s'agit du 5ème élément de la liste des "a" sur la page.
Note
Pour déduire la recherche par TagName à utiliser. Dans l'inspecteur il faut regarder le type d'élément. Ici il s'agit d'un lien "a". On recherche ensuite par itération avec la console jusqu'à ce que notre élément soit sélectionné:
Remplir la forme, le type de prix et leur date d'établissement¶
Forme de prix¶
Il s'agit d'un menu déroulant, mais on peut valoriser la valeur comme un champ de texte.
// Forme de prix
document.getElementsByName('formePrix_miCode')[0].value="%ExcelData[LoopIndex]['Forme de prix - Code']%";
Note
Pour simplifier l'automatisation, tous les choix possibles sont rassemblés dans la feuille "Listes" sur Excel avec la correspondance avec le code sur Grand Angle. Une colonne a ensuite été ajoutée sur la feuille principale en utilisant RECHERCHEV() qui affiche directement le code qui correspond à l'option à sélectionner.
Type de prix¶
Il s'agit d'un bouton radio, mais on peut valoriser la valeur comme un champ de texte.
// Type de prix
document.getElementsByName('typePrix_miCode')[0].value="%ExcelData[LoopIndex]['Type de prix - Code']%";
Après avoir sélectionné le type de prix, de nouvelles cases s'affichent si le type de prix n'est pas ferme.
Type de prix "Révisables" ou "Fermes actualisables"¶
On coche le type d'index
// Cocher index
document.getElementById(%ExcelData[LoopIndex]['Type de prix - Index - Code']%).checked=true
Type de prix "Fermes actualisables"¶
On définit la date d'actualisation des prix
// Date d'actualisatiom
document.getElementsByName('marche_mdtDatePrix')[0].value='%ExcelData[LoopIndex]['Date d\'actualisation des prix']%'
Type de prix "Révisables"¶
On définit la périodicité de révision
Si "sur index définitif sans révision provisoire"¶
On renseigne le "décalage de lecture" qui correspond à un nombre de mois.
Date d'établissement des prix¶
On renseigne ensuite la date d'établissement des prix.
// Date d'etablissement des prix
document.getElementsByName('marche_mdtDatePrix')[0].value="%ExcelData[LoopIndex]['Date d\'établissement des prix']%";
Choisir le Code CPV¶
Cliquer sur la loupe¶
Attacher le navigateur¶
http://garec.cg29.local/intranet/glob/sass/ChargerRechercherCodeCPVPopup.gda
Récupérer premier résultat¶
// Code CPV - Recuperer premier resultat
str = document.getElementsByTagName('a')[1].getAttribute('href').replaceAll('\t','').replaceAll('\n','').replace('javascript:','').replace('; return false;','');
setTimeout(str,1);
Remplir les Montants¶
Remplir Montant initial HT¶
// Montant initial HT
document.getElementsByName('marche_mdInitHT')[0].value=%ExcelData[LoopIndex]['Montant initial HT']%;
document.getElementsByName('marche_mdInitHT')[0].onfocus();
Remplir Taux de TVA¶
// TVA
document.getElementsByName('marcheTva_MiCode')[0].value=%ExcelData[LoopIndex]['Taux de TVA - Code']%;
document.getElementsByName('marcheTva_MiCode')[0].onchange();
Si le taux de TVA est "multi-taux" : Remplir Montant initial TTC¶
// Montant initial TTC
document.getElementsByName('marche_mdInitTTC')[0].value="%ExcelData[LoopIndex]['Montant initial TTC']%";
document.getElementsByName('marche_mdInitTTC')[0].onchange();
Page suivante¶
Warning
Une erreur s'affiche. Malgré plusieurs tentatives, impossible de s'en débarasser. Elle n'est pas bloquante. Il suffit de cliquer une deuxième fois sur "Suivant"
Remplir Mode de passation, dévolution et la gestion de la retenue de garantie¶
Remplir le mode de passation¶
// Mode de passation
document.getElementsByName('modePassation_miCode')[0].value="%ExcelData[LoopIndex]['Mode de passation - Code']%";
Remplir la dévolution¶
// Devolution
document.getElementsByName('modeDevolution_miCode')[0].value="%ExcelData[LoopIndex]['Dévolution - Code']%";
Remplir la gestion de la retenue de garantie¶
// Gestion de la retenue de garantie
document.getElementsByName('marche_retenue_garantie_miCode')[0].value="%ExcelData[LoopIndex]['Gestion de la retenue de garantie - Code']%";
Définir l'auto-liquidation de la sous-traitance¶
Si Auto-liquidation de la sous-traitance est à "Oui", on coche la case.
// Cocher auto-liquidation de la TVA
document.getElementsByName('marche_mbAutoLiqTvaSousTraitant')[0].checked=true
Si Reconduction, remplir les informations associées¶
Cocher Expresse ou Tacite¶
// Cocher Expresse ou Tacite
document.getElementsByName('%ExcelData[LoopIndex]['Reconduction - Code']%')[0].click()
Remplir les 3 cases de durée de reconduction¶
// Duree de reconduction
document.getElementsByName('marche_miAnneeReconduction')[0].value="%ExcelData[LoopIndex]['Durée de reconduction - Années']%";
document.getElementsByName('marche_miMoisReconduction')[0].value="%ExcelData[LoopIndex]['Durée de reconduction - Mois']%";
document.getElementsByName('marche_miJourReconduction')[0].value="%ExcelData[LoopIndex]['Durée de reconduction - Jours']%";
Valoriser le nombre de reconduction¶
// Nombre de reconduction
document.getElementsByName('marche_miNbReconduction')[0].value="%ExcelData[LoopIndex]['Nombre de reconductions']%";
Définir les dates de consultation, de signature¶
Valoriser la date de consultation¶
// Date de consultation
document.getElementsByName('marche_mdtConsultation')[0].value="%ExcelData[LoopIndex]['Date de consultation']%";
Valoriser la date de signature¶
// Date de signature
document.getElementsByName('marche_mdtSignature')[0].value="%ExcelData[LoopIndex]['Date de signature']%";




