FVERS = 2
REFOBJET : ID = 860026373 ; ID_INIT = 860026209 ; NOM = Tri2g118 ; VERSION = V142 ; DATE = 01/07/14-08:22:30 ( 1404202950 ) ; CAT = 8 ; ETAT = 0 ; NB_FILS =1 ; ID_FILS = 860026233
ID_EST = 860000110
COMMENT = " # 13/05/2014 - DRE - G4R6 QC816 #16/04/2014 - DRE - G4R6 : Lot3   #06/02/2014 THE G4R5 QC783 NDS_NUM pour Trafic --- 23/04/13 - DRE - G4R2 QC717 correction valeur champ V3t1.3 (idemet) + Distribuer en errone tout DC a destination de COME dont le CSV est inconnu dans la table TCSV_COME + Ne pas distribuer ces DC ? COME_ELLIGIBLE --- 12/02/13 - DRE - G4R02 Envoi a COME --- 26/04/11  RHE - G3R21 lot2 : Facturation Open , evol LAR VIO ----- 12/11/2010 G3R19 : Report QC429 correction sur CCD_RELL suppression du 0x19 si SPORTABILITE_SCP<>1"
CREATEUR = teguire
# DEBUT_CORPS
PCODE_PERE=Pdistribution
#############################################################################
#
# Fichier : Tri2g118_dist.src (avec correlation)
#
# Distribution :
#    Article Tri2g118
#
# En entree :
#    Article : Tri2g118
#
# En sortie :
#	TRAFIC, FE, FERPV
#	SuiviConso(Allofact,E_Bill), SYMPHONIE, DELTAMINUTE, CENTVG
#	COME, ELIGIBLE, RACOME(duplication via l'IECC)

#	g_iartout2, Conversion
#	g_iartout3, DISTRI_ERR
#	g_iartout4, TtrafBSS
#	g_iartout5, TscTri2g118C
#	g_iartout6, TtraficN
#	g_iartout7, TcentaureVG
#	g_iartout8, Tfe
#	g_iartout9, Tdelta_minute FE
#	g_iartout10, TcentaureDEA
#	g_iartout11, Correlation
#	g_iartout12, Tsymtri2g118
#	g_iartout13, Tfe_rpv
#	g_iartout14, Tcome    pour COME et COME_ELIGIBLE
#
#
# HISTORIQUE :
# 02/10/2006	JLG Creation - G2R2Cv FO 1974
# 09/10/06	JLG G2R2Cv FO1987  Enveloppe E_RPV (modif L1,T1,TRAI_DDUREE) dcompteur de SC
# 10/10/06	JLG G2R2Cv FO1984  redist a tort au lieu de trafBSS
# 13/10/06	JLG G2R2Cv pb duplication suite a evol
# 16/10/06	JLG G2R2Cv FO1996 + evol spec S1F3 codeserv de SC = "00000" si meracte
# 20/10/06	JLG G2R2Cv FO2013 : trop de messages 7719
# 20/10/06	JLG G2R2Cv FO2019 modif spec des champs dede_num, tax, dur de BSS
# 06/11/06	JLG G2R2Cv FO2021 evol aiguillage CENTVG
# 06/11/06	JLG G2R2Cv FO2039 champ SOURCE FERPV
# 23/11/06	JLG G2R2Cv FO2052 pb redistribution
# 24/11/06	JLG G2R2Cv FO2055 pb core pointeurs trop courts
# 27/11/06	JLG G2R2Cv FO2057 pb dpivot de traficN
# 27/11/06	JLG G2R2Cv FO2054 pas de redistribution si idus_tope !=1
# 01/12/06	JLG G2R2Cv FO2060 TAX de FE parfois = -1
# 01/12/06	JLG G2R2Cv FO2061 evol spec : FCT champ IDUS_NUM = pt_IDUS_NDRTC au lieu de pt_IDUS_NUM
# 06/12/06	JLG G2R2Cv FO2066 : Evolution RI2G
# 08/12/06	JLG G2R2Cv FO2068 : Evolution RI2G
# 12/12/06	JLG G2R2Cv FO2075 Deur BANIP non-facture
# 18/12/06	RHE G3R0Ca
# 22/12/06	RHE	G3R0Ca FO2080 report de la G2R2Cv
# 11/01/07	RHE G3R0Ca FO2088 pb distri SYMPHONIE
# 11/01/07	RHE G3R0Ca FO2089
# 18/01/07	RHE G3R0Ca FO2094
# 19/01/07	RHE G3R0Ca FO2099 pb ECC_FACT
# 19/01/07	RHE G3R0Ca FO2095
# 16/02/07	RHE G3R0Ca FO2114 + harmonisation pcode entre Tri2g118 et Tri2g118B
# 08/03/07	RHE G3R0Ca FO2122 : Modification d'alimentation de TRAFIC // Arret de FCT
# 09/03/07	FAL G3R0Cw Suppression facturation FCT pour les appel d origine IP via le typAR des LAR FE et FERPV
# 09/03/07	FAL G3R0Cw FO2123 modif alim FE et FEPRV : dede_inf dede_num duree et tax
# 15/03/07	RHE G3R0Ca FO2133 : si IDUS_NUM dans BSS, FE/FERPV non destinataire
# 21/03/07	FAL G3R0Ca FO2136 : modif declaration VGA utilisation table externe Inter
# 28/03/07	FAL G3R0Cw FO2139 modif alim DM cas FE dest : dede_inf dede_num duree et tax et correction DRT 42L
# 16/04/07	RHE G3R0Cb FO2144 : report de la G3R0Ca (modif distribution a TRAFIC)
# 19/04/07	RHE G3R0Cb FO2149 : TARIF pour BSS avec TYPCOM sans distinction de MER
# 20/04/07	RHE G3R0Cb          correction utilisation Conversion pour TRAFIC
# 15/05/07	RHE G3R0Cb FO2162 : sortie TrafBSS, champ CLASSDEST alimente avec CCD_REEL
# 22/05/07	THE ParamFTSA-G3R2 report des versions G3R0Cx G3R0Cw
# 23/05/07	DRE G3R0Cb FO2164 : ajouter le 0 ou le 00 dans le dede_num de FERPV base sur la valeur du deco_traf
# 24/05/07	DRE G3R0Cb FO2170 : deco_inf pour Sce RI numero court
# 01/06/07	THE ParamFTSA-G3R2 report version G3R0Cu
# 15/06/07	FAL ParamFTSA-G3R2 FO2182 NUMDDE FERPV
# 07/08/07	JLG ParamFTSA-G3R3 lot2 Arret de FCT pour RTC
# 08/10/07	FAL ParamFTSA-G3R2 FO2238 alimentation centaurevg DEDE_INF DEDE_NUM DUR et TAX comme TRAFIC
# 24/10/07	THE ParamFTSA-G3R4 Ajout DATE_LOCALE pour Symphonie
# 07/11/07	THE ParamFTSA-G3R4 FO 2256
# 21/11/07	PKH ParamFTSA-G3R5 Fusion T3G S2D1 si V1S idus_num = NDRTC pour SC
# 28/11/07	PKH prise en compte FO2261
# 02/01/08	PKH ParamFTSA-G3R5 LOT2 arret fct
# 16/01/08	PKH Param-FTSA G3R5 LOT2 FO2292 Evolution critere de distribution vers CentaureDEA
# 25/01/08	FAL Param-FTSA G3R5 LOT2 S6F4 Evolution critere de distribution vers CentaureDEA
# 04/02/08	JLG Param-FTSA G3R6 fusion G3R5C5 et G3R4Cz(C999) optimale
# 22/02/08	JLG Param-FTSA G3R6 FO 2317 (modif : suivi_conso et symphonie)
# 06/03/08	FAL Param-FTSA G3R6 FO 2338 npf_opt nd_rtc_42L pour symphonie
# 14/03/08	JLG Param-FTSA G3R6 FO2350 evol aiguillage vers CentaureVG
# 02/04/08	JLG Param-FTSA G3R6 FO2366 suppression DATE_LOCALE de symphonie si ICAR_S==0
# 08/09/08	RHE Param-FTSA G3R9Cy alimentation e-bill
# 23/09/08	RHE Param-FTSA G3R9Cy QC90 parametre res de i_EntierToString
# 02/03/09	RHE Param-FTSA-G3R11 QC194 champ CCNDE pour EBILL
# 03/03/09	RHE Param-FTSA-G3R11 QC194 giartout2 pour Conversion
# 25/03/09	PKH Param-FTSA G3R13: prise en compte FTTH fibre SIP
# 02/04/09	JLG Param-FTSA G3R13:  report G3R12Cx, item 118712 Facturation a la duree (avec correlation)
# 08/04/09	JLG Param-FTSA G3R13:  report G3R12Cx, QC228
# 15/04/09	THE Param-FTSA G3R13:  QC231
# 02/06/09	DRE Param-FTSA G3R13: QC253 Correction calcul ID_CORR
# 12/06/09	THE Param-FTSA G3R13: QC257 Pb BSS non NPF
# 15/06/09	THE Param-FTSA G3R13: QC258 Pb OPT
# 30/09/09	THE Param-FTSA CORR_118ALADUREE Param FTSA-G3R14Cx
# 01/10/09	PKH param-FTSA G3R14Cy Multicom
# 27/10/09	PKH-JLG	       G3R15C1 QC300 : test toujours positif sur table externe 118ALADUREE
# 28/04/10  	PKH G3R17lot1 Item BIVSIP Distribution des DCs BIVSIP par identification LARRPV
# 04/05/10	PKH QC361 modification des criteres de constitution des lots pour FERPV
# 10/05/10 	PKH QC362 ajout nouvelle valorisation du champ SERVICE a 8 pour FERPV si b_0perNBE && (bVGTplus || b_FFMV3)
# 11/05/10	PKH G3R17lot2 Item NBE
# 31/05/10	PSA QC367 : modif critere distribution TRAFIC via NBE (prise en compte de la correlation)
# 13/07/10 	PKH G3R18 : ODEBI suppression de la substitution du NDIP par le NDRTC pour TRAFIC
# 12/10/10  	PKH G3R18Cy :ajout de la nature de l appelle ,champs PREF_PORT TAG INFDEDE FILLER et normalisation du champ NUMDDE pour Tfe_rpv
# 03/11/10 	PKH G3R18Cy -QC428- Correction format du champ INFDDE pour fe_rpv
# 12/11/10    	PKH G3R19 : Report QC429 correction sur CCD_RELL suppression du 0x19 si SPORTABILITE_SCP<>1
# 26/04/11  	RHE - G3R21 lot2 : Facturation Open , evol LAR VIO
# 14/06/11	DRE G3R21 QC482 : Ajout de la recheche de l'instance CENTAUREVG pour le code offre VGTIP (FFMV3)
# 04/10/11 - THE - VerifPcode
# 11/01/13 - THE - G4R2 Referentiel OPEN
# 12/02/13 - DRE - G4R02 Envoi a COME
# 04/03/13 - DRE - G4R02 QC693 Ajout ECC COME_ELIGIBLE
# 11/03/13 - DRE - G4R2 QC695 1) Revoir valorisation MSISDN, + modif crit?res de distribution COME et COME_ELIGIBLE, 2) revoir calcul DUREE, 4)Revoir les controles de distribution pour FERPV, Trafic
# 25/03/13 - DRE - G4R2 QC701 Remplace "BEAM" par "OPEN"
# 23/04/13 - DRE - G4R2 QC717 correction valeur champ V3t1.3 (idemet) + Distribuer en errone tout DC a destination de COME dont le CSV est inconnu dans la table TCSV_COME + Ne pas distribuer ces DC a COME_ELLIGIBLE
# 11/10/2013 - THE - G4R4 QC756 correction  mise au format GASCII pour COME 
# 07/01/2014 - THE - G4R5 Lot2 Supp date odebi + ICAR DOM
# 31/01/2014 - DRE - G4R5 QC783 NDS_NUM pour Trafic
# 04/02/2014 - DRE - G4R5 LOT2 Criteres d'envoi a symphonie
# 16/04/2014 - DRE - G4R6 : Lot3
# 13/05/2014 - DRE - G4R6 QC816
# 06/06/2014 - DRE - G4R6 QC824
#
###########################################################################

###################################
# constantes
DEFINITION	C_Article		 "Tri2g118"
DEFINITION	C_Conversion	 "Conversion"
DEFINITION	C_FU			 "U"
DEFINITION	C_INST_VGA		 "VGA"
#G4R2
DEFINITION	C_INST_OPEN		 "OPEN"
DEFINITION	C_INST_VGAIP	 "VGAIP"
DEFINITION	C_Inst42L		 "42L"
DEFINITION	C_InstBSS		 "BSS"
DEFINITION	C_InstCENTVG	 "CENTAUREVG"
DEFINITION	C_InstFE		 "FE"
DEFINITION	C_InstFERPV		 "FERPV"
DEFINITION	C_InstNPF		 "NPF"
DEFINITION	C_InstSC		 "SC"
DEFINITION	C_InstSIP		 "SIP"
DEFINITION	C_InstSYMP		 "SYMP"
DEFINITION	C_InstTRAFBSS1	 "TRAFBSS1"
DEFINITION	C_InstTRAFBSS2	 "TRAFBSS2"
DEFINITION	C_InstTRAFIC	 "TRAFIC"
DEFINITION	C_pref_cle		 "INi"
DEFINITION	C_PREF_MLV87	 "87"
DEFINITION	C_PREF_MLV9		 "9"
DEFINITION	C_REF42L		 "42L"
DEFINITION	C_TcentaureVG	 "TcentaureVG"
DEFINITION	C_Tdelta_minute	 "Tdelta_minute"
DEFINITION	C_Tfe			 "Tfe"
DEFINITION	C_Tferpv		 "Tfe_rpv"
DEFINITION	C_TRAFBSS		 "TtrafBSS"
DEFINITION	C_TRAFBSS1FACT	 "TRAFBSS1"
DEFINITION	C_TRAFBSS2FACT	 "TRAFBSS2"
DEFINITION	C_Tsc			 "TscTri2g118C"
DEFINITION	C_Tsymphonie	 "Tsymtri2g118"
DEFINITION	C_Ttrafic		 "TtraficN"
DEFINITION	BASE_12			 1
DEFINITION	CATEG_12		 8
DEFINITION	CODE_12			 1
DEFINITION	IDUS_12			 "**00"
DEFINITION	bEFFICACE		 2
DEFINITION	NUMTAB			 2
DEFINITION	NUMTABSEL		 0
DEFINITION	RES_CLDEST		 1
DEFINITION	RES_CODCIR		 3
DEFINITION	RES_TYPCOM		 0
DEFINITION	TD_BSS			 6
DEFINITION	TD_NPF			 3
DEFINITION	TD_VGA1			 7
DEFINITION	TD_VGA2			 2
DEFINITION	ZONEMETRO		 7
DEFINITION	C_InstCENTDEA	 "CENTAUREDEA"
DEFINITION	C_TcentaureDEA	 "TcentaureDEA"
DEFINITION	C_instOPT		 "OPT"
DEFINITION	C_CASCORR		 "118_CORR"
#DRE - G4R02 Envoi a COME 
DEFINITION	NUMTAB1			 1
DEFINITION	C_INST_COME		"COME"
DEFINITION	C_INST_ELIGIBLE	"ELIGIBLE"
DEFINITION	C_TAB_CSV_COME	"CSV_COME"
DEFINITION	C_Tcome			"Tcome"
DEFINITION	C_INST_COME_ELIGIBLE	"COME_ELIGIBLE"
# G4R5 Lot2
DEFINITION	NUMTABSEL1		 1
#DRE G4R6 Lot3
DEFINITION	RES_TYPCPT	2
DEFINITION	CPT_CPS_Loc	16
DEFINITION	CPT_CPS_RI	17
DEFINITION	C_DATCPS	"DATCPS" 
DEFINITION	TD_SVA		9
DEFINITION	C_INST_ALICE	"ALICE"
#\DRE G4R6 lot3


###################################
# Variables entieres
REGISTRE	ENTIER		b_IDUS_NDIP
REGISTRE	ENTIER		b_NPF_SIP
REGISTRE	ENTIER		b_TETRIS_FU
REGISTRE	ENTIER		b_TETRIS_TRAFBSS
REGISTRE	ENTIER		b_TRAFBSScritCOM
REGISTRE	ENTIER		bCENTVG
REGISTRE	ENTIER		arFE
REGISTRE	ENTIER		bFE
REGISTRE	ENTIER		arFERPV
REGISTRE	ENTIER		bFERPV
REGISTRE	ENTIER		bIDUS_NUM
REGISTRE	ENTIER		bRDIP_SVTR
REGISTRE	ENTIER		bSC
REGISTRE	ENTIER		bTRAFIC
REGISTRE	ENTIER		CATDC
REGISTRE	ENTIER		CAX
REGISTRE	ENTIER		CCD
REGISTRE	ENTIER		CCD_REEL
REGISTRE	ENTIER		CODCIR
REGISTRE	ENTIER		code_CFR
REGISTRE	ENTIER		code_errone
REGISTRE	ENTIER		CPT_REDIST
REGISTRE	ENTIER		DATE_GMT
REGISTRE	ENTIER		DATE_GMT_HDEB
REGISTRE	ENTIER		DATE_LOCALE
REGISTRE	ENTIER		DATE_LOCALE_HDEB
REGISTRE	ENTIER		ddebut
REGISTRE	ENTIER		dduree
REGISTRE	ENTIER		DECO_INF
REGISTRE	ENTIER		DECO_TRAF
REGISTRE	ENTIER		dpivot
REGISTRE	ENTIER		EPORTABILITE
REGISTRE	ENTIER		EPORTABILITE_SCP
REGISTRE	ENTIER		erreur
REGISTRE	ENTIER		bFACTURABLE
REGISTRE	ENTIER		GCOM_NAD
REGISTRE	ENTIER		ICAR_P
REGISTRE	ENTIER		ICAR_REF
REGISTRE	ENTIER		ICAR_S
REGISTRE	ENTIER		IDUS_TOPE
REGISTRE	ENTIER		IDUS_TRAF
REGISTRE	ENTIER		index
REGISTRE	ENTIER		inst42L
REGISTRE	ENTIER		instBSS
REGISTRE	ENTIER		instCENTVG
REGISTRE	ENTIER		instDM
REGISTRE	ENTIER		instECCv
REGISTRE	ENTIER		instFE
REGISTRE	ENTIER		instFERPV
REGISTRE	ENTIER		instNPF
REGISTRE	ENTIER		instSC
REGISTRE	ENTIER		instSIP
REGISTRE	ENTIER		instSYMPH
REGISTRE	ENTIER		instTRAFBSS1
REGISTRE	ENTIER		instTRAFBSS2
REGISTRE	ENTIER		instTRAFIC
REGISTRE	ENTIER		instVGA
#G4R2
REGISTRE	ENTIER		instOPEN
REGISTRE	ENTIER		instVGAIP
REGISTRE	ENTIER		L_COMPTE_NPF
REGISTRE	ENTIER		L_NDR
REGISTRE	ENTIER		lg_dede
REGISTRE	ENTIER		MER
REGISTRE	ENTIER		NB_CSV
REGISTRE	ENTIER		numzone
REGISTRE	ENTIER		RDIP_SVTR_1
REGISTRE	ENTIER		REF
REGISTRE	ENTIER		res
REGISTRE	ENTIER		SCATDC
REGISTRE	ENTIER		SERVICE
REGISTRE	ENTIER		SPORTABILITE
REGISTRE	ENTIER		SPORTABILITE_SCP
REGISTRE	ENTIER		SUP
REGISTRE	ENTIER		TRAA_DCONV
REGISTRE	ENTIER		TRAA_HDEB
REGISTRE	ENTIER		TRAA_NUTC
REGISTRE	ENTIER		TRAA_NUTR
REGISTRE	ENTIER		TREP_DURCONV
REGISTRE	ENTIER		TYPAR_Etelephonie
REGISTRE	ENTIER		TYPAR_FE
REGISTRE	ENTIER		TYPCOM
REGISTRE	ENTIER		V1S
REGISTRE	ENTIER		val
REGISTRE	ENTIER		VGA
REGISTRE	ENTIER		TYPAR_SIPFE
REGISTRE	ENTIER		NM3
REGISTRE	ENTIER		TYPCOM_fct
REGISTRE	ENTIER		b_arretfct_centaure
REGISTRE	ENTIER		instCENTDEA
REGISTRE	ENTIER		bCENTDEA
REGISTRE	ENTIER		b_NPF_OPT
REGISTRE	ENTIER		instOPT
REGISTRE	ENTIER		SIP_Fibre
REGISTRE	ENTIER		RETOUR_CORR
REGISTRE	ENTIER		CORR_118ALADUREE
REGISTRE	ENTIER		ID_CORR
REGISTRE	ENTIER		nelem
REGISTRE	ENTIER		TYPAR_BIV_SIP
REGISTRE 	ENTIER		b_CodOperVG
REGISTRE 	ENTIER		b_FFMV2
REGISTRE 	ENTIER		b_FFMV3
REGISTRE	ENTIER		b_OperNBE
REGISTRE	ENTIER		b_FERPV
REGISTRE	ENTIER		b_FERPV_NBE
# G4R5 Lot2 REGISTRE	ENTIER		b_ODEBI
REGISTRE	ENTIER		date_table
#DRE - G4R02 Envoi a COME 
REGISTRE	ENTIER		DATE_AUDIT_GMT
REGISTRE	ENTIER		DATE_AUDIT
REGISTRE	ENTIER		instCOME
REGISTRE	ENTIER		instELIGIBLE
REGISTRE	ENTIER		b_InfoC_COME_NDI
REGISTRE	ENTIER		b_InfoC_ELIGIBLE_NDI
REGISTRE	ENTIER		b_COME
REGISTRE	ENTIER		b_ELIGIBLE
REGISTRE	ENTIER		Valeur
REGISTRE	ENTIER		Nbut_COME
REGISTRE	ENTIER		b_FERPV_COME
REGISTRE	ENTIER		instCOME_ELIGIBLE
# G4R5 Lot2 
REGISTRE	ENTIER		b_BANIP
#DRE G4R6 Lot3
REGISTRE	ENTIER		longueur
REGISTRE	ENTIER		Date_CPS
REGISTRE	ENTIER		instALICE 
REGISTRE	ENTIER		typ_ctr
REGISTRE	ENTIER		bREDIST_SVA
REGISTRE	ENTIER		b_TRAFBSS1
REGISTRE	ENTIER		b_TRAFBSS2


###################################
# Variables Pointeurs
REGISTRE	POINTEUR	pt_basTRAFIC
REGISTRE	POINTEUR	pt_BUF
REGISTRE	POINTEUR	pt_C_CSV1
REGISTRE	POINTEUR	pt_CATDC
REGISTRE	POINTEUR	pt_CLE
REGISTRE	POINTEUR	pt_CODE_DEUR
REGISTRE	POINTEUR	pt_CODE_FU
REGISTRE	POINTEUR	pt_CodeOp
REGISTRE	POINTEUR	pt_CodeOp_SCP
REGISTRE	POINTEUR	pt_COMPTE_NPF
REGISTRE	POINTEUR	pt_CSV
REGISTRE	POINTEUR	pt_DECO_DIST_NUM
REGISTRE	POINTEUR	pt_DECO_NUM
REGISTRE	POINTEUR	pt_DECO_TEMP
REGISTRE	POINTEUR	pt_DEDE_DIST_N
REGISTRE	POINTEUR	pt_DEDE_NUM
REGISTRE	POINTEUR	pt_ECCFACT
REGISTRE	POINTEUR	pt_GCOM_IDRSG
REGISTRE	POINTEUR	pt_GCOM_PALNUM
REGISTRE	POINTEUR	pt_IDCORREL
REGISTRE	POINTEUR	pt_IDSRT
REGISTRE	POINTEUR	pt_IDUS_NDRTC
REGISTRE	POINTEUR	pt_IDUS_NUM
REGISTRE	POINTEUR	pt_InfoCompl
REGISTRE	POINTEUR	pt_instDM
REGISTRE	POINTEUR	pt_instTRAFIC
REGISTRE	POINTEUR	pt_LIBELREDIST
# G4R5 Lot2 REGISTRE	POINTEUR	pt_NDRTC Remplace par pt_BANIP_RTC
REGISTRE	POINTEUR	pt_BANIP_RTC
REGISTRE	POINTEUR	pt_NDS_NUM
REGISTRE	POINTEUR	pt_NUM
REGISTRE	POINTEUR	pt_NUMDDR
REGISTRE	POINTEUR	pt_OFFRE
REGISTRE	POINTEUR	pt_OP_CSV1
REGISTRE	POINTEUR	pt_OPERA
REGISTRE	POINTEUR	pt_RDIP_SVTR
REGISTRE	POINTEUR	pt_REF
REGISTRE	POINTEUR	pt_RES1
REGISTRE	POINTEUR	pt_SCATDC
REGISTRE	POINTEUR	pt_SERVICE
REGISTRE	POINTEUR	pt_SGTQS
REGISTRE	POINTEUR	pt_SIP_ECC
REGISTRE	POINTEUR	pt_TARIF
REGISTRE	POINTEUR	pt_temp
REGISTRE	POINTEUR	pt_temp2
REGISTRE	POINTEUR	pt_TETRIS_compte
REGISTRE	POINTEUR	pt_TETRIS_RTC
REGISTRE	POINTEUR	pt_TRAFIC
REGISTRE	POINTEUR	pt_TYPOFFRE
REGISTRE	POINTEUR	pt_VGA_OF
REGISTRE	POINTEUR	pt_VGA_OP
REGISTRE	POINTEUR	pt_NM3_OP
REGISTRE	POINTEUR	pt_NM3_OF
REGISTRE	POINTEUR	pt_OPT_RTC
REGISTRE	POINTEUR	pt_OPT_ECC
REGISTRE	POINTEUR	pt_buffer
REGISTRE	POINTEUR	pt_Support
REGISTRE	POINTEUR	pt_cascorr
REGISTRE	POINTEUR	pt_REPONSE
REGISTRE	POINTEUR	pt_CodOperVG
REGISTRE	POINTEUR	pt_CodOffreVG
REGISTRE	POINTEUR	pt_TEMP
REGISTRE	POINTEUR	pt_datODEBI
#DRE - G4R02 Envoi a COME 
REGISTRE	POINTEUR	pt_NDI
REGISTRE	POINTEUR	pt_CallType
REGISTRE	POINTEUR	pt_TeleService
# G4R5 Lot2 
REGISTRE	POINTEUR	pt_ECCv
REGISTRE	POINTEUR	pt_RTC_MAY
# DRE G4R6 lot3
REGISTRE	POINTEUR	pt_MESSAGE
REGISTRE	POINTEUR	pt_CODE_TARIF 
REGISTRE	POINTEUR	pt_TYPE_EDIT 
REGISTRE	POINTEUR	pt_NORM



# Initialisations
b_IDUS_NDIP		    = 0
b_NPF_SIP		    = 0
b_TETRIS_FU		    = 0
b_TETRIS_TRAFBSS    = 0
b_TRAFBSScritCOM    = 0
bCENTVG			    = 0
bCENTDEA		    = 0
arFE			    = 0
arFERPV			    = 0
bFE				    = 0
bFERPV			    = 0
bIDUS_NUM		    = 0
bRDIP_SVTR		    = 0
bSC				    = 0
bTRAFIC			    = 0
CATDC			    = 0
CAX				    = 0
CCD				    = 0
CCD_REEL		    = 0
CODCIR			    = 0
code_CFR		    = 0
code_errone		    = 0
CPT_REDIST		    = 0
DATE_GMT		    = 0
DATE_GMT_HDEB	    = 0
DATE_LOCALE		    = 0
DATE_LOCALE_HDEB    = 0
ddebut			    = 0
dduree			    = 0
DECO_INF		    = 0
DECO_TRAF		    = 0
dpivot			    = 0
EPORTABILITE	    = 0
EPORTABILITE_SCP    = 0
erreur			    = 0
bFACTURABLE		    = 0
GCOM_NAD		    = 0
ICAR_P			    = 0
ICAR_REF		    = 0
ICAR_S			    = 0
IDUS_TOPE		    = 0
IDUS_TRAF		    = 0
inst42L			    = 0
instBSS			    = 0
instCENTVG		    = 0
instDM			    = 0
instECCv		    = 0
instFE			    = 0
instFERPV		    = 0
instNPF			    = 0
instSC			    = 0
instSYMPH		    = 0
instTRAFBSS1	    = 0
instTRAFBSS2	    = 0
instTRAFIC		    = 0
instVGA			    = 0
#G4R2
instOPEN		    = 0
instVGAIP		    = 0
L_COMPTE_NPF	    = 0
L_NDR			    = 0
lg_dede			    = 0
MER				    = 0
NB_CSV			    = 0
numzone			    = 0
RDIP_SVTR_1		    = 0
REF				    = 0
res				    = 0
SCATDC			    = 0
SERVICE			    = 0
SPORTABILITE	    = 0
SPORTABILITE_SCP    = 0
SUP				    = 0
TRAA_DCONV		    = 0
TRAA_HDEB		    = 0
TRAA_NUTC		    = 0
TRAA_NUTR		    = 0
TREP_DURCONV	    = 0
TYPAR_Etelephonie   = 0
TYPAR_FE		    = 0
TYPCOM			    = 0
V1S				    = 0
val				    = 0
VGA				    = 0
TYPAR_SIPFE		    = 0
TYPCOM_fct		    = 0
b_arretfct_centaure = 0
instCENTDEA		    = 0
SIP_Fibre		    = 0
RETOUR_CORR		    = 0
CORR_118ALADUREE    = 0
ID_CORR			    = 0
nelem			    = 0
TYPAR_BIV_SIP	    = 0
b_CodOperVG		    = 0
b_FFMV2			    = 0
b_FFMV3			    = 0
b_OperNBE		    = 0
b_FERPV			    = 0
b_FERPV_NBE		    = 0
date_table		    = 0
# G4R5 Lot2 b_ODEBI			    = 0

#DRE - G4R02 Envoi a COME 
instCOME		= 0
instELIGIBLE		= 0
b_InfoC_COME_NDI	= 0
b_InfoC_ELIGIBLE_NDI 	= 0
b_COME			= 0
b_ELIGIBLE		= 0
Valeur 			= 0
Nbut_COME		= 0
b_FERPV_COME		= 0
instCOME_ELIGIBLE	= 0
# G4R5 Lot2 
b_BANIP = 0
#DRE G4R6 Lot3
Date_CPS 		= 0
instALICE 		= -1
longueur 		= 0
b_FERPV 		= 0
typ_ctr			= 0
bREDIST_SVA		= 0
b_TRAFBSS1 		= 0
b_TRAFBSS2 		= 0

# Allocation de memoire pour le buffeur
pt_basTRAFIC	 = "345678901234567890123456789012"
pt_BUF			 = "pt_BUF666666123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890666666123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
pt_C_CSV1		 = "32568985478"
pt_CATDC		 = "923"
pt_CLE			 = "852369515182"
pt_CODE_DEUR	 = "434F44455F444555520000000000000000000000000000000"
pt_CODE_FU		 = "2525"
pt_CodeOp		 = "12554911111111111111"
pt_CodeOp_SCP	 = "62488522222222222222"
pt_COMPTE_NPF	 ="232323232323232323232323232323232323232323232323232333333333333"
pt_CSV			 = "24567457424167433546121657446574151245754857"
pt_DECO_DIST_NUM = "145698745632100000000000000000000000000000000000000"
pt_DECO_NUM		 = "745856932561444444444444444444444444444444444444444"
pt_DECO_TEMP	 = "101020303536411111111111111111111111111111111111111"
pt_DEDE_DIST_N	 = "102581256946211111111111111111111111111111111111111"
pt_DEDE_NUM		 = "942568418552222222222222222222222222222222222222222"
pt_ECCFACT		 = "687128512128555225254532585"
pt_GCOM_IDRSG	 = "9562487441878417846416666666666"
pt_GCOM_PALNUM	 = "632"
pt_IDCORREL		 = "13812882345858265841389129888888888888888888888888888888888888"
pt_IDSRT		 = "4585745845786248772261111111111111111111111111111111"
pt_IDUS_NDRTC	 = "748174817481748174817481748174817481748174817481748174817481748174817481748174817481748174817481"
pt_IDUS_NUM		 = "62819756812568568422385841277777777777777777777777777777777777"
pt_InfoCompl	 = "5682145578445496325855411"
pt_instDM		 = "80156532530145"
pt_instTRAFIC	 = "325415897"
pt_LIBELREDIST	 = "pt_LIBELREDIST7890123456789012345678901234"
pt_BANIP_RTC		 = "56565656565656565656353535353535353535353535353535353535353535353535353535353535353535353535353535"
pt_NDS_NUM		 = "5682463844"
pt_NUM			 = "125674100886324786521478652222886321748752698412354"
pt_NUMDDR		 = "3541284752247855114785114522584118521154852202585215"
pt_OFFRE		 = "314159265358979285625851178636"
pt_OP_CSV1		 = "98336541185"
pt_OPERA		 = "299792510818563228565332124741"
pt_RDIP_SVTR	 = "271828182800000000000000000000"
pt_REF			 = "65289"
pt_RES1			 = "3578357835783578357835783578357835783578"
pt_SCATDC		 = "566"
pt_SERVICE		 = "6767"
pt_SGTQS		 = "6284569821355"
pt_SIP_ECC		 = "3164852"
pt_TARIF		 = "4444444444444444444444444444444444444444444444444444444444444"
pt_temp			 = "3258271185105882785296963298619746713207547914608971"
pt_temp2		 = "5827118510588278529696329861974671320754791460897133"
pt_TETRIS_compte = "776677667766776677667766776677667766"
pt_TETRIS_RTC	 = "2828282828282828282828282828"
pt_TRAFIC		 = "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555"
pt_TYPOFFRE		 = "98200000000000000000"
pt_VGA_OF		 = "147852369852149456784524987648"
pt_VGA_OP		 = "326598458715798746878745454457"
pt_NM3_OP		 = "504E4D334F504E4D334F50"
pt_NM3_OF		 = "464E4D334F464E4D334F46"
pt_OPT_RTC		 = "pt_OPT_RTC333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333"
pt_OPT_ECC		 = "pt_OPT_ECC4321"
pt_buffer		 = "pt_buffer123"
pt_Support		 = "pt_Suppory23413214"
pt_cascorr		 = "pt_cascorr1234567890"
pt_REPONSE		 = "pt_REPONSE99999999999999999999999"
pt_CodOperVG	 	= "pt_CodOperVG97197197179991791797197197197190971917917"
pt_CodOffreVG	 = "pt_CodOffreVG 8618681681686186186186186186816816816816"
pt_TEMP			 = "pt_TEMP097097609765096549765409129129129129129129192991299129912991928912899129918291291"
pt_datODEBI		 = "pt_datODEBI93459345934593457654398767854875634357365332489263323432"
#DRE - G4R02 Envoi a COME 
pt_NDI		 = "pt_NDI792510818563228565332124741"
pt_CallType	 = "pt_CallType123"
pt_TeleService	 = "pt_TeleService"
# G4R5 Lot2 
pt_ECCv			 = "2121212121212121212121212121212121212121"
pt_RTC_MAY		 = "pt_RTC_MAY09876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321"
# DRE G4R6 lot3
pt_MESSAGE = "pt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGE"
pt_LIBELREDIST	 = "pt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDIST"
pt_CODE_TARIF 	 = "pt_CODE_TARIFpt_CODE_TARIF"
pt_TYPE_EDIT	 = "pt_TYPE_EDIT"
pt_NORM		 = "389389389389389389996200258997115447999945899"


# Initialisations
i_strcpy(pt_basTRAFIC, "")
i_strcpy(pt_BUF , "")
i_strcpy(pt_C_CSV1, "")
i_strcpy(pt_CATDC, "")
i_strcpy(pt_CLE, "")
i_strcpy(pt_CODE_DEUR , " ")
i_strcpy(pt_CODE_FU, "")
i_strcpy(pt_CodeOp, "")
i_strcpy(pt_CodeOp_SCP, "")
i_strcpy(pt_COMPTE_NPF, "")
i_strcpy(pt_CSV, "")
i_strcpy(pt_DECO_DIST_NUM, "")
i_strcpy(pt_DECO_NUM, "")
i_strcpy(pt_DECO_TEMP, "")
i_strcpy(pt_DEDE_DIST_N, "")
i_strcpy(pt_DEDE_NUM, "")
i_strcpy(pt_ECCFACT, "")
i_strcpy(pt_GCOM_IDRSG, "")
i_strcpy(pt_GCOM_PALNUM, "")
i_strcpy(pt_IDCORREL, "")
i_strcpy(pt_IDSRT, "")
i_strcpy(pt_IDUS_NDRTC, " ")
i_strcpy(pt_IDUS_NUM, "")
i_strcpy(pt_InfoCompl, " ")
i_strcpy(pt_instDM, "")
i_strcpy(pt_instTRAFIC, "")
i_strcpy(pt_BANIP_RTC, " ")
i_strcpy(pt_NDS_NUM, "")
i_strcpy(pt_NUM, "")
i_strcpy(pt_NUMDDR, "")
i_strcpy(pt_OFFRE, "")
i_strcpy(pt_OP_CSV1, "")
i_strcpy(pt_OPERA, "")
i_strcpy(pt_RDIP_SVTR, "")
i_strcpy(pt_REF, "")
i_strcpy(pt_RES1, "")
i_strcpy(pt_SCATDC, "")
i_strcpy(pt_SERVICE, "")
i_strcpy(pt_SGTQS, "")
i_strcpy(pt_SIP_ECC, "")
i_strcpy(pt_TARIF, "")
i_strcpy(pt_temp, "")
i_strcpy(pt_temp2, "")
i_strcpy(pt_TETRIS_compte, " ")
i_strcpy(pt_TETRIS_RTC, " ")
i_strcpy(pt_TRAFIC, "")
i_strcpy(pt_TYPOFFRE, "")
i_strcpy(pt_VGA_OF, "")
i_strcpy(pt_VGA_OP, "")
i_strcpy(pt_NM3_OP, "")
i_strcpy(pt_NM3_OF, "")
i_strcpy(pt_OPT_RTC," ")
i_strcpy(pt_OPT_ECC, "")
i_strcpy(pt_buffer, "     ")
i_strcpy(pt_Support, "")
i_strcpy(pt_CodOperVG, "")
i_strcpy(pt_CodOffreVG, "")
i_strcpy(pt_TEMP, "")
i_strcpy(pt_datODEBI," ")
# VerifPcode
i_strcpy(pt_LIBELREDIST," ")
i_strcpy(pt_cascorr," ")
i_strcpy(pt_REPONSE,"")
#DRE - G4R02 Envoi a COME 
i_strcpy(pt_NDI, "")
i_strcpy(pt_CallType, "")
i_strcpy(pt_TeleService, "")
# G4R5 Lot2 
i_strcpy(pt_ECCv, "")
i_strcpy(pt_RTC_MAY, "")
# DRE G4R6 lot3
i_strcpy(pt_MESSAGE, "")
i_strcpy(pt_CODE_TARIF , "    ")
i_strcpy(pt_TYPE_EDIT , " ")
i_strcpy(pt_LIBELREDIST,"")
i_strcpy(pt_NORM,"")


############################################################################

erreur = i_cree_art(C_Conversion, g_iartout2)
CPT_REDIST = i_LireRedistCpt()

#trace(" *********** pcode de distri Tri2g118B ************")

############################################################################
# 	Variables fonctionnelles
############################################################################

dduree = i_get_art_field(g_iartin, $Tri2g118::dduree)
ddebut = i_get_art_field(g_iartin, $Tri2g118::ddebut)
dpivot = i_get_art_field(g_iartin, $Tri2g118::dpivot)

# Init de numzone si IDUS_NUM ABSENT
numzone = 7
numzone = i_DHgetZoneID(NUMTABSEL, g_iartin)

# SGTQS
erreur = i_get_art_str(g_iartin, $Tri2g118::IDPCS, pt_SGTQS)

# Test retour de correlation Param FTSA-G3R12Cx
#trace1("__FILE__:__LINE__ #### DIST: GIPT: <%d>", g_ipt)
SI (g_ipt == PT_CORRELE)
ALORS
	RETOUR_CORR = 1
	trace("__FILE__:__LINE__ ##### RETOUR_CORR ###### ")
FINSI
#trace1("<<<__FILE__:__LINE__>>> #### Valeur de : RETOUR_CORR: <%d>", RETOUR_CORR)

# Pointeur pt_DEDE_NUM (NUMNAS)
erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DEDE_NUM)

#DRE - G4R02 Envoi a COME 
# Recuperation de la date d audit pour envoi a COME
DATE_AUDIT_GMT = i_date_audit()
DATE_AUDIT = i_DHgetLocalTime(NUMTAB1, ZONEMETRO, DATE_AUDIT_GMT)


# DATE_GMT
DATE_GMT = i_DHgetCe2gTime(NUMTAB, ZONEMETRO, ddebut)

# DATE_LOCALE
DATE_LOCALE = i_DHgetLocalTime(NUMTAB, numzone, ddebut)
SI (DATE_LOCALE == 0)
ALORS
	code_errone = 0xA080
	erreur = i_PlvMessEmettre(8600, 2, g_iartin, "", 3, code_errone, C_Article, "i_DHgetLocalTime/DATE LOCALE")
	SAUT DISTRI_ERR
FINSI

# DATE_GMT_HDEB et DATE_LOCALE_HDEB
SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_HDEB) == 1)
ALORS
	TRAA_HDEB = i_get_art_field(g_iartin, $Tri2g118::TRAA_HDEB)
	SI TRAA_HDEB == -1
	ALORS
		# Cree pour envoi en correl a supprimer
		erreur = i_supprChamp(g_iartin, "T3TRAA_HDEB")
	SINON
		DATE_LOCALE_HDEB = i_DHgetLocalTime(NUMTAB, numzone, TRAA_HDEB)
		SI (DATE_LOCALE_HDEB == 0)
		ALORS
			code_errone = 0xA080
			erreur = i_PlvMessEmettre(8600, 2, g_iartin, "", 3, code_errone, C_Article, "i_DHgetLocalTime/DATE LOCALE TRAA_HDEB")
			SAUT DISTRI_ERR
		FINSI
		DATE_GMT_HDEB = i_DHgetCe2gTime(NUMTAB, ZONEMETRO, TRAA_HDEB)
	FINSI
FINSI

# FACTURABLE
IDUS_TOPE = i_get_art_field(g_iartin, $Tri2g118::IDUS_TOPE)

SI (i_valid_field_n(g_iartin, $Tri2g118::RDIP_SVTR) == 1)
ALORS
	bRDIP_SVTR = 1
	erreur = i_get_art_str(g_iartin, $Tri2g118::RDIP_SVTR, pt_RDIP_SVTR)
	res= i_strlen(pt_RDIP_SVTR)
	index = 0
	RDIP_SVTR_1 = 0
	POINT P_FACT

	SI index < res && index < 2
	ALORS
		i_get_sub_str(pt_RDIP_SVTR, index, index, pt_BUF)
		val = i_get_val_num(pt_BUF, 1, 1)

		SI val >= 0x30 && val <= 0x39
		ALORS
			val = val - 0x30
		FINSI

		SI val >= 0x41 && val <= 0x46
		ALORS
			val = val - 0x37
		FINSI

		SI val >= 0x61 && val <= 0x66
		ALORS
			val = val - 0x57
		FINSI

		SI index == 0 && res > 1
		ALORS
			val = val * 0x10
		FINSI
		RDIP_SVTR_1 = RDIP_SVTR_1 + val
		index = index + 1
		SAUT P_FACT
	FINSI
SINON
	bRDIP_SVTR = 0
FINSI

SI (((IDUS_TOPE == 1) && (bRDIP_SVTR == 1) && (RDIP_SVTR_1 == 0x16)) || ((IDUS_TOPE == 1) && (bRDIP_SVTR == 0)))
ALORS
	bFACTURABLE = 1
SINON
	bFACTURABLE = 0
FINSI

#  Si non FACTURABLE on distribue a SYMPHONIE uniquement
SI !bFACTURABLE
ALORS
	CCD_REEL = 20
	i_strcpy(pt_ECCFACT, " ")
	i_strcpy(pt_VGA_OF, " ")
	i_strcpy(pt_VGA_OP, " ")
	i_strcpy(pt_C_CSV1, " ")
	i_strcpy(pt_OP_CSV1, " ")
	SAUT P_SYMPH
FINSI

# G4R5 Lot2
##-----------------------------------------------------------
## Determine si la DATE_GMT est egale ou posteriereure a celle
## retournee par la table TDATODEBI
##------------------------------------------------------------
##trace1 ("<<__LINE__ >> date_GMT = %d ---------",DATE_GMT)
#i_strcpy (pt_datODEBI,i_get_tab_field("TDATODEBI", DATE_GMT, "ODEBI"))
#erreur = i_set_art_str (g_iartout2,$Conversion::DATE_STR,pt_datODEBI)
#date_table = i_get_art_field(g_iartout2, $Conversion::DATE_ASC)
##trace2 ("<< __LINE__>> pt_datODEBI = %s --------",pt_datODEBI,"")
##trace1 ("<< __LINE__>>  date_table = %d ----------",date_table)
#
#SI DATE_GMT >= date_table
#ALORS
#	b_ODEBI = 1
#FINSI

#  MER  Mise en Relation si (CATDC = 0 ou 1) et SCATDC = 2
CATDC = i_get_art_field(g_iartin, $Tri2g118::CATDC)
SCATDC = i_get_art_field(g_iartin, $Tri2g118::SCATDC)

SI (((CATDC == 0) || (CATDC == 1)) && (SCATDC == 2))
ALORS
	MER = 1
SINON
	MER = 0
FINSI

# Presence de IDUS.NUM : en l'absence de IDUS_NUM, l'article n'est distribue qu'a SYMPHONIE
SI (i_valid_field_n(g_iartin, $Tri2g118::IDUS_NUM) == 1)
ALORS
	bIDUS_NUM = 1
SINON
	bIDUS_NUM = 0
FINSI

# Rejet si FACTURABLE et IDUS_NUM absent
SI (bFACTURABLE && !bIDUS_NUM)
ALORS
	code_errone = 0xA080
	erreur = i_PlvMessEmettre(8600, 2, g_iartin, "", 3, code_errone, C_Article, "FACTURABLE et IDUS_NUM absent")
	SAUT DISTRI_ERR
FINSI

erreur  = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DEDE_NUM )

SI bFACTURABLE
ALORS
	erreur  = i_format_str2(pt_temp , "%s%s", "RI2G", pt_DEDE_NUM )
	i_strcpy(pt_REPONSE , i_get_tab_field("118ALADUREE", DATE_GMT , pt_temp ))

	SI (i_strcmp(pt_REPONSE , "") != 0)
	ALORS
		SI ( CATDC  == 1 )
		ALORS
			CORR_118ALADUREE  = 1
		FINSI
	FINSI
FINSI
#trace1(">>>__FILE__:__LINE__>>> #### Valeur de : CORR_118ALADUREE : <%d>", CORR_118ALADUREE)

#  Si IDUS_NUM present
SI (bIDUS_NUM == 1)
ALORS
	erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM, pt_temp)
	i_get_sub_str(pt_temp, 0, 1, pt_temp)
	i_get_sub_str(pt_temp, 0, 0, pt_temp2)
	SI ((i_strcmp(pt_temp, C_PREF_MLV87) == 0) || (i_strcmp(pt_temp2, C_PREF_MLV9) == 0))
	ALORS
		b_IDUS_NDIP = 1
	SINON
		b_IDUS_NDIP = 0
	FINSI

	# Ajout d'une enveloppe E_RPV
	erreur = i_add_opt("E_RPV")
	erreur = i_set_attr_val_n($E_RPV::CFR, 0)
	erreur = i_set_attr_val_n($E_RPV::DATE_M, ddebut)
	erreur = i_set_attr_val_n($E_RPV::TRAI_DDUREE, dduree)

	# L_NDR longueur de IDUS_NUM
	L_NDR = i_get_art_fieldlength(g_iartin, $Tri2g118::IDUS_NUM)
	SI (L_NDR % 2 == 0)
	ALORS
		L_NDR = L_NDR / 2
	SINON
		L_NDR = L_NDR / 2 + 1
	FINSI
	erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM, pt_IDUS_NUM)

	# VGA impossible si IP
	# Controle presence et recuperation de l'instance du referentiel VGA
	instVGA = i_LireInstanceECC(C_INST_VGA)

	SI (instVGA == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "VGA", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# Controle presence et recuperation de l'instance du referentiel OPEN
	instOPEN = i_LireInstanceECC(C_INST_OPEN)

	SI (instOPEN == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "OPEN", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# Controle presence et recuperation de l'instance du referentiel VGAIP
	instVGAIP = i_LireInstanceECC(C_INST_VGAIP)

	SI (instVGAIP == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "VGAIP", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI
	
#DRE - G4R02 Envoi a COME 
	# Controle presence et recuperation de l'instance du referentiel COME
	instCOME = i_LireInstanceECC(C_INST_COME)

	SI (instCOME == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "COME", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# Controle presence et recuperation de l'instance du referentiel ELIGIBLE
	instELIGIBLE = i_LireInstanceECC(C_INST_ELIGIBLE)

	SI (instELIGIBLE == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Referentiel ELIGIBLE", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI
	
	# Controle presence et recuperation de l'instance de l'ECC COME_ELIGIBLE
	instCOME_ELIGIBLE = i_LireInstanceECC(C_INST_COME_ELIGIBLE)

	SI (instCOME_ELIGIBLE == 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "ECC COME_ELIGIBLE", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI
	
#\DRE - G4R02 Envoi a COME 

	

	# VGA	+ VGA_OF dans la table VGA1 (si IDUS_NUM dans la table VGA1)
	#################################################
	SI (i_EnvoiReqConsTabDist(TD_VGA1, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM) , L_NDR, 0, 1) != 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA1", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	erreur = i_LireReqConsTabDist()

	SI erreur
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA1", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	val = i_LireInfoECC(instVGA, 0)

	SI val
	ALORS
		erreur = i_LireChaineInfo(val, 0, 6, pt_OFFRE)

		# recuperation de code offre dans pt_CodOffreVG
		SI (i_strcmp(pt_OFFRE, g_inull))
		ALORS
			i_strcpy (pt_CodOffreVG,pt_OFFRE)
			erreur = i_format_str2(pt_temp, "%s%s", "INj", pt_OFFRE)
			i_strcpy(pt_RES1, i_get_tab_field("Inter", DATE_GMT, pt_temp))

			SI (i_strcmp(pt_RES1, "NM3") == 0)
			ALORS
				NM3 = 1
				i_strcpy(pt_NM3_OF, pt_OFFRE)
			SINON
				SI !b_IDUS_NDIP
				ALORS
					SI (i_strcmp(pt_RES1, "VGT") != 0)
					ALORS
						VGA = 1
						i_strcpy(pt_VGA_OF, pt_OFFRE)
					SINON
						VGA = 0
						i_strcpy(pt_VGA_OF, " ")
					FINSI
				SINON
					VGA = 0
					i_strcpy(pt_VGA_OF, " ")
				FINSI
			FINSI
		SINON
			VGA = 0
			i_strcpy(pt_VGA_OF, " ")
		FINSI
	SINON
		VGA = 0
		i_strcpy(pt_VGA_OF, " ")
	FINSI

	SI (i_EnvoiReqConsTabDist(TD_VGA2, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM), L_NDR, 0, 1) != 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA2", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	erreur = i_LireReqConsTabDist()

	SI erreur
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA2", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	val = i_LireInfoECC(instVGA, 0)
	SI val
	ALORS
		erreur = i_LireChaineInfo(val, 0, 6, pt_OPERA)
		SI i_strcmp(pt_OPERA,g_inull)
		ALORS
			# Valorisation de b_CodOperVG et de pt_CodOperVG
			b_CodOperVG = 1
			i_strcpy(pt_CodOperVG,pt_OPERA)
			SI (VGA || NM3)
			ALORS
				SI NM3
				ALORS
					i_strcpy(pt_NM3_OP, pt_OPERA)
				SINON
					SI VGA
					ALORS
						i_strcpy(pt_VGA_OP, pt_OPERA)
					SINON
						i_strcpy(pt_VGA_OP, "")
					FINSI
				FINSI
			SINON
				i_strcpy(pt_VGA_OP, "")
			FINSI
		FINSI
	FINSI


#G4R2
	# instance OPEN si pas d'instance VGA
	#################################################
	SI (b_CodOperVG == 0)
	ALORS
		# VGA	+ VGA_OF dans la table VGA1 (si IDUS_NUM dans la table VGA1)

		SI (i_EnvoiReqConsTabDist(TD_VGA1, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM) , L_NDR, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur = i_LireReqConsTabDist()

		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		val = i_LireInfoECC(instOPEN, 0)

		SI val
		ALORS
			erreur = i_LireChaineInfo(val, 0, 6, pt_OFFRE)
			# recuperation de code offre dans pt_CodOffreVG
			SI (i_strcmp(pt_OFFRE, g_inull))
			ALORS
				i_strcpy (pt_CodOffreVG,pt_OFFRE)
				erreur = i_format_str2(pt_temp, "%s%s", "INj", pt_OFFRE)
				i_strcpy(pt_RES1, i_get_tab_field("Inter", DATE_GMT, pt_temp))

				SI (i_strcmp(pt_RES1, "NM3") == 0)
				ALORS
					NM3 = 1
					i_strcpy(pt_NM3_OF, pt_OFFRE)
				SINON
					SI !b_IDUS_NDIP
					ALORS
						SI (i_strcmp(pt_RES1, "VGT") != 0)
						ALORS
							VGA = 1
							i_strcpy(pt_VGA_OF, pt_OFFRE)
						SINON
							VGA = 0
							i_strcpy(pt_VGA_OF, " ")
						FINSI
					SINON
						VGA = 0
						i_strcpy(pt_VGA_OF, " ")
					FINSI
				FINSI
			SINON
				VGA = 0
				i_strcpy(pt_VGA_OF, " ")
			FINSI
		SINON
			VGA = 0
			i_strcpy(pt_VGA_OF, " ")
		FINSI

		SI (i_EnvoiReqConsTabDist(TD_VGA2, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM), L_NDR, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA2", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur = i_LireReqConsTabDist()

		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA2", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		val = i_LireInfoECC(instOPEN, 0)

		SI val
		ALORS
			erreur = i_LireChaineInfo(val, 0, 6, pt_OPERA)

			SI i_strcmp(pt_OPERA,g_inull)
			ALORS
				# Valorisation de b_CodOperVG et de pt_CodOperVG
				b_CodOperVG = 1
				i_strcpy(pt_CodOperVG,pt_OPERA)

				SI (VGA || NM3)
				ALORS
					SI NM3
					ALORS
						i_strcpy(pt_NM3_OP, pt_OPERA)
					SINON
						SI VGA
						ALORS
							i_strcpy(pt_VGA_OP, pt_OPERA)
						SINON
							i_strcpy(pt_VGA_OP, "")
						FINSI
					FINSI
				SINON
					i_strcpy(pt_VGA_OP, "")
				FINSI
			FINSI
		FINSI
	FINSI

	# valorisation de FFMV2 - FFMV3
	SI b_CodOperVG
	ALORS
		erreur = i_format_str2( pt_TEMP, "%s%s", "INj", pt_CodOffreVG)

		SI ( i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),"VGT+") == 0 )
		ALORS
			b_FFMV2 = 1
		SINON
			SI (i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),"FFMV3") == 0 )
			ALORS
				b_FFMV3 = 1
			FINSI
		FINSI
	FINSI

	# valorisation de b_OperNBE indique si operateur eligible au NBE
	SI b_CodOperVG
	ALORS
		i_strcpy(pt_TEMP,"")
		erreur = i_format_str2( pt_TEMP, "%s%s", "INm", pt_CodOperVG)
		SI ( i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),g_inull) != 0 )
		ALORS
			b_OperNBE = 1
		FINSI
	FINSI
#/G4R2

	# instance VGAIP si pas d'instance OPEN
	#################################################
	SI (b_CodOperVG == 0)
	ALORS
		# VGA	+ VGA_OF dans la table VGA1 (si IDUS_NUM dans la table VGA1)

		SI (i_EnvoiReqConsTabDist(TD_VGA1, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM) , L_NDR, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur = i_LireReqConsTabDist()

		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		val = i_LireInfoECC(instVGAIP, 0)

		SI val
		ALORS
			erreur = i_LireChaineInfo(val, 0, 6, pt_OFFRE)
			# recuperation de code offre dans pt_CodOffreVG
			SI (i_strcmp(pt_OFFRE, g_inull))
			ALORS
				i_strcpy (pt_CodOffreVG,pt_OFFRE)
				erreur = i_format_str2(pt_temp, "%s%s", "INj", pt_OFFRE)
				i_strcpy(pt_RES1, i_get_tab_field("Inter", DATE_GMT, pt_temp))

				SI (i_strcmp(pt_RES1, "NM3") == 0)
				ALORS
					NM3 = 1
					i_strcpy(pt_NM3_OF, pt_OFFRE)
				SINON
					SI !b_IDUS_NDIP
					ALORS
						SI (i_strcmp(pt_RES1, "VGT") != 0)
						ALORS
							VGA = 1
							i_strcpy(pt_VGA_OF, pt_OFFRE)
						SINON
							VGA = 0
							i_strcpy(pt_VGA_OF, " ")
						FINSI
					SINON
						VGA = 0
						i_strcpy(pt_VGA_OF, " ")
					FINSI
				FINSI
			SINON
				VGA = 0
				i_strcpy(pt_VGA_OF, " ")
			FINSI
		SINON
			VGA = 0
			i_strcpy(pt_VGA_OF, " ")
		FINSI

		SI (i_EnvoiReqConsTabDist(TD_VGA2, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM), L_NDR, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA2", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur = i_LireReqConsTabDist()

		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA2", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		val = i_LireInfoECC(instVGAIP, 0)

		SI val
		ALORS
			erreur = i_LireChaineInfo(val, 0, 6, pt_OPERA)

			SI i_strcmp(pt_OPERA,g_inull)
			ALORS
				# Valorisation de b_CodOperVG et de pt_CodOperVG
				b_CodOperVG = 1
				i_strcpy(pt_CodOperVG,pt_OPERA)

				SI (VGA || NM3)
				ALORS
					SI NM3
					ALORS
						i_strcpy(pt_NM3_OP, pt_OPERA)
					SINON
						SI VGA
						ALORS
							i_strcpy(pt_VGA_OP, pt_OPERA)
						SINON
							i_strcpy(pt_VGA_OP, "")
						FINSI
					FINSI
				SINON
					i_strcpy(pt_VGA_OP, "")
				FINSI
			FINSI
		FINSI
	FINSI

	# valorisation de FFMV2 - FFMV3
	SI b_CodOperVG
	ALORS
		erreur = i_format_str2( pt_TEMP, "%s%s", "INj", pt_CodOffreVG)

		SI ( i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),"VGT+") == 0 )
		ALORS
			b_FFMV2 = 1
		SINON
			SI (i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),"FFMV3") == 0 )
			ALORS
				b_FFMV3 = 1
			FINSI
		FINSI
	FINSI

	# valorisation de b_OperNBE indique si operateur eligible au NBE
	SI b_CodOperVG
	ALORS
		i_strcpy(pt_TEMP,"")
		erreur = i_format_str2( pt_TEMP, "%s%s", "INm", pt_CodOperVG)
		SI ( i_strcmp( i_get_tab_field("Inter", DATE_GMT, pt_TEMP),g_inull) != 0 )
		ALORS
			b_OperNBE = 1
		FINSI
	FINSI




	# Determination si ddeur est client SIP E//
	L_NDR = i_conv_ascii_dcb(pt_IDUS_NUM, pt_temp2)

	# Envoi requette pour COME, ELIGIBLE, FERPV et FE
	SI (i_EnvoiReqConsTabDist(TD_Fixe, DATE_GMT, pt_temp2, L_NDR, 0, 1) != 0)
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_Fixe", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI


	# FERPV
	instFERPV = i_LireInstanceECC(C_InstFERPV)

	SI (!instFERPV)
	ALORS
		code_errone = 0xA0B0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstFERPV, C_Article)
		SAUT DISTRI_ERR
	FINSI

	# FE
	instFE = i_LireInstanceECC(C_InstFE)

	SI (!instFE)
	ALORS
		code_errone = 0xA0B0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstFE, C_Article)
		SAUT DISTRI_ERR
	FINSI

	erreur = i_LireReqConsTabDist()

	SI erreur
	ALORS
		erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist TD_Fixe ", C_Article, g_ieec)
		SAUT DISTRI_ERR
	FINSI

	#################################################
	#DRE G4R02
	# instance COME si pas d'instance VGAIP
	#################################################
	SI (b_CodOperVG == 0)
	ALORS
		val = i_LireInfoECC(instCOME, 0)

		SI val
		ALORS
# 11/03/13 - DRE - G4R2 QC695 (1)
#			erreur = i_LireChaineInfo(val, 0, 6, pt_NDI)
			erreur = i_LireImsiInfo(val, 0, 6, pt_NDI)

			SI i_strcmp(pt_NDI,g_inull) == 0
			ALORS
				code_errone = 0xA0B0
				code_errone = code_errone + bEFFICACE
				
				pt_TEMP = " trouve dans LAR COME mais aucun NDI associe"
				erreur = i_format_str2(pt_BUF, "AR %s%s",pt_IDUS_NUM,pt_TEMP)
				erreur = i_PlvMessEmettre(8612, 2, g_iartin, "", 3, code_errone,C_Article, pt_BUF)
				SAUT DISTRI_ERR
			SINON
				b_InfoC_COME_NDI = 1
			FINSI	
		FINSI
		
		SI b_InfoC_COME_NDI == 0
		ALORS
			val = i_LireInfoECC(instELIGIBLE, 0)
	
			SI val
			ALORS
# 11/03/13 - DRE - G4R2 QC695 (1)
#				erreur = i_LireChaineInfo(val, 0, 6, pt_NDI)
				erreur = i_LireImsiInfo(val, 0, 6, pt_NDI)
	
				SI i_strcmp(pt_NDI,g_inull) == 0
				ALORS
					code_errone = 0xA0B0
					code_errone = code_errone + bEFFICACE
					
					pt_TEMP = " trouve dans LAR ELIGIBLE mais aucun NDI associe"
					erreur = i_format_str2(pt_BUF, "AR %s%s",pt_IDUS_NUM,pt_TEMP)
					erreur = i_PlvMessEmettre(8612, 2, g_iartin, "", 3, code_errone,C_Article, pt_BUF)
					SAUT DISTRI_ERR
				FINSI
				b_InfoC_ELIGIBLE_NDI = 1
			FINSI
		FINSI
	FINSI
#\DRE G4R02
################################################

	# FERPV			
	val = i_LireInfoECC(instFERPV, 0)
	i_strcpy(pt_InfoCompl, " ")
	i_strcpy(pt_TYPOFFRE, " ")
	erreur = i_LireChaineInfo(val, 0, 1, pt_TYPOFFRE)
	erreur = i_LireChaineInfo(val, 1, 2, pt_InfoCompl)

	SI (i_strcmp(pt_InfoCompl,"25") == 0 && i_strcmp(pt_TYPOFFRE,"6") == 0)
	ALORS
		TYPAR_BIV_SIP = 1
	FINSI

	SI ((i_strcmp(pt_InfoCompl, "23") == 0) && !b_FFMV3)
	ALORS
		TYPAR_SIPFE = 1
		trace1("TYPAR_SIPFE dans FERPV=%d",TYPAR_SIPFE)
		trace2("valeur de IC = %s",pt_InfoCompl,"")
		SAUT SIPFE
	SINON
		val = i_LireInfoECC(instFE,0)
		i_strcpy(pt_InfoCompl, " ")
		erreur = i_LireChaineInfo(val, 0, 2, pt_InfoCompl)

		SI ((i_strcmp(pt_InfoCompl, "23") == 0) && !b_FFMV3)
		ALORS
			TYPAR_SIPFE = 1
			trace1("TYPAR_SIPFE dans FE=%d",TYPAR_SIPFE)
			trace2("valeur de IC = %s",pt_InfoCompl,"")
			SAUT SIPFE
		FINSI
	FINSI
	
	# NPF_SIP: Determination si demandeur SIP premiere ligne
	instSIP = i_LireInstanceECC(C_InstSIP)

	SI (!instSIP)
	ALORS
		trace("Pas d'instance pour referentiel SIP")
		code_errone = 0xA0B1
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstSIP, C_Article)
		SAUT DISTRI_ERR
	FINSI

	instOPT = i_LireInstanceECC(C_instOPT)
	SI (!instOPT)
	ALORS
		trace("Pas d'instance pour referentiel OPT")
		code_errone = 0xA0B1
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_instOPT, C_Article)
		SAUT DISTRI_ERR
	FINSI

	SI (i_EnvoiReqConsTabDist(TD_NPF, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM), L_NDR, 0, 1) != 0)
	ALORS
		trace("Erreur i_EnvoiReqConsTabDist NPF")
		code_errone = 0xA0C1
		erreur = i_PlvMessEmettre(8607, 2, g_iartin, "", 3, code_errone, "Erreur i_EnvoiReqConsTabDist NPF ", C_Article)
		SAUT DISTRI_ERR
	FINSI

	erreur = i_LireReqConsTabDist()
	SI erreur
	ALORS
		trace1("Erreur i_LireReqConsTabDist NPF: <%d>", erreur)
		code_errone = 0xA0C1
		erreur = i_PlvMessEmettre(8607, 2, g_iartin, "", 3, code_errone, "Erreur i_LireReqConsTabDist NPF", C_Article)
		SAUT DISTRI_ERR
	FINSI

	instECCv = i_LireEntierECCv(instSIP)

	res = i_LireInfoECC(instSIP, instECCv)
	SI (res != 0)
	ALORS
		b_NPF_SIP = 1
		erreur = i_set_art_field(g_iartout2, $Conversion::BassinFacN, instECCv)
		erreur = i_get_art_str(g_iartout2, $Conversion::BassinFacA, pt_SIP_ECC)
		erreur = i_format_str2(pt_CLE, "%s%s", C_pref_cle, pt_SIP_ECC)
		i_strcpy(pt_basTRAFIC, i_get_tab_field("Inter", dpivot, pt_CLE))
		erreur = i_set_attr_val_n($E_RPV::CFR, instECCv)
	SINON
		instECCv = i_LireEntierECCv(instOPT)
		res = i_LireInfoECC(instOPT, instECCv)
		SI (res != 0)
		ALORS
			SI (!b_FFMV3)
			ALORS
				b_NPF_OPT = 1
			FINSI
			erreur = i_set_art_field(g_iartout2, $Conversion::BassinFacN, instECCv)
			erreur = i_get_art_str(g_iartout2, $Conversion::BassinFacA, pt_OPT_ECC)
			erreur = i_format_str2(pt_CLE, "%s%s", C_pref_cle, pt_OPT_ECC)
			i_strcpy(pt_basTRAFIC, i_get_tab_field("Inter", dpivot, pt_CLE))
			erreur = i_set_attr_val_n($E_RPV::CFR, instECCv)
			erreur = i_LireImsiInfo( res, 0, 5, pt_OPT_RTC )
			i_strcpy(pt_IDUS_NDRTC, pt_OPT_RTC)
			#trace2("<<__LINE__>> Resultat de i_LireImsiInfo pt_OPT_RTC : <%s>", pt_OPT_RTC, "")
		FINSI
	FINSI

	SI b_NPF_SIP
	ALORS
		b_TETRIS_TRAFBSS = 0
		i_strcpy(pt_TETRIS_compte, " ")
		b_TETRIS_FU = 0
		i_strcpy(pt_TETRIS_RTC, " ")
		b_IDUS_NDIP = 0
		erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM, pt_IDUS_NDRTC)
		# G4R5 Lot2
		i_strcpy(pt_BANIP_RTC," ")
		i_strcpy(pt_CODE_DEUR ," ")
		V1S = 0
	SINON
		SI b_NPF_OPT
		ALORS
			i_strcpy(pt_TETRIS_compte,"" )
			# TETRIS_woo faux -> b_TETRIS_TRAFBSS = 0
			b_TETRIS_TRAFBSS = 0
			b_TETRIS_FU  = 0
			i_strcpy(pt_TETRIS_RTC, " ")
			# G4R5 Lot2
			i_strcpy(pt_BANIP_RTC, " ")
			i_strcpy(pt_IDUS_NDRTC, pt_OPT_RTC)
			V1S = 0
		SINON
			b_TETRIS_TRAFBSS = 0
			i_strcpy(pt_TETRIS_compte, " ")
			SI (!NM3 && !b_FFMV3)
			ALORS
				instBSS = i_LireInstanceECC(C_InstBSS)
				SI (!instBSS)
				ALORS
					code_errone = 0xA0B1
					erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstBSS, C_Article)
					SAUT DISTRI_ERR
				SINON
					# pt_TETRIS_compte
					SI (i_EnvoiReqConsTabDist( TD_BSS, DATE_GMT,i_get_art_fieldptr(g_iartin,$Tri2g118::IDUS_NUM), L_NDR, 0, 1)!= 0)
					ALORS
						trace("Erreur i_EnvoiReqConsTabDist BSS")
						SAUT DISTRI_ERR
					FINSI

					# Recherche instance NPF
					instNPF = i_LireInstanceECC(C_InstNPF)
					SI (!instNPF)
					ALORS
						code_errone = 0xA0B1
						erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstNPF, C_Article)
						SAUT DISTRI_ERR
					FINSI

					erreur = i_LireReqConsTabDist()
					SI ( erreur != 0 )
					ALORS
						trace1("Erreur i_LireReqConsTabDist BSS: <%d>", erreur)
						SAUT DISTRI_ERR
					FINSI

					res = i_LireInfoECC(instBSS, 0)
					SI (res != 0)
					ALORS
						b_TETRIS_TRAFBSS = 1
						erreur = i_LireImsiInfo(res, 0, 8, pt_TETRIS_compte)
						L_COMPTE_NPF = i_conv_ascii_dcb(pt_TETRIS_compte, pt_COMPTE_NPF)

						SI (L_COMPTE_NPF > 0)
						ALORS
							res = i_EnvoiReqConsTabDist(TD_NPF, DATE_GMT, pt_COMPTE_NPF, L_COMPTE_NPF, 0, 1)

							SI (res !=0)
							ALORS
								code_errone = 0xA080
								erreur = i_PlvMessEmettre(8600, 2, g_iartin, "", 3, code_errone, C_Article, "i_EnvoiReqConsTabDist NPF")
								SAUT DISTRI_ERR
							SINON
								res = i_LireReqConsTabDist()
								instECCv = i_LireEntierECCv(instNPF)
								res = i_LireInfoECC(instNPF, instECCv)

								SI (res != 0)
								ALORS
									# FU et TETRIS_RTC
									erreur=i_LireChaineInfo(res, 5, 1, pt_CODE_FU)

									SI !i_strcmp(pt_CODE_FU, C_FU)
									ALORS
										b_TETRIS_FU = 1
									FINSI
									erreur = i_LireImsiInfo(res, 0, 5, pt_TETRIS_RTC)
									i_strcpy(pt_IDUS_NDRTC, pt_TETRIS_RTC)
								SINON
									erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM, pt_IDUS_NDRTC)
								FINSI
							FINSI
						FINSI
					FINSI
				FINSI
			FINSI

			# TRAFBSS1 ou TRAFBSS2 destinataire
			SI (bFACTURABLE && b_TETRIS_TRAFBSS && !b_TETRIS_FU && !NM3 && !b_FFMV3 && (!CORR_118ALADUREE || RETOUR_CORR) )
			ALORS
				instTRAFBSS1 = i_LireInstanceECC(C_InstTRAFBSS1)

				SI (!instTRAFBSS1)
				ALORS
					code_errone = 0xA0B1
					erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstTRAFBSS1, C_Article)
					SAUT DISTRI_ERR
				FINSI
				instTRAFBSS2 = i_LireInstanceECC(C_InstTRAFBSS2)

				SI (!instTRAFBSS2)
				ALORS
					code_errone = 0xA0B1
					erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstTRAFBSS2, C_Article)
					SAUT DISTRI_ERR
				FINSI
				b_TRAFBSScritCOM = 1

				SI(i_strplcmp(pt_TETRIS_compte, "1", 0, 1) == 0)
				ALORS
					i_strcpy(pt_ECCFACT, C_TRAFBSS1FACT)
#DRE G4R6 QC816
					b_TRAFBSS1 = 1
#					erreur = i_AjouterCouranteECC(instTRAFBSS1)
				SINON
					i_strcpy(pt_ECCFACT, C_TRAFBSS2FACT)
#DRE G4R6 QC816
					b_TRAFBSS2 = 1
#					erreur =  i_AjouterCouranteECC( instTRAFBSS2)
				FINSI
			FINSI
			#trace2("__LINE__ pt_ECCFACT apres <%s>", pt_ECCFACT)

			inst42L = i_LireInstanceECC(C_Inst42L)
			SI (!inst42L)
			ALORS
				code_errone = 0xA0B1
				erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_Inst42L, C_Article)
				SAUT DISTRI_ERR
			FINSI

			SI (i_EnvoiReqConsTabDist(TD_42L, DATE_GMT, i_get_art_fieldptr(g_iartin,$Tri2g118::IDUS_NUM), L_NDR, 0, 1)!= 0)
			ALORS
				code_errone = 0xA0C1
				erreur = i_PlvMessEmettre(8607, 2, g_iartin, "", 3, code_errone, C_REF42L, C_Article)
				trace("Erreur i_EnvoiReqConsTabDist")
				SAUT DISTRI_ERR
			FINSI

			erreur = i_LireReqConsTabDist()
			SI erreur
			ALORS
				code_errone = 0xA0C1
				erreur = i_PlvMessEmettre(8607, 2, g_iartin, "", 3, code_errone, C_REF42L, C_Article)
				SAUT DISTRI_ERR
			FINSI

			erreur = i_LireChaineECCv(inst42L, pt_CODE_DEUR)
			SI erreur
			ALORS
				i_strcpy(pt_CODE_DEUR, "D")
			SINON
				SI (i_strcmp(pt_CODE_DEUR,"M")!= 0)
				ALORS
					V1S = 1
				FINSI
			FINSI

			instECCv = i_LireEntierECCv(inst42L)
			res = i_LireInfoECC(inst42L, instECCv)

			# NDRTC
			SI b_TETRIS_TRAFBSS == 0
			ALORS
				SI (res != 0)
				ALORS
					# G4R5 Lot2
					erreur = i_LireImsiInfo(res, 0, 5, pt_BANIP_RTC)
					i_strcpy(pt_IDUS_NDRTC, pt_BANIP_RTC)
					b_BANIP = 1

					erreur = i_LireChaineInfo(res, 5, 1, pt_Support)
					SI (i_strplcmp(pt_Support ,"F",0,1) == 0)
					ALORS
						SIP_Fibre = 1
					FINSI
				SINON
					SI (b_IDUS_NDIP == 1)
					ALORS
						code_errone = 0xA0B1
						i_strcpy(pt_LIBELREDIST, "IDUS_NUM IP inconnu de BANIP")
						# G4R5 Lot2
						i_strcpy(pt_BANIP_RTC, " ")
						SAUT REDIST
					SINON
						erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM, pt_IDUS_NDRTC)
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI

	# SUP
	SI ((V1S ==1) || b_TETRIS_FU)
	ALORS
		SUP = 6
	SINON
		SUP = 0
	FINSI

	# VGA impossible si IP
	SI !b_IDUS_NDIP
	ALORS
		# Controle presence et recuperation de l'instance du referentiel VGA
		instVGA = i_LireInstanceECC(C_INST_VGA)

		SI (instVGA == 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "VGA", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		# VGA	+ VGA_OF dans la table VGA1 (si IDUS_NUM dans la table VGA1)

		SI (i_EnvoiReqConsTabDist(TD_VGA1, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM) , L_NDR, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur = i_LireReqConsTabDist()
		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA1", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		val = i_LireInfoECC(instVGA, 0)
		SI val
		ALORS
			erreur = i_LireChaineInfo(val, 0, 6, pt_OFFRE)

			SI (i_strcmp(pt_OFFRE, g_inull))
			ALORS
				erreur = i_format_str2(pt_temp, "%s%s", "INj", pt_OFFRE)
				i_strcpy(pt_RES1, i_get_tab_field("Inter", DATE_GMT, pt_temp))

				SI (i_strcmp(pt_RES1, "VGT") != 0)
				ALORS
					VGA = 1
					i_strcpy(pt_VGA_OF, pt_OFFRE)
				SINON
					VGA = 0
					i_strcpy(pt_VGA_OF, " ")
				FINSI
			SINON
				VGA = 0
				i_strcpy(pt_VGA_OF, " ")
			FINSI
		SINON
			VGA = 0
			i_strcpy(pt_VGA_OF, " ")
		FINSI

		# VGA_OP dans la table VGA2 (SI VGA)
		SI VGA
		ALORS
			SI (i_EnvoiReqConsTabDist(TD_VGA2, DATE_GMT, i_get_art_fieldptr(g_iartin, $Tri2g118::IDUS_NUM), L_NDR, 0, 1) != 0)
			ALORS
				erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_VGA2", C_Article, g_ieec)
				SAUT DISTRI_ERR
			FINSI
			erreur = i_LireReqConsTabDist()
			SI erreur
			ALORS
				erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist VGA2", C_Article, g_ieec)
				SAUT DISTRI_ERR
			FINSI
			val = i_LireInfoECC(instVGA, 0)
			SI val
			ALORS
				erreur = i_LireChaineInfo(val, 0, 6, pt_OPERA)
				i_strcpy(pt_VGA_OP, pt_OPERA)
			SINON
				i_strcpy(pt_VGA_OP, "")
			FINSI
		SINON
			i_strcpy(pt_VGA_OP, "")
		FINSI

	SINON
		VGA = 0
		i_strcpy(pt_VGA_OF, " ")
		i_strcpy(pt_VGA_OP, "")
	FINSI
	#trace2("     **************           pt_VGA_OF = %s", pt_VGA_OF, "")
	#trace2("     **************           pt_VGA_OP = %s", pt_VGA_OP, "")

	# Recherche Instances des ECC (sauf Symphonie)

	# Trafic

	instTRAFIC = i_LireInstanceECC(C_InstTRAFIC)
	SI (!instTRAFIC)
	ALORS
		code_errone = 0xA0B0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstTRAFIC, C_Article)
		SAUT DISTRI_ERR
	FINSI

	# DELTA MINUTE = instTRAFIC

	#CENTAUREVG

	SI VGA || NM3 || b_FFMV3
	ALORS
		instCENTVG= i_LireInstanceECC(C_InstCENTVG)
		SI (!instCENTVG)
		ALORS
			bCENTVG = 0
			code_errone = 0xA0B0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstCENTVG, C_Article)
			SAUT DISTRI_ERR
		FINSI
	FINSI

	#CENTAUREDEA

	instCENTDEA= i_LireInstanceECC(C_InstCENTDEA)
	SI (!instCENTDEA)
	ALORS
		bCENTDEA = 0
		code_errone = 0xA0B0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstCENTDEA, C_Article)
		SAUT DISTRI_ERR
	FINSI

	# reprendre ici si TYPAR_SIPFE = 1
	POINT SIPFE

	# SC

	instSC = i_LireInstanceECC(C_InstSC)
	SI (!instSC)
	ALORS
		code_errone = 0xA0B0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstSC, C_Article)
		SAUT DISTRI_ERR
	FINSI

	SI b_NPF_SIP || b_NPF_OPT
	ALORS
		arFERPV = 0
		arFE = 0
		# instance reelle TRAFIC
		instTRAFIC = i_LireInstanceECC(pt_basTRAFIC)
		SI (!instTRAFIC)
		ALORS
			code_errone = 0xA0B0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, pt_instTRAFIC, C_Article)
			SAUT DISTRI_ERR
		FINSI
		i_strcpy(pt_ECCFACT, pt_basTRAFIC)
	SINON
		L_NDR = i_conv_ascii_dcb(pt_IDUS_NDRTC, pt_temp2)
		SI (i_EnvoiReqConsTabDistDouble(TD_Fixe, TD_Inter, DATE_GMT, pt_temp2, L_NDR, L_NDR, 1, 0, 1) != 0)
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Requete TD_Fixe & TD_Inter", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI

		# Fin recherche instances ECC

		erreur = i_LireReqConsTabDist()
		SI erreur
		ALORS
			erreur = i_PlvMessEmettre(8501, 2, g_iartin, "", 3, "Erreur i_LireReqConsTabDist TD_Fixe & TD_Inter", C_Article, g_ieec)
			SAUT DISTRI_ERR
		FINSI
		val = i_LireInfoECC(instFERPV, 0)

		SI ( val && !V1S && !b_TETRIS_TRAFBSS && !VGA)
		ALORS
			arFERPV = 1
			erreur = i_LireChaineInfo(val, 0, 1, pt_TYPOFFRE)
			i_strcpy(pt_InfoCompl, " ")
			erreur = i_LireChaineInfo(val, 1, 2, pt_InfoCompl)

			SI ((i_strcmp(pt_InfoCompl, "20") == 0 || i_strcmp(pt_InfoCompl, "25") == 0 ) && !b_FFMV3)
			ALORS
				TYPAR_Etelephonie = 1
			FINSI

		SINON
			val = i_LireInfoECC(instFE, 0)

			SI ( val && !V1S && !b_TETRIS_TRAFBSS && !VGA )
			ALORS
				arFE = 1
				i_strcpy(pt_BUF, " ")
				erreur=i_LireChaineInfo(val,0,2,pt_BUF)

				SI (( i_strcmp(pt_BUF,"20") == 0 || i_strcmp(pt_BUF,"25") == 0) && !b_FFMV3)
				ALORS
					TYPAR_FE=1
				FINSI
			FINSI
		FINSI
		SI (i_strcmp(pt_TYPOFFRE, "1") == 0)
		ALORS
			SERVICE = 1
			i_strcpy(pt_SERVICE, "1")
		SINON
			SI (i_strcmp(pt_TYPOFFRE, "2") == 0)
			ALORS
				SERVICE = 2
				i_strcpy(pt_SERVICE, "2")
			SINON
				SERVICE = 4
				i_strcpy(pt_SERVICE, "4")
			FINSI
		FINSI
		val = i_LireInfoECC(instSC, 0)
		SI val
		ALORS
			bSC = 1
		FINSI

		# G4R5 Lot2
		#Traitement du code CFR:
		SI  (!TYPAR_SIPFE  && (!b_IDUS_NDIP || (b_IDUS_NDIP && b_TETRIS_FU) || (i_strcmp(pt_BANIP_RTC," ")!=0 && i_strcmp(pt_BANIP_RTC,"")!=0)))
		ALORS
			res = i_LireInfoECC(instTRAFIC, 0)
			SI (res != 0)
			ALORS
				i_strcpy(pt_InfoCompl, " ")
				erreur = i_LireChaineInfo(res, 0, 3, pt_InfoCompl)

				# code CFR
				code_CFR = ((i_LireEntierInfo(res,0,1) & 0x0F) * 10) + (i_LireEntierInfo(res,1,1) & 0x0F)
				erreur = i_set_attr_val_n( $E_RPV::CFR, code_CFR)
				# instance reelle TRAFIC
				erreur = i_format_str2(pt_instTRAFIC, "TRAF%s", pt_InfoCompl,0)
				instTRAFIC = i_LireInstanceECC(pt_instTRAFIC)
				# ECC_FACT est alimente ici si pas NPF_SIP

				SI (!b_TRAFBSScritCOM)
				ALORS
					i_strcpy(pt_ECCFACT, pt_instTRAFIC)
				FINSI

				SI (!instTRAFIC)
				ALORS
					code_errone = 0xA0B0
					code_errone = code_errone + bEFFICACE
					erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, pt_instTRAFIC, C_Article)
					SAUT DISTRI_ERR
				FINSI
			SINON
				SI (CPT_REDIST < 2 && IDUS_TOPE == 1)
				ALORS
					SI !b_TRAFBSScritCOM
					ALORS
						i_strcpy(pt_LIBELREDIST, "Indicatif inconnu de MAJ2G")
						SAUT REDIST
					FINSI
				SINON
					SAUT P_SYMPH
				FINSI
			FINSI

			SI !b_TRAFBSScritCOM
			ALORS
				# instance reelle DELTA MINUTE
				erreur = i_format_str2(pt_instDM, "DM%s", pt_InfoCompl, 0)
				instDM = i_LireInstanceECC(pt_instDM)
				SI (!instDM)
				ALORS
					code_errone = 0xA0B0
					code_errone = code_errone + bEFFICACE
					erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, pt_instDM, C_Article)
					SAUT DISTRI_ERR
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

#trace1("<<<__LINE__:__FILE__<<< bFACTURABLE <%d>", bFACTURABLE)
#trace1("<<<__LINE__:__FILE__<<< b_TETRIS_TRAFBSS <%d>", b_TETRIS_TRAFBSS)
#trace1("<<<__LINE__:__FILE__<<< b_TETRIS_FU <%d>", b_TETRIS_FU)
#trace2("<<<__LINE__:__FILE__<<< pt_TETRIS_compte <%s>", pt_TETRIS_compte , "" )
#trace2("<<<__LINE__:__FILE__<<< pt_ECCFACT avant <%s>", pt_ECCFACT , "" )

# DECO_NUM
SI MER
ALORS
	SI (i_valid_field_n(g_iartin, $Tri2g118::DECO_NUM) == 1)
	ALORS
		erreur = i_get_art_str(g_iartin, $Tri2g118::DECO_NUM, pt_DECO_NUM)
	SINON
		erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DECO_NUM)
	FINSI
SINON
	erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DECO_NUM)
FINSI

# DECO_INF
SI MER
ALORS
	DECO_TRAF = i_get_art_field(g_iartin, $Tri2g118::DECO_TRAF)
	SI ((DECO_TRAF == 1) || ( (DECO_TRAF == 2) && (i_strlen(pt_DECO_NUM) > 6 )) || (DECO_TRAF == 4) || (DECO_TRAF == 6))
	ALORS
		DECO_INF = 0x80
	SINON
		SI (DECO_TRAF == 5)
		ALORS
			DECO_INF =  0xC0
		SINON
			SI (DECO_TRAF == 3 || ( (DECO_TRAF == 2) && (i_strlen(pt_DECO_NUM) <= 6)) )
			ALORS
				DECO_INF = 0x00
			SINON
				DECO_INF = 0x00
			FINSI
		FINSI
	FINSI
FINSI

#DECO_DIST_NUM
SI MER
ALORS
	SI (DECO_INF == 0xC0)
	ALORS
		erreur = i_format_str2( pt_DECO_DIST_NUM, "%s%s", "00", pt_DECO_NUM)
	SINON
		SI (DECO_INF ==0x80)
		ALORS
			erreur = i_format_str2( pt_DECO_DIST_NUM, "%s%s", "0", pt_DECO_NUM)
		SINON
			i_strcpy(pt_DECO_DIST_NUM,pt_DECO_NUM)
		FINSI
	FINSI
SINON
	erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DECO_DIST_NUM)
FINSI

# EPORTABILITE (Portabilite Entrante SRP) et SPORTABILITE (Portabiliti Sortante SRP) referentiel 45S
SI MER
ALORS
	i_strcpy(pt_DECO_TEMP, pt_DECO_NUM)
	pt_CodeOp = CodeOperateurTable6(DATE_GMT, pt_DECO_TEMP, "45S")
	SI (i_strcmp(pt_CodeOp, "84208") == 0)
	ALORS
		EPORTABILITE = 1
		SPORTABILITE = 0
	SINON
		EPORTABILITE = 0
		SI (pt_CodeOp != g_inull)
		ALORS
			SPORTABILITE = 1
		SINON
			SPORTABILITE = 0
		FINSI
	FINSI
SINON
	EPORTABILITE = 0
	SPORTABILITE = 0
FINSI

# EPORTABILITE_SCP et SPORTABILITE_SCP
SI MER
ALORS
	i_strcpy(pt_DECO_TEMP, pt_DECO_NUM)
	pt_CodeOp_SCP = CodeOperateurTable6(DATE_GMT, pt_DECO_TEMP, "ACLA")
	SI (i_strcmp(pt_CodeOp_SCP, "84008") == 0)
	ALORS
		EPORTABILITE_SCP = 1
		SPORTABILITE_SCP = 0
	SINON
		EPORTABILITE_SCP=0
		SI (pt_CodeOp_SCP != g_inull)
		ALORS
			SPORTABILITE_SCP = 1
		SINON
			SPORTABILITE_SCP = 0
		FINSI
	FINSI
FINSI

# CCD
erreur = i_memcpy_art_field_n(g_icopo, $Tcopo::NDR, IDUS_12, 5)
lg_dede = i_strlen(pt_DECO_DIST_NUM)
erreur = i_memcpy_art_field_n(g_icopo, $Tcopo::NDE, pt_DECO_DIST_NUM, lg_dede + 1)
g_icopo.TAXE   = 0
g_icopo.CREDIT = 0
erreur = i_set_art_date(g_icopo, i_get_art_field(g_iartin, $Tri2g118::ddebut))
g_icopo.DUREE  = dduree
g_icopo.CODE   = CODE_12
g_icopo.CATEG  = CATEG_12
g_icopo.SUP[0] = 0
g_icopo.SUP[1] = 0
g_icopo.SUP[2] = 0
g_icopo.SUP[3] = 0
g_icopo.SUP[4] = 0
g_icopo.SUP[RES_CLDEST] = 0xff
erreur = i_comptage(g_icopo, BASE_12, DATE_LOCALE)
SI (erreur == 0)
ALORS
	CCD = g_icopo.SUP[RES_CLDEST]
	TYPCOM = g_icopo.SUP[RES_TYPCOM]
#DRE G4R6 Lot3
	typ_ctr = g_icopo.SUP[RES_TYPCPT]
	
	SI (pt_TETRIS_compte != " ")
	ALORS
		CODCIR = g_icopo.SUP[RES_CODCIR]
	SINON
		CODCIR = -1
	FINSI
SINON
	CCD = 0
	CODCIR = 0
	TYPCOM = 0
FINSI

#####################################################################
# 	              Traitement C+S (CPS) table ALICE
#####################################################################
#DRE G4R6 lot3 
#SI (typ_ctr==CPT_CPS_Loc)
#DRE G4R6 QC816
#SI ( typ_ctr==CPT_CPS_RI && (CORR_118ALADUREE == 0 || (CORR_118ALADUREE ==  1 && MER == 0)) )
#DRE G4R6 QC824
SI ( typ_ctr==CPT_CPS_RI && (CORR_118ALADUREE == 0 || (CORR_118ALADUREE ==  1 && MER == 0) || RETOUR_CORR ) )
ALORS
	i_strcpy(pt_NORM,pt_DECO_DIST_NUM)
	
	i_strcpy(pt_TEMP, i_get_tab_field( "TDATCPS", DATE_GMT, C_DATCPS ))

	erreur = i_set_art_str (g_iartout2,$Conversion::DATE_STR,pt_TEMP)
	Date_CPS = i_get_art_field(g_iartout2, $Conversion::DATE_ASC)
			
	SI ddebut < Date_CPS
	ALORS
		erreur = i_format_str2(pt_MESSAGE," AR <%s> avec date DC inferieure a la date d'activation <%s> de la facturation CPS",pt_NORM,pt_TEMP)
		code_errone = 0xA082
		erreur = i_PlvMessEmettre( 8599, 1, g_iartout,"", 3,code_errone, C_Article, pt_MESSAGE )
		SAUT ELIMINE_EXP
	SINON
		#######################################
		#  Soumission de la requete de consultation d'une table de distribution ALICE
		#######################################
		SI i_strplcmp (pt_NORM,"0",0,1) == 0
		ALORS
			i_get_sub_str(pt_NORM,1,-1,pt_NORM) 	
		FINSI
		longueur = i_conv_ascii_dcb (pt_NORM, pt_TEMP)
		SI (i_EnvoiReqConsTabDist( TD_SVA,DATE_GMT,pt_TEMP,longueur,0,1) != 0)
		ALORS
			#trace("Erreur i_EnvoiReqConsTabDist ALICE")
			bREDIST_SVA = 1
			i_strcpy(pt_LIBELREDIST,"Echec sur i_EnvoiReqConsTabDistDouble ALICE ")
		FINSI
		
		#######################################
		# Recherche de l'instance ECC ALICE
		#######################################
		instALICE = i_LireInstanceECC(C_INST_ALICE)
		SI (!instALICE)
		ALORS
			#trace("Pas d'instance pour ALICE !")
			erreur = i_PlvMessEmettre(8501,1,g_iartout,"",3,C_INST_ALICE,C_Article,g_ieec)
			SAUT DISTRI_ERR
		FINSI
		#trace1("instALICE  =<%d>",instALICE)	

		#######################################
		# Lecture Resultat requete ALICE
		#######################################
		erreur = i_LireReqConsTabDist()
		#trace1("RETOUR i_LireReqConsTabDist retour requette ALICE, erreur=<%d>",erreur)
		SI ( erreur != 0 )
		ALORS
			#trace1( "Erreur i_LireReqConsTabDist ALICE: <%d>", erreur)
			bREDIST_SVA = 1
			i_strcpy(pt_LIBELREDIST,"Echec sur i_LireReqConsTabDistDouble ALICE ")
		FINSI
		val = i_LireInfoECC( instALICE, 0 )
		
		i_strcpy(pt_TEMP,"")
		SI (val != 0)
		ALORS
			# AR present dans ALICE
			erreur = i_LireChaineInfo( val, 0, 4, pt_TEMP )
			SI i_strcmp(pt_TEMP,"") != 0
			ALORS
				i_strcpy(pt_CODE_TARIF,pt_TEMP)
			SINON
				# info complementaire CODE_TARIF vide
				bREDIST_SVA = 1
				erreur = i_format_str2(pt_LIBELREDIST," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM,0)
			FINSI
			
			erreur = i_LireChaineInfo( val, 4, 1, pt_TEMP )
			SI i_strcmp(pt_TEMP,"") != 0
			ALORS
				i_strcpy(pt_TYPE_EDIT,pt_TEMP)
			SINON
				# info complementaire TYPE_EDIT vide
				bREDIST_SVA = 1
				erreur = i_format_str2(pt_LIBELREDIST," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM,0)
			FINSI
		SINON
			bREDIST_SVA = 1
			erreur = i_format_str2(pt_LIBELREDIST," AR <%s> non trouve dans ALICE",pt_NORM,0)
		FINSI
	FINSI
FINSI

#DRE G4R6 QC816
#SI bREDIST_SVA == 1
#ALORS
#	SAUT P_SYMPH
#FINSI

#\DRE G4R6 lot3


# TARIF et TRAFIC
SI b_TRAFBSScritCOM
ALORS
	# TARIF pour BSS avec TYPCOM sans distinction de MER
	erreur = i_set_art_field(g_iartout2, $Conversion::BNC_SUP, TYPCOM)
	erreur = i_get_art_str(g_iartout2, $Conversion::BNC_SUP, pt_BUF)
	i_strcpy(pt_TARIF, i_get_tab_field("ft_tar_ccd", DATE_GMT, pt_BUF))
	#trace2("**************** TARIF  = %s", pt_TARIF, "")

	SI CODCIR != -1
	ALORS
		#trace1("**************** CODCIR = %d", CODCIR)
		erreur = i_set_art_field(g_iartout2, $Conversion::CODCIRDR, CODCIR)
		erreur = i_get_art_str(g_iartout2, $Conversion::CODCIRDA, pt_BUF)
		SI (g_iartout2.CODCIRDA[0] == 0)
		ALORS
			SI (g_iartout2.CODCIRDA[1] == 0)
			ALORS
				i_get_sub_str(pt_BUF,2, 5, pt_BUF)
			SINON
				i_get_sub_str(pt_BUF, 1, 5, pt_BUF)
			FINSI
		SINON
			i_get_sub_str(pt_BUF, 0, 5, pt_BUF)
		FINSI
		i_strcpy(pt_TRAFIC, i_get_tab_field("ft_lib_ct", DATE_GMT, pt_BUF))
		#trace2("**************** TRAFIC  = %s", pt_TRAFIC, "")
	SINON
		i_strcpy(pt_TRAFIC, " ")
	FINSI
FINSI

# CCD_REEL
SI (EPORTABILITE == 1)
ALORS
	CCD_REEL = 212
SINON
	SI (EPORTABILITE_SCP == 1)
	ALORS
		CCD_REEL = 218
	SINON
		SI SPORTABILITE
		ALORS
			CCD_REEL = 213
		SINON
			SI  (SPORTABILITE_SCP == 1)
			ALORS
				CCD_REEL = 219
			SINON
				SI (CCD == 0x18)
				ALORS
					CCD_REEL = CCD
				SINON
					CCD_REEL = 20
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

# DEDE_DIST_N
SI (MER == 0)
ALORS
	erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DEDE_DIST_N)
SINON
	SI (!VGA && (SPORTABILITE || (CCD == 0x18 && !EPORTABILITE)))
	ALORS
		erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DEDE_DIST_N)
	SINON
		SI (i_valid_field_n(g_iartin, $Tri2g118::DECO_NUM) == 1)
		ALORS
			erreur = i_get_art_str(g_iartin, $Tri2g118::DECO_NUM, pt_DEDE_DIST_N)
		SINON
			erreur = i_get_art_str(g_iartin, $Tri2g118::NUMNAS, pt_DEDE_DIST_N)
		FINSI
	FINSI
FINSI

# CAX
IDUS_TRAF = i_get_art_field(g_iartin, $Tri2g118::IDUS_TRAF)
SI (IDUS_TRAF == 0x06)
ALORS
	CAX = 2
SINON
	SI (IDUS_TRAF == 0x03)
	ALORS
		CAX = 3
	SINON
		CAX = 1
	FINSI
FINSI

# G4R5 Lot2
SI numzone == 4 && ( i_adequation_chaine_expreg (pt_IDUS_NUM, "^976") == 0 )
ALORS
	SI !b_BANIP
	ALORS
		inst42L = i_LireInstanceECC(C_Inst42L)
		SI (!inst42L)
		ALORS
			code_errone = 0xA0B1
			erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_Inst42L, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# interrogation de BANIP
		SI (i_EnvoiReqConsTabDist( TD_42L, DATE_GMT, i_get_art_fieldptr(g_iartin,$Tri2g118::IDUS_NUM), L_NDR, 0, 1)!=0)
		ALORS
			code_errone = 0xA0C0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8607, 2, g_iartin, "", 3, code_errone, C_REF42L, C_Article)
			SAUT DISTRI_ERR
		FINSI
		erreur = i_LireReqConsTabDist()

		SI erreur == 0
		ALORS
			# NDRTC
			instECCv = i_LireEntierECCv( inst42L )
			res = i_LireInfoECC( inst42L, instECCv )

			SI ( res != 0)
			ALORS
				erreur = i_LireImsiInfo( res, 0, 5, pt_RTC_MAY )
			FINSI
		FINSI
	FINSI

	SI b_BANIP
	ALORS
		res = i_conv_ascii_dcb (pt_BANIP_RTC, pt_TEMP)
		SI res > 1
		ALORS
			erreur = i_memcpy_art_field_n(g_iartout2, $Conversion::NDR, pt_TEMP, res)
			numzone = i_DHgetZoneID(NUMTABSEL1, g_iartout2)
			erreur = i_set_attr_val_n($E_RPV::numzone, numzone)
		FINSI
	SINON
		res = i_conv_ascii_dcb (pt_RTC_MAY, pt_TEMP)
		SI res > 1
		ALORS
			erreur = i_memcpy_art_field_n(g_iartout2, $Conversion::NDR, pt_TEMP, res)
			numzone = i_DHgetZoneID(NUMTABSEL1, g_iartout2)
			erreur = i_set_attr_val_n($E_RPV::numzone, numzone)
		FINSI
	FINSI

	SI numzone == 5
	ALORS
		DATE_LOCALE = i_DHgetLocalTime(NUMTAB,numzone,ddebut)
		DATE_LOCALE_HDEB = i_DHgetLocalTime(NUMTAB, numzone, TRAA_HDEB)
	FINSI
FINSI


# ICAR_S
SI (MER && !SPORTABILITE && (CCD != 0x18 || EPORTABILITE))
ALORS
	SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_HDEB) == 1)
	ALORS
		ICAR_S = DATE_LOCALE_HDEB
	SINON
		ICAR_S = DATE_LOCALE
	FINSI
SINON
	ICAR_S = DATE_LOCALE
FINSI

# ICAR_P
SI (MER && (SPORTABILITE ||(CCD == 0x18 && !EPORTABILITE)))
ALORS
	SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_HDEB) == 1)
	ALORS
		ICAR_P = DATE_LOCALE_HDEB
	SINON
		ICAR_P = DATE_LOCALE
	FINSI
SINON
	ICAR_P = DATE_LOCALE
FINSI

# ICAR_REF
SI MER
ALORS
	SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_HDEB) == 1)
	ALORS
		ICAR_REF = DATE_GMT_HDEB
	SINON
		ICAR_REF = DATE_GMT
	FINSI
SINON
	ICAR_REF = DATE_GMT
FINSI

# NB_CSV
SI bFACTURABLE
ALORS
	NB_CSV = 1
SINON
	NB_CSV = 0
FINSI

# C_CSV1 et OP_CSV1
erreur = i_get_art_str(g_iartin, $Tri2g118::IDSRT, pt_IDSRT)
erreur = i_get_art_str(g_iartin, $Tri2g118::CATDC, pt_CATDC)
erreur = i_get_art_str(g_iartin, $Tri2g118::SCATDC, pt_SCATDC)
erreur = i_get_art_str(g_iartin, $Tri2g118::GCOM_IDRSG, pt_GCOM_IDRSG)
erreur = i_get_art_str(g_iartin, $Tri2g118::GCOM_PALNUM, pt_GCOM_PALNUM)

SI RETOUR_CORR
ALORS
	i_strcpy (pt_SCATDC,"1")
	i_strcpy (pt_GCOM_IDRSG, "duree" )
FINSI

erreur = i_format_str2(pt_temp, "%s%s", pt_IDSRT , pt_CATDC)
erreur = i_format_str2(pt_NUM, "%s%s", pt_temp , pt_SCATDC)
erreur = i_format_str2(pt_temp, "%s%s", pt_NUM , pt_GCOM_IDRSG)
erreur = i_format_str2(pt_NUM, "%s%s", pt_temp , pt_GCOM_PALNUM)
i_strcpy(pt_C_CSV1, C_CSV("118a", pt_NUM, i_get_art_field(g_iartin, $Tri2g118::dpivot)))
i_strcpy(pt_OP_CSV1, OP_CSV("118a", pt_NUM, i_get_art_field(g_iartin, $Tri2g118::dpivot)))

SI (pt_C_CSV1 == g_inull)
ALORS
        i_strcpy(pt_C_CSV1, " ")
FINSI

SI (pt_OP_CSV1 == g_inull)
ALORS
        i_strcpy(pt_OP_CSV1, " ")
FINSI

#DRE G4R02
erreur = i_format_str2(pt_CSV, "%s%s", pt_C_CSV1 , pt_OP_CSV1)

#Recherche TeleService et CallType
#SI i_strcmp(pt_C_CSV1, " ") != 0 && i_strcmp(pt_OP_CSV1, " ") != 0
SI i_strcmp(pt_CSV, "  ") != 0
ALORS
#	erreur = i_format_str2(pt_temp, "%s%s", pt_C_CSV1 , pt_OP_CSV1)
	i_strcpy (pt_TeleService,i_get_tab_field(C_TAB_CSV_COME, DATE_GMT, pt_CSV))
	SI ( i_strcmp( pt_TeleService,g_inull) != 0 )
	ALORS
		erreur = i_recupererValeur(pt_TeleService, pt_CallType, i_strlen(pt_TeleService),'_' )
	FINSI
FINSI


#Nbut_COME
Nbut_COME = 0
SI MER
ALORS
	SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
	ALORS
		TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
		TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
		Nbut_COME = TRAA_NUTC + TRAA_NUTR
	FINSI
SINON
	SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
	ALORS
		Nbut_COME = i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT)
	FINSI
FINSI


#\DRE G4R02


# REF
erreur = i_get_art_str(g_iartin, $Tri2g118::IDCORREL, pt_IDCORREL)
i_get_sub_str(pt_IDCORREL, -3, -1, pt_REF)
REF = i_get_val_num(pt_REF, 3, 12)

SI ( TYPCOM == 83 || TYPCOM == 98)
ALORS
	TYPCOM_fct = 1
FINSI

SI ((TYPCOM_fct && CCD == 24) || CCD_REEL == 213 )
ALORS
	b_arretfct_centaure = 1
FINSI

SI (!VGA && !NM3 && bFACTURABLE && !V1S && !b_TETRIS_TRAFBSS && !b_NPF_SIP && !b_IDUS_NDIP && pt_IDUS_NDRTC != " " && !b_TETRIS_TRAFBSS )
ALORS
	b_FERPV_COME = 1
FINSI

SI (!VGA && !NM3 && bFACTURABLE && !V1S && !b_TETRIS_TRAFBSS && !b_NPF_SIP && (arFERPV || TYPAR_SIPFE)&& !b_IDUS_NDIP && pt_IDUS_NDRTC != " " && !b_TETRIS_TRAFBSS )
ALORS
	b_FERPV = 1
FINSI

SI(bFACTURABLE && b_OperNBE && (b_FFMV2 || b_FFMV3))
ALORS
	b_FERPV_NBE = 1
FINSI

############################################################################
# Critere de distribution
############################################################################

SI (bIDUS_NUM == 1)
ALORS
# DRE G4R6 QC816  bREDIST_SVA envoi en redistribution et a certaines applis clientes (DM EBILL TRAFBSS1 et 2)
	SI bREDIST_SVA == 0
	ALORS
	################ Applis clientes dependantes de la recherche dans ALICE (TRAFIC CENTDEA CENTVG FE COME COME_ELLIGIBLE FERPV)  #########
# \DRE G4R6 QC816
		
	#DRE G4R02 
		# COME 
	# 11/03/13 - DRE - G4R2 QC695 (1)
	#	SI b_FERPV_COME && b_InfoC_COME_NDI && Nbut_COME > 0 && i_strcmp(pt_OP_CSV1, "A") != 0 && (!CORR_118ALADUREE || RETOUR_CORR)
		SI b_FERPV_COME && b_InfoC_COME_NDI && (Nbut_COME > 0 || i_strcmp(pt_OP_CSV1, "A") != 0) && (!CORR_118ALADUREE || RETOUR_CORR)
		ALORS
	# 23/04/13 - DRE - G4R2 QC717 Distribuer en errone tout DC dont le CSV est inconnu dans la table TCSV_COME 
			SI i_strcmp(pt_CallType,g_inull) == 0 || i_strcmp(pt_TeleService,g_inull) == 0
			ALORS
				code_errone = 0xA0A1
				erreur = i_format_str2(pt_BUF," pour non distribution a COME. Cause : Teleservice ou CallType absent de ta table CSV_COME : Cle CSV_COME = <%s>, Cle Table csv = <%s>",pt_CSV,pt_NUM)
				erreur = i_PlvMessEmettre(8612, 2, g_iartin, "", 3, code_errone,C_Article, pt_BUF)
				SAUT DISTRI_ERR
			FINSI
	# \ 23/04/13 - DRE - G4R2 QC717
			b_COME = 1
			erreur=i_AjouterCouranteECC(instCOME)
			i_strcpy(pt_ECCFACT, "COME")
		FINSI
		
		# COME_ELIGIBLE
	# 11/03/13 - DRE - G4R2 QC695 (1)
	#	SI b_FERPV_COME && b_InfoC_ELIGIBLE_NDI && Nbut_COME > 0 && i_strcmp(pt_OP_CSV1, "A") != 0 && (!CORR_118ALADUREE || RETOUR_CORR)
		SI b_FERPV_COME && b_InfoC_ELIGIBLE_NDI && (Nbut_COME > 0 || i_strcmp(pt_OP_CSV1, "A") != 0) && (!CORR_118ALADUREE || RETOUR_CORR)
		ALORS
	# 23/04/13 - DRE - G4R2 QC717 Ne pas envoyer a COME_ELLIGIBLE tout DC dont le CSV est inconnu dans la table TCSV_COME 
			SI i_strcmp(pt_CallType,g_inull) == 0 || i_strcmp(pt_TeleService,g_inull) == 0
			ALORS
				code_errone = 0xA0A1
				erreur = i_format_str2(pt_BUF, " Non distribution a COME_ELLIGIBLE. Cause : Teleservice ou CallType absent de ta table CSV_COME : Cle CSV_COME = <%s>, Cle Table csv = <%s>",pt_CSV,pt_NUM)
				erreur = i_PlvMessEmettre(8614, 2, g_iartin, "", 3, code_errone,C_Article, pt_BUF)
			SINON
				b_ELIGIBLE = 1
				erreur=i_AjouterCouranteECC(instCOME_ELIGIBLE)
			FINSI
	# \ 23/04/13 - DRE - G4R2 QC717
	
		FINSI
	#\DRE G4R02
	
		# FERPV
		#SI (!VGA && !NM3 && bFACTURABLE && !V1S && !b_TETRIS_TRAFBSS && !b_NPF_SIP && (arFERPV || TYPAR_SIPFE) && (!CORR_118ALADUREE || RETOUR_CORR) && (!b_IDUS_NDIP || pt_IDUS_NDRTC != " " || b_TETRIS_TRAFBSS) )
	#DRE G4R02
	#	SI ((b_FERPV || b_FERPV_NBE) && (!CORR_118ALADUREE || RETOUR_CORR))
	#DRE - G4R2 QC695 (4)
	#	SI (!b_COME && (b_FERPV || b_FERPV_NBE || b_ELIGIBLE) && (!CORR_118ALADUREE || RETOUR_CORR))
		SI (  !b_InfoC_COME_NDI 
		    && ( b_FERPV || b_FERPV_NBE || b_InfoC_ELIGIBLE_NDI ) 
		    && ( !CORR_118ALADUREE || RETOUR_CORR ) )
		ALORS
			bFERPV = 1
			erreur = i_AjouterCouranteECC(instFERPV)
	#DRE G4R02
	#		SI (b_FERPV)
	#DRE - G4R2 QC695 (4)
	#		SI (b_FERPV || b_ELIGIBLE) && !b_FERPV_NBE
			SI (b_FERPV || b_InfoC_ELIGIBLE_NDI) && !b_FERPV_NBE
			ALORS
				i_strcpy(pt_ECCFACT, "FERPV")
			FINSI
		FINSI
	
		# Modification des criterees de distribution pour FE ajout de !TYPAR_BIV_SIP
		# FE
		SI ( !VGA && !NM3 && !b_FFMV3 && bFACTURABLE && !V1S && !b_TETRIS_TRAFBSS && !b_NPF_SIP && !TYPAR_SIPFE && !TYPAR_BIV_SIP && arFE 
		&& ( !CORR_118ALADUREE || RETOUR_CORR ) && ( !b_IDUS_NDIP || pt_IDUS_NDRTC != " " || b_TETRIS_TRAFBSS ) && !bFERPV )
		ALORS
			bFE = 1
			erreur = i_AjouterCouranteECC(instFE)
			i_strcpy(pt_ECCFACT, "FE")
		FINSI
	
		# TRAFIC
	#DRE G4R02
	#	SI ( ( bFACTURABLE  && !( b_IDUS_NDIP && i_strcmp(pt_IDUS_NDRTC," ")==0 && !b_TETRIS_TRAFBSS ) && !b_TRAFBSScritCOM && !bFE && !b_FERPV && (!CORR_118ALADUREE || RETOUR_CORR) )
	#DRE - G4R2 QC695 (4)
	#	SI ( ( bFACTURABLE  && !( b_IDUS_NDIP && i_strcmp(pt_IDUS_NDRTC," ")==0 && !b_TETRIS_TRAFBSS ) && !b_TRAFBSScritCOM && !bFE && !b_COME && !b_ELIGIBLE && !b_FERPV && (!CORR_118ALADUREE || RETOUR_CORR) )
	#	|| (b_FERPV_NBE && (!CORR_118ALADUREE || RETOUR_CORR) ) 		)
		SI ( 
			( bFACTURABLE  
			&& !( b_IDUS_NDIP && i_strcmp(pt_IDUS_NDRTC," ")==0 && !b_TETRIS_TRAFBSS ) 
			&& !b_TRAFBSScritCOM && !bFE && !b_InfoC_COME_NDI && !b_InfoC_ELIGIBLE_NDI && !b_FERPV 
			&& ( !CORR_118ALADUREE || RETOUR_CORR) 
			)
			|| ( b_FERPV_NBE && (!CORR_118ALADUREE || RETOUR_CORR) )
		   )
	
		ALORS
			bTRAFIC = 1
			erreur = i_AjouterCouranteECC(instTRAFIC)
		FINSI
	
		#DRE G4R6 QC816 paragraphe remonte
		# CENTDEA
		#pour CentaureDEA maintenant on controle bRDIP_SVTR et RDIP_SVTR_1  S6F4 25/02 on enleve RDIP_SVTR et on utilse bFACTURABLE
		SI (bEFFICACE && bFACTURABLE && b_arretfct_centaure && !RETOUR_CORR)
		ALORS
			bCENTDEA = 1
			erreur = i_AjouterCouranteECC(instCENTDEA)
		FINSI
	
		# CENTVG : VGA et TRAFIC destinataire
		SI (bTRAFIC && (VGA || NM3 || b_FFMV3))
		ALORS
			bCENTVG = 1
			erreur = i_AjouterCouranteECC(instCENTVG)
		FINSI
#DRE G4R6 QC816
	FINSI

	################ Applis clientes independantes de la recherche dans ALICE (DM EBILL TRAFBSS1 et 2) #########

	# Delta Minute 
	SI ( !VGA && !NM3 && !b_FFMV3)
	ALORS
		SI bFE && (!CORR_118ALADUREE || RETOUR_CORR)
		ALORS
			erreur=i_AjouterCouranteECC(instDM)
		FINSI
	FINSI

	# Allofact (SC) : bFACTURABLE et non VGA et Allofact dans TableDistri(Fixe, DATE_GMT, IDUS_N)
	SI (bFACTURABLE && b_TRAFBSScritCOM && (!CORR_118ALADUREE || RETOUR_CORR) )
	ALORS
		erreur = i_AjouterCouranteECC(instSC)
	FINSI

	SI b_TRAFBSS1 == 1
	ALORS 
		erreur = i_AjouterCouranteECC(instTRAFBSS1)
	FINSI

	SI b_TRAFBSS2 == 1
	ALORS 
		erreur = i_AjouterCouranteECC(instTRAFBSS2)
	FINSI

#DRE G4R6 QC816 paragraphe remonte
#	# CENTDEA
#	#pour CentaureDEA maintenant on controle bRDIP_SVTR et RDIP_SVTR_1  S6F4 25/02 on enleve RDIP_SVTR et on utilse bFACTURABLE
#	SI (bEFFICACE && bFACTURABLE && b_arretfct_centaure && !RETOUR_CORR)
#	ALORS
#		bCENTDEA = 1
#		erreur = i_AjouterCouranteECC(instCENTDEA)
#	FINSI

	### CORRELATION ####
	SI  ( CORR_118ALADUREE && !RETOUR_CORR )
	ALORS
		trace("__FILE__:__LINE__ #### ENVOI EN CORRELATION #### ")
		erreur = i_dup_art_id(g_iartin, g_iartout11)
		# Calcul ID_CORR
		nelem = g_iartout11.IDUS_NUM!NELEM
		val = g_iartout11.IDUS_NUM[nelem-1]
		#trace1("__FILE__:__LINE__ ======> code val : <%d> ", val)
		SI (val ==15 )
		ALORS
			nelem = nelem - 1
		FINSI
		nelem=nelem - 1

		# Correction calcul ID_CORR
		ID_CORR = (g_iartout11.IDUS_NUM[nelem-1]) + (g_iartout11.IDUS_NUM[nelem-2] * 10) + 65536 *( (g_iartout11.IDUS_NUM[nelem-3]) + (g_iartout11.IDUS_NUM[nelem-4])* 10 )
		#trace1("__FILE__:__LINE__ ======> Valeur de ID_CORR : <%d> ", ID_CORR)
		#trace("preparation Envoi en Correlation 118_CORR")

		SI !i_valid_field_n(g_iartout11, $Tri2g118::DECO_NUM)
		ALORS
			erreur = i_ajoutChampNum(g_iartout11, $Tri2g118::T3DECO_NUM,$Tri2g118::DECO_NUM,1)
		FINSI

		nelem = g_iartout11.NUMNAS!NELEM
		nelem = nelem * 4
		erreur = i_resize_tlv(g_iartout11, "T3DECO_NUM", "DECO_NUM", nelem)

		SI !i_valid_field_n(g_iartout11, $Tri2g118::TRAA_HDEB)
		ALORS
			erreur = i_ajoutChampNum(g_iartout11, $Tri2g118::T3TRAA_HDEB,$Tri2g118::TRAA_HDEB,1)
		FINSI

		i_strcpy(pt_cascorr, C_CASCORR)
		erreur = i_initialiserPrmCorr(g_iartout11)
		erreur = i_ajouterPrmCorr(g_iartout11, pt_cascorr, ID_CORR)
		erreur = i_stocke_art(g_iartout11, 0, PT_CORRELE, 0)
	FINSI

FINSI

############################################################################
# Consolidation des applications destinatrices
############################################################################

#trace1("<<<__LINE__:__FILE__<<< bIDUS_NUM<%d>",bIDUS_NUM)
#trace1("<<<__LINE__:__FILE__<<< bFACTURABLE <%d>",bFACTURABLE)
#trace1("<<<__LINE__:__FILE__<<< bFE <%d>",bFE)
#trace1("<<<__LINE__:__FILE__<<< bTRAFIC <%d>",bTRAFIC)
#trace1("<<<__LINE__:__FILE__<<< bFERPV <%d>",bFERPV)
#trace1("<<<__LINE__:__FILE__<<< b_TRAFBSScritCOM<%d>",b_TRAFBSScritCOM)
#trace1("<<<__LINE__:__FILE__<<< CPT_REDIST<%d>",CPT_REDIST)

#DRE G4R6 QC816
#SI (bIDUS_NUM == 1)
#ALORS
##DRE G4R02
##	SI (bFACTURABLE && !bFE && !bTRAFIC && !bFERPV && !b_TRAFBSScritCOM) && (!CORR_118ALADUREE || RETOUR_CORR)
#	SI (bFACTURABLE && !bFE && !bTRAFIC && !bFERPV && !b_TRAFBSScritCOM && !b_COME) && (!CORR_118ALADUREE || RETOUR_CORR)
#	ALORS
#		SI (CPT_REDIST < 2 && IDUS_TOPE == 1)
#		ALORS
#			i_strcpy(pt_LIBELREDIST, "Facturable et pas de ECC de facturation")
#			SAUT REDIST
#		SINON
#			SAUT P_SYMPH
#		FINSI
#	FINSI
#FINSI
#
SI (bIDUS_NUM == 1)
ALORS
	# test si Redistri suite recherche SVA
	SI bREDIST_SVA == 0 
	ALORS
		# cas normal
		SI (bFACTURABLE && !bFE && !bTRAFIC && !bFERPV && !b_TRAFBSScritCOM && !b_COME) && (!CORR_118ALADUREE || RETOUR_CORR)
		ALORS
			SI (CPT_REDIST < 2 && IDUS_TOPE == 1)
			ALORS
				i_strcpy(pt_LIBELREDIST, "Facturable et pas de ECC de facturation")
				SAUT REDIST
			SINON
				SAUT P_SYMPH
			FINSI
		FINSI
	SINON 
		# cas redist SVA
		SI ( CPT_REDIST < 2 )
		ALORS
			SAUT REDIST
		SINON
			SAUT P_SYMPH
		FINSI
	FINSI
FINSI

#\DRE G4R6 QC816



############################################################################
# Mises au format
############################################################################

SI (bIDUS_NUM == 1)
ALORS
	# *************************** Trafic ***************************
	SI (!i_ChercherCouranteECC(instTRAFIC))
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instTRAFIC <%d>",instTRAFIC)
		SI (i_dup_art_dest(g_iartin, g_iartout6, C_Ttrafic))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_Ttrafic,C_Article)
			SAUT DISTRI_ERR
		FINSI

		# DOMAINE
		SI (V1S || b_TETRIS_FU || b_NPF_SIP || b_NPF_OPT)
		ALORS
			erreur = i_set_art_str(g_iartout6, $TtraficN::DOMAINE, "10")
		SINON
			erreur = i_set_art_str(g_iartout6, $TtraficN::DOMAINE, "33")
		FINSI

		# SERVICE
		SI (V1S || b_TETRIS_FU || b_NPF_SIP || b_NPF_OPT)
		ALORS
			erreur = i_set_art_str(g_iartout6, $TtraficN::SERVICE, "06")
		SINON
			erreur = i_set_art_str(g_iartout6, $TtraficN::SERVICE, "86")
		FINSI

		# IDUS_NUM
		# G4R5 Lot2
		#SI (b_NPF_SIP || SIP_Fibre || (V1S && b_ODEBI ))
		SI ( b_NPF_SIP || SIP_Fibre || V1S )
		ALORS
			erreur = i_set_art_str(g_iartout6, $TtraficN::IDUS_NUM, pt_IDUS_NUM)
		SINON
			erreur = i_set_art_str(g_iartout6, $TtraficN::IDUS_NUM, pt_IDUS_NDRTC)
		FINSI

		# DEDE_INF
		erreur = i_set_art_field(g_iartout6, $TtraficN::DEDE_INF, DECO_INF)

		# DEDE_NUM
		erreur = i_set_art_str(g_iartout6, $TtraficN::DEDE_NUM, pt_DECO_NUM)

		# ICAR (DATE)
		erreur = i_set_art_field(g_iartout6, $TtraficN::DATE, ICAR_S)

		# DUR (DUREE)
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout6, $TtraficN::DUREE, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout6, $TtraficN::DUREE, TREP_DURCONV)
		FINSI

		# CAX
		erreur = i_set_art_field(g_iartout6, $TtraficN::CAX, CAX)

		# TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout6,$TtraficN::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout6, $TtraficN::TAX, 0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout6,$TtraficN::TAX,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout6,$TtraficN::TAX, 0)
			FINSI
		FINSI

		# NDS_NUM
		# G4R5 Lot2
		#SI (b_TETRIS_FU || (V1S && b_ODEBI == 0) || b_NPF_OPT)
#G4R5 QC783
#		SI ( b_TETRIS_FU || V1S || b_NPF_OPT )
		SI ( b_TETRIS_FU || b_NPF_OPT )
		ALORS
			i_get_sub_str(pt_IDUS_NUM, 0, 8, pt_NDS_NUM)
			#trace2 ("test: pt_IDUS_NUM=<%s>, pt_NDS_NUM=<%s>", pt_IDUS_NUM, pt_NDS_NUM)
		SINON
			i_strcpy(pt_NDS_NUM, " ")
		FINSI
		erreur = i_set_art_str(g_iartout6,$TtraficN::NDS_NUM, pt_NDS_NUM)

		#SUP
		SI (V1S || b_TETRIS_FU || b_NPF_SIP || b_NPF_OPT)
		ALORS
			erreur = i_set_art_field(g_iartout6,$TtraficN::SUP, 6)
		SINON
			erreur = i_set_art_field(g_iartout6,$TtraficN::SUP, 0)
		FINSI

		# REF
		erreur = i_set_art_field(g_iartout6, $TtraficN::REF, REF)

		#  NB_CSV
		erreur = i_set_art_field(g_iartout6, $TtraficN::NB_CSV, NB_CSV)

		#C_CSV1
		erreur = i_set_art_str(g_iartout6, $TtraficN::C_CSV1, pt_C_CSV1)

		# OP_CSV1
		erreur = i_set_art_str(g_iartout6, $TtraficN::OP_CSV1, pt_OP_CSV1)

		# SGTQS
		erreur = i_set_art_str(g_iartout6, $TtraficN::SGTQS, pt_SGTQS)

		# Champ CLASSDEST CCD
		erreur = i_set_art_field(g_iartout6, $TtraficN::CLASSDEST, CCD_REEL)

		# champ OFFRE et champ OPERATEUR
		SI b_CodOperVG
		ALORS
			erreur = i_set_art_str(g_iartout6, $TtraficN::OFFRE, pt_CodOffreVG)
			erreur = i_set_art_str(g_iartout6, $TtraficN::OPERATEUR, pt_CodOperVG)
		FINSI
		# DRE G4R6 Lot3

		# TYPE_EDIT
		erreur=i_set_art_str(g_iartout6, $TtraficN::TYPE_EDIT, pt_TYPE_EDIT)
		
		# CODE_TARIF
		erreur=i_set_art_str(g_iartout6, $TtraficN::CODE_TARIF, pt_CODE_TARIF)
		# \DRE G4R6 lot3

	FINSI

	# *************************** CENTVG ***************************

	SI (!i_ChercherCouranteECC(instCENTVG))
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instCENTVG <%d>",instCENTVG)
		SI (i_dup_art_dest(g_iartin, g_iartout7, C_TcentaureVG))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_TcentaureVG, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# DOMAINE
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::DOMAINE, "33")

		# SERVICE
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::SERVICE, "86")

		# IDUS_NUM
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::IDUS_NUM, pt_IDUS_NUM)

		# DEDE_INF FO2238
		erreur = i_set_art_field(g_iartout7,  $TcentaureVG::DEDE_INF, DECO_INF)

		# DEDE_NUM FO1955 FO2238
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::DEDE_NUM, pt_DECO_NUM)

		# ICAR (DATE)
		erreur = i_set_art_field(g_iartout7, $TcentaureVG::ICAR, ICAR_S)

		# DUR (DUREE) FO1955 FO2238
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout7, $TcentaureVG::DUR, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout7, $TcentaureVG::DUR, TREP_DURCONV)
		FINSI

		# CAX
		erreur = i_set_art_field(g_iartout7, $TcentaureVG::CAX, CAX)

		# TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout7,$TcentaureVG::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout7,$TcentaureVG::TAX, 0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout7,$TcentaureVG::TAX,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout7,$TcentaureVG::TAX, 0)
			FINSI
		FINSI

		#  NB_CSV
		erreur = i_set_art_field(g_iartout7, $TcentaureVG::nb_csv, NB_CSV)

		#C_CSV1
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::C_CSV1, pt_C_CSV1)

		#REF
		erreur = i_set_art_field(g_iartout7, $TcentaureVG::REF, REF)

		# OP_CSV1
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::OP_CSV1, pt_OP_CSV1)

		# SGTQS
		erreur = i_set_art_str(g_iartout7, $TcentaureVG::SGTQS, pt_SGTQS)

		# Champ CLASSDEST CCD
		erreur = i_set_art_field(g_iartout7, $TcentaureVG::CLASSDEST, CCD_REEL)

		# champ OFFRE et champ OPERATEUR
		SI b_CodOperVG
		ALORS
			erreur = i_set_art_str(g_iartout7, $TcentaureVG::OFFRE, pt_CodOffreVG)
			erreur = i_set_art_str(g_iartout7, $TcentaureVG::OPERATEUR, pt_CodOperVG)
		FINSI
	# DRE G4R6 Lot3
	
		# TYPE_EDIT
		erreur=i_set_art_str(g_iartout7, $TcentaureVG::TYPE_EDIT, pt_TYPE_EDIT)
		
		# CODE_TARIF
		erreur=i_set_art_str(g_iartout7, $TcentaureVG::CODE_TARIF, pt_CODE_TARIF)
	# \DRE G4R6 lot3
	FINSI

	# *************************** FE ***************************

	SI (!i_ChercherCouranteECC(instFE))
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instFE <%d>",instFE)
		SI (i_dup_art_dest(g_iartin, g_iartout8, C_Tfe))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tfe, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# SERVICE
		erreur = i_set_art_str(g_iartout8, $Tfe::SERVICE, "86")

		# IDUS_NUM
		erreur = i_set_art_str(g_iartout8, $Tfe::IDUS_NUM, pt_IDUS_NUM)

		# DEDE_INF
		erreur = i_set_art_field(g_iartout8, $Tfe::DEDE_INF, DECO_INF)

		# DEDE_NUM
		erreur = i_set_art_str(g_iartout8, $Tfe::DEDE_NUM, pt_DECO_NUM)

		# ICAR (DATE)
		erreur = i_set_art_field(g_iartout8, $Tfe::DATE, ICAR_S)

		# DUR (DUREE)
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout8, $Tfe::DUREE, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout8, $Tfe::DUREE, TREP_DURCONV)
		FINSI

		# CAX
		erreur = i_set_art_field(g_iartout8, $Tfe::CAX, CAX)

		# TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout8, $Tfe::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout8, $Tfe::TAX, 0)
			FINSI
			# le champ TREP_NBUTACT est optionnel donc il faut s'assurer de sa validite.
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT))
			ALORS
				erreur = i_set_art_field(g_iartout8,$Tfe::TAX, i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout8, $Tfe::TAX, 0)
			FINSI
		FINSI

		# SUP
		GCOM_NAD = i_get_art_field(g_iartin, $Tri2g118::GCOM_NAD)
		SI ((GCOM_NAD & 0x07) == 1)
		ALORS
			erreur = i_set_art_field(g_iartout8, $Tfe::SUP, 1)
		SINON
			SI ((GCOM_NAD & 0x07) ==  3)
			ALORS
				erreur = i_set_art_field(g_iartout8, $Tfe::SUP, 2)
			SINON
				erreur = i_set_art_field(g_iartout8, $Tfe::SUP, 0)
			FINSI
		FINSI

		#  NB_CSV
		erreur = i_set_art_field(g_iartout8, $Tfe::NB_CSV, NB_CSV)

		#C_CSV1
		erreur = i_set_art_str(g_iartout8, $Tfe::C_CSV1, pt_C_CSV1)

		# OP_CSV1
		erreur = i_set_art_str(g_iartout8, $Tfe::OP_CSV1, pt_OP_CSV1)

		# Champ CLASSDEST CCD
		erreur = i_set_art_field(g_iartout8, $Tfe::CLASSDEST, CCD_REEL)
	# DRE G4R6 Lot3
	
		# TYPE_EDIT
		erreur=i_set_art_str(g_iartout8, $Tfe::TYPE_EDIT, pt_TYPE_EDIT)
		
		# CODE_TARIF
		erreur=i_set_art_str(g_iartout8, $Tfe::CODE_TARIF, pt_CODE_TARIF)
	# \DRE G4R6 lot3
	FINSI

	# *************************** DM ***************************

	SI (!i_ChercherCouranteECC(instDM))
	ALORS
		SI (i_dup_art_dest(g_iartin, g_iartout9, C_Tdelta_minute))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tdelta_minute, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# DOMAINE
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::DOMAINE, "33")

		# SERVICE
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::SERVICE, "86")

		# IDUS_NUM
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::IDUS_NUM, pt_IDUS_NUM)

		# DEDE_INF
		erreur = i_set_art_field(g_iartout9, $Tdelta_minute::DEDE_INF, DECO_INF)

		# DEDE_NUM
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::DEDE_NUM, pt_DECO_NUM)

		# ICAR (DATE)
		erreur = i_set_art_field(g_iartout9, $Tdelta_minute::DATE, ICAR_S)

		# DUR (DUREE)
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout9, $Tdelta_minute::DUREE, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout9, $Tdelta_minute::DUREE, TREP_DURCONV)
		FINSI

		# CAX
		erreur = i_set_art_field(g_iartout9, $Tdelta_minute::CAX,CAX)

		# TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout9,$Tdelta_minute::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout9, $Tdelta_minute::TAX,0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout9, $Tdelta_minute::TAX, i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout9, $Tdelta_minute::TAX, 0)
			FINSI
		FINSI

		# NB_CSV
		erreur = i_set_art_field(g_iartout9, $Tdelta_minute::NB_CSV, NB_CSV)

		# C_CSV1
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::C_CSV1, pt_C_CSV1)

		# OP_CSV1
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::OP_CSV1, pt_OP_CSV1)

		# SGTQS
		erreur = i_set_art_str(g_iartout9, $Tdelta_minute::SGTQS, pt_SGTQS)

		# Champ CLASSDEST CCD
		erreur = i_set_art_field(g_iartout9, $Tdelta_minute::CLASSDEST, CCD_REEL)
	FINSI

	# *************************** FCT => Supprimee ***************************

	# *************************** SC ***************************
	SI (!i_ChercherCouranteECC(instSC))
	ALORS
		#trace1("<<<__LINE__:_FILE__<<< dup instSC <%d>",instSC)
		SI (i_dup_art_dest(g_iartin, g_iartout5, C_Tsc))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tsc, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# T1
		# remplie dans table de duplication:       6:56:1:$T1 #T1=0x56

		# L1
		# remplie dans table de duplication:       6:6C:1:$L1      0x6C

		#1:$TREP_DURCONV:$DURCONV	# TREP_DURCONV  DURCONV
		#1:$NUMNAS:$NUM_RECO		# NUMNAS   NUM_RECO
		#6:32:2:$SUP			# 22       SUP valeur defaut
		#6:30:5:$CODESERV		# 00000    CODESERV valeur defaut
		#6:30:6:$DCONV			# 000000   DCONV valeur defaut
		#6:30:6:$NUTC			# 000000   NUTC valeur defaut
		#6:20:17:$NUM_DECO		# "    "   NUM_DECO valeur defaut

		# IDUS_NUM : ILAS [IDUS]
		SI (b_TRAFBSScritCOM || b_NPF_SIP)
		ALORS
			erreur = i_set_art_str(g_iartout5, $TscTri2g118C::IDUS_NUM, pt_IDUS_NUM)
		SINON
			erreur = i_set_art_str(g_iartout5, $TscTri2g118C::IDUS_NUM, pt_IDUS_NDRTC)
		FINSI

		# DATE : ICAR [DATE_LOCALE]
		erreur = i_set_art_field(g_iartout5, $TscTri2g118C::DATE, DATE_LOCALE)

		# DURCONV
		# remplie dans table de duplication:       1:$TREP_DURCONV:$DURCONV

		# NBUT
		SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
		ALORS
			erreur = i_set_art_field(g_iartout5,$TscTri2g118C::NBUT,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
		SINON
			erreur = i_set_art_field(g_iartout5,$TscTri2g118C::NBUT, 0)
		FINSI

		# INF_DECO : INF [DECO]
		erreur = i_set_art_field(g_iartout5, $TscTri2g118C::INF_DECO, DECO_INF)

		# NUM_RECO
		# remplie dans table de duplication:       1:$NUMNAS:$NUM_RECO

		# SUP  valeur defaut remplie dans table de duplication: 6:32:2:$SUP   ="22"
		SI (b_TETRIS_FU || V1S || b_TRAFBSScritCOM || b_NPF_SIP || b_NPF_OPT)
		ALORS
			erreur = i_set_art_str(g_iartout5, $TscTri2g118C::SUP, "6")
		FINSI

		# CODESERV  valeur defaut remplie dans table de duplication: 6:30:5:$CODESERV   ="00000"
		SI MER == 1 && CATDC != 0
		ALORS
			erreur = i_set_art_field(g_iartout5, $TscTri2g118C::CODESERV, 32768)
		FINSI

		# DCONV [TRAA]  valeur defaut remplie dans table de duplication: 6:30:6:$DCONV    ="000000"
		SI MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout5, $TscTri2g118C::DCONV, TRAA_DCONV)
		FINSI

		# NUTC [TRAA]  valeur defaut remplie dans table de duplication: 6:30:6:$NUTC    ="000000"
		SI MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC))
		ALORS
			TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
			erreur = i_set_art_field(g_iartout5, $TscTri2g118C::NUTC, TRAA_NUTC)
		FINSI

		# NUM_DECO
		SI MER
		ALORS
			SI (DECO_INF == 0x80)
			ALORS
				erreur = i_format_str2(pt_temp, "%s%s", "0", pt_DECO_NUM)
			SINON
				i_strcpy(pt_temp, pt_DECO_NUM)
			FINSI
		SINON
			i_strcpy(pt_temp, " ")
		FINSI
		erreur = i_set_art_str(g_iartout5, $TscTri2g118C::NUM_DECO, pt_temp)

		# REF
		erreur = i_set_art_field(g_iartout5, $TscTri2g118C::REF, REF)

		# CCD
		erreur = i_set_art_field(g_iartout5, $TscTri2g118C::CCD, CCD_REEL)

		# CS1
#		erreur = i_format_str2(pt_CSV, "%s%s", pt_C_CSV1, pt_OP_CSV1)
		erreur = i_set_art_str(g_iartout5, $TscTri2g118C::CS1, pt_CSV)

		# NDS_NUM
		SI (b_TETRIS_FU || V1S || b_NPF_OPT)
		ALORS
			i_strcpy(pt_NDS_NUM, pt_IDUS_NUM)
		SINON
			i_strcpy(pt_NDS_NUM, " ")
		FINSI
		erreur = i_set_art_str(g_iartout5, $TscTri2g118C::NDS_NUM, pt_NDS_NUM)

		# ECC_FACT
#DRE G4R02
#		SI (!bFE && !bFERPV && !bTRAFIC && !b_TRAFBSScritCOM )
		SI (!bFE && !bFERPV && !bTRAFIC && !b_TRAFBSScritCOM && !b_COME )
		ALORS
			i_strcpy(pt_ECCFACT, "")
		SINON
			SI b_NPF_OPT
			ALORS
				i_strcpy(pt_ECCFACT, "TRAFOPT")
			FINSI
		FINSI
		erreur = i_set_art_str(g_iartout5, $TscTri2g118C::ECC_FACT, pt_ECCFACT)

		#CCNDE
		SI CODCIR != -1
		ALORS
			erreur = i_set_art_field(g_iartout2, $Conversion::CODCIRDR, CODCIR)
			erreur=i_get_art_str(g_iartout2, $Conversion::CODCIRDA,pt_buffer)
			SI (g_iartout2.CODCIRDA[2] > 9)
			ALORS
				i_get_sub_str(pt_buffer,2,5,pt_buffer)
			SINON
				i_get_sub_str(pt_buffer,1,5,pt_buffer)
			FINSI
			erreur = i_set_art_str(g_iartout5, $TscTri2g118C::CCNDE, pt_buffer)
		SINON
			erreur = i_set_art_str(g_iartout5, $TscTri2g118C::CCNDE, "     ")
		FINSI
	FINSI

	# *************************** FERPV ***************************

	SI (!i_ChercherCouranteECC(instFERPV))
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instFERPV <%d>",instFERPV)
		SI (i_dup_art_dest(g_iartin, g_iartout13, C_Tferpv))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tferpv, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# SERVICE FO1947  reprise le 08 09 2006
		SI (b_OperNBE && (b_FFMV2 || b_FFMV3))
		ALORS
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SERVICE, "8")
		SINON
			SI ((TYPAR_SIPFE == 1) || (TYPAR_BIV_SIP == 1))
			ALORS
				erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SERVICE, "6")
			SINON
				erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SERVICE, pt_SERVICE)
			FINSI
		FINSI

		# SOURCE 
		SI (b_OperNBE && (b_FFMV2 || b_FFMV3))
		ALORS
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SOURCE, "19")
		SINON
			SI (TYPAR_SIPFE == 1)
			ALORS
				erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SOURCE, "16")
			SINON
				SI (TYPAR_Etelephonie == 1 && TYPAR_BIV_SIP == 0)
				ALORS
					erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SOURCE, "08")
				SINON
					SI (TYPAR_BIV_SIP)
					ALORS
						erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SOURCE, "18")
					SINON
						erreur = i_set_art_str(g_iartout13, $Tfe_rpv::SOURCE, "03")
					FINSI
				FINSI
			FINSI
		FINSI

		# NUMDDR
		erreur = i_format_str2(pt_NUMDDR, "%s%s", "0", pt_IDUS_NUM)
		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::NUMDDR, pt_NUMDDR)

		# NUMDDE G3R3 lot2
		i_strcpy(pt_temp2,pt_DECO_NUM)

		# Suppression des eventuels Zeros de tete
		POINT Boucle1
		i_get_sub_str(pt_temp2,0,0,pt_temp)
		SI (i_strcmp(pt_temp,"0") == 0)
		ALORS
			i_get_sub_str(pt_temp2,1,-1,pt_temp2)
			SAUT Boucle1
		FINSI
		i_strcpy(pt_temp,pt_temp2)

		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::NUMDDE, pt_temp)

		# DEBUT
		erreur = i_set_art_field(g_iartout13, $Tfe_rpv::DEBUT, ICAR_S)

		# DUREE
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout13, $Tfe_rpv::DUREE, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout13, $Tfe_rpv::DUREE, TREP_DURCONV)
		FINSI

		# NBUT
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout13,$Tfe_rpv::NBUT, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout13, $Tfe_rpv::NBUT,0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout13,$Tfe_rpv::NBUT,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout13,$Tfe_rpv::NBUT, 0)
			FINSI
		FINSI

		#CANAL
		erreur = i_set_art_field(g_iartout13,$Tfe_rpv::CANAL, REF)

		#TYPACCRI
		SI (TYPAR_SIPFE == 1)
		ALORS
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::TYPACCRI,"1")
		SINON
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::TYPACCRI,"")
		FINSI

		#NATAPPRI
		SI (TYPAR_SIPFE == 1)
		ALORS
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::NATAPPRI,"1")
		SINON
			erreur = i_set_art_str(g_iartout13, $Tfe_rpv::NATAPPRI,"0")
		FINSI

		#  NBCOD
		erreur = i_set_art_field(g_iartout13, $Tfe_rpv::NBCOD, NB_CSV)

		#C_CSV1
		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::C_CSV1, pt_C_CSV1)

		# OP_CSV1
		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::OP_CSV1, pt_OP_CSV1)

		# CCD
		erreur = i_set_art_field(g_iartout2, $Conversion::CCD, CCD_REEL)
		erreur = i_get_art_str( g_iartout2, $Conversion::CCD, pt_temp )
		#trace2("__LINE__ CCD ASCII  <%s>",pt_temp, "")
		erreur = i_format_str2( pt_temp2, "%s%s", "000", pt_temp)
		i_get_sub_str (pt_temp2, -3, -1,pt_temp2)
		#trace2("__LINE__ CCD ASCII 3 dig  <%s>",pt_temp2, "")
		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::CCD, pt_temp2)

		# ajout par duplication pour ls champs:
		# PREF_PORT = ''
		# TAG = ''
		# FILLER = ''

		# INFDDE = DECO_INF
		erreur = i_set_art_field(g_iartout2, $Conversion::INF, DECO_INF)
		erreur = i_get_art_str( g_iartout2, $Conversion::INF, pt_temp )
		#trace2("__LINE__ CCD ASCII  <%s>",pt_temp, "")
		erreur = i_format_str2( pt_temp2, "%s%s", "000", pt_temp)
		i_get_sub_str (pt_temp2, -3, -1,pt_temp2)
		#trace2("__LINE__ CCD ASCII 3 dig  <%s>",pt_temp2, "")
		erreur = i_set_art_str(g_iartout13, $Tfe_rpv::INFDDE, pt_temp2)
	# DRE G4R6 Lot3
	
		# TYPE_EDIT
		erreur=i_set_art_str(g_iartout13, $Tfe_rpv::TYPE_EDIT, pt_TYPE_EDIT)
		
		# CODE_TARIF
		erreur=i_set_art_str(g_iartout13, $Tfe_rpv::CODE_TARIF, pt_CODE_TARIF)
	# \DRE G4R6 lot3

	FINSI

	# *********************TRAFBSS****************************

	SI (( !i_ChercherCouranteECC(instTRAFBSS1) ) || ( !i_ChercherCouranteECC(instTRAFBSS2) ))
	ALORS
		# Duplication de l article
		#---------------------------
		# trace("Duplication vers TRAFBSS 1 ou 2")
		SI ( i_dup_art_dest(g_iartin, g_iartout4,C_TRAFBSS) )
		ALORS
			#trace("Erreur de i_dup_art_dest")
			code_errone = 0xA0D1
			erreur = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone,C_TRAFBSS,C_Article)
			SAUT  DISTRI_ERR
		FINSI

		#DOMAINE
		erreur = i_set_art_str(g_iartout4, $TtrafBSS::DOMAINE, "10")

		#SERVICE
		erreur = i_set_art_str(g_iartout4, $TtrafBSS::SERVICE, "86")

		#IDUS_INF
		#champ E par fic dup

		#champ IDUS_NUM
		erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM,pt_BUF)
		erreur = i_set_art_str(g_iartout4, $TtrafBSS::IDUS_NUM, pt_BUF)

		# Champ DEDE_INF
		# fic

		#champ DEDE_NUM
		erreur=i_set_art_str(g_iartout4,$TtrafBSS::DEDE_NUM,pt_DECO_NUM)

		# Champ ICAR
		erreur = i_set_art_field(g_iartout4,$TtrafBSS::DATE,ICAR_S)

		# DUR (DUREE)
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1)
			ALORS
				TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
				erreur = i_set_art_field(g_iartout4, $TtrafBSS::DUREE, TRAA_DCONV)
			SINON
				TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
				erreur = i_set_art_field(g_iartout4, $TtrafBSS::DUREE, TREP_DURCONV)
			FINSI
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout4, $TtrafBSS::DUREE, TREP_DURCONV)
		FINSI

		# CAX: dans fic

		# TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout4,$TtrafBSS::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout4,$TtrafBSS::TAX, 0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout4,$TtrafBSS::TAX,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout4,$TtrafBSS::TAX, 0)
			FINSI
		FINSI

		# NDS_NUM
		erreur = i_set_art_str(g_iartout4,$TtrafBSS::NDS_NUM,pt_TETRIS_RTC)

		#SUP: fic

		#REF, MES1, MES2: fic

		# Champ NB_CSV
		erreur = i_set_art_field(g_iartout4, $TtrafBSS::NB_CSV, NB_CSV)

		# Champ C_CSV1 et OP_CSV1
		SI ( NB_CSV > 0)
		ALORS
			erreur = i_set_art_str(g_iartout4,  $TtrafBSS::C_CSV1,pt_C_CSV1 )
			erreur = i_set_art_str(g_iartout4,  $TtrafBSS::OP_CSV1,pt_OP_CSV1 )
		FINSI

		#champ STY par fic dup
		#champ COCA par fic dup
		#champ COCAV par fic dup
		#champ IDAV_INF par fic dup
		#champ IDAV_NUM par fic dup

		# Champ SGTQS
		erreur=i_set_art_str(g_iartout4, $TtrafBSS::SGTQS, pt_SGTQS)

		#Champ MNEMO: espace (info VM))

		#champ CLASSDEST  avec CCD_REEL
		erreur=i_set_art_field(g_iartout4, $TtrafBSS::CLASSDEST,CCD_REEL)

		# champs OFFRE et OPERATEUR: fic

		#champ COMPTWANA
		erreur=i_set_art_str(g_iartout4, $TtrafBSS::COMPTWANA, pt_TETRIS_compte)

		#champ TYPETRAFIC
		erreur=i_set_art_str(g_iartout4, $TtrafBSS::TYPETRAFIC, pt_TRAFIC)

		#champ TYPETARIF
		erreur=i_set_art_str(g_iartout4, $TtrafBSS::TYPETARIF, pt_TARIF)

		#champ ZONE1 par fic dup
		#champ ZONE2 par fic dup
	FINSI

#*************CENTAUREDEA**************************************#

	SI (!i_ChercherCouranteECC(instCENTDEA))
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instCENTVG <%d>",instCENTVG)
		SI (i_dup_art_dest(g_iartin, g_iartout10, C_TcentaureDEA))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_TcentaureDEA, C_Article)
			SAUT DISTRI_ERR
		FINSI

		# Champ DATE
		erreur = i_set_art_field(g_iartout10, $TcentaureDEA::DATE, ICAR_S)

		# champ IIDUS

		# champ NIDUS
		erreur = i_get_art_str(g_iartin, $Tri2g118::IDUS_NUM,pt_BUF)
		erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NIDUS, pt_BUF)

		# champ IDEDE
		erreur = i_set_art_field(g_iartout10,  $TcentaureDEA::IDEDE, DECO_INF)

		# champ NDEDE
		erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NDEDE, pt_DECO_NUM)

		# champ NIDAV
		SI SPORTABILITE
		ALORS
			SI (i_strplcmp(pt_DECO_NUM ,"842",0,3)!=0)
			ALORS
				erreur= i_format_str2( pt_BUF, "%s%s", pt_CodeOp, pt_DECO_NUM)
				erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NIDAV,pt_BUF)
			SINON
				erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NIDAV,pt_DECO_NUM)
			FINSI
		SINON
			erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NIDAV,pt_DECO_NUM)
		FINSI

		# champ NICOM
		erreur = i_set_art_str(g_iartout10, $TcentaureDEA::NICOM,"SVAITX")

		# champ REF
		erreur = i_set_art_field(g_iartout10, $TcentaureDEA::REF, REF)

		# champ DUR (DUREE)
		SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
		ALORS
			TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
			erreur = i_set_art_field(g_iartout10, $TcentaureDEA::DUREE, TRAA_DCONV)
		SINON
			TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
			erreur = i_set_art_field(g_iartout10, $TcentaureDEA::DUREE, TREP_DURCONV)
		FINSI

		# champ TAX
		SI MER
		ALORS
			SI (i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTC) &&  i_valid_field_n(g_iartin, $Tri2g118::TRAA_NUTR))
			ALORS
				TRAA_NUTC = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTC)
				TRAA_NUTR = i_get_art_field(g_iartin, $Tri2g118::TRAA_NUTR)
				erreur = i_set_art_field(g_iartout10,$TcentaureDEA::TAX, (TRAA_NUTC + TRAA_NUTR))
			SINON
				erreur = i_set_art_field(g_iartout10,$TcentaureDEA::TAX, 0)
			FINSI
		SINON
			SI (i_valid_field_n(g_iartin, $Tri2g118::TREP_NBUTACT) == 1)
			ALORS
				erreur = i_set_art_field(g_iartout10,$TcentaureDEA::TAX,i_get_art_field(g_iartin, $Tri2g118::TREP_NBUTACT))
			SINON
				erreur = i_set_art_field(g_iartout10,$TcentaureDEA::TAX, 0)
			FINSI
		FINSI

		# champ CDSGTQS
		erreur=i_set_art_str(g_iartout10, $TcentaureDEA::CDSGTQS, pt_SGTQS)
		
		# DRE G4R6 Lot3
		
		# TYPE_EDIT
		erreur=i_set_art_str(g_iartout10, $TcentaureDEA::TYPE_EDIT, pt_TYPE_EDIT)
		
		# CODE_TARIF
		erreur=i_set_art_str(g_iartout10, $TcentaureDEA::CODE_TARIF, pt_CODE_TARIF)
		# \DRE G4R6 lot3
	
	FINSI

#DRE - G4R02 Envoi a COME 
	
	# *************************** COME et COME_ELIGIBLE ***************************

	SI (!i_ChercherCouranteECC(instCOME) || !i_ChercherCouranteECC(instCOME_ELIGIBLE) )
	ALORS
		#trace1("<<<__LINE__:__FILE__<<< dup instFERPV <%d>",instFERPV)
		SI (i_dup_art_tab(g_iartin, g_iartout14, C_Tcome))
		ALORS
			code_errone = 0xA0D0
			code_errone = code_errone + bEFFICACE
			erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tcome, C_Article)
			SAUT DISTRI_ERR
		FINSI
		
		#CallType : type V3t1.1
		SI i_strcmp(pt_CallType,g_inull) != 0
		ALORS
			nelem = i_conv_ascii_dcb(pt_CallType, pt_BUF)
			erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::type,pt_BUF, nelem)
		FINSI
		
		#idemet V3t1.3
# 23/04/13 - DRE - G4R2 QC717 correction valeur champ V3t1.3 (idemet)	
#		# Conversion ascii vers DCB de "33009100001FFFFFFF" #
#		nelem = i_conv_ascii_dcb("33009100001FFFFFFF", pt_BUF)
		# Conversion ascii vers DCB de "33009100003FFFFFFF" #
		nelem = i_conv_ascii_dcb("33009100003FFFFFFF", pt_BUF)
		erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::idemet,pt_BUF, nelem)
#		erreur = i_resize_tlv( g_iartout14, "T3t1", "idemet", nelem *8 )

		#IMSI V3t1.4
		# Conversion ascii vers DCB de "444444444444444F" #
		nelem = i_conv_ascii_dcb("444444444444444F", pt_BUF)
		erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::IMSI,pt_BUF, nelem)
#		erreur = i_resize_tlv( g_iartout14, "T3t1", "IMSI", nelem *8 )
		
		#DUREE V3t1.6 
# 11/03/13 - DRE - G4R2 QC695 (2)		
#		erreur = i_set_art_field(g_iartout14, $Tcome::DUREE, Nbut_COME)
		SI i_strcmp(pt_CallType,"AF") == 0
		ALORS
			erreur = i_set_art_field(g_iartout14, $Tcome::DUREE,1)
		SINON
			SI (MER && (i_valid_field_n(g_iartin, $Tri2g118::TRAA_DCONV) == 1))
			ALORS
				TRAA_DCONV = i_get_art_field(g_iartin, $Tri2g118::TRAA_DCONV)
				erreur = i_set_art_field(g_iartout14, $Tcome::DUREE, TRAA_DCONV)
			SINON
				TREP_DURCONV = i_get_art_field(g_iartin, $Tri2g118::TREP_DURCONV)
				erreur = i_set_art_field(g_iartout14, $Tcome::DUREE, TREP_DURCONV)
			FINSI
		FINSI
		
		
		#TeleService : tlserv  V3t1.8
		SI i_strcmp(pt_TeleService,g_inull) != 0
		ALORS
			nelem = i_conv_ascii_dcb(pt_TeleService, pt_BUF)
			erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::tlserv,pt_BUF, nelem)
		FINSI
		
		#nbUT V3t1.16   = Nbut_COME
		erreur = i_set_art_field(g_iartout14,$Tcome::nbUT, Nbut_COME)

		#idpart V3t2
		SI (i_strplcmp (pt_DECO_NUM,"33",0,2) != 0)
		ALORS
			erreur = i_format_str2( pt_BUF, "%s%s", "33", pt_DECO_NUM )		
			i_strcpy(pt_DECO_NUM, pt_BUF)
		FINSI
		# Conversion ascii vers DCB de pt_DECO_NUM #
		nelem = i_conv_ascii_dcb(pt_DECO_NUM, pt_BUF)
		erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::idpart,pt_BUF, nelem)
		erreur = i_resize_tlv( g_iartout14, "T3t2", "idpart", nelem *8 )

		#NDI : MSISDN V3t4
		SI (i_strplcmp (pt_NDI,"33",0,2) != 0)
		ALORS
			erreur = i_format_str2( pt_BUF, "%s%s", "33", pt_NDI )		
			i_strcpy(pt_NDI, pt_BUF)
		FINSI
		# Conversion ascii vers DCB de pt_NDI #
		nelem = i_conv_ascii_dcb(pt_NDI, pt_BUF)
		erreur = i_memcpy_art_field_n(g_iartout14,$Tcome::MSISDN,pt_BUF, nelem)
		erreur = i_resize_tlv( g_iartout14, "T3t4", "MSISDN", nelem *8 )

		#SDA : MailMsOrEntity V3t24
#		i_strcpy(pt_BUF,pt_IDUS_NUM)
		SI (i_strplcmp (pt_IDUS_NUM,"33",0,2) != 0)
		ALORS
			erreur = i_format_str2( pt_BUF, "%s%s", "33", pt_IDUS_NUM )		
			i_strcpy(pt_IDUS_NUM,pt_BUF)
		FINSI
		erreur = i_set_art_str(g_iartout14, $Tcome::MailMsOrEntity, pt_IDUS_NUM)
		nelem = i_strlen(pt_IDUS_NUM)
		erreur = i_resize_tlv(g_iartout14, "T3t24", "MailMsOrEntity", nelem)

		#Daudit : timeInCE  V4t30.1  date d'audit metropole
		erreur = i_set_art_field(g_iartout14,$Tcome::timeInCE, DATE_AUDIT)
		
		#C_CSV1+OP_CSV1	: GASCII  V3t58
		#G4R4 QC756
		SI (pt_C_CSV1 == g_inull)
		ALORS
			i_strcpy(pt_C_CSV1, "   ")
		SINON
			erreur = i_format_str2(pt_temp, "%s%s", pt_C_CSV1,"   ")
			i_get_sub_str(pt_temp, 0, 2, pt_C_CSV1)
			trace2("__FILE__:__LINE__ ## TEST ## ======> pt_C_CSV1 <%s> #### ",pt_C_CSV1 ,"")
		FINSI
		
		SI (pt_OP_CSV1 == g_inull)
		ALORS
			i_strcpy(pt_OP_CSV1, "  ")
		SINON
			erreur = i_format_str2(pt_temp, "%s%s", pt_OP_CSV1,"  ")
			i_get_sub_str(pt_temp, 0, 1, pt_OP_CSV1)
			trace2("__FILE__:__LINE__ ## TEST ## ======> pt_OP_CSV1 <%s> #### ",pt_OP_CSV1 ,"")
		FINSI
		
		#DRE G4R02
#		erreur = i_format_str2(pt_CSV, "%s%s", pt_C_CSV1 , pt_OP_CSV1)
		erreur = i_format_str2(pt_TEMP, "%s%s", pt_C_CSV1 , pt_OP_CSV1)

		erreur = i_set_art_str(g_iartout14, $Tcome::GASCII, pt_TEMP)
		nelem = i_strlen(pt_TEMP)
		erreur = i_resize_tlv(g_iartout14, "T3t58", "GASCII", nelem)
		
	# DRE G4R6 Lot3 + QC824
	
		# TYPE_EDIT
		SI i_strcmp(pt_TYPE_EDIT," ") != 0
		ALORS
			erreur=i_set_art_str(g_iartout14, $Tcome::TYPE_EDIT, pt_TYPE_EDIT)
		SINON
			erreur = i_supprChamp(g_iartout14, "T3t72")
		FINSI
		
		# CODE_TARIF
		SI i_strcmp(pt_CODE_TARIF,"    ") != 0
		ALORS
			erreur=i_set_art_str(g_iartout14, $Tcome::CODE_TARIF, pt_CODE_TARIF)
		SINON
			erreur = i_supprChamp(g_iartout14, "T3t73")
		FINSI
	# \DRE G4R6 lot3  + QC824

	FINSI
		
#\DRE - G4R02 Envoi a COME 
	
FINSI

POINT P_SYMPH

# *************************** SYMPHONIE ***************************

instSYMPH = i_LireInstanceECC(C_InstSYMP)
SI (!instSYMPH)
ALORS
	code_errone = 0xA0B0
	code_errone = code_errone + bEFFICACE
	erreur = i_PlvMessEmettre(8601, 2, g_iartin, "", 3, code_errone, C_InstSYMP, C_Article)
	SAUT DISTRI_ERR
FINSI

# G4R5 Lot2
#SI ( !RETOUR_CORR && (b_IDUS_NDIP == 0 || pt_BANIP_RTC != " " || CPT_REDIST == 2) )
# G4R5 LOT2 Criteres d'envoi a symphonie
#SI ( !RETOUR_CORR && (b_IDUS_NDIP == 0 || i_strcmp(pt_BANIP_RTC," ")!=0 || CPT_REDIST == 2) )
#SI ( !RETOUR_CORR && (b_IDUS_NDIP == 0 || i_strcmp(pt_IDUS_NDRTC," ")!=0 || CPT_REDIST == 2) )

#DRE G4R6 QC816
SI ( !RETOUR_CORR && (b_IDUS_NDIP == 0 || (b_IDUS_NDIP == 1 && i_strcmp(pt_IDUS_NDRTC," ")!=0) || CPT_REDIST == 2) )
ALORS
	erreur = i_AjouterCouranteECC(instSYMPH)
FINSI

SI !(i_ChercherCouranteECC(instSYMPH))
ALORS
	SI (i_dup_art_id(g_iartin, g_iartout12) != 0)
	ALORS
		code_errone = 0xA0D0
		code_errone = code_errone + bEFFICACE
		erreur = i_PlvMessEmettre(8602, 2, g_iartin, "", 3, code_errone, C_Tsymphonie, C_Article)
		SAUT DISTRI_ERR
	FINSI
	erreur = i_rename_art(g_iartout12, C_Tsymphonie)
	erreur = i_ajoutChamp(g_iartout12, "T4CCD", "CCD", 0x02)

	# SGTQS
	erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::SGTQS, pt_SGTQS)

	# ECC_FACT
#DRE G4R02
#	SI (!bFE && !bFERPV && !bTRAFIC && !b_TRAFBSScritCOM )
	SI (!bFE && !bFERPV && !bTRAFIC && !b_TRAFBSScritCOM && !b_COME )
	ALORS
		i_strcpy(pt_ECCFACT, "")
	SINON
		SI b_NPF_OPT
		ALORS
			i_strcpy(pt_ECCFACT, "TRAFOPT")
		FINSI
	FINSI
	erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::ECC_FACT, pt_ECCFACT)

	# CCD
	erreur = i_set_art_field(g_iartout12, $Tsymtri2g118::CCD, CCD_REEL)

	# VGA_OP et VGA_OF
	SI b_CodOperVG
	ALORS
		erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::OPE_VGA, pt_CodOperVG)
		erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::OFF_VGA, pt_CodOffreVG)

	SINON
		erreur = i_supprChamp(g_iartout12, "T4OPE_VGA")
		erreur = i_supprChamp(g_iartout12, "T4OFF_VGA")
	FINSI

	# NBCOD
	erreur = i_set_art_field(g_iartout12, $Tsymtri2g118::NBCOD, 1)

	# CSV
#	erreur = i_format_str2(pt_CSV, "%s%s", pt_C_CSV1, pt_OP_CSV1)
	erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::CSV, pt_CSV)

	# ND_RTC_42L
	SI (i_strcmp (pt_TETRIS_RTC, " ") != 0)
	ALORS
		erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::ND_RTC_42L, pt_TETRIS_RTC)
	SINON
		SI b_NPF_OPT
		ALORS
			SI (i_strcmp (pt_OPT_RTC, " ") != 0)
			ALORS
				erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::ND_RTC_42L, pt_OPT_RTC)
			SINON
				erreur = i_supprChamp(g_iartout12, "T4ND_RTC_42L")
			FINSI
		SINON
			# G4R5 Lot2
			SI (i_strcmp (pt_BANIP_RTC, " ") != 0)
			ALORS
				erreur = i_set_art_str(g_iartout12, $Tsymtri2g118::ND_RTC_42L, pt_BANIP_RTC)
			SINON
				erreur = i_supprChamp(g_iartout12, "T4ND_RTC_42L")
			FINSI
		FINSI
	FINSI

	# DATE_LOCALE
	#trace(" ***** Ajout date locale pour symphonie ***** ")
	#trace1("__FILE__:__LINE__ ======> ***** ICAR_S : <%d> ***** ", ICAR_S)
	SI (ICAR_S != 0)
	ALORS
		erreur = i_set_art_field(g_iartout12, $Tsymtri2g118::DATE_LOCALE, ICAR_S)
	SINON
		erreur = i_supprChamp(g_iartout12, "T4DATELOCALE")
	FINSI
	
# DRE G4R6 Lot3
	# TYPE_EDIT
	SI i_strcmp(pt_TYPE_EDIT," ") != 0
	ALORS
		erreur = i_ajoutChampNum(g_iartout12, $Tsymtri2g118::T4type_edit,$Tsymtri2g118::TYPE_EDIT,0)
		erreur=i_set_art_str(g_iartout12, $Tsymtri2g118::TYPE_EDIT, pt_TYPE_EDIT)
	SINON
		erreur = i_supprChamp(g_iartout12, "T4type_edit")
	FINSI

	# CODE_TARIF
	SI i_strcmp(pt_CODE_TARIF,"    ") != 0
	ALORS
		erreur = i_ajoutChampNum(g_iartout12, $Tsymtri2g118::T4code_tarif,$Tsymtri2g118::CODE_TARIF,0)
		erreur=i_set_art_str(g_iartout12, $Tsymtri2g118::CODE_TARIF, pt_CODE_TARIF)
	SINON
		erreur = i_supprChamp(g_iartout12, "T4code_tarif")
	FINSI

# \DRE G4R6 Lot3
FINSI

############################################################################
# Envoi vers IECC
############################################################################

SI !(i_ChercherCouranteECC(instSYMPH))
ALORS
	res = i_stocke_art_iecc(g_iartout12,instSYMPH)
FINSI

SI CPT_REDIST == 2
ALORS
	i_strcpy(pt_LIBELREDIST, "Indicatif inconnu de MAJ2G")
	SAUT REDIST
FINSI

SI (!i_ChercherCouranteECC(instTRAFIC))
ALORS
	res = i_stocke_art_iecc(g_iartout6, instTRAFIC)
FINSI

SI (!i_ChercherCouranteECC(instFE))
ALORS
	res = i_stocke_art_iecc(g_iartout8, instFE)
FINSI

SI (!i_ChercherCouranteECC(instSC))
ALORS
	res = i_stocke_art_iecc(g_iartout5, instSC)
FINSI

SI (!i_ChercherCouranteECC(instFERPV))
ALORS
	res = i_stocke_art_iecc(g_iartout13, instFERPV)
FINSI

SI (!i_ChercherCouranteECC(instDM))
ALORS
	SI (!i_ChercherCouranteECC(instFE))
	ALORS
		res = i_stocke_art_iecc(g_iartout9, instDM)
	FINSI
FINSI

SI (!i_ChercherCouranteECC(instCENTVG))
ALORS
	res = i_stocke_art_iecc(g_iartout7, instCENTVG)
FINSI

SI (!i_ChercherCouranteECC(instTRAFBSS1) )
ALORS
	res = i_stocke_art_iecc( g_iartout4, instTRAFBSS1 )
FINSI

SI (!i_ChercherCouranteECC(instTRAFBSS2) )
ALORS
	res = i_stocke_art_iecc( g_iartout4, instTRAFBSS2 )
FINSI

SI (!i_ChercherCouranteECC(instCENTDEA))
ALORS
	res = i_stocke_art_iecc(g_iartout10, instCENTDEA)
FINSI

#DRE - G4R02 Envoi a COME 
SI (!i_ChercherCouranteECC(instCOME))
ALORS
	res = i_stocke_art_iecc(g_iartout14, instCOME)
FINSI

SI (!i_ChercherCouranteECC(instCOME_ELIGIBLE))
ALORS
	res = i_stocke_art_iecc(g_iartout14, instCOME_ELIGIBLE)
FINSI
#\DRE - G4R02 Envoi a COME 


#DRE G4R6 QC816
SI bREDIST_SVA == 1
ALORS
	SAUT REDIST
FINSI



RETOUR TRAIT_OK

############################################################################
# Stockage en Errone
############################################################################

POINT DISTRI_ERR

res = i_make_art_rej(g_iartin, g_iartout3, code_errone)
res = i_stocke_art(g_iartout3, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

############################################################################
# Stockage en REDISTRIBUTION
############################################################################

POINT REDIST

# On emet le message d erreur uniquement au 1er passage
SI (CPT_REDIST == 0)
ALORS
	erreur = i_PlvMessEmettre(8503, 2, g_iartin, "", 3, pt_LIBELREDIST, C_Article, pt_SGTQS)
FINSI

res = i_stocke_art(g_iartin, 0, PT_REDIST|RD_TABLE1, 0)

RETOUR TRAIT_OK

# DRE G4R6 lot3
###################################################################################
########    Stockage en ELIMINE EXPLICITE  (REJET3 = 1 ex: cas DC 119)    #########
###################################################################################

POINT ELIMINE_EXP

trace( "Stockage en elimine explicite")
res = i_stocke_art( g_iartin, 0, PT_DIVERS, 0 )

RETOUR TRAIT_OK

# \DRE G4R6 lot3

#---------------------------Fin Tri2g118_dist.src-------------------------------
	# FIN_CORPS
