DEFINITION C_Article_860026365 "Tvoipvpn2"
DEFINITION INST_SYMP_860026365 "SYMP"
DEFINITION INST_ACLA_860026365 "ACLA"
DEFINITION C_InstSPOT_860026365 "SPOT_ETEL"
DEFINITION C_TspotTvoipvpn2_860026365 "TspotTvoipvpn2"
DEFINITION CPT_CPS_Loc_860026365 16
DEFINITION CPT_CPS_RI_860026365 17
DEFINITION C_DATCPS_860026365 "DATCPS" 
DEFINITION TD_SVA_860026365 9
DEFINITION C_INST_ALICE_860026365 "ALICE"
REGISTRE ENTIER instSYMP_860026365
REGISTRE ENTIER instFERPV_860026365
REGISTRE ENTIER instACLA_860026365
REGISTRE ENTIER instSPOT_860026365
REGISTRE ENTIER code_errone_860026365
REGISTRE ENTIER crit_ok_860026365
REGISTRE ENTIER efficace_860026365
REGISTRE ENTIER ccd_860026365
REGISTRE ENTIER ccd_reel_860026365
REGISTRE ENTIER idus_inf_860026365
REGISTRE ENTIER detr_inf_860026365
REGISTRE ENTIER hlahm1_860026365
REGISTRE ENTIER erreur_860026365
REGISTRE ENTIER duree_860026365
REGISTRE ENTIER res_860026365
REGISTRE ENTIER longueur_860026365
REGISTRE ENTIER gmt_date_860026365
REGISTRE ENTIER indice_860026365
REGISTRE ENTIER rejet_860026365
REGISTRE ENTIER code_rejet_860026365
REGISTRE ENTIER eportabilite_860026365
REGISTRE ENTIER eportabilite_scp_860026365
REGISTRE ENTIER sportabilite_scp_860026365
REGISTRE ENTIER typ_ctr_860026365
REGISTRE ENTIER NbUT_860026365
REGISTRE ENTIER vcdr2_860026365
REGISTRE ENTIER InterEtelVoIp_860026365
REGISTRE ENTIER InterVoIpEtel_860026365
REGISTRE ENTIER dpivot_860026365
REGISTRE ENTIER b_CALL_TYPE_PRESENT_860026365
REGISTRE ENTIER b_ENVOI_FACTURATION_860026365
REGISTRE ENTIER b_APPEL_FACTURABLE_860026365
REGISTRE ENTIER b_DETR_B_NUM_860026365
REGISTRE ENTIER b_DECO_B_NUM_860026365
REGISTRE ENTIER b_NOORIG_B_NUM_860026365
REGISTRE ENTIER b_CALLEDPREFIX_PRESENT_860026365
REGISTRE ENTIER b_Emessage_IP_860026365
REGISTRE ENTIER b_SRP_TIERS_PTD_860026365
REGISTRE ENTIER b_118_TIERS_PTD_860026365
REGISTRE ENTIER Date_CPS_860026365
REGISTRE ENTIER instALICE_860026365 
REGISTRE ENTIER trait_ok_860026365
REGISTRE ENTIER val_860026365
REGISTRE ENTIER ddebut_860026365
REGISTRE ENTIER b_FERPV_860026365
REGISTRE ENTIER bREDIST_860026365
REGISTRE POINTEUR pt_prefix_860026365
REGISTRE POINTEUR pt_codcir_860026365
REGISTRE POINTEUR pt_codcirdr_860026365
REGISTRE POINTEUR pt_eccfact_860026365
REGISTRE POINTEUR pt_sgtqs_860026365
REGISTRE POINTEUR pt_CodeOp_860026365
REGISTRE POINTEUR pt_codescp_860026365
REGISTRE POINTEUR pt_1_860026365
REGISTRE POINTEUR pt_2_860026365
REGISTRE POINTEUR pt_3_860026365
REGISTRE POINTEUR pt_DECO_860026365
REGISTRE POINTEUR pt_NOORIG_860026365
REGISTRE POINTEUR pt_MESSAGE_860026365
REGISTRE POINTEUR pt_CODE_TARIF_860026365 
REGISTRE POINTEUR pt_TYPE_EDIT_860026365 
REGISTRE POINTEUR pt_LIBELREDIST_860026365
REGISTRE POINTEUR pt_NORM_860026365
REGISTRE POINTEUR pt_TEMP_860026365
######################################################################
# DISTRIBUTION	Tvoipvpn2_dis.src
#	Article Tvoipvpn2
#
# g_iartout21 utilise pour usage interne
#
######################################################################
#	HISTORIQUE
# 02/06/05 -JLG THE- creation G2R1Ca FO 1230
#
# 07/06/02 -JLG- FO 1316 G2R1Ca (Prise en compte numeraux speciaux : REJET, envoi vers FCT, appel MAJ2G, redistribution)
# 27/06/05 -JLG- FO 1369 (ccd_reel pour symphonie)
# 28/06/05 -JLG- FO 1367 (NBUT valorise)
# 04/07/05 -JLG- FO 1376 (CCD REEL pour symphonie = 1212 au lieu de 212)
# 08/07/05 -JLG- FO 1360 (idus absent ajouts CE retires)
# 26/07/05 -RBE- G2R1Cu Interfonctionnement avec Etelephonie
# 19/08/05 -RBE- FO 1410 Modif. du calcul des variables Support et Typcom
# 28/09/05 -PSA- G2R1Co : fusion Cj sur Cu (prise en compte des FO 1406 et 1470 sur la Cq)
# 12/01/06 -FAL- G2R2Cd prise en compte des appels DTO
# 13/03/06 -FAL- G2R2Cd FO1743 evolution critere distribution sur FT
# 13/03/06 -FAL- G2R2Cd FO1756 format DEDE_NUM FCT
# 05/11/06 -JLG- G2R2Cv Evol lot2 : Prise en compte Interfonctionement BT IP (VOIP VPN EQUANT) et Business Talk (RPVI2)
# 06/02/07 - THE - G3R0Ct
# 07/02/07 - THE- G3R0Cw sans FCT
# 26/04/07 - FAL - G3R0Cu Tfe_rpv Tfe_rpv SUPPORT alpha
# 28/05/07 - THE - Fusion ParamFTSA-G3R2 (Cw)
# 30/05/07 - THE - Fusion ParamFTSA-G3R2 (Cu)
# 08/08/07 - JLG - ParamFTSA-G3R3 lot2 Arret de FCT
# 28/09/07 - THE - ParamFTSA-G3R4 Envoi SPOT
# 24/10/07 - THE - ParamFTSA-G3R4 FO 2244 (et FO 2243)
# 25/03/08 - JLG - ParamFTSA-G3R6 FO2361 evol spec S16F1
# 25/02/09 - JLG - evolution G3R12Cz Portage de l'offre Business Talk IP de H323 vers SIP
# 27/03/09 - JLG - evolution G3R12Cz QC217
# 13/10/10 - PKH - G3R18Cy Ajout de la nature du demande INFDDE  et normalisation du demande pour FERPV
#  3/11/10 - PKH - G3R18Cy QC428 Correction format de INFDDE pour rfe_rpv
# 07/07/11 - THE - G3R21Cy Item messagerie IP
# 23/09/11 - THE - Correction suite VerifPcode4_unix.pl
# 21/03/2012 - THE - G3R24 Nouveau palier tarifaire audiotel tiers 0898PQ depuis la VoIP
# 14/04/2014 - DRE - G4R6 : Lot3
# 12/05/2014 - DRE - G4R6 QC813
#
#####################################################################


# Constantes
#DRE G4R6 lot3
#\DRE G4R6 lot3


# Variables entieres

# G3R24

#DRE G4R6 lot3

# Variables pointeurs
# DRE G4R6 lot3

###########################################################################
# Declarations
###########################################################################

# Initialisation variables entieres
instSPOT_860026365	 = -1
code_errone_860026365	 = 0
eportabilite_860026365	 = 0
eportabilite_scp_860026365 = 0
sportabilite_scp_860026365 = 0
b_DETR_B_NUM_860026365	 = 0
b_DECO_B_NUM_860026365	 = 0
b_NOORIG_B_NUM_860026365	 = 0
b_Emessage_IP_860026365	 = 0
# G3R24
b_SRP_TIERS_PTD_860026365	 = 0
b_118_TIERS_PTD_860026365	 = 0
#DRE G4R6 lot3
Date_CPS_860026365 = 0
instALICE_860026365 = -1
longueur_860026365 = 0
val_860026365 = 0
ddebut_860026365 = -1
b_FERPV_860026365 = 0
bREDIST_860026365 = 0

# Tous les DC vont a Symphonie
#trace2("[Tvoipvpn2_dis]valeur avant initialisation de pt_prefix=%s",pt_prefix,"")

# Allocation memoire pour buffer
pt_prefix_860026365	= "pt_prefix3333333333333333333333333333333333333333333333333333333"
pt_codcir_860026365	= "8888888888"
pt_codcirdr_860026365	= "98989898989"
pt_eccfact_860026365	= "789078907890"
pt_sgtqs_860026365	= "12345678901234567890"
pt_CodeOp_860026365	= "6666666666666666666666666666666666666666666666666666666666666666"
pt_codescp_860026365	= "545454545454545454545454545454545454545"
pt_1_860026365		= "6664376567890645453365645645666643765678906454533656456456666437656789064"
pt_2_860026365		= "9999956745634235778678945645698678567456342357786789456456986785674563423"
pt_3_860026365		= "8989856745634235778678945645698678567456342357786789456456986785674563423"
pt_DECO_860026365		= "pt_DECO444444444444444444444444444444444444444444444444444444444444444444"
pt_NOORIG_860026365	= "pt_NOORIG5555555555555555555555555555555555555555555555555555555555555555"
# DRE G4R6 lot3
pt_MESSAGE_860026365 = "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_860026365	 = "pt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDIST"
pt_CODE_TARIF_860026365 	 = "pt_CODE_TARIFpt_CODE_TARIF"
pt_TYPE_EDIT_860026365	 = "pt_TYPE_EDIT"
pt_NORM_860026365		 = "389389389389389389996200258997115447999945899"
pt_TEMP_860026365		 = "pt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMPpt_TEMP"


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

#trace("[Tvoipvpn2_dis] distribution - Tvoipvpn2")
#erreur=i_fdump_art(g_iartin)


# Initialisation des variables pointeurs
i_strcpy(pt_eccfact_860026365,"  ")
# VerifPcode
i_strcpy(pt_CodeOp_860026365,"")
i_strcpy(pt_codescp_860026365,"")
i_strcpy(pt_DECO_860026365,"")
i_strcpy(pt_NOORIG_860026365,"")
# DRE G4R6 lot3
i_strcpy(pt_MESSAGE_860026365, "")
i_strcpy(pt_CODE_TARIF_860026365 , "    ")
i_strcpy(pt_TYPE_EDIT_860026365 , " ")
i_strcpy(pt_LIBELREDIST_860026365,"")
i_strcpy(pt_NORM_860026365,"")
i_strcpy(pt_TEMP_860026365,"")


##################################################################################
# Identification de la provenance de l'article
##################################################################################
# DRE G4R6 Lot3
###################################################################################
################    trait_ok : nb de passage en redistribution   ##################
###################################################################################
trait_ok_860026365 = -1
trait_ok_860026365 = i_LireRedistCpt()

# Duplication article entree 
erreur_860026365 = i_dup_art_id(g_iartin, g_iartout)

# \DRE G4R6 Lot3


##############################################################################
# Variables fonctionnelles
##############################################################################
# DRE G4R6 Lot3
#############################################
# Creation article Conversion (g_iartout10) #
#############################################

erreur_860026365 = i_cree_art("Conversion",g_iartout10)

#EFFICACE
efficace_860026365 = 0
efficace_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::EFFICACITE)

# Date de debut
ddebut_860026365 = i_get_art_field( g_iartout, $ddebut )
SI ( ddebut_860026365 == -1 )
ALORS
	code_errone_860026365 = 0xA080
	code_errone_860026365 = code_errone_860026365 + efficace_860026365
	erreur_860026365 = i_PlvMessEmettre( 8600, 2, g_iartout,"", 3,code_errone_860026365, C_Article_860026365, "i_get_art_field/ddebut" )
	SAUT DISTRI_ERR
FINSI

gmt_date_860026365 = i_get_art_field(g_iartout,$Tvoipvpn2::DATE)

# \DRE G4R6 Lot3

#TYPCTR
typ_ctr_860026365 = 0
typ_ctr_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::TYPCTR)

#NbUT
NbUT_860026365 = 0
NbUT_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::VCUT)

#VCDR2
vcdr2_860026365 = 0
vcdr2_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::VCDR2)


#HLAHM1
hlahm1_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::HLAHM1)

#CCD, CCD_REEL
ccd_860026365 = 255
ccd_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::CCD)
ccd_reel_860026365 = ccd_860026365

#SRP_ITX
# G3R24
#srp_itx = 0
#SI (ccd == 0x18) && (typ_ctr == 0)
#ALORS
#	srp_itx = 1
#FINSI


#####################################################################
# 	              Traitement C+S (CPS)
#DRE G4R6 lot3 
SI (typ_ctr_860026365==CPT_CPS_Loc_860026365 || typ_ctr_860026365==CPT_CPS_RI_860026365)
ALORS
	erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::DETR_NUM,pt_NORM_860026365)

	i_strcpy(pt_TEMP_860026365, i_get_tab_field( "TDATCPS", gmt_date_860026365, C_DATCPS_860026365 ))

	erreur_860026365 = i_set_art_str (g_iartout10,$Conversion::DATE_STR,pt_TEMP_860026365)
	Date_CPS_860026365 = i_get_art_field(g_iartout10, $Conversion::DATE_ASC)
			
	SI ddebut_860026365 < Date_CPS_860026365
	ALORS
		erreur_860026365 = i_format_str2(pt_MESSAGE_860026365," AR <%s> avec date DC inferieure a la date d'activation <%s> de la facturation CPS",pt_NORM_860026365,pt_TEMP_860026365)
		code_errone_860026365 = 0xA080
		code_errone_860026365 = code_errone_860026365 + efficace_860026365
		erreur_860026365 = i_PlvMessEmettre( 8599, 1, g_iartout,"", 3,code_errone_860026365, C_Article_860026365, pt_MESSAGE_860026365 )
		SAUT ELIMINE_EXP
#DRE G4R6 QC813
	FINSI
	SI (typ_ctr_860026365==CPT_CPS_Loc_860026365)
	ALORS
		#######################################
		#  Soumission de la requete de consultation d'une table de distribution ALICE
		#######################################
		SI i_strplcmp (pt_NORM_860026365,"0",0,1) == 0
		ALORS
			i_get_sub_str(pt_NORM_860026365,1,-1,pt_NORM_860026365) 	
		FINSI
		longueur_860026365 = i_conv_ascii_dcb (pt_NORM_860026365, pt_TEMP_860026365)
		SI (i_EnvoiReqConsTabDist( TD_SVA_860026365,gmt_date_860026365,pt_TEMP_860026365,longueur_860026365,0,1) != 0)
		ALORS
			#trace("Erreur i_EnvoiReqConsTabDist ALICE")
			bREDIST_860026365 = 1
			i_strcpy(pt_LIBELREDIST_860026365,"Echec sur i_EnvoiReqConsTabDistDouble ALICE ")
		FINSI
		
		#######################################
		# Recherche de l'instance ECC ALICE
		#######################################
		instALICE_860026365 = i_LireInstanceECC(C_INST_ALICE_860026365)
		SI (!instALICE_860026365)
		ALORS
			#trace("Pas d'instance pour ALICE !")
			erreur_860026365 = i_PlvMessEmettre(8501,1,g_iartout,"",3,C_INST_ALICE_860026365,C_Article_860026365,g_ieec)
			SAUT DISTRI_ERR
		FINSI
		#trace1("instALICE  =<%d>",instALICE)	

		#######################################
		# Lecture Resultat requete ALICE
		#######################################
		erreur_860026365 = i_LireReqConsTabDist()
		#trace1("RETOUR i_LireReqConsTabDist retour requette ALICE, erreur=<%d>",erreur)
		SI ( erreur_860026365 != 0 )
		ALORS
			#trace1( "Erreur i_LireReqConsTabDist ALICE: <%d>", erreur)
			bREDIST_860026365 = 1
			i_strcpy(pt_LIBELREDIST_860026365,"Echec sur i_LireReqConsTabDistDouble ALICE ")
		FINSI
		val_860026365 = i_LireInfoECC( instALICE_860026365, 0 )
		
		i_strcpy(pt_TEMP_860026365,"")
		SI (val_860026365 != 0)
		ALORS
			# AR present dans ALICE
			erreur_860026365 = i_LireChaineInfo( val_860026365, 0, 4, pt_TEMP_860026365 )
			SI i_strcmp(pt_TEMP_860026365,"") != 0
			ALORS
				i_strcpy(pt_CODE_TARIF_860026365,pt_TEMP_860026365)
			SINON
				# info complementaire CODE_TARIF vide
				bREDIST_860026365 = 1
				erreur_860026365 = i_format_str2(pt_LIBELREDIST_860026365," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM_860026365,0)
			FINSI
			
			erreur_860026365 = i_LireChaineInfo( val_860026365, 4, 1, pt_TEMP_860026365 )
			SI i_strcmp(pt_TEMP_860026365,"") != 0
			ALORS
				i_strcpy(pt_TYPE_EDIT_860026365,pt_TEMP_860026365)
			SINON
				# info complementaire TYPE_EDIT vide
				bREDIST_860026365 = 1
				erreur_860026365 = i_format_str2(pt_LIBELREDIST_860026365," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM_860026365,0)
			FINSI
		SINON
			bREDIST_860026365 = 1
			erreur_860026365 = i_format_str2(pt_LIBELREDIST_860026365," AR <%s> non trouve dans ALICE",pt_NORM_860026365,0)
		FINSI
	FINSI
FINSI
#\DRE G4R6 lot3



# b_e-message_IP
########################################################################
SI ccd_860026365 == 0x17
ALORS
	b_Emessage_IP_860026365 = 1
FINSI

# REJET
########################################################################
rejet_860026365 = 0
SI (i_valid_field_n(g_iartout,$T4rejet))
ALORS
	rejet_860026365 = i_get_art_field(g_iartout,$REJET)
	erreur_860026365=i_supprChamp(g_iartout,"T4rejet")
FINSI

# b_118_TIERS_PTD 	G3R24
########################################################################
SI ccd_860026365 == 0x1B
ALORS
	b_118_TIERS_PTD_860026365 = 1
FINSI

# b_SRP_TIERS_PTD 	G3R24
########################################################################
SI ccd_860026365 == 0x18 && (typ_ctr_860026365 == 3)
ALORS
	b_SRP_TIERS_PTD_860026365 = 1
FINSI

# tacc (pt_1) pour calcul de TYPCOM, SUPPORT : type de communication et Code service Support
detr_inf_860026365 = 0xC0

SI (i_valid_field_n(g_iartout, $Tvoipvpn2::T3_DETRR))
ALORS
	detr_inf_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::DETR_INF)

	SI (detr_inf_860026365 !=0)
	ALORS
		b_DETR_B_NUM_860026365 = 1
	SINON
		b_DETR_B_NUM_860026365 = 0
		erreur_860026365 = i_supprChamp(g_iartout, "T4detr")
	FINSI
FINSI

# idus_inf
idus_inf_860026365 = 0xFF
idus_inf_860026365 = i_get_art_field(g_iartout, $Tvoipvpn2::IDUS_INF)

#trace1("[Tvoipvpn2_dis]detr_inf=%x",detr_inf)

# pt_sgtqs
i_strcpy(pt_sgtqs_860026365, " ")
i_strcpy(pt_sgtqs_860026365, i_LireEECSGTQS(g_ieec))

# TEXT1 doit contenir "FT" delimite par ","
# Sur Tvoipvpn2, rendre text1 optionnel et Lorsque text1 ne contient pas FT l'envoyer qu'a Symphonie

#### calcul de InterEtelVoIp ########
# TEXT1 doit contenir "e-tel"
InterEtelVoIp_860026365=0

SI (!i_valid_field_n(g_iartout, $Tvoipvpn2::TEXT1))
ALORS
	SAUT FIN_TXT1
FINSI

erreur_860026365 = i_get_art_str(g_iartout, $Tvoipvpn2::TEXT1, pt_1_860026365)
indice_860026365 = 0
longueur_860026365 = g_iartout.TEXT1TAB!NELEM
#trace1("longueur : %d",longueur)
#trace2("contenu de TEXT1 : %s",pt_1,"")

# teste si TEXT1 contient "e-tel" dans le texte

POINT LECTURE_TXT1

#trace1("indice : %d", indice)

SI ( (longueur_860026365 > 1) && (indice_860026365+4 < longueur_860026365))
ALORS
	i_get_sub_str(pt_1_860026365,indice_860026365,indice_860026365+4,pt_2_860026365)
	#trace2("contenu de pt_2 : %s",pt_2,"")
	SI (i_strcmp("e-tel",pt_2_860026365) == 0)
	ALORS
		#trace1("TEXT1 contient e-tel a indice : %d",indice)
		InterEtelVoIp_860026365=1
		SAUT FIN_TXT1
	FINSI
SINON
	#trace("======== TXT1 NOK ne contient pas e-tel  ==========")
	SAUT FIN_TXT1
FINSI
indice_860026365 = indice_860026365 + 1

SAUT LECTURE_TXT1

POINT FIN_TXT1

#### calcul de InterVoIpEtel ########
# TEXT2 doit contenir "e-tel"
InterVoIpEtel_860026365=0

SI (!i_valid_field_n(g_iartout, $Tvoipvpn2::TEXT2))
ALORS
	SAUT FIN_TXT2
FINSI

erreur_860026365 = i_get_art_str(g_iartout, $Tvoipvpn2::TEXT2, pt_1_860026365)
indice_860026365 = 0
longueur_860026365 = i_strlen(pt_1_860026365)
#trace1("longueur : %d",longueur)
#trace2("contenu de TEXT2 : %s",pt_1,"")

# teste si TEXT2 contient "e-tel" dans le texte

POINT LECTURE_TXT2

#trace1("indice : %d", indice)

SI ((longueur_860026365 > 1) && (indice_860026365+4 < longueur_860026365))
ALORS
	i_get_sub_str(pt_1_860026365,indice_860026365,indice_860026365+4,pt_2_860026365)
	#trace2("contenu de pt_2 : %s",pt_2,"")

	SI (i_strcmp("e-tel",pt_2_860026365) == 0)
	ALORS
		#trace1("TEXT2 contient e-tel a indice : %d",indice)
		InterVoIpEtel_860026365=1
		SAUT FIN_TXT2
	FINSI
SINON
	#trace("======== TXT2 NOK ne contient pas e-tel  ==========")
	SAUT FIN_TXT2
FINSI
indice_860026365 = indice_860026365 + 1

SAUT LECTURE_TXT2

POINT FIN_TXT2


#############################
# EPORTABILITE
#############################
SI (b_DETR_B_NUM_860026365)
ALORS
	erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::DETR_NUM,pt_1_860026365)

	pt_CodeOp_860026365 = CodeOperateurTable6_860026233(gmt_date_860026365, pt_1_860026365,"45S")

	SI (!i_strcmp(pt_CodeOp_860026365, "84208"))
	ALORS
		eportabilite_860026365 = 1
	SINON
		eportabilite_860026365 = 0
	FINSI
	#trace1("[Tvoipvpn2_dis]EPORTABILITE=<%d>", eportabilite)
FINSI

######################################################################################
######	PORTABILITE ENTRANTE OU SORTANTE SCP (referentiel ACLA)
######################################################################################

#trace ("[Tvoipvpn2_dis]----RECHERCHE INSTANCE ACLA--------")

instACLA_860026365 = i_LireInstanceECC(INST_ACLA_860026365)

SI (!instACLA_860026365)
ALORS
	#trace ("[Tvoipvpn2_dis]--------Pas d'instance pour ACLA-------------")
	erreur_860026365 = i_PlvMessEmettre(8501,2,g_iartout,"",3,"ACLA",C_Article_860026365,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("[Tvoipvpn2_dis]-----------instACLA=<%d>-----------",instACLA)

##############################################################################
# Envoi Requetes Table de Distribution ACLA
##############################################################################

SI (b_DETR_B_NUM_860026365)
ALORS
	pt_codescp_860026365 =  CodeOperateurTable6_860026233(gmt_date_860026365, pt_1_860026365,"ACLA")
	#trace2("[Tvoipvpn2_dis]-----Tvoipvpn2 -resultat de  pt_codescp: <%s>------",pt_codescp,"")

	SI (!i_strcmp(pt_codescp_860026365, "84008"))
	ALORS
		eportabilite_scp_860026365 = 1
	SINON
		eportabilite_scp_860026365 = 0
		SI (i_strcmp(pt_codescp_860026365,"84008")!=0 && i_strcmp(pt_codescp_860026365,"")!=0)
		ALORS
			sportabilite_scp_860026365 = 1
		SINON
			sportabilite_scp_860026365 = 0
		FINSI
	FINSI
FINSI

# evolution du CCD_REEL pour SCP vers 219
ccd_reel_860026365=225

SI (eportabilite_860026365 == 1)
ALORS
	ccd_reel_860026365 = 212
SINON
	SI (eportabilite_scp_860026365 == 1)
	ALORS
		ccd_reel_860026365 = 218
	SINON
		SI (sportabilite_scp_860026365 == 1)
		ALORS
			ccd_reel_860026365 = 219
		SINON
			SI  (ccd_860026365 != 0xff)
			ALORS
				ccd_reel_860026365=ccd_860026365
			FINSI
		FINSI
	FINSI
FINSI

#trace1("[Tvoipvpn2_dis]EPORTABILITE     = <%d>", eportabilite)
#trace1("[Tvoipvpn2_dis]EPORTABILITE_SCP = <%d>", eportabilite_scp)
#trace1("[Tvoipvpn2_dis]SPORTABILITE_SCP = <%d>", sportabilite_scp)
#trace1("[Tvoipvpn2_dis]ccd	      = <%d>", ccd)
#trace1("[Tvoipvpn2_dis]CCD REEL	 = <%d>", ccd_reel)

##################################################################################
# utilisation de la table externe INTER cle INh pour les calltype
##################################################################################
#trace(">>>__LINE__>>>__FILE__ Debut table externe Inter pour CALLTYPE_PRESENT ENVOI_FACTURATION et APPEL_A_FACTURER")

i_strcpy(pt_1_860026365,"")
i_strcpy(pt_2_860026365,"")
i_strcpy(pt_3_860026365,"")
b_CALL_TYPE_PRESENT_860026365=0
b_ENVOI_FACTURATION_860026365 = 0
b_APPEL_FACTURABLE_860026365 = 0

dpivot_860026365 = i_get_art_field( g_iartout, $dpivot )
#trace1(">>>__LINE__>>>__FILE__ dpivot <%x>", dpivot)

SI ( dpivot_860026365 == -1 )
ALORS
	code_rejet_860026365 = 0xA080
	code_rejet_860026365 = code_rejet_860026365 + efficace_860026365
	erreur_860026365 = i_PlvMessEmettre( 8600, 2, g_iartout,"", 3,code_rejet_860026365, C_Article_860026365, "dpivot" )
	SAUT DISTRI_ERR
FINSI

SI (i_valid_field_n(g_iartout,$Tvoipvpn2::Calltype))
ALORS
	erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::Calltype, pt_1_860026365)
	#trace2(">>>__LINE__>>>__FILE__ recheche cle INh<%s> dans table externe Inter", pt_1, "")
	erreur_860026365 = i_format_str2(pt_2_860026365,"%s%s","INh",pt_1_860026365)
	#trace2("      >>>__LINE__>>>__FILE__ avec pt_2 <%s>",pt_2,"")
	i_strcpy(pt_3_860026365, i_get_tab_field("Inter",dpivot_860026365,pt_2_860026365))

	SI (!i_strcmp(pt_3_860026365,g_inull))
	ALORS
		b_CALL_TYPE_PRESENT_860026365=0
		#trace2( "   >>>__LINE__>>>__FILE__ Calltype <%s> non trouve dans la table externe Inter",pt_2, "" )
	SINON
		b_CALL_TYPE_PRESENT_860026365=1
		#trace2( "   >>>__LINE__>>>__FILE__ Calltype <%s> trouve dans la table externe Inter",pt_2, "" )
		#trace2( "   >>>__LINE__>>>__FILE__ Code operation <%s> ",pt_3, "" )
		SI(i_strcmp(pt_3_860026365,"00")==0)
		ALORS
			b_ENVOI_FACTURATION_860026365 = 0
			b_APPEL_FACTURABLE_860026365 = 0
		SINON
			SI(i_strcmp(pt_3_860026365,"10")==0)
			ALORS
				b_ENVOI_FACTURATION_860026365 = 1
				b_APPEL_FACTURABLE_860026365 = 0
			SINON
				SI(i_strcmp(pt_3_860026365,"11")==0)
				ALORS
					b_ENVOI_FACTURATION_860026365 = 1
					b_APPEL_FACTURABLE_860026365 = 1
				SINON
					b_ENVOI_FACTURATION_860026365 = 0
					b_APPEL_FACTURABLE_860026365 = 0
					#trace2("   >>>__LINE__>>>__FILE__ verifier table INTER cle <%s> car 01 est non significatif", pt_2,"")
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

#trace2("   >>>__LINE__>>>__FILE__ resultat de la table externe Inter=<%s>", pt_3, "")
#trace1("   >>>__LINE__>>>__FILE__ CALL_TYPE_PRESENT=<%d>   1=OUI",b_CALL_TYPE_PRESENT)
#trace1("   >>>__LINE__>>>__FILE__ ENVOI_FACTURATION=<%d>   1=OUI",b_ENVOI_FACTURATION)
#trace1("   >>>__LINE__>>>__FILE__ APPEL_FACTURABLE =<%d>   1=OUI",b_APPEL_FACTURABLE)

##################################################################################
# utilisation de la table externe CalledPrefix (1 => envoi FE filtre)
##################################################################################
i_strcpy(pt_3_860026365," ")
i_strcpy(pt_prefix_860026365," ")

SI (i_valid_field_n(g_iartout,$Tvoipvpn2::CalledPREFIX))
ALORS
	erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::CalledPREFIX, pt_prefix_860026365)
	i_strcpy(pt_3_860026365, i_get_tab_field("CalledPrefix",dpivot_860026365,pt_prefix_860026365))

	SI (i_strcmp(pt_3_860026365,g_inull) != 0)
	ALORS
		b_CALLEDPREFIX_PRESENT_860026365 = 1
	SINON
		b_CALLEDPREFIX_PRESENT_860026365 = 0
	FINSI
SINON
	b_CALLEDPREFIX_PRESENT_860026365 = 0
FINSI
#trace1(">>>__LINE__>>>__FILE__>> b_CALLEDPREFIX_PRESENT =<%d>   1=OUI",b_CALLEDPREFIX_PRESENT)

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

################################################
# Criteres communes pour FERPV
################################################
# modification sur tacc ajout CALL_TYPE_PRESENT et ENVOI_FACTURATION
# plus de tests sur text1 FT   (text1 == 1) &&
# evol prefixe  8588 ou 85880 (extraction pt_prefix modifiee)
# evol CalledPREFIX (interrogation table externe)
crit_ok_860026365 = 0

# G3R24 suppression de (&& !srp_itx) 
# DRE G4R6 Lot3
#SI ( efficace && idus_inf != 0xC0 && idus_inf != 0xFF && !b_CALLEDPREFIX_PRESENT && b_CALL_TYPE_PRESENT 
#  && b_ENVOI_FACTURATION && !rejet )
SI ( efficace_860026365 && idus_inf_860026365 != 0xC0 && idus_inf_860026365 != 0xFF && !b_CALLEDPREFIX_PRESENT_860026365 && b_CALL_TYPE_PRESENT_860026365 
  && b_ENVOI_FACTURATION_860026365 && !rejet_860026365 && typ_ctr_860026365 != CPT_CPS_RI_860026365 )

ALORS
	crit_ok_860026365 = 1
FINSI

#trace1(">>>__LINE__>>>__FILE__ crit_ok=<%d>",crit_ok)

##############################################################################
# Envoi Requetes Table de Distribution
# Suppression car FCT supprimee
##############################################################################

############################################################################
# Elimines explicites en DIVERS
############################################################################

# Neant

##########################################################################
# Recherche instance Symphonie et SPOT
##########################################################################

# SYMP
instSYMP_860026365 = -1
instSYMP_860026365=i_LireInstanceECC(INST_SYMP_860026365)

SI (!instSYMP_860026365)
ALORS
	#trace1("[Tvoipvpn2_dis]Pas d'instance pour SYMP ! instSYMP=<%d>",instSYMP)
	erreur_860026365 = i_PlvMessEmettre(8501,2,g_iartout,"",3,"SYMPH",C_Article_860026365,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("[Tvoipvpn2_dis]Symphonie OK instSYMP=<%d>",instSYMP)

# DRE G4R6 lot3 ligne remontees
# SPOT
instSPOT_860026365=i_LireInstanceECC(C_InstSPOT_860026365)

SI (!instSPOT_860026365)
ALORS
	#trace("Pas d'instance pour SPOT !")
	code_errone_860026365 = 0xA0B0
	code_errone_860026365 = code_errone_860026365 + efficace_860026365
	erreur_860026365 = i_PlvMessEmettre(8601,2,g_iartout,"",3,code_errone_860026365,C_InstSPOT_860026365,C_Article_860026365)
	SAUT DISTRI_ERR
FINSI
#erreur=i_AjouterCouranteECC(instSPOT)
#trace1("instSPOT=<%d>",instSPOT)

############################################################################
# Recherche Instances des ECC autres que Symphonie et SPOT
############################################################################

#---------FERPV---(seule ECC destinatrice de VoipVpn)------
instFERPV_860026365 = -1
instFERPV_860026365 = i_LireInstanceECC("FERPV")

SI (!instFERPV_860026365)
ALORS
	#trace1("[Tvoipvpn2_dis]Pas d'instance pour FERPV ! instFERPV=<%d>",instFERPV)
	erreur_860026365 = i_PlvMessEmettre(8501,2,g_iartout,"",3,"FERPV",C_Article_860026365,g_ieec)
	SAUT DISTRI_ERR
FINSI


#---------------------------------------------------------------------------
# SYMPHONIE criteres de distribution (tous les DC sauf les redistribues)
#---------------------------------------------------------------------------

# DRE G4R6 Lot3
SI (trait_ok_860026365 == 0)
ALORS
	res_860026365=i_AjouterCouranteECC(instSYMP_860026365)
	res_860026365=i_AjouterCouranteECC(instSPOT_860026365)
FINSI
# \DRE G4R6 Lot3


############################################################################
# Duplication Symphonie (g_iartout6)
############################################################################

# DRE G4R6 Lot3
SI (!i_ChercherCouranteECC(instSYMP_860026365))
ALORS
	# On fait ici le traitement du CODCIR et du CODCIRDR avant la duplication car le format des champs est different
	# entre l entree et la sortie Symphonie
	
	# CODCIRDR (a partir de g_iartout : recuperation de pt_codcirdr et suppression T4codcirdr)
	SI (i_valid_field_n(g_iartout,$Tvoipvpn2::CODCIRDR))
	ALORS
		#trace("[Tvoipvpn2_dis]CODCIRDR est valide")
		i_strcpy(pt_codcirdr_860026365, " ")
		erreur_860026365=i_get_art_str(g_iartout, $Tvoipvpn2::CODCIRDA,pt_codcirdr_860026365)
	
		SI (g_iartout.CODCIRDA[2] > 9)
		ALORS
			i_get_sub_str(pt_codcirdr_860026365,2,5,pt_codcirdr_860026365)
		SINON
			i_get_sub_str(pt_codcirdr_860026365,1,5,pt_codcirdr_860026365)
		FINSI
		erreur_860026365=i_supprChamp(g_iartout,"T4codcirdr")
	FINSI
	
	# CODCIR (a partir de g_iartout : recuperation de pt_codcir et suppression T4codcir)
	SI (i_valid_field_n(g_iartout,$Tvoipvpn2::CODCIR))
	ALORS
		#trace("[Tvoipvpn2_dis]CODCIR est valide")
		i_strcpy(pt_codcir_860026365, " ")
		erreur_860026365=i_get_art_str(g_iartout, $Tvoipvpn2::CODCIRA,pt_codcir_860026365)
	
		SI (g_iartout.CODCIRA[2] > 9)
		ALORS
			i_get_sub_str(pt_codcir_860026365,2,5,pt_codcir_860026365)
		SINON
			i_get_sub_str(pt_codcir_860026365,1,5,pt_codcir_860026365)
		FINSI
		erreur_860026365=i_supprChamp(g_iartout,"T4codcir")
	FINSI
	
	#trace("[Tvoipvpn2_dis]duplication vers sym")
	
	SI (i_dup_art_id(g_iartout,g_iartout6))
	ALORS
		#trace("[Tvoipvpn2_dis]ERREUR envoi distri errone i_dup_art_id g_iartout6")
		erreur_860026365 = i_PlvMessEmettre(8502,2,g_iartout,"",3,"pour Symphonie",C_Article_860026365,g_ieec)
		SAUT DISTRI_ERR
	FINSI
	
	SI (i_rename_art(g_iartout6,"TsymTvoipvpn2"))
	ALORS
		#trace("[Tvoipvpn2_dis]ERREUR envoi distri errone i_rename_art g_iartout6 ")
		erreur_860026365 = i_PlvMessEmettre(8502,2,g_iartout,"",3,"pour Symphonie",C_Article_860026365,g_ieec)
		SAUT DISTRI_ERR
	FINSI

FINSI	

##############################################################################
# FCT supprimee (G3R3 lot2)
##############################################################################


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

#---------------------------------------------------------------------------
# FCT		 supprimee
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# FERPV
#---------------------------------------------------------------------------

b_FERPV_860026365 = 0
SI ( crit_ok_860026365 && !InterEtelVoIp_860026365 && (!i_valid_field_n(g_iartout, $Tvoipvpn2::T3_DETRR) || b_DETR_B_NUM_860026365))
ALORS
	res_860026365=i_AjouterCouranteECC(instFERPV_860026365)
	i_strcpy(pt_eccfact_860026365,"FE")
# DRE G4R6 Lot3
	b_FERPV_860026365 = 1
	#trace1("[Tvoipvpn2_dis]FERPV NOK  efficace=%d",efficace)
	#trace1("[Tvoipvpn2_dis]FERPV NOK  idus_inf=%x",idus_inf)
	#trace2("[Tvoipvpn2_dis]FERPV NOK  pt_prefix=%s",pt_prefix,"")
FINSI


# DRE G4R6 Lot3
SI (bREDIST_860026365 == 1 )
ALORS
	SAUT AVANT_REDIST
FINSI
# \DRE G4R6 Lot3



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

#---------------------------------------------------------------------------
# FERPV (g_iartout2)
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instFERPV_860026365))
ALORS
	#trace("[Tvoipvpn2_dis]Stockage vers FERPV")

	# Duplication article en entree
	SI (i_dup_art_dest( g_iartout, g_iartout2, "Tfe_rpv" ))
	ALORS
		#trace("[Tvoipvpn2_dis]ERREUR envoi errone distri i_dup_art_dest g_iartout2")
		erreur_860026365 = i_PlvMessEmettre(8502,2,g_iartout,"",3,"Tfe_rpv","Tvoipvpn2",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# SERVICE (voir fichier duplication : Tvoipvpn2_Tfe_rpv)

	# SOURCE
	erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::SOURCE,"09")

	# TYPCOM,SUPPORT : si TACC(pt_1) == 7 (IP/IP)
	# alors TYPCOM = '' (indetermine) et SUPPORT=6, sinon TYPCOM=4 (Off-Net) et SUPPORT=0 (parole)
	#trace(">>>__LINE__>>>__FILE__ debut choix TYPCOM et SUPPRT pour FE")
	#trace1("  >>>__LINE__>>>__FILE__ INTER_VOIP_ETEL   <%d>",InterVoIpEtel)
	#trace1("  >>>__LINE__>>>__FILE__ CALL_TYPE_PRESENT <%d>",b_CALL_TYPE_PRESENT)
	#trace1("  >>>__LINE__>>>__FILE__ ENVOI_FACTURATION <%d>",b_ENVOI_FACTURATION)
	#trace1("  >>>__LINE__>>>__FILE__ APPEL_FACTURABLE  <%d>",b_APPEL_FACTURABLE)

	#SUUPORT alpha
	SI InterVoIpEtel_860026365
	ALORS
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::TYPCOM," ")
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::SUPPORT,"6")
		#trace("    TYPCOM  < > 1 espace")
		#trace("    SUPPORT <6>")
	SINON
		SI(b_APPEL_FACTURABLE_860026365 == 0)
		ALORS
			erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::TYPCOM," ")
			erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::SUPPORT,"6")
			#trace("    TYPCOM  < > 1 espace")
			#trace("    SUPPORT <6>")
		SINON
			erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::TYPCOM, "4")
			erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::SUPPORT,"0")
			#trace("    TYPCOM  <4>")
			#trace("    SUPPORT <0>")
		FINSI
	FINSI
	#trace(">>>__LINE__>>>__FILE__ fin choix TYPCOM et SUPPRT pour FE")

	# NUMDDR (IDUSNUM precede de 0)
	i_strcpy(pt_1_860026365, " ")
	i_strcpy(pt_2_860026365, " ")
	erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::IDUS_NUM, pt_1_860026365)
	erreur_860026365 = i_format_str2(pt_2_860026365,"%s%s","0",pt_1_860026365)
	erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NUMDDR,pt_2_860026365)

	# NUMDDE (DETR_N sinon IP)
	# NUMDDE : 0 si national, 00 si international

	SI (b_DETR_B_NUM_860026365 ==1)
	ALORS
		#trace1("[Tvoipvpn2_dis]DETR present b_DETR_B_NUM=%d",b_DETR_B_NUM)
		#trace1("[Tvoipvpn2_dis]DETR present detr_inf=%d",detr_inf)
		i_strcpy(pt_1_860026365, " ")
		#i_strcpy(pt_2, " ")
		erreur_860026365 = i_get_art_str(g_iartout,$Tvoipvpn2::DETR_NUM, pt_1_860026365)
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NUMDDE,pt_1_860026365)
		##trace2("[Tvoipvpn2_dis]DETR present =%s",pt_1,"")
	SINON
		#trace1("[Tvoipvpn2_dis]DETR absent b_DETR_B_NUM=%d",b_DETR_B_NUM)
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NUMDDE,"IP")
	FINSI

	# DEBUT
	erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::DEBUT,hlahm1_860026365)

	# DUREE
	duree_860026365 = 0
	duree_860026365 = i_get_art_field(g_iartout,$Tvoipvpn2::Duree)
	erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::DUREE,duree_860026365)

	# NbUT
	# G3R24
	#SI (ccd == 0x18 || ccd == 0x1B || b_Emessage_IP == 1 )
	#DRE G4R6 Lot3
	SI (typ_ctr_860026365==CPT_CPS_Loc_860026365)
	ALORS
		erreur_860026365=i_set_art_field(g_iartout2, $Tfe_rpv::NBUT, 0)
	SINON
		SI ( b_SRP_TIERS_PTD_860026365 || b_118_TIERS_PTD_860026365 || b_Emessage_IP_860026365 == 1 )
		ALORS
			erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::NBUT,NbUT_860026365)
		SINON
			erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::NBUT,0)
		FINSI
	FINSI

	# MTHSTD
	SI (typ_ctr_860026365!=CPT_CPS_Loc_860026365)
	ALORS
		erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::MTHSTD,vcdr2_860026365)
	# DRE G4R6 QC813
	SINON
		erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::MTHSTD,0)
	FINSI

	# CANAL
	erreur_860026365 = i_set_art_field(g_iartout2,$Tfe_rpv::CANAL,0)

	# NBCOD (voir fic dup Tvoipvpn2_Tfe_rpv)
	# C_CSVI (voir fic dup Tvoipvpn2_Tfe_rpv)
	# TYPACCRI (voir fic dup Tvoipvpn2_Tfe_rpv)

	# NOCOMP

	# Calcul variable fonctionnelle : b_DECO_B_NUM (vrai si DECO est numerique)
	SI  (i_valid_field_n(g_iartout, $Tvoipvpn2::T3_DECO))
	ALORS
		erreur_860026365=i_get_art_str(g_iartout, $Tvoipvpn2::DECO, pt_DECO_860026365)
		longueur_860026365 = i_strlen(pt_DECO_860026365)
		indice_860026365 = 0
		POINT BOUCLE_DECO

		SI (indice_860026365 < longueur_860026365)
		ALORS
			i_get_sub_str(pt_DECO_860026365, indice_860026365, indice_860026365, pt_1_860026365)

			SI (i_adequation_chaine_expreg (pt_1_860026365,"[0-9]") == 0)
			ALORS
				indice_860026365=indice_860026365 + 1
				SAUT BOUCLE_DECO
			SINON
				b_DECO_B_NUM_860026365 = 0
			FINSI
		SINON
			b_DECO_B_NUM_860026365 = 1
		FINSI
	SINON
		b_DECO_B_NUM_860026365 = 0
	FINSI

	SI (b_DECO_B_NUM_860026365)
	ALORS
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NOCOMP,pt_DECO_860026365)
	SINON
		erreur_860026365 = i_memset_field_n(g_iartout2, $Tfe_rpv::NOCOMP, 0x40)
	FINSI

	# NOORIG
	# suppression prefixe 33 et ajout 0 (variable fonctionnelle NORIG)

	# Calcul variable fonctionnelle : b_NOORIG_B_NUM (vrai si NOORIG est numerique)
	SI  (i_valid_field_n(g_iartout, $Tvoipvpn2::T3_NOORIG))
	ALORS
		erreur_860026365=i_get_art_str(g_iartout, $Tvoipvpn2::NOORIG, pt_NOORIG_860026365)
		longueur_860026365 = i_strlen(pt_NOORIG_860026365)
		indice_860026365 = 0
		POINT BOUCLE_NOORIG

		SI (indice_860026365 < longueur_860026365)
		ALORS
			i_get_sub_str(pt_NOORIG_860026365, indice_860026365, indice_860026365, pt_1_860026365)

			SI (i_adequation_chaine_expreg (pt_1_860026365,"[0-9]") == 0)
			ALORS
				indice_860026365=indice_860026365 + 1
				SAUT BOUCLE_NOORIG
			SINON
				b_NOORIG_B_NUM_860026365 = 0
			FINSI
		SINON
			b_NOORIG_B_NUM_860026365 = 1
		FINSI
	SINON
		b_NOORIG_B_NUM_860026365 = 0
	FINSI

	# elimination prefixe 33 et DOM-TOM (selon variable fonctionnelle spec : NORIG)
	SI (b_NOORIG_B_NUM_860026365)
	ALORS
		SI ( i_strplcmp ( pt_NOORIG_860026365, "33", 0, 2) == 0 )
		ALORS
			i_get_sub_str(pt_NOORIG_860026365, 2, -1, pt_3_860026365)
			erreur_860026365 = i_format_str2(pt_2_860026365,"%s%s","0",pt_3_860026365)
			erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NOORIG,pt_2_860026365)
		SINON
			SI ( ( i_strplcmp ( pt_NOORIG_860026365, "590", 0, 3) == 0) || ( i_strplcmp ( pt_NOORIG_860026365, "594", 0, 3) == 0) 
			  || ( i_strplcmp ( pt_NOORIG_860026365, "596", 0, 3) == 0) || ( i_strplcmp ( pt_NOORIG_860026365, "262", 0, 3) == 0) )
			ALORS
				i_get_sub_str(pt_NOORIG_860026365, 3, -1, pt_2_860026365)
				erreur_860026365 = i_format_str2(pt_3_860026365,"%s%s","0",pt_2_860026365)
				erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NOORIG,pt_3_860026365)
			SINON
				erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::NOORIG,pt_NOORIG_860026365)
			FINSI
		FINSI
	SINON
		erreur_860026365 = i_memset_field_n(g_iartout2, $Tfe_rpv::NOORIG, 0x40)
	FINSI

	#NATAPPRI (voir fic dup Tvoipvpn2_Tfe_rpv)

	# CCD 
	SI ( ccd_reel_860026365 != 0xff )
	ALORS
		# permet de rajouter les 0 devant la valeur du CCD Ex : 014
		# ccd_reel = ccd_reel + 1000
		# conversion de numerique Hexa en DCB
		erreur_860026365 = i_set_art_field(g_iartout10,$Conversion::CCD, ccd_reel_860026365 + 1000)
		# conversion de DCB en pt chaine EBCDIC
		erreur_860026365 = i_conv_field("CCD",g_iartout10, 2, g_iartout2, 4,0)
		i_strcpy(pt_1_860026365, " ")
		erreur_860026365 = i_get_art_str(g_iartout2,$Tfe_rpv::CCD,pt_1_860026365)
		# suppresion du premier caractere (1)  Ex: 1014 devient 014
		i_get_sub_str(pt_1_860026365,1,3,pt_2_860026365)
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::CCD,pt_2_860026365)
	SINON
		erreur_860026365 = i_set_art_str(g_iartout2,$Tfe_rpv::CCD,"255")
	FINSI

	#DDR_RMTA (voir fic dup Tvoipvpn2_Tfe_rpv)

	#INFDDE
	erreur_860026365 = i_set_art_field(g_iartout10,$Conversion::INF, detr_inf_860026365)
	erreur_860026365 = i_get_art_str( g_iartout10, $Conversion::INF, pt_1_860026365 )
	erreur_860026365 = i_format_str2( pt_2_860026365, "%s%s", "000", pt_1_860026365)
	i_get_sub_str (pt_2_860026365, -3, -1,pt_2_860026365)
	erreur_860026365 = i_set_art_str(g_iartout2, $Tfe_rpv::INFDDE, pt_2_860026365)

	#par duplication :
	#PREF_PORT
	#TAG
	
# DRE G4R6 Lot3

	# TYPE_EDIT
	erreur_860026365=i_set_art_str(g_iartout2, $Tfe_rpv::TYPE_EDIT, pt_TYPE_EDIT_860026365)
	
	# CODE_TARIF
	erreur_860026365=i_set_art_str(g_iartout2, $Tfe_rpv::CODE_TARIF, pt_CODE_TARIF_860026365)
# \DRE G4R6 lot3
	
	
	#FILLER
FINSI

#---------------------------------------------------------------------------
# FCT	(g_iartout7) supprimee
#---------------------------------------------------------------------------

#----------------------------------------------------------------------------
# Symphonie  (g_iartout6) tous les DC vont a Symphonie sauf les redistribues
# TsymTvoipvpn2
#----------------------------------------------------------------------------

POINT AVANT_REDIST
SI ( !i_ChercherCouranteECC(instSYMP_860026365))
ALORS
	# IDUS_INF
	# ATTENTION IDUS EST depend aussi de CalledPUBNDI
	SI (!i_valid_field_n(g_iartout, $Tvoipvpn2::T3_NDR))
	ALORS
		erreur_860026365=i_supprChamp(g_iartout,"T4idus")
	FINSI

	# CODCIRDR
	erreur_860026365=i_ajoutChampNum(g_iartout6,$TsymTvoipvpn2::T4codcirdr,$TsymTvoipvpn2::CODCIRDR,0)
	erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::CODCIRDR, pt_codcirdr_860026365)

	# CODCIR
	erreur_860026365=i_ajoutChampNum(g_iartout6,$TsymTvoipvpn2::T4codcir,$TsymTvoipvpn2::CODCIR,0)
	erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::CODCIR, pt_codcir_860026365)

	# ECCFACT
	erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::ECC_FACT, pt_eccfact_860026365)

	# SGTQS
	erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::SGTQS, pt_sgtqs_860026365)

	#CCD, FO 1369
	erreur_860026365=i_set_art_field(g_iartout6, $TsymTvoipvpn2::CCD, ccd_reel_860026365)
	
	# DRE G4R6 Lot3
	# TYPE_EDIT
	SI i_strcmp(pt_TYPE_EDIT_860026365," ") != 0
	ALORS
		erreur_860026365 = i_ajoutChampNum(g_iartout6, $TsymTvoipvpn2::T4type_edit,$TsymTvoipvpn2::TYPE_EDIT,0)
		erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::TYPE_EDIT, pt_TYPE_EDIT_860026365)
	FINSI

	# CODE_TARIF
	SI i_strcmp(pt_CODE_TARIF_860026365,"    ") != 0
	ALORS
		erreur_860026365 = i_ajoutChampNum(g_iartout6, $TsymTvoipvpn2::T4code_tarif,$TsymTvoipvpn2::CODE_TARIF,0)
		erreur_860026365=i_set_art_str(g_iartout6, $TsymTvoipvpn2::CODE_TARIF, pt_CODE_TARIF_860026365)
	FINSI
# \DRE G4R6 Lot3
	

	##################################################################
	# Article inefficace => suppression des champs non significatifs #
	##################################################################

	SI ( efficace_860026365 == 0 )
	ALORS
		#trace1("[Tvoipvpn2_dis]ni T4codcir T4codcirdr pour symph cat  efficace=%d", efficace)
		erreur_860026365 = i_supprChamp(g_iartout6, "T4codcir")
		erreur_860026365 = i_supprChamp(g_iartout6, "T4codcirdr")
	FINSI

	SI (( b_DETR_B_NUM_860026365 == 0 ) || ( idus_inf_860026365 == 0xFF))
	ALORS
		#trace1("[Tvoipvpn2_dis]ni T4codcir T4codcirdr T4detr pour symph cat b_DETR_B_NUM=%d",b_DETR_B_NUM)
		erreur_860026365 = i_supprChamp(g_iartout6, "T4codcir")
		erreur_860026365 = i_supprChamp(g_iartout6, "T4codcirdr")
		erreur_860026365 = i_supprChamp(g_iartout6, "T4tax1")

		SI ( b_DETR_B_NUM_860026365 == 0 )
		ALORS
			erreur_860026365 = i_supprChamp(g_iartout6, "T4detr")
		FINSI

		SI ( idus_inf_860026365 == 0xFF)
		ALORS
			erreur_860026365 = i_supprChamp(g_iartout6, "T4idus")
		FINSI
	FINSI


	####################################################
	# Suppression des champs temporaires de l ajout CE #
	####################################################

	erreur_860026365 = i_supprChamp(g_iartout6, "DETR_NUM")
	erreur_860026365 = i_supprChamp(g_iartout6, "IDUS_NUM")
	erreur_860026365 = i_supprChamp(g_iartout6, "T4vcdr2")
	erreur_860026365 = i_supprChamp(g_iartout6, "T4vcut")

	############################################################################
	# envoi vers SYMPHONIE
	############################################################################

	erreur_860026365 = i_stocke_art_iecc(g_iartout6,instSYMP_860026365)
FINSI

###################################################################################
## Recherche des instances
###################################################################################
## SPOT
#instSPOT=i_LireInstanceECC(C_InstSPOT)
#
#SI (!instSPOT)
#ALORS
#	#trace("Pas d'instance pour SPOT !")
#	code_errone = 0xA0B0
#	code_errone = code_errone + efficace
#	erreur = i_PlvMessEmettre(8601,2,g_iartout,"",3,code_errone,C_InstSPOT,C_Article)
#	SAUT DISTRI_ERR
#FINSI
#erreur=i_AjouterCouranteECC(instSPOT)
##trace1("instSPOT=<%d>",instSPOT)

##################################################################################
# Mise au format pour SPOT (g_iartout7)
##################################################################################
SI ( !i_ChercherCouranteECC(instSPOT_860026365) )
ALORS
	#trace("duplication Vers SPOT")

	SI (i_dup_art_id(g_iartout,g_iartout7))
	ALORS
		erreur_860026365 = i_PlvMessEmettre(8502,2,g_iartout,"",3,"pour SPOT","Tvoipvpn2",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	SI ( i_valid_field_n(g_iartout7,$Tvoipvpn2::T3ace))
	ALORS
		erreur_860026365 = i_supprChamp(g_iartout7,"T3ace")
	FINSI

	SI (i_rename_art(g_iartout7,C_TspotTvoipvpn2_860026365))
	ALORS
		#trace("ERREUR i_rename_art spot")
		erreur_860026365 = i_PlvMessEmettre(8502,2,g_iartout,"",3,"pour SPOT","Tvoipvpn2",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	#---------------------------------------------------------------------------------
	# Complements SPOT
	#---------------------------------------------------------------------------------

	# Champ SGTQS
	erreur_860026365 = i_ajoutChampNum(g_iartout7,$TspotTvoipvpn2::T4sgtqs,$TspotTvoipvpn2::SGTQS,0)
	erreur_860026365=i_set_art_str(g_iartout7,$TspotTvoipvpn2::SGTQS, pt_sgtqs_860026365)
	
	#-------------------------------------------------------------------------
	# Envoi vers SPOT	g_iartout7
	#-------------------------------------------------------------------------

	res_860026365 = i_stocke_art_iecc(g_iartout7, instSPOT_860026365)
	#trace1("retour de i_stocke_art_iecc pour SPOT_ETEL : %d",res)

FINSI


############################################################################
# Envoi vers IECC (autres que Symphonie et SPOT
############################################################################
# DRE G4R6 Lot3 envoi en redist si bREDIST = 1 et FERPV destinataire
SI (bREDIST_860026365 == 1 && b_FERPV_860026365 == 1)
ALORS
	SAUT DISTRI_REDIST
FINSI
# \DRE G4R6 Lot3

#---------------------------------------------------------------------------
# FCT supprimee
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# FERPV
#---------------------------------------------------------------------------

SI (!i_ChercherCouranteECC(instFERPV_860026365) )
ALORS
	res_860026365 = i_stocke_art_iecc( g_iartout2, instFERPV_860026365 )
FINSI
#trace("[Tvoipvpn2_dis]Fin du Pcode de distribution Tvoipvpn2")

RETOUR TRAIT_OK

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

POINT DISTRI_ERR

#trace( "[Tvoipvpn2_dis]Stockage en errone de distribution")
res_860026365 = i_make_art_rej(g_iartin, g_iartout8, 0)
res_860026365 = i_stocke_art( g_iartout8, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

# DRE G4R6 lot3
###########################################################################
# Stockage pour redistribution
###########################################################################

POINT DISTRI_REDIST

trace("Stockage pour redistribution")

SI (trait_ok_860026365 == 0)
ALORS
	erreur_860026365 = i_PlvMessEmettre(8503,2,g_iartin,"",3,pt_LIBELREDIST_860026365,C_Article_860026365,pt_sgtqs_860026365)
FINSI

res_860026365 = i_stocke_art(g_iartin, 0, PT_REDIST|RD_TABLE5, 0)

RETOUR TRAIT_OK

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

POINT ELIMINE_EXP

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

RETOUR TRAIT_OK

# \DRE G4R6 lot3

#---------------------------------------FIN Tvoipvpn2_dis.src-------------------
