Aller au contenu

Reprise des marchés SAFI - B_CreationNouveauMarche

Reprise Marchés SAFI - B_CreationNouveauMarche_1 Reprise Marchés SAFI - B_CreationNouveauMarche_2 Reprise Marchés SAFI - B_CreationNouveauMarche_3 Reprise Marchés SAFI - B_CreationNouveauMarche_4

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.

effectuerSuivante()

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é.

// Cliquer sur la loupe Type d'engagement
saisieAssisteeTypeEnga()

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

rch_jsp_BoutonRechercher()

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.

document.getElementsByTagName('a')[4].click()

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é:

  document.getElementsByTagName('a')[0]
  document.getElementsByTagName('a')[1]
  document.getElementsByTagName('a')[2]
  document.getElementsByTagName('a')[3]
  document.getElementsByTagName('a')[4]

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.

Reprise Marchés SAFI - B_CreationNouveauMarche Type de prix

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

// Periodicite de revision
document.getElementById('indexID').checked=true
Si "sur index définitif sans révision provisoire"

On renseigne le "décalage de lecture" qui correspond à un nombre de mois.

// Nombre de mois
document.getElementById('indexID').checked=true

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

// Code CPV principal
saisieAssisteeCodeCpv();

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

// Page suivante
effectuerSuivante()

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"

// Page suivante
effectuerSuivante()

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']%";

Délai de liquidation et fin du flux

Valoriser le délai de liquidation à 1460 jours

// Delai de liquidation
document.getElementsByName('')[0].value="1460";

Cliquer sur Suivant

// Page suivante
effectuerSuivante()

Cliquer sur Valider

Valider()