/** * Ce script gère la validation de la commande à chaque étape de l'espace annonceur, * ainsi que le passage d'une étape à une autre * * Scripts requis * /ajax/saisie_[CODE_UNIVERS]_formulaire.js (formulaire_annonce_valider) * /ajax/saisie_contact_formulaire.js (formulaire_contact_valider) * /ajax/espace-annonceur/commande_entretien_session.js (commande_maj) * /ajax/validation_champs_de_saisie.js (champ_valide_selon_type, verifier_champs_obligatoires) * /ajax/chaine.js (telephone_formate) */ /** * Cette fonction permet de revenir à l'étape 1 en enregistrant au préalable les données de la commande */ function afficher_annonce() { commande_maj( true ); window.location.replace( '?module=commande&action=modifier' ); } /** * Cette méthode est appelée dans un contexte de modification d'annonce après paiement (modification texte, photos...) * depuis l'épape 1 (qui est la seule accessible après le paiement) */ function valider_et_enregistre_annonce() { if( annonce_valider_objet() ) { if( document.forms['form_photos'] ) { document.forms['form_photos'].submit(); } else { window.location.replace( '?module=commande&action=enregistrer_payer' ); } } } /** * Cette méthode est appelée dans un contexte de saisie de commande (avant paiement) depuis l'étape 2 */ function valider_options_et_afficher_paiement() { if( valider_options() ) { window.location.replace( '?module=commande&action=enregistrer_payer' ); } } function afficher_options() { // Le formulaire de photos est posté pour passer à la suite // (pas le choix si on veut les enregistrer...) if( document.forms['form_photos'] ) { document.forms['form_photos'].submit(); } else { window.location.replace( 'index.php?module=commande&afficher=formulaire_options' ); } } function valider_options() { commande_maj( true ); if(! formulaire_saisie_options_valider('form_saisie') ) { return false; } else { lb_validation = gajax_commande_sync.valider_avant_paiement(); if( lb_validation !== true ) { alert( lb_validation ); } else { return true; } } } /** * Validation du formulaire de saisie d'annonce (étape 1) * et passage à l'étape 2 */ function valider_annonce_et_afficher_options() { // Vérification du renseignement des champs obligatoires /* * Vérification du format des champs remplis. * Note : * - ces contrôles sont à placer préférentiellement dans les stm * - @todo vérifier que les stm et formulaires appelant cette méthode de vérification implémentent ces contrôles et les supprimer de cette méthode */ lfrm = getelement( 'form_saisie' ); // Validation des champs relatifs à l'annonceur lb_ok = champ_valide_selon_type( lfrm, "Contact->telephone", 'TL', 'Numéro de téléphone non valide' ); lb_ok &= champ_valide_selon_type( lfrm, "Contact->telephone2", 'TL', 'Numéro de téléphone non valide' ); lb_ok &= champ_valide_selon_type( lfrm, "Contact->mobile", 'TL', 'Numéro de mobile non valide' ); lb_ok &= champ_valide_selon_type( lfrm, "Contact->email", 'EM', 'Adresse email non valide' ); // Validation de l'annonce côté serveur if( lb_ok && annonce_valider_objet() ) { afficher_options(); } } /** * Met à jour les données côté serveur et valide l'annonce * (d'abord le remplissage des champs côté client, puis l'objet Annonce côté serveur) * (message d'alerte si la validation client est passée mais si la validation côté serveur n'est pas passée * * @return boolean true si les 2 validations sont passées, false si la validation côté client n'est pas passée */ function annonce_valider_objet() { // Vérification du renseignement des champs obligatoires commande_maj( true ); if( !formulaire_annonce_valider('form_saisie') || !formulaire_contact_valider('form_saisie') ) { return false; } else { l_validation = gajax_annonce_sync.valider(); if( l_validation !== true ) { alert( l_validation ); return false; } else { return true; } } } /** * Vérifie qu'une offre a été choisie et que les conditions générales ont été acceptées */ function formulaire_saisie_options_valider( ps_id_form ) { lb_etat = true; if( getelement('Commande->offre_commerciale_id').selectedIndex==0) { alert("Vous devez choisir une offre commerciale"); lb_etat = false; } if( !getelement('inp_validation_cgv').checked ) { alert("Vous devez accepter les conditions générales de ventes pour poursuivre"); lb_etat=false; } return lb_etat ; }