Le résultat :Lettre de relance
Le fichier wde : DNM_LET_ECHEANCE.wde
Le code ci dessous :
OUVERTURE DU DOCUMENT
PROCEDURE DNM_LET_ECHEANCE(parChampsRtf= » »)
GLOBAL
//Lié au contrat
numero_de_contrat est une chaîne
Code_CLient_Princ est une chaîne
ID_Contrat_client est un entier
ID_Contrat_client_doc est un entier
ID_document_type est un entier
ID_Parc est un entierPeriode_Nombre est une chaîne
Periode_Lettre est une chaîne
Montant_HT est une chaîne
Montant_TTC est une chaîne
Montant_lettre_HT est une chaîne
Montant_lettre_TTC est une chaîne
Date_Debut_Contrat est une chaîne
Date_fin_Contrat est une chaîne
Date_Debut_Futur_Contrat est une chaîne
Date_fin_Futur_Contrat est une chaîne
Date_fin_Contrat_actuel est une chaîne
Intitule_Contrat est une chaîne
Obs_Contrat est une chaîne
//Coordonnées client
Genre_Client_Princ est une chaîne
Nom_Client_Princ est une chaîne
Adr1_Client_Princ est une chaîne
Adr2_Client_Princ est une chaîne
COP_Client_Princ est une chaîne
Ville_Client_Princ est une chaîne
//Coordonnée intervention si ce n’est pas un contrat centralisateur
Genre_Client_Interv est une chaîne
Nom_Client_Interv est une chaîne
Adr1_Client_Interv est une chaîne
Adr2_Client_Interv est une chaîne
COP_Client_Interv est une chaîne
Ville_Client_Interv est une chaîne
//Infos perso
Champ1 est une chaîne
Champ2 est une chaîne
Champ3 est une chaîne
Champ4 est une chaîne
Champ5 est une chaîne
int1 est un booléen
int2 est un booléen
int3 est un booléen
int4 est un booléen
int5 est un booléenChaine_Tampon est un chaîne
n est un entier systèmewlEnrAgenceActu est un Enregistrement de COD_AGENCE
wlChaineFiltree est un chaîne
WlChaineRecue est un chaîneQUAND EXCEPTION
proGETAExceptionInfo()
FINRUBRIQUE_RTF=parChampsRtf
//entête de la société par défaut, modifié selon Agence plus bas
IMG_LOGO=wgpEnvEtatImageTete
IMG_PIED_CLASSIQUE=wgpEnvEtatImagePied//Obtention de l’agence en cours.
wlEnrAgenceActu = CContexteAgence::EnrAgence//concaténation des valeurs sur wgeTextePied1 : nom, adresse1, cp ville
SI RTFVersTexte(wlEnrAgenceActu.PIED_RTF)<> » » ALORSHLitRecherche(COD_AGENCE,IDCOD_AGENCE,wlEnrAgenceActu.IDCOD_AGENCE)
wlChaineFiltree=wlEnrAgenceActu.PIED_RTF
WlChaineRecue=proGChaineParConstruit(wlChaineFiltree,Vrai,CST_CARACT_SEP1,CST_CARACT_SEP2, » »)RUB_BP_Texte1=WlChaineRecue
IMG_PIED_CLASSIQUE=CContexteAgence::LogoSéparateurPiedSINON
RUB_BP_Texte1= » »
IMG_PIED_CLASSIQUE=proGEtaLogoPied()FIN
AVANT IMPRESSION DU CORPS
RUBRIQUE_RTF=parChampsRtf
Chaine_Tampon = RTFVersTexte(RUBRIQUE_RTF)// Extraction du Numero de contrat
numero_de_contrat = ExtraitChaîne(Chaine_Tampon,2, »$NC$ »)//Recherche Id du contrat
//Si contrat centralisateur
HLitRecherchePremier(FA4_CONTRAT_CLIENT,NUMERO_CONTRATINT_CONTRAT_PRINCIPALE,[numero_de_contrat, »1″])
SI HTrouve(FA4_CONTRAT_CLIENT) ALORS
ID_Contrat_client = FA4_CONTRAT_CLIENT.IDFA4_CONTRAT_CLIENT
Code_CLient_Princ = FA4_CONTRAT_CLIENT.CODE_CENTRALE
ID_Parc = FA4_CONTRAT_CLIENT.IDFA4_PARC_CLIENT
FIN//Si contrat classique
HLitRecherchePremier(FA4_CONTRAT_CLIENT,NUMERO_CONTRATINT_CONTRAT_PRINCIPALE,[numero_de_contrat, »0″])
SI HTrouve(FA4_CONTRAT_CLIENT) ALORS
//Le client est une centrale ?
SI FA4_CONTRAT_CLIENT.CODE_CENTRALE <> « » ALORS
ID_Contrat_client = FA4_CONTRAT_CLIENT.IDFA4_CONTRAT_CLIENT
Code_CLient_Princ = FA4_CONTRAT_CLIENT.CODE_CENTRALE
ID_Parc = FA4_CONTRAT_CLIENT.IDFA4_PARC_CLIENT
SINON
ID_Contrat_client = FA4_CONTRAT_CLIENT.IDFA4_CONTRAT_CLIENT
Code_CLient_Princ = FA4_CONTRAT_CLIENT.CODE
ID_Parc = FA4_CONTRAT_CLIENT.IDFA4_PARC_CLIENT
FIN
FIN//Recherche Id du contrat_client_doc
HLitRecherchePremier(FA4_CONTRAT_CLIENT_DOC,IDFA4_CONTRAT_CLIENT,ID_Contrat_client)
SI HTrouve(FA4_CONTRAT_CLIENT_DOC) ALORS
ID_Contrat_client_doc = FA4_CONTRAT_CLIENT_DOC.IDFA4_CONTRAT_CLIENT_DOC
FIN//Recherche Id du document type
HLitRecherchePremier(FA4_CONTRAT_CLIENT_DOC,IDFA4_CONTRAT_CLIENT,ID_Contrat_client)
SI HTrouve(FA4_CONTRAT_CLIENT_DOC) ALORS
HLitRecherchePremier(FA4_DOCUMENT_TYPE,IDFA4_DOCUMENT_TYPE,FA4_CONTRAT_CLIENT_DOC.IDFA4_DOCUMENT_TYPE)
SI HTrouve(FA4_DOCUMENT_TYPE) ALORS
ID_document_type = FA4_DOCUMENT_TYPE.IDFA4_DOCUMENT_TYPE
FIN
FIN//===================================================================================
//Recupération de l’intitulé du contrat dans la description du modele de document
Intitule_Contrat = « »
HLitRecherchePremier(FA4_DOCUMENT_TYPE,IDFA4_DOCUMENT_TYPE,ID_document_type)
SI HTrouve(FA4_DOCUMENT_TYPE) ALORS
Intitule_Contrat = FA4_DOCUMENT_TYPE.DESCRIPTION
FIN
//===================================================================================
// Recupération de Divers éléments du contratddebut, dFin sont une Date
HLitRecherchePremier(FA4_CONTRAT_CLIENT,IDFA4_CONTRAT_CLIENT,ID_Contrat_client)
SI HTrouve(FA4_CONTRAT_CLIENT) ALORS
//extraction dates
ddebut = FA4_CONTRAT_CLIENT.DATE_DEBUT
dFin = FA4_CONTRAT_CLIENT.DATE_FINDate_Debut_Contrat = DateVersChaîne(ddebut, »JJ/MM/AAAA »)
Date_fin_Contrat = DateVersChaîne(dFin, »JJ/MM/AAAA »)Date_fin_Contrat_actuel = DateVersChaîne(dFin, »JJ/MM/AAAA »)
ddebut..Année++
dFin..Année++Date_Debut_Futur_Contrat = DateVersChaîne(ddebut, »JJ/MM/AAAA »)
Date_fin_Futur_Contrat = DateVersChaîne(dFin, »JJ/MM/AAAA »)//Extraction Montants HT et TTC
Montant_HT = SansEspace(NumériqueVersChaîne(Arrondi(FA4_CONTRAT_CLIENT.MONTANT_RENOUVELLEMENT_HT,2), »10,2fS »))
Montant_TTC = SansEspace(NumériqueVersChaîne(Arrondi(FA4_CONTRAT_CLIENT.MONTANT_RENOUVELLEMENT_TTC,2), »10,2fS »))//Montant HT en lettre
Montant_lettre_HT = NombreEnLettres(Arrondi(FA4_CONTRAT_CLIENT.MONTANT_HT,2), »euro(s) », « centime(s) »)
//Montant TTC en lettre
Montant_lettre_TTC = NombreEnLettres(Arrondi(FA4_CONTRAT_CLIENT.MONTANT_TTC,2), »euro(s) », « centime(s) »)
//Extraction du de la periodicité de la facture
Periode_Nombre = FA4_CONTRAT_CLIENT.DUREE_MOIS
// Conversion en Lettre de la periode
// Premiere lettre en Majuscule
SELON Periode_Nombre
CAS 1 : //Annuelle
Periode_Lettre = « Annuelle »
CAS 2 : // semestrielle
Periode_Lettre = « Semestrielle »
CAS 4 : // trimestrielle
Periode_Lettre = « Trimestrielle »
CAS 6 : // Bimestrielle
Periode_Lettre = « Bimestrielle »
CAS 12 : // Mensuelle
Periode_Lettre = « Mensuelle »
AUTRE CAS : // à définir
Periode_Lettre = « A définir »
FIN
//Observation du contrat
Obs_Contrat =FA4_CONTRAT_CLIENT.OBSERVATIONChamp1 = FA4_CONTRAT_CLIENT.CHAMPT1
Champ2 = FA4_CONTRAT_CLIENT.CHAMPT2
Champ3 = FA4_CONTRAT_CLIENT.CHAMPT3
Champ4 = FA4_CONTRAT_CLIENT.CHAMPT4
Champ5 = FA4_CONTRAT_CLIENT.CHAMPT5int1 = FA4_CONTRAT_CLIENT.INTER1
int2 = FA4_CONTRAT_CLIENT.INTER2
int3 = FA4_CONTRAT_CLIENT.INTER3
int4 = FA4_CONTRAT_CLIENT.INTER4
int5 = FA4_CONTRAT_CLIENT.INTER5//===================================================================================
// Recupération des informations du client
//Coordonnées du client sous contratHLitRecherchePremier(CLIENT,CODE,Code_CLient_Princ)
SI HTrouve(CLIENT) ALORS//client sous contrat
Genre_Client_Princ = CLIENT.GENRE
Nom_Client_Princ = CLIENT.NOM
Adr1_Client_Princ = CLIENT.ADRESSE1
Adr2_Client_Princ = CLIENT.ADRESSE2
COP_Client_Princ = CLIENT.COP
Ville_Client_Princ = CLIENT.VILLE//Adresse d’intervention (identique)
Genre_Client_Interv = CLIENT.GENRE
Nom_Client_Interv = CLIENT.NOM
Adr1_Client_Interv = CLIENT.ADRESSE1
Adr2_Client_Interv = CLIENT.ADRESSE2
COP_Client_Interv = CLIENT.COP
Ville_Client_Interv = CLIENT.VILLE//Si le client SOUS contrat a une adresse d’intervention
SI FA4_CONTRAT_CLIENT.IDCLIENTI <> 0 ALORS
HLit(FA4_PARC_CLIENT,ID_Parc)
HLitRecherchePremier(CLIENTI,IDCLIENTI,FA4_PARC_CLIENT.IDCLIENTI)
SI HTrouve(CLIENTI) ALORS// HLitRecherchePremier(CLIENTI,IDCLIENTI,FA4_CONTRAT_CLIENT.IDFA4_PARC_CLIENT)
SI HTrouve(CLIENTI) ALORS
Genre_Client_Interv = CLIENTI.GENRE
Nom_Client_Interv = CLIENTI.NOM
Adr1_Client_Interv = CLIENTI.ADRESSE1
Adr2_Client_Interv = CLIENTI.ADRESSE2
COP_Client_Interv = CLIENTI.COP
Ville_Client_Interv = CLIENTI.VILLE
FIN
FIN
FIN
FIN
FIN
//===================================================================================
// On Remplace les champs $$xxxxx$$ par les valeurs corespondantes
// ———————————————————————————-rechremplRTF(« Montant_HT »,Montant_HT)
rechremplRTF(« Montant_TTC »,Montant_TTC)
rechremplRTF(« numero_de_contrat »,numero_de_contrat)rechremplRTF(« Date_debut_Futur_Contrat »,Date_Debut_Futur_Contrat)
rechremplRTF(« Date_fin_Futur_Contrat »,Date_fin_Futur_Contrat)
rechremplRTF(« Date_fin_Contrat_actuel »,Date_fin_Contrat_actuel)rechremplRTF(« Code_CLient_Princ »,Code_CLient_Princ)
rechremplRTF(« Genre_Client_Princ »,Genre_Client_Princ)
rechremplRTF(« Nom_Client_Princ »,Nom_Client_Princ)
rechremplRTF(« Adr1_Client_Princ »,Adr1_Client_Princ)
rechremplRTF(« Adr2_Client_Princ »,Adr2_Client_Princ)
rechremplRTF(« COP_Client_Princ »,COP_Client_Princ)
rechremplRTF(« Ville_Client_Princ »,Ville_Client_Princ)rechremplRTF(« Genre_Client_Interv »,Genre_Client_Interv)
rechremplRTF(« Nom_Client_Interv »,Nom_Client_Interv)
rechremplRTF(« Adr1_Client_Interv »,Adr1_Client_Interv)
rechremplRTF(« Adr2_Client_Interv »,Adr2_Client_Interv)
rechremplRTF(« COP_Client_Interv »,COP_Client_Interv)
rechremplRTF(« Ville_Client_Interv »,Ville_Client_Interv)
PROCEDURE LOCALE
PROCEDURE rechremplRTF(MotCle,var)
n = RTFRecherche(RUBRIQUE_RTF, »$$ »+MotCle+ »$$ »)
TANTQUE n > 0
RTFRemplace(RUBRIQUE_RTF, var, n, n + Taille(« $$ »+MotCle+ »$$ »))
n = RTFRecherche(RUBRIQUE_RTF, »$$ »+MotCle+ »$$ »)
FIN