PROCEDURE Communication_SKECHERS() num_fic_store est un entier NomFichier est une chaîne IdFTP est un entier machaine est une chaîne CADENCIER_CODEEAN est une Source de Données CADENCIER_CODEEAN_estOK est un booléen LIBELLES_CODES_IMPORTAUTO est une Source de Données LIBELLES_CODES_IMPORTAUTO_estOK est un booléen COMPLEMENT_PRODUIT_IMPORTAUTO est une Source de Données COMPLEMENT_PRODUIT_IMPORTAUTO_estOK est un booléen AdresseIP_FTP est une chaîne Login_FTP est une chaîne Passw_FTP est une chaîne Port_FTP est un entier ModePAssif est un booléen Path_DEST est une chaîne NomFIC_DEST est une chaîne MonMsg est une chaîne ConfirmationEnvoi est un booléen l_nom_rayon est une chaîne l_taille est une chaîne machaine_CodeSRC,sResultatCompile est une chaîne madatereception est une chaîne madateCommande est une chaîne l_envoi_ok est un booléen mess_erreur est une chaîne nbjour est un entier l_customer est une chaîne l_account est une chaîne lcmd_Diviseur_Qte est un entier lcmd_Diviseur_Remise est un entier sval est une chaîne svalrech est une chaîne l_traite_bloc est un booléen nb_a_rajout est un entier lTitreEmail est une chaîne CorpsEmail est une chaîne mon_code_four est un entier EmailDEST est une chaîne l_StoreNum est une chaine lErreurDeSaisie est un booléen SI pg_lit_options("DECIMALES_COMMANDES") ALORS lcmd_Diviseur_Remise = 1000 lcmd_Diviseur_Qte=1000 SINON lcmd_Diviseur_Remise = 1 lcmd_Diviseur_Qte=1 FIN nbjour=Val (INILit ("CENTRALE_CMDE","NB_JOUR","5",g_rep_dataencours+"\PARAM_COMMUN.INI")) // Auto mise à jour du programme SI HTTPRequête("http://intranet.aemsofts.com/DOWNLOAD/client/SKECHERS/SKECHERS-DUEDATE.CNX") ALORS machaine_CodeSRC=HTTPDonneRésultat() sResultatCompile = Compile("Test_dynamique", machaine_CodeSRC) SELON sResultatCompile CAS "" : // Compilation OK fSauveTexte (g_rep_dataencours+"\SKECHERS-DUEDATE.CNX",machaine_CodeSRC) FIN // On décompile sResultatCompile = Compile("Test_dynamique", "") FIN SI g_importauto_Present ALORS l_customer=INILit("IMPORT_EXPORT","CODE_MAG","",g_Path_importauto+"\DATA\IMPORTAUTO.INI") l_account=INILit("IMPORT_EXPORT","CODE_GEOD","",g_Path_importauto+"\DATA\IMPORTAUTO.INI") l_StoreNum=INILit("IMPORT_EXPORT","CODE_MAG_STORENO","0001",g_Path_importauto+"\DATA\IMPORTAUTO.INI") INIecrit("IMPORT_EXPORT","CODE_MAG_STORENO",l_StoreNum,g_Path_importauto+"\DATA\IMPORTAUTO.INI") NomFichier = g_rep_dataencours+"\COMMANDE_"+NumériqueVersChaîne(l_numero_com)+"_SKECHERS_"+l_customer+"_"+l_account+".csv" l_traite_bloc=Val(INILit("IMPORT_EXPORT","GESTION_BLOC","0",g_Path_importauto+"\DATA\IMPORTAUTO.INI")) SINON NomFichier = g_rep_dataencours+"\COMMANDE_"+NumériqueVersChaîne(l_numero_com)+"_SKECHERS_"+NumériqueVersChaîne(g_numero_magasin)+".csv" FIN SI l_traite_bloc ALORS nb_a_rajout=10000 SINON nb_a_rajout=0 FIN // INecrit les adresses dans le fichier PARAM-COMMUN.INI AdresseIP_FTP=INILit ("CENTRALE_CMDE","ADRESSE_IP","sftp://edi-sftp.skechers.com",g_rep_dataencours+"\PARAM_COMMUN.INI") Login_FTP=INILit ("CENTRALE_CMDE","LOGIN_IP","skxfra",g_rep_dataencours+"\PARAM_COMMUN.INI") Passw_FTP=INILit ("CENTRALE_CMDE","PASSW_IP","*jPjVJMzQIK$",g_rep_dataencours+"\PARAM_COMMUN.INI") //FTP.IgnoreErreur = ftpIgnoreCertificatExpiré + ftpIgnoreCertificatInvalide + ftpIgnoreNomCertificatInvalide + ftpIgnoreRévocation Port_FTP=Val (INILit ("CENTRALE_CMDE","PORT_IP","22",g_rep_dataencours+"\PARAM_COMMUN.INI")) INIEcrit ("CENTRALE_CMDE","PORT_IP",NumériqueVersChaîne(Port_FTP),g_rep_dataencours+"\PARAM_COMMUN.INI") ModePAssif=Val (INILit ("CENTRALE_CMDE","MODE_PASSIF","0",g_rep_dataencours+"\PARAM_COMMUN.INI")) INIEcrit ("CENTRALE_CMDE","MODE_PASSIF",NumériqueVersChaîne(ModePAssif),g_rep_dataencours+"\PARAM_COMMUN.INI") Path_DEST=INILit ("CENTRALE_CMDE","PATH_FTP","send/",g_rep_dataencours+"\PARAM_COMMUN.INI") INIEcrit ("CENTRALE_CMDE","PATH_FTP",Path_DEST,g_rep_dataencours+"\PARAM_COMMUN.INI") MaDate1,MaDate2 sont des chaines CodeSelecteurDate est un entier Sablier(Vrai) pg_archive_suppr(fExtraitChemin(NomFichier,fFichier+fExtension)) NomFIC_DEST=fExtraitChemin(NomFichier,fFichier+fExtension) lErreurDeSaisie = faux Si pas lErreurDeSaisie alors HLitRecherche("LIST_CMDES","NUM_COMMANDE",l_numero_com) SI HTrouve ("LIST_CMDES") ALORS HLitRecherche("CONT_CMDES","NUM_COMMANDE",LIST_CMDES.NUM_COMMANDE) TANTQUE HTrouve ("CONT_CMDES") si CONT_CMDES.QTE_COMMANDEE=0 alors lErreurDeSaisie=Vrai Fin HLitSuivant("CONT_CMDES","NUM_COMMANDE") Fin Fin Si lErreurDeSaisie alors INFO("Abandon car une des qté = 0") Fin Fin si pas lErreurDeSaisie alors SI l_customer="" OU l_account="" ALORS INFO("Impossible de créer la commande car les identifiants sont inconnus ! ") SINON num_fic_store=fCrée(NomFichier) SI num_fic_store>0 ALORS HDésactiveFiltre("LIST_CMDES") HDésactiveFiltre("CONT_CMDES") HLitRecherche("LIST_CMDES","NUM_COMMANDE",l_numero_com) SI HTrouve ("LIST_CMDES") ALORS retenter_Select_Date: madatereception="" madateCommande ="" CodeSelecteurDate=4 INFO ("VEUILLEZ CHOISIR LE MOIS DE DUE DATE SVP") MaDate1 = ouvre ("choix_date",CodeSelecteurDate) SI CodeSelecteurDate=4 et datevalide (g_bornedate1) et datevalide (g_bornedate2) alors LIST_CMDES.DATE_COMMANDE = g_bornedate1 madateCommande=g_bornedate1 ; madatereception=entierVersdate (dateVersentier (g_bornedate1)+24) LIST_CMDES.ADRESSE_FACTURATION ="DUE DATE "+milieu (dateVerschaine (madatereception),3) LIST_CMDES.DATE_RECEPTION = madatereception hmodifie("LIST_CMDES") BON_COMMANDE.DATE_CREE=g_bornedate1 BON_COMMANDE.DATE_RECEPTION=madatereception sinon Erreur ("Erreur : Vous devez saisir le mois de réception du BULK") Si ouinon ("Resaisir la date ?") alors goto retenter_Select_Date; Fin FIN mon_code_four=LIST_CMDES.CODE_FOURNISSEUR SI DateValide(madatereception) et datevalide (madateCommande) ALORS SI DateVersEntier(madateCommande)+nbjour"" ET NomFIC_DEST<>"" ALORS l_envoi_ok=Faux IdFTP = FTPConnecte (AdresseIP_FTP,Login_FTP,Passw_FTP,Port_FTP,ModePAssif) SI IdFTP<>-1 ALORS ConfirmationEnvoi = Faux SI FTPTaille(IdFTP,Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP")=-1 ET FTPTaille (IdFTP,Path_DEST+["/"]+NomFIC_DEST)=-1 ALORS // il n'y a pas de fichier en attente de transfert ConfirmationEnvoi = Vrai SINON // Erreur SI FTPTaille (IdFTP,Path_DEST+["/"]+NomFIC_DEST)=-1 ALORS SI PAS FTPRenommeFichier(IdFTP,Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP",Path_DEST+["/"]+NomFIC_DEST) ALORS MonMsg="Impossible de renommer en FTP @LAST@ en @NEW@" MonMsg = Remplace(MonMsg,"@LAST@",Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP") MonMsg = Remplace(MonMsg,"@NEW@",Path_DEST+["/"]+NomFIC_DEST) Erreur_TRF(MonMsg) SINON Erreur_TRF("Cette commande est déjà en attente sur le serveur") FIN SINON Erreur_TRF("Cette commande est déjà en attente sur le serveur") FIN FIN SI ConfirmationEnvoi ALORS SI FTPEnvoie (IdFTP,NomFichier,Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP") ALORS SI PAS FTPRenommeFichier(IdFTP,Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP",Path_DEST+["/"]+NomFIC_DEST) ALORS MonMsg="Impossible de renommer en FTP @LAST@ en @NEW@" MonMsg = Remplace(MonMsg,"@LAST@",Path_DEST+["/"]+fExtraitChemin(NomFIC_DEST,fFichier)+".TMP") MonMsg = Remplace(MonMsg,"@NEW@",Path_DEST+["/"]+NomFIC_DEST) Erreur_TRF(MonMsg) SINON LIST_CMDES.DATE_EMISSION=DateSys() HModifie ("LIST_CMDES") l_envoi_ok=Vrai Erreur_TRF("OK ! LA COMMANDE A ETE ENVOYEE A LA CENTRALE !!!!") FIN SINON Erreur_TRF(ErreurInfo()) FIN FIN FTPDéconnecte (IdFTP) SINON Erreur_TRF("Impossible de se connecter au serveur de la centrale") Erreur(ErreurInfo()) FIN lTitreEmail = INILit ("BON_COMMANDES","TITRE_EMAIL","Bon de commande %1 Num. %2",g_rep_dataencours+["\"]+"PARAM.INI") INIEcrit ("BON_COMMANDES","TITRE_EMAIL",lTitreEmail,g_rep_dataencours+["\"]+"PARAM.INI") CorpsEmail = INILit ("BON_COMMANDES","CORPS_EMAIL", "Bonjour,\n\nVeuillez trouver ci-joint (fichier csv attaché) notre bon de commande N° %1. \n\nCordialement,\n\n\n %2\n%3\n%4\n%5 %6\nTel : %7\nFax :%8\nEmail : %9 " ,g_rep_dataencours+["\"]+"PARAM.INI") INIEcrit ("BON_COMMANDES","CORPS_EMAIL",CorpsEmail,g_rep_dataencours+["\"]+"PARAM.INI") SI l_envoi_ok ALORS lTitreEmail = "Envoi EDI OK : "+ChaîneConstruit(lTitreEmail,l_customer+" "+l_account,l_numero_com) SINON lTitreEmail = "Envoi EDI Echoué : "+ChaîneConstruit(lTitreEmail,l_customer+" "+l_account,l_numero_com) FIN HLitRecherchePremier("CONFIGURATION","NumTPV",1) SI HTrouve("CONFIGURATION") ALORS CorpsEmail = ChaîneConstruit(CorpsEmail,l_numero_com,CONFIGURATION.RAISONID,CONFIGURATION.ADRESSEID,CONFIGURATION.ADRESSE2,CONFIGURATION.CODEID,CONFIGURATION.VILLEID,CONFIGURATION.TELID,CONFIGURATION.FAXID,INILit ("EMAILS","EXPEDITEUR","",g_rep_dataencours+"\PARAM_COMMUN.INI")) FIN CorpsEmail = Remplace (CorpsEmail,"\n",RC) EmailDEST="" HLitRecherchePremier("FOURNISSEUR","CODEFOUR",mon_code_four) SI HTrouve ("FOURNISSEUR") ALORS SI SansEspace (FOURNISSEUR.adresse_mail)<>"" ALORS EmailDEST = SansEspace (FOURNISSEUR.adresse_mail) FIN FIN SELON EmailVérifieAdresse(EmailDEST) CAS emailAdresseValide Ouvre ("ENVOI_EMAIL",1,EmailDEST,lTitreEmail,CorpsEmail,NomFichier,Vrai) mess_erreur+=EmailDEST+" => "+"Message envoyé" CAS emailAdresseSyntaxeIncorrecte mess_erreur+=EmailDEST+" => "+"L'adresse est syntaxiquement fausse" CAS emailAdresseRefusée mess_erreur+=EmailDEST+" => "+"L'adresse a été refusée par le serveur de mails."+RC+ErreurInfo() CAS emailAdresseErreur mess_erreur+=EmailDEST+" => "+"Une erreur s'est produite pendant la vérification."+RC+ErreurInfo() AUTRE CAS mess_erreur+=EmailDEST+" => "+"Erreur verification mail indéterminée"+RC+ErreurInfo() FIN Erreur_TRF(mess_erreur) pg_archive_suppr(fExtraitChemin(NomFichier,fFichier+fExtension)) FIN FIN Fin