DEFINITION C_Article_860026370 "Tetelephonie"
DEFINITION INST_ACLA_860026370 "ACLA"
DEFINITION C_InstSPOT_860026370 "SPOT_ETEL"
DEFINITION C_TspotTeteleph_860026370 "TspotTeteleph"
DEFINITION C_InstAFDB_860026370 "AFDBETEL"
DEFINITION C_TafdbEtel_860026370 "TafdbEtel"
DEFINITION C_InstCASPER_860026370 "CASPER"
DEFINITION T_Inter_BTIP_ETEL_860026370 "Inter_BTIP_ETEL"
DEFINITION T_SBC_OPITML_860026370 "SBC_OPITML"
DEFINITION C_COD_BAS_CASPER_860026370 "88A"
DEFINITION TYPCTR_Fact_LOC_860026370 16
DEFINITION C_DATCPS_860026370 "DATCPS"
DEFINITION TD_SVA_860026370 9
DEFINITION C_INST_ALICE_860026370 "ALICE"
DEFINITION TYPCTR_Fact_RI_860026370 17
REGISTRE ENTIER instFERPV_860026370
REGISTRE ENTIER instSYMP_860026370
REGISTRE ENTIER instTRAFIC_860026370
REGISTRE ENTIER instSPOT_860026370
REGISTRE ENTIER instACLA_860026370
REGISTRE ENTIER instAFDB_860026370
REGISTRE ENTIER instCASPER_860026370
REGISTRE ENTIER instFE_860026370
REGISTRE ENTIER tap_860026370
REGISTRE ENTIER hlahm1_860026370
REGISTRE ENTIER vcdr2_860026370
REGISTRE ENTIER ccd_860026370
REGISTRE ENTIER erreur_860026370
REGISTRE ENTIER res_860026370
REGISTRE ENTIER inf_860026370
REGISTRE ENTIER nos_present_860026370
REGISTRE ENTIER longueur_860026370
REGISTRE ENTIER longueur_NOS_860026370
REGISTRE ENTIER gmt_date_860026370
REGISTRE ENTIER bREDIST_860026370
REGISTRE ENTIER bFERPV_860026370
REGISTRE ENTIER trait_ok_860026370
REGISTRE ENTIER detr_nat_860026370
REGISTRE ENTIER detr_dom_860026370
REGISTRE ENTIER modif_860026370
REGISTRE ENTIER simulation_call_860026370
REGISTRE ENTIER nelem_860026370
REGISTRE ENTIER EPORTABILITE_860026370
REGISTRE ENTIER vc_860026370
REGISTRE ENTIER code_errone_860026370
REGISTRE ENTIER EFFICACE_860026370
REGISTRE ENTIER REJET_860026370
REGISTRE ENTIER TYPCTR_860026370
REGISTRE ENTIER EPORTABILITE_SCP_860026370
REGISTRE ENTIER SPORTABILITE_SCP_860026370
REGISTRE ENTIER CCD_REEL_860026370
REGISTRE ENTIER CCD_REEL_FERPV_860026370
REGISTRE ENTIER InterEtelVoIpVpn_860026370
REGISTRE ENTIER SANS_IDUS_860026370
REGISTRE ENTIER VAL_INF_860026370
REGISTRE ENTIER b_DIST_CASPER_860026370
REGISTRE ENTIER b_NOS_NUM_public_860026370
REGISTRE ENTIER b_Emessage_IP_860026370
REGISTRE ENTIER b_118_TIERS_PTD_860026370
REGISTRE ENTIER b_SRP_TIERS_PTD_860026370
REGISTRE ENTIER b_Fact_CPS_Loc_860026370
REGISTRE ENTIER Date_CPS_860026370
REGISTRE ENTIER instALICE_860026370
REGISTRE ENTIER b_ALICE_860026370
REGISTRE ENTIER val_860026370
REGISTRE ENTIER b_Fact_CPS_RI_860026370
REGISTRE POINTEUR pt_sgtqs_860026370
REGISTRE POINTEUR pt_eccfact_860026370
REGISTRE POINTEUR pt1_860026370
REGISTRE POINTEUR pt2_860026370
REGISTRE POINTEUR pt_inst_860026370
REGISTRE POINTEUR pt_LIBELREDIST_860026370
REGISTRE POINTEUR pt_codcir_860026370
REGISTRE POINTEUR pt_codcirdr_860026370
REGISTRE POINTEUR pt_InfoCompl_860026370
REGISTRE POINTEUR pt_call_type_860026370
REGISTRE POINTEUR pt_DEDE_N_860026370
REGISTRE POINTEUR pt_CodeOp_860026370
REGISTRE POINTEUR pt_DEDE_TRAFIC_860026370
REGISTRE POINTEUR pt_CODESCP_860026370
REGISTRE POINTEUR pt_TerminCallee_860026370
REGISTRE POINTEUR pt_TerminCallee_sans_33_860026370
REGISTRE POINTEUR pt_len_prefixe_860026370
REGISTRE POINTEUR pt_cod_bas_860026370
REGISTRE POINTEUR pt_SourceIP_860026370
REGISTRE POINTEUR pt_SourceIP_sans_port_860026370
REGISTRE POINTEUR pt_DestinationIP_860026370
REGISTRE POINTEUR pt_DestinationIP_sans_port_860026370
REGISTRE POINTEUR pt_MESSAGE_860026370
REGISTRE POINTEUR pt_CODE_TARIF_860026370
REGISTRE POINTEUR pt_TYPE_EDIT_860026370
REGISTRE POINTEUR pt_NDE_860026370
REGISTRE POINTEUR pt_NORM_860026370
REGISTRE POINTEUR pt_BUF_860026370
############################################################################
# Pcode de  DISTRIBUTION
# Fichier : Tetel.src
#
# En entree :
#    Article : Tetelephonie
#
# En sortie :
#		TRAFIC		- g_iartout2	- TtraficN
#		FERPV		- g_iartout		- Tfe_rpv
#		FCT			- g_iartout7	- Tfct
#		SYMPH		- g_iartout6	- TsymTetelephonie	- Tous les DC
#		SPOT_ETEL	- g_iartout5	- TspotTeteleph		- Tous les DC
#		AFDBETEL	- g_iartout8	- TafdbEtel		- Tous les DC
#		CASPER 		- g_iartout3	- TcasperTeteleph
#	01/04/05 - DRE - G2R1Cm Facturation des appels vers SRP tiers avec ITX depuis des origines IP
#	24/08/05 - DRE - Mise a jour du pcode Tetel en fonction du pcode Tetelephonie
#	29/09/05 - PSA - Fusion Co (integration Cj sur socle Cu)
#	17/10/05 - PSA - G2R2Co : FO 1515 : filtrage complet des DC 119
#	16/11/05 - PSA - G2R2Co : FO1525 : differenciation Mayotte et Comores
#	09/02/06 - PKH - G2R2Ca : FO1714 : Calltype 3 =>Support 7 et Calltype 2 => Support 6
#	12/07/06 - FAL - G2R1Cu FO1884 RTC-ip et RTC-ip Service vers symphonie meme si err BNC
#	13/09/06 - DRE - G2R2Ct interrogation table NARxyz pour 118_FRT avec ETELxxxxxxxxx
#	28/09/06 - JLG - G2R2Cv FO1515 plus d'actualite, on envoi a symphonie les DC avec REJET3 (appel 119 enfance maltraitee)
#	29/09/06 - JLG - G2R2Cv : creation SPOT_ETEL (differente de SPOT pour TdevilCS)
#	19/10/06 - JLG - G2R2Cv FO2001 evol duplication vers SPOT
#	06/11/06 - JLG - G2R2Cv FO2016 traces erreur "CALL_TYPE absent" DC venant de redistribution
#	01/03/07 - FAL - G3R0Cw suppression de FCT et fin FO1121
#	04/04/07 - RHE - G3R0Cb nouveaux champs - suupression code pays vers TRAFIC
#	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)
#	03/07/07 - THE - Fusion ParamFTSA-G3R2 FO 2196
#	10/07/07 - FAL - Fusion ParamFTSA-G3R2 FO 2199 critere pour ebill avec Calltype 7 et sans FERPV
#	28/12/07 - PKH - G3R5 lot2 suppression contole croise sur champ SelectorIN et OrigindCaller
#	25/03/08 - JLG - G3R6 FO2357 evol spec 21.1
#	21/04/08 - THE - Param FTSA-G3R7 modif champ TAX pour E_bill
#	01/02/10 - DRE - G3R16 Menage e-bill (Allofact)
#	26/10/2010 PKH - QC428 G3R18Cy creation du champ INFDDE pour Tfe_rpv et valorisation du demande
#	10/11/2010 PKH - QC428 G3R19C1 Correction de la valorisation du champ INFDDE pour FERPV
#	03/02/2011 THE - G3R20 Tous les DC vont aussi a AFDB
#	15/07/2011 RHE - G3R21CY
#	28/07/2011 RHE - G3R22 QC504 (DATE_LOCALE pour AFDB)
#	28/07/2011 RHE - G3R22 QC505 dist CASPER si DestinationIP dans SBC_OPITML
#	08/08/2011 THE - G3R22 QC 507 valeur retour table SBC_OPITML = 88A
#	05/10/2011 THE - G3R22 QC523 champ Norig pour FE et QC524 interrogation table externe SBC_OPITML
#	22/11/2011 RHE - G3R23 suppression interrogation NARxyz
#	16/11/2011 THE - G3R22C5 QC543 reprise "instFE" + NDS_NUM pour TRAFIC QC548 (QC523 )
#	20/01/2012 THE - VerifPcode
#	21/03/2012 THE - G3R24 Nouveau palier tarifaire audiotel tiers 0898PQ depuis la VoIP
#	11/02/2013 DRE - G4R02 : QC679 N'interroger la table externe Inter_BTIP_ETEL que si le numero demande commence par le code pays 33
# 11/04/2014 PSA - G4R6 lot 3 : C+S appelant
#	13/05/2014 THE - G4R6 lot 3 : QC812
#
############################################################################


#G3R22 QC507

# G4R6 Lot3

# /G4R6 Lot3

# VerifPcode
#G3R22C5 QC543

# G3R22C5 QC543
# G3R24

#G4R6 lot 3 : C+S appelant

# /G4R6 Lot3


# G4R6 Lot3
# /G4R6 Lot3

#trace(" ##__LINE__## Distribution - : __FILE__ #### ")

pt_CodeOp_860026370	 = "6666666666666666666666666666666666666666666666666666666666666666"
pt_DEDE_N_860026370	 = "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"
pt_DEDE_TRAFIC_860026370	 = "5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234560123456789012345678901234567890123456789012345678901234567890123456789012345678"
pt_sgtqs_860026370	 = "12345678901234567890"
pt_eccfact_860026370	 = "789078907890"
pt1_860026370		 = "66643765678906454533656456456666437656789064545336564564566664376567890645453365645645666643765678906454533656456456666437656789064545336564564566664376567890645453365645645666643765678906454533656456456666437656"
pt2_860026370		 = "98678567456342357786789456456986785674563423577867894564569867856745634235778678945645698678567456342357786789456456867894564569867856745634235778678945645698678567486789456456986785674563423577867894564569867856"
pt_codcir_860026370	 = "8888888888"
pt_codcirdr_860026370	 = "9999999999"
pt_InfoCompl_860026370	 = "33312345"
pt_inst_860026370		 = "46789512312345"
pt_call_type_860026370	 ="0123"
pt_LIBELREDIST_860026370	 = "202020202020202020202020202020123456789012345202020202020202020202020202020123456789012345202020202020202020202020202020123456789012345202020202020202020202020202020123456789012345202020202020202020202020202020123456789012345"
pt_CODESCP_860026370	 = "545454545454545454545454545454545454545"
#pt_DEDE_118FT	 = "999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888999888"
#pt_DETR_NUM	 = "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555"
pt_TerminCallee_860026370  = "pt_TerminCallee012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
pt_TerminCallee_sans_33_860026370	 = "pt_TerminCallee_sans_3301234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"
pt_len_prefixe_860026370   = "pt_len_prefixe0123456789"
pt_cod_bas_860026370	 = "pt_cod_bas0123456789"
pt_SourceIP_860026370	 = "pt_SourceIP01234567890123456789"
pt_SourceIP_sans_port_860026370	 = "pt_SourceIP_sans_port01234567890123456789"
pt_DestinationIP_860026370	 = "pt_DestinationIP0123456789"
pt_DestinationIP_sans_port_860026370 = "pt_DestinationIP_sans_port0123456789"
# G4R6 Lot3
pt_MESSAGE_860026370 = "pt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGE"
pt_CODE_TARIF_860026370 	 = "pt_CODE_TARIFpt_CODE_TARIF"
pt_TYPE_EDIT_860026370	 = "pt_TYPE_EDIT"
pt_NDE_860026370		 = "pt_NDE3333333333333333333333333333333333333333"
pt_NORM_860026370		 = "pt_NORM389389389389389389389389389389389389389"
pt_BUF_860026370	 = "666666123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
# /G4R6 Lot3

i_strcpy(pt_sgtqs_860026370      ,"")
i_strcpy(pt_eccfact_860026370    ,"")
i_strcpy(pt1_860026370           ,"")
i_strcpy(pt2_860026370           ,"")
i_strcpy(pt_inst_860026370       ,"")
i_strcpy(pt_LIBELREDIST_860026370,"")
i_strcpy(pt_codcir_860026370     ,"")
i_strcpy(pt_codcirdr_860026370   ,"")
i_strcpy(pt_InfoCompl_860026370  ,"")
i_strcpy(pt_call_type_860026370  ,"")
i_strcpy(pt_DEDE_N_860026370     ,"")
i_strcpy(pt_CodeOp_860026370     ,"")
i_strcpy(pt_DEDE_TRAFIC_860026370,"")
i_strcpy(pt_CODESCP_860026370    ,"")
#i_strcpy(pt_DETR_NUM   ,"")
#i_strcpy(pt_DEDE_118FT ,"")
i_strcpy(pt_TerminCallee_860026370, " ")
i_strcpy(pt_TerminCallee_sans_33_860026370, " ")
i_strcpy(pt_len_prefixe_860026370, "")
i_strcpy(pt_cod_bas_860026370, "")
i_strcpy(pt_SourceIP_860026370, "")
i_strcpy(pt_SourceIP_sans_port_860026370, "")
i_strcpy(pt_DestinationIP_860026370, "")
i_strcpy(pt_DestinationIP_sans_port_860026370, "")
# G4R6 Lot3
i_strcpy(pt_MESSAGE_860026370, "")
i_strcpy(pt_CODE_TARIF_860026370 , "    ")
i_strcpy(pt_TYPE_EDIT_860026370 , " ")
i_strcpy(pt_NDE_860026370,"")
i_strcpy(pt_NORM_860026370, "")
# /G4R6 Lot3

EPORTABILITE_860026370 = 0
instFERPV_860026370 = 0
# G3R22C5 QC543
instFE_860026370 = 0
instSYMP_860026370 = 0
instTRAFIC_860026370 = 0
instSPOT_860026370 = -1
REJET_860026370 = 0
instAFDB_860026370 = -1
instCASPER_860026370 = 0

inf_860026370 = 0
nos_present_860026370 = 0
longueur_860026370 = 0
longueur_NOS_860026370 = 0
bREDIST_860026370 = 0
bFERPV_860026370 = 0
detr_nat_860026370 = 0
detr_dom_860026370 = 0
modif_860026370 = 0
simulation_call_860026370 = 0
nelem_860026370 = 0
vc_860026370 = 0
CCD_REEL_860026370 = 0
CCD_REEL_FERPV_860026370 = 0
code_errone_860026370 = 0
TYPCTR_860026370 = 0
InterEtelVoIpVpn_860026370 = 0
SANS_IDUS_860026370 = 0
vcdr2_860026370 = 0
VAL_INF_860026370 = 0
#Inter_longueur_prefixe = -1
b_DIST_CASPER_860026370 = 0
# G3R22C5 QC548
b_NOS_NUM_public_860026370 = 0
val_860026370 = 0
b_Fact_CPS_Loc_860026370 = 0

b_Fact_CPS_RI_860026370 = 0

#G4R6 lot 3
# renommage g_iartin en g_iartout17 pour continuer a travailler sur le in en retour de redistri
erreur_860026370 = i_dup_art_id(g_iartin,g_iartout17)

hlahm1_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::HLAHM1)
EFFICACE_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::EFFICACITE)
erreur_860026370 = i_get_art_str(g_iartout17, $Tetelephonie::CALL_TYPE, pt_call_type_860026370)
ccd_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::CCD)

#G4R6 lot 3 : C+S appelant
#recuperation du demande utilise pour appel a la BNC
SI (i_valid_field_n(g_iartout17, $Tetelephonie::T4dede_bnc))
ALORS
	SI (i_valid_field_n(g_iartout17, $Tetelephonie::DEDE_BNC))
	ALORS
		erreur_860026370 = i_get_art_str(g_iartout17, $Tetelephonie::DEDE_BNC, pt_NORM_860026370)
	FINSI
	erreur_860026370 = i_supprChamp(g_iartout17, "T4dede_bnc")
FINSI
#/G4R6 lot 3 : C+S appelant

SI (ccd_860026370 != 0xff)
ALORS
	# vc que pour Tfe_rpv et TRAFIC
	vc_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::TAX1)
	# vcdr2 que pour Tfe_rpv
	vcdr2_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::VCDR2)
	# Attention REJET3 non visible si pb BNC
	# REJET pour critere Tfe_rpv ,TRAFIC, CFT et SC
	REJET_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::REJET)
	# TYPCTR pour SRP_ITX
	TYPCTR_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::TYPCTR)
FINSI

SI !(i_valid_field_n(g_iartout17, $Tetelephonie::T3SelectorIN) || i_valid_field_n(g_iartout17, $Tetelephonie::T3OriginCaller) )
ALORS
	SANS_IDUS_860026370 = 1
FINSI

# Suppression des champs temporaires
erreur_860026370 = i_supprChamp(g_iartout17, "T4_REJET")

# stockage en elimine si REJET3
# on envoi a symphonie les DC avec REJET3 (appel 119 enfance maltraitee)

SI ( ( i_strcmp(pt_call_type_860026370, "1") == 0 ) || ( i_strcmp(pt_call_type_860026370, "2") == 0 ) || ( i_strcmp(pt_call_type_860026370, "3") == 0 ) || ( i_strcmp(pt_call_type_860026370, "4") == 0 ) )
ALORS
	tap_860026370 = 0x80
SINON
	tap_860026370 = 0x00
FINSI

SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3SimulationCal) )
ALORS
	simulation_call_860026370 = g_iartout17.SimulationCal[0]
FINSI

i_strcpy(pt_sgtqs_860026370, i_LireEECSGTQS(g_ieec))
#trace2("__LINE__ ## TEST ## ======> pt_sgtqs <%s> #### ",pt_sgtqs ,"")
erreur_860026370=i_set_art_str(g_iartout17, $Tetelephonie::SGTQS, pt_sgtqs_860026370)

################################################
# Identification de la provenance de l'article #
################################################

trait_ok_860026370 = -1
# trait_ok : nb de passage en redistribution
trait_ok_860026370 = i_LireRedistCpt()

###############################
# Creation article Conversion #
# Sera utile pour CCD et NOS  #
###############################

erreur_860026370 = i_cree_art("Conversion",g_iartout10)

# G3R22C5 QC548
SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3CgidentityPU) )
ALORS
	nos_present_860026370 = 1
	b_NOS_NUM_public_860026370 = 1
	longueur_NOS_860026370 = g_iartout17.CgidentityPU!NELEM
	erreur_860026370 = i_dup_chp_1val(g_iartout17, g_iartout10, $Tetelephonie::CgidentityPU, $Conversion::NOS)
	erreur_860026370 = i_set_art_field(g_iartout10, $Conversion::NOS_INF, 0x10)
SINON
	SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3CgidentityPR) )
	ALORS
		nos_present_860026370 = 1
		longueur_NOS_860026370 = g_iartout17.CgidentityPR!NELEM
		erreur_860026370 = i_dup_chp_1val(g_iartout17, g_iartout10, $Tetelephonie::CgidentityPR, $Conversion::NOS_NUM)
		erreur_860026370 = i_set_art_field(g_iartout10, $Conversion::NOS_INF, 0x20)
	SINON
		SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3OriginCaller) )
		ALORS
			nos_present_860026370 = 1
			longueur_NOS_860026370 = i_get_art_fieldlength(g_iartout17,$Tetelephonie::OriginCaller)
			SI longueur_NOS_860026370 == 11
			ALORS
				erreur_860026370 = i_dup_chp_1val(g_iartout17, g_iartout10, $Tetelephonie::OriginCaller, $Conversion::NOS)
				b_NOS_NUM_public_860026370 = 1
			SINON
				erreur_860026370 = i_dup_chp_1val(g_iartout17, g_iartout10, $Tetelephonie::OriginCaller, $Conversion::NOS_NUM)
			FINSI
			# G3R22C3 QC523
			#erreur = i_dup_chp_1val(g_iartin, g_iartout10, $Tetelephonie::OriginCaller, $Conversion::NOS)
			#erreur = i_dup_chp_1val(g_iartin, g_iartout10, $Tetelephonie::OriginCaller, $Conversion::NOS_NUM)
			erreur_860026370 = i_set_art_field(g_iartout10, $Conversion::NOS_INF, 0x10)
		FINSI
	FINSI
FINSI

#############################
# VARIABLES FONCTIONNELLES
#############################

#TYPCTR

b_Emessage_IP_860026370 = 0
# b_Emessage_IP : vrai si CCD = 0x17
SI ( ccd_860026370 == 0x17 )
ALORS
	b_Emessage_IP_860026370 = 1
FINSI

b_118_TIERS_PTD_860026370 = 0
SI ( ccd_860026370 == 0x1B )
ALORS
	b_118_TIERS_PTD_860026370 = 1
FINSI

b_SRP_TIERS_PTD_860026370 = 0
SI ( ccd_860026370 == 0x18 ) &&  TYPCTR_860026370 == 3
ALORS
	b_SRP_TIERS_PTD_860026370 = 1
FINSI

#SRP_ITX
#SRP_ITX = 0
#SI (ccd == 0x18) && (TYPCTR == 0)
#ALORS
#	SRP_ITX = 1
#FINSI

#############################
# Date GMT
#############################

gmt_date_860026370 = i_get_art_field(g_iartout17,$Tetelephonie::AuthorizeTime)

#####################################################################
# 	              Traitement C+S (CPS)
# PSA G4R6 lot3
#SI ( TYPCTR == TYPCTR_Fact_LOC )
# G4R6 QC812 #
SI ( TYPCTR_860026370 == TYPCTR_Fact_LOC_860026370 || TYPCTR_860026370 == TYPCTR_Fact_RI_860026370 )
ALORS
	i_strcpy(pt1_860026370, i_get_tab_field( "TDATCPS", gmt_date_860026370, C_DATCPS_860026370 ))

	erreur_860026370 = i_set_art_str (g_iartout10,$Conversion::DATE_STR,pt1_860026370)
	Date_CPS_860026370 = i_get_art_field(g_iartout10, $Conversion::DATE_ASC)
	i_strcpy(pt_NDE_860026370,pt_NORM_860026370)

	SI hlahm1_860026370 < Date_CPS_860026370
	ALORS
		erreur_860026370 = i_format_str2(pt_MESSAGE_860026370," AR <%s> avec date DC inferieure a la date d'activation <%s> de la facturation CPS",pt_NDE_860026370,pt1_860026370)
		code_errone_860026370 = 0xA080
		code_errone_860026370 = code_errone_860026370 + EFFICACE_860026370
		erreur_860026370 = i_PlvMessEmettre( 8599, 1, g_iartin,"", 3,code_errone_860026370, C_Article_860026370, pt_MESSAGE_860026370 )
		SAUT DISTRI_ELIMINE
	SINON
		SI ( TYPCTR_860026370 == TYPCTR_Fact_LOC_860026370 )
		ALORS
			b_Fact_CPS_Loc_860026370 = 1
			#######################################
			#  Soumission de la requete de consultation d'une table de distribution ALICE
			#######################################

			SI i_strplcmp (pt_NDE_860026370,"0",0,1) == 0
			ALORS
				i_get_sub_str(pt_NDE_860026370,1,-1,pt_NDE_860026370)
			FINSI
			longueur_860026370 = i_conv_ascii_dcb (pt_NDE_860026370, pt1_860026370)
			SI (i_EnvoiReqConsTabDist( TD_SVA_860026370,gmt_date_860026370,pt1_860026370,longueur_860026370,0,1) != 0)
			ALORS
				#trace("Erreur i_EnvoiReqConsTabDist ALICE")
				bREDIST_860026370 = 1
				i_strcpy(pt_LIBELREDIST_860026370,"Echec sur i_EnvoiReqConsTabDistDouble ALICE ")
			FINSI

			#######################################
			# Recherche de l'instance ECC ALICE
			#######################################
			instALICE_860026370 = i_LireInstanceECC(C_INST_ALICE_860026370)
			SI (!instALICE_860026370)
			ALORS
				#trace("Pas d'instance pour ALICE !")
				erreur_860026370 = i_PlvMessEmettre(8501,1,g_iartin,"",3,C_INST_ALICE_860026370,C_Article_860026370,g_ieec)
				SAUT DISTRI_ERR
			FINSI
			#trace1("instALICE  =<%d>",instALICE)

			#######################################
			# Lecture Resultat requete ALICE
			#######################################
			erreur_860026370 = i_LireReqConsTabDist()
			#trace1("RETOUR i_LireReqConsTabDist retour requette ALICE, erreur=<%d>",erreur)
			SI ( erreur_860026370 != 0 )
			ALORS
				#trace1( "Erreur i_LireReqConsTabDist ALICE: <%d>", erreur)
				bREDIST_860026370 = 1
				i_strcpy(pt_LIBELREDIST_860026370,"Echec sur i_LireReqConsTabDistDouble ALICE ")
			FINSI
			val_860026370 = i_LireInfoECC( instALICE_860026370, 0 )

			SI (val_860026370 != 0)
			ALORS
				# AR present dans ALICE
				erreur_860026370 = i_LireChaineInfo( val_860026370, 0, 4, pt_BUF_860026370 )
				SI i_strcmp(pt_BUF_860026370,"") != 0
				ALORS
					i_strcpy(pt_CODE_TARIF_860026370,pt_BUF_860026370)
				SINON
					# info complementaire CODE_TARIF vide
					bREDIST_860026370 = 1
					erreur_860026370 = i_format_str2(pt_LIBELREDIST_860026370," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NDE_860026370,0)
				FINSI

				erreur_860026370 = i_LireChaineInfo( val_860026370, 4, 1, pt_BUF_860026370 )
				SI i_strcmp(pt_BUF_860026370,"") != 0
				ALORS
					i_strcpy(pt_TYPE_EDIT_860026370,pt_BUF_860026370)
				SINON
					# info complementaire TYPE_EDIT vide
					bREDIST_860026370 = 1
					erreur_860026370 = i_format_str2(pt_LIBELREDIST_860026370," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NDE_860026370,0)
				FINSI
			SINON
				bREDIST_860026370 = 1
				erreur_860026370 = i_format_str2(pt_LIBELREDIST_860026370," AR <%s> non trouve dans ALICE",pt_NDE_860026370,0)
			FINSI
		SINON
			# G4R6 QC812 #
			SI ( TYPCTR_860026370 == TYPCTR_Fact_RI_860026370 )
			ALORS
				b_Fact_CPS_RI_860026370 = 1
			FINSI
		FINSI
	FINSI
FINSI
#\DRE G4R6 lot2

#############################
# DEDE_N et DEDE_TRAFIC
#############################

SI (EFFICACE_860026370 == 1)
ALORS
	inf_860026370 = i_get_art_field(g_iartout17, $Tetelephonie::DETR_INF) & 0xC0
	erreur_860026370 = i_get_art_str(g_iartout17,$Tetelephonie::DETR_NUM, pt1_860026370)
	erreur_860026370 = i_get_art_str(g_iartout17,$Tetelephonie::DETR_NUM, pt_DEDE_TRAFIC_860026370)
	SI ( inf_860026370 == 0x80 )
	ALORS
		i_strcpy(pt_DEDE_N_860026370, pt1_860026370)
		#erreur = i_format_str2(pt_DEDE_N,"%s%s","0",pt1)
		#G3R18Cy suppression du 0 devant DEDE_N
	SINON
		SI ( inf_860026370 == 0xC0 )
		ALORS
# traitement particulier pour les DOM
			i_get_sub_str(pt1_860026370, 0, 2, pt2_860026370)
			SI ( (i_strcmp(pt2_860026370, "262") == 0) || (i_strcmp(pt2_860026370, "590") == 0) || (i_strcmp(pt2_860026370, "594") == 0) || (i_strcmp(pt2_860026370, "596") == 0) )
			ALORS
				i_get_sub_str(pt1_860026370, 3, -1, pt1_860026370)
				i_strcpy(pt_DEDE_N_860026370, pt1_860026370)
				#erreur = i_format_str2(pt_DEDE_N,"%s%s","0",pt1)
				#G3R18Cy suppression du 0 devant DEDE_N pour les DOM
				i_strcpy(pt_DEDE_TRAFIC_860026370, pt1_860026370)
				detr_nat_860026370 = 1
			SINON
				SI (i_strcmp(pt2_860026370, "508") == 0 || i_strcmp(pt2_860026370, "269") == 0)
				ALORS
					i_strcpy(pt_DEDE_N_860026370, pt1_860026370)
					#erreur = i_format_str2(pt_DEDE_N,"%s%s","0",pt1)
					#G3R18Cy suppression du 0 devant DEDE_N pour les DOM
					detr_nat_860026370 = 1
				SINON
#					FO1525 : differenciation Mayotte et Comores
					i_get_sub_str(pt1_860026370, 0, 3, pt2_860026370)

					SI ((i_strcmp(pt2_860026370, "2692") == 0) || (i_strcmp(pt2_860026370, "2696") == 0))
					ALORS
						i_strcpy(pt_DEDE_N_860026370, pt1_860026370)
						#erreur = i_format_str2(pt_DEDE_N,"%s%s","0",pt1)
						#G3R18Cy suppression du 0 devant DEDE_N pour Mayotte et Comores
						detr_nat_860026370 = 1
					SINON
						i_strcpy(pt_DEDE_N_860026370, pt1_860026370)
						#erreur = i_format_str2(pt_DEDE_N,"%s%s","00",pt1)
						#G3R18Cy suppression des 00 devant DEDE_N pour l international
					FINSI
				FINSI
			FINSI
		SINON
# cas des num speciaux
			i_strcpy(pt_DEDE_N_860026370,pt1_860026370)
		FINSI
	FINSI
FINSI

#############################
# EPORTABILITE
#############################

i_strcpy(pt1_860026370,pt_DEDE_N_860026370)
pt_CodeOp_860026370 = CodeOperateurTable6_860026233(gmt_date_860026370, pt1_860026370,"45S")

SI (!i_strcmp(pt_CodeOp_860026370, "84208"))
ALORS
	EPORTABILITE_860026370 = 1
SINON
	EPORTABILITE_860026370 = 0
FINSI

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

####################################################
# Calcul de InterEtelVoIpVpn
####################################################

# G3R21CY
# Appel e-telephonie vers VoIpVPN (BTIP SIP) ?
# Prefixe dans table Inter_BTIP_ETEL ?

SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3TerminCallee) )
ALORS
	erreur_860026370 = i_get_art_str(g_iartout17, $Tetelephonie::TerminCallee, pt_TerminCallee_860026370)

	SI !(i_strplcmp(pt_TerminCallee_860026370, "33", 0, 2))
	ALORS
		i_get_sub_str(pt_TerminCallee_860026370, 2,-1, pt_TerminCallee_sans_33_860026370)
#DRE G4R2 QC679
#	SINON
#		i_strcpy(pt_TerminCallee_sans_33, pt_TerminCallee)
#	FINSI

		i_strcpy(pt_len_prefixe_860026370, rechercheDicho_860026233(pt_TerminCallee_sans_33_860026370, T_Inter_BTIP_ETEL_860026370, gmt_date_860026370))
		SI (i_strcmp(pt_len_prefixe_860026370, g_inull) != 0)
		ALORS
			InterEtelVoIpVpn_860026370 = 1
		FINSI
		#trace2("__LINE__ ## TEST ## ======> [InterEtelVoIpVpn] pt_len_prefixe <%s> #### ",pt_len_prefixe ,"")
		#trace1("__LINE__ ## TEST ## ======> [InterEtelVoIpVpn] InterEtelVoIpVpn = <%d> ", InterEtelVoIpVpn)
	FINSI
FINSI

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

#trace ("---------------RECHERCHE INSTANCE ACLA---------------------------")

instACLA_860026370 = i_LireInstanceECC(INST_ACLA_860026370)

SI (!instACLA_860026370)
ALORS
	trace ("---------------------Pas d'instance pour ACLA------------------------------")
	erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"ACLA",C_Article_860026370,g_ieec)
	SAUT DISTRI_ERR
FINSI

#trace1("-----------------------instACLA=<%d>-----------------------------",instACLA)

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

#FO1164
i_strcpy(pt1_860026370,pt_DEDE_N_860026370)

pt_CODESCP_860026370 =  CodeOperateurTable6_860026233(gmt_date_860026370, pt1_860026370,"ACLA")

#trace2("---------Tetelephonie -resultat de  pt_CODESCP: <%s>------",pt_CODESCP,"")

SI (!i_strcmp(pt_CODESCP_860026370, "84008"))
ALORS
	EPORTABILITE_SCP_860026370 = 1
SINON
	EPORTABILITE_SCP_860026370 = 0

	SI (i_strcmp(pt_CODESCP_860026370,"84008")!=0 && i_strcmp(pt_CODESCP_860026370,"")!=0)
	ALORS
		SPORTABILITE_SCP_860026370 = 1
	SINON
		SPORTABILITE_SCP_860026370 = 0
	FINSI
FINSI

# G3R21CY
# b_Emessage_IP : vrai si CCD = 0x17

#FAL FO1080 evolution du CCD_REEL pour SCP vers 219
CCD_REEL_860026370=255
SI (EPORTABILITE_860026370 == 1)
ALORS
	CCD_REEL_860026370 = 212
SINON
	SI (EPORTABILITE_SCP_860026370 == 1)
	ALORS
		CCD_REEL_860026370 = 218
	SINON
		SI (SPORTABILITE_SCP_860026370 == 1)
		ALORS
			CCD_REEL_860026370 = 219
		SINON
			SI  (ccd_860026370 != 0xff)
			ALORS
				CCD_REEL_860026370=ccd_860026370
			FINSI
		FINSI
	FINSI
FINSI

#trace1(" ##__LINE__## EPORTABILITE     = <%d>", EPORTABILITE)
#trace1(" ##__LINE__## EPORTABILITE_SCP = <%d>", EPORTABILITE_SCP)
#trace1(" ##__LINE__## SPORTABILITE_SCP = <%d>", SPORTABILITE_SCP)
#trace1(" ##__LINE__## ccd              = <%d>", ccd)
#trace1(" ##__LINE__## CCD REEL         = <%d>", CCD_REEL)

# G3R21CY
#DIST_CASPER

# G3R22C3 QC524
SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3SourceIP) )
ALORS
	erreur_860026370 = i_get_art_str(g_iartout17, $Tetelephonie::SourceIP, pt_SourceIP_860026370)
	erreur_860026370 = i_recupererValeur(pt_SourceIP_860026370, pt_SourceIP_sans_port_860026370, i_strlen(pt_SourceIP_860026370),':' )

	SI (erreur_860026370 == 0)
	ALORS
		i_strcpy(pt_cod_bas_860026370, rechercheDicho_860026233(pt_SourceIP_sans_port_860026370, T_SBC_OPITML_860026370, gmt_date_860026370))
		#SINON
		#i_strcpy(pt_cod_bas, rechercheDicho(pt_SourceIP, T_SBC_OPITML, gmt_date))
	FINSI
	#trace2("__LINE__ ## TEST ## ======> [SBC_OPITML/SourceIP] pt_cod_bas <%s> #### ",pt_cod_bas ,"")

	# G3R22 QC 507 SI ( i_strcmp(pt_cod_bas, g_inull) != 0 )
	SI ( i_strcmp (pt_cod_bas_860026370,C_COD_BAS_CASPER_860026370) == 0 )
	ALORS
		b_DIST_CASPER_860026370 = 1
	FINSI
FINSI

SI b_DIST_CASPER_860026370 == 0
ALORS
	# G3R22 QC505
	SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3DestinationIP) )
	ALORS
		erreur_860026370 = i_get_art_str(g_iartout17, $Tetelephonie::DestinationIP, pt_DestinationIP_860026370)
		erreur_860026370 = i_recupererValeur(pt_DestinationIP_860026370, pt_DestinationIP_sans_port_860026370, i_strlen(pt_DestinationIP_860026370),':' )

		SI (erreur_860026370 == 0)
		ALORS
			i_strcpy(pt_cod_bas_860026370, rechercheDicho_860026233(pt_DestinationIP_sans_port_860026370, T_SBC_OPITML_860026370, gmt_date_860026370))
			#SINON
			#i_strcpy(pt_cod_bas, rechercheDicho(pt_DestinationIP, T_SBC_OPITML, gmt_date))
		FINSI
		#trace2("__LINE__ ## TEST ## ======> [SBC_OPITML/DestinationIP] pt_cod_bas <%s> #### ",pt_cod_bas ,"")
		# G3R22 QC 507 SI (i_strcmp(pt_cod_bas, g_inull) != 0)
		SI ( i_strcmp (pt_cod_bas_860026370,C_COD_BAS_CASPER_860026370) == 0 )
		ALORS
			b_DIST_CASPER_860026370 = 1
		FINSI
	FINSI
FINSI

#trace1("__LINE__ ## TEST ## ======> [SBC_OPITML] b_DIST_CASPER = <%d> ", b_DIST_CASPER)

# Duplication pour CASPER
SI (b_DIST_CASPER_860026370 == 1)
ALORS
	SI (i_dup_art_id(g_iartout17,g_iartout3))
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour CASPER","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	erreur_860026370 = i_supprChamp(g_iartout3, "T3ace")

	SI (i_rename_art(g_iartout3, "TcasperTeteleph"))
	ALORS
		#trace(" ##__LINE__## erreur i_rename_art ")
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour CASPER","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	erreur_860026370 = i_ajoutChampNum(g_iartout3,$TcasperTeteleph::T4sgtqs,$TcasperTeteleph::SGTQS,0)
	erreur_860026370 = i_ajoutChampNum(g_iartout3,$TcasperTeteleph::T4codcir,$TcasperTeteleph::CODCIR,0)
	erreur_860026370 = i_ajoutChampNum(g_iartout3,$TcasperTeteleph::T4codcirdr,$TcasperTeteleph::CODCIRDR,0)
FINSI

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

SI (EFFICACE_860026370 == 1)
ALORS
	longueur_860026370 = i_get_art_fieldlength(g_iartout17,$Tetelephonie::IDUS_NUM)
	SI ( longueur_860026370 % 2 == 0 )
	ALORS
		longueur_860026370 = longueur_860026370 / 2
	SINON
		longueur_860026370 = longueur_860026370 / 2 + 1
	FINSI
	erreur_860026370 = i_EnvoiReqConsTabDistDouble( TD_Fixe, TD_Inter, gmt_date_860026370,i_get_art_fieldptr(g_iartout17,$Tetelephonie::IDUS_NUM), longueur_860026370, longueur_860026370, 1, 0, 1)
	SI ( erreur_860026370 !=0 )
	ALORS
		#trace1(" ##__LINE__## erreur i_EnvoiReqConsTabDistDouble : %d", erreur)
		bREDIST_860026370 = 1
		i_strcpy(pt_LIBELREDIST_860026370, "Echec sur i_EnvoiReqConsTabDistDouble")
	FINSI
FINSI

############################################################################
# Recherche Instances des ECC
############################################################################

SI (!bREDIST_860026370)
ALORS

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

	instFERPV_860026370 = i_LireInstanceECC("FERPV")
	SI (!instFERPV_860026370)
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"FERPV","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

######################################
#---------FE---------
# G3R22C5 QC543
	instFE_860026370 = i_LireInstanceECC("FE")
	SI (!instFE_860026370)
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"FE","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

######################################
#---------TRAFIC---------

	instTRAFIC_860026370 = i_LireInstanceECC("TRAFIC")
	SI (!instTRAFIC_860026370)
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"TRAFIC","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

FINSI

######################################
#------SYMPHONIE------

instSYMP_860026370 = i_LireInstanceECC("SYMP")

SI (!instSYMP_860026370)
ALORS
	erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"SYMP","Tetelephonie",g_ieec)
	SAUT DISTRI_ERR
FINSI

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

######################################
#------SPOT------

instSPOT_860026370=i_LireInstanceECC(C_InstSPOT_860026370)

SI (!instSPOT_860026370)
ALORS
	#trace(" ##__LINE__## Pas d'instance pour SPOT !")
	code_errone_860026370 = 0xA0B0
	code_errone_860026370 = code_errone_860026370 + EFFICACE_860026370
	erreur_860026370 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026370,C_InstSPOT_860026370,C_Article_860026370)
	SAUT DISTRI_ERR
FINSI
erreur_860026370=i_AjouterCouranteECC(instSPOT_860026370)

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

######################################
#------AFDB------

instAFDB_860026370=i_LireInstanceECC(C_InstAFDB_860026370)

SI (!instAFDB_860026370)
ALORS
	erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"AFDBETEL",C_Article_860026370,g_ieec)
	SAUT DISTRI_ERR
FINSI
erreur_860026370=i_AjouterCouranteECC(instAFDB_860026370)

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

# G3R21CY
######################################
#------CASPER------

instCASPER_860026370=i_LireInstanceECC(C_InstCASPER_860026370)

SI (!instCASPER_860026370)
ALORS
	erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,C_InstCASPER_860026370,C_Article_860026370,g_ieec)
	SAUT DISTRI_ERR
FINSI

SI (b_DIST_CASPER_860026370 == 1)
ALORS
	erreur_860026370=i_AjouterCouranteECC(instCASPER_860026370)
FINSI

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

############################################################################
# Duplication Symphonie
############################################################################

# 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

SI (i_valid_field_n(g_iartout17,$Tetelephonie::CODCIRDR))
ALORS
	erreur_860026370=i_get_art_str(g_iartout17, $Tetelephonie::CODCIRDA,pt_codcirdr_860026370)
	SI (g_iartout17.CODCIRDA[2] > 9)
	ALORS
		i_get_sub_str(pt_codcirdr_860026370,2,5,pt_codcirdr_860026370)
	SINON
		i_get_sub_str(pt_codcirdr_860026370,1,5,pt_codcirdr_860026370)
	FINSI
	erreur_860026370=i_supprChamp(g_iartout17,"T4codcirdr")
FINSI

# CODCIR

SI (i_valid_field_n(g_iartout17,$Tetelephonie::CODCIR))
ALORS
	erreur_860026370=i_get_art_str(g_iartout17, $Tetelephonie::CODCIRA,pt_codcir_860026370)
	SI (g_iartout17.CODCIRA[2] > 9)
	ALORS
		i_get_sub_str(pt_codcir_860026370,2,5,pt_codcir_860026370)
	SINON
		i_get_sub_str(pt_codcir_860026370,1,5,pt_codcir_860026370)
	FINSI
	erreur_860026370=i_supprChamp(g_iartout17,"T4codcir")
FINSI

#trace(" ##__LINE__## duplication vers symphonie ")

SI (i_dup_art_id(g_iartout17,g_iartout6))
ALORS
	erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour Symphonie","Tetelephonie",g_ieec)
	SAUT DISTRI_ERR
FINSI

SI (i_rename_art(g_iartout6,"TsymTetelephonie"))
ALORS
	#trace(" ##__LINE__## erreur i_rename_art ")
	erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour Symphonie","Tetelephonie",g_ieec)
	SAUT DISTRI_ERR
FINSI

# G2R2Cv FO1515 plus d'actualite, on envoi a symphonie les DC avec REJET3 (appel 119 enfance maltraitee)

res_860026370=i_AjouterCouranteECC(instSYMP_860026370)

##############################################################################
# Attente requete Table de Distribution
##############################################################################

SI (!bREDIST_860026370)
ALORS
	erreur_860026370 = i_LireReqConsTabDist()
	SI ( erreur_860026370 != 0 )
	ALORS
		bREDIST_860026370 = 1
		i_strcpy(pt_LIBELREDIST_860026370, "Echec sur i_LireReqConsTabDist")
		SAUT AVANT_REDIST
	FINSI
SINON
	SAUT AVANT_REDIST
FINSI

#############################################
## FERPV:

SI ( instFERPV_860026370 > 0 )
ALORS
	res_860026370 = i_LireInfoECC(instFERPV_860026370, 0)
	#trace1(" ##__LINE__## Retour de i_LireInfoECC -  FERPV : <%d> ",res)

	SI (res_860026370 != 0)
	ALORS
		#trace( " ##__LINE__## FERPV appartient a la table DISTRI")
		bFERPV_860026370 = 1
	FINSI
FINSI

#############################################
## FERPV:
# G3R22C5 QC543
SI ( instFE_860026370 > 0 )
ALORS
	res_860026370 = i_LireInfoECC(instFE_860026370, 0)
	#trace1(" ##__LINE__## Retour de i_LireInfoECC -  FE : <%d> ",res)

	SI (res_860026370 != 0)
	ALORS
		#trace( " ##__LINE__## FE appartient a la table DISTRI")
		bFERPV_860026370 = 1
	FINSI
FINSI

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

#---------------------------------------------------------------------------
# FERPV G3R0Cw sans test EPORTABILITE
#---------------------------------------------------------------------------

# G3R24
#SI ( ( bFERPV == 1 ) && ( simulation_call == 0 ) && ( EFFICACE == 1 ) && ( REJET == 0 ) && ( SRP_ITX == 0 ) &&
# G4R6 QC812 # 
SI ( ( bFERPV_860026370 == 1 ) && ( simulation_call_860026370 == 0 ) && ( EFFICACE_860026370 == 1 ) && ( REJET_860026370 == 0  && !b_Fact_CPS_RI_860026370 )
    && ( ( i_strcmp(pt_call_type_860026370, "1") == 0 ) || ( i_strcmp(pt_call_type_860026370, "2") == 0 ) || ( i_strcmp(pt_call_type_860026370, "3") == 0 ) || ( i_strcmp(pt_call_type_860026370, "5") == 0 ) 
      || ( ( i_strcmp(pt_call_type_860026370, "7") == 0 ) && ( ccd_860026370 == 0x18 ) ) ) 
    && SANS_IDUS_860026370 == 0 )
ALORS
	res_860026370=i_AjouterCouranteECC(instFERPV_860026370)
	i_strcpy(pt_eccfact_860026370,"FE")
FINSI

#---------------------------------------------------------------------------
# TRAFIC sans test EPORTABILITE
#---------------------------------------------------------------------------

# G3R24
#SI ( ( bFERPV == 0 ) && ( simulation_call == 0 ) && ( EFFICACE == 1 ) && ( REJET == 0 ) && ( SRP_ITX == 0 ) &&
# G4R6 QC812 # 
SI ( ( bFERPV_860026370 == 0 ) && ( simulation_call_860026370 == 0 ) && ( EFFICACE_860026370 == 1 ) && ( REJET_860026370 == 0 && !b_Fact_CPS_RI_860026370 ) 
    && ( ( i_strcmp(pt_call_type_860026370, "2") == 0 ) || ( i_strcmp(pt_call_type_860026370, "3") == 0 ) || ( i_strcmp(pt_call_type_860026370, "5") == 0 ) 
      || ( ( i_strcmp(pt_call_type_860026370, "7") == 0 ) && ( ccd_860026370 == 0x18 ) ) ) 
    && SANS_IDUS_860026370 == 0 )
ALORS
	# Gestion du code CFR:
	res_860026370=i_LireInfoECC(instTRAFIC_860026370, 0)

	SI ( res_860026370 != 0)
	ALORS
		erreur_860026370 = i_LireChaineInfo( res_860026370, 0, 3, pt_InfoCompl_860026370)
		#trace2(" ##__LINE__## Resultat de i_LireChaineInfo : <%s> ",pt_InfoCompl, "")

		erreur_860026370 = i_format_str2(pt_inst_860026370, "TRAF%s", pt_InfoCompl_860026370,0)
		#trace2(" ##__LINE__## Concatenation de TRAF avec info.compl : <%s> ",pt_inst, "")

		instTRAFIC_860026370 = i_LireInstanceECC(pt_inst_860026370)
		#trace1(" ##__LINE__## Instance de TRAFIC: instTRAFIC = <%d> ",instTRAFIC)

		SI (!instTRAFIC_860026370)
		ALORS
			erreur_860026370 = i_PlvMessEmettre(8501,2,g_iartin,"",3,pt_inst_860026370,"Tetelephonie",g_ieec)
			SAUT DISTRI_ERR
		FINSI

		erreur_860026370=i_AjouterCouranteECC(instTRAFIC_860026370)
		i_strcpy(pt_eccfact_860026370,pt_inst_860026370)
	SINON
		#trace(" ##__LINE__## Envoi en redistribution")
		i_strcpy(pt_LIBELREDIST_860026370, "Indicatif inconnu de MAJ2G")
		bREDIST_860026370 = 1
		SAUT AVANT_REDIST
	FINSI
FINSI

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

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

SI (!i_ChercherCouranteECC(instFERPV_860026370))
ALORS
	#trace(" ##__LINE__## Stockage vers FERPV")

	# Duplication article en entree
	SI (i_dup_art_dest( g_iartout17, g_iartout, "Tfe_rpv" ))
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"Tfe_rpv","Tetelephonie",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	# SOURCE
	erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::SOURCE,"08")

	# TYPCOM
	SI (tap_860026370 & 0x80) || (InterEtelVoIpVpn_860026370 == 1)
	ALORS
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::TYPCOM," ")
	SINON
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::TYPCOM,"4")
	FINSI

	# NUMDDR
	erreur_860026370 = i_get_art_str(g_iartout17,$Tetelephonie::IDUS_NUM, pt1_860026370)
	erreur_860026370 = i_format_str2(pt2_860026370,"%s%s","0",pt1_860026370)
	i_replace_str(pt2_860026370,"BCDE","AJSC",pt2_860026370)
	erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDR,pt2_860026370)

	# NUMDDE
	i_replace_str(pt_DEDE_N_860026370,"ABC","A*#",pt1_860026370)
	erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDE,pt1_860026370)

	# DEBUT
	erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::DEBUT,hlahm1_860026370)

	# DUREE
	res_860026370 = i_get_art_field(g_iartout17,$Tetelephonie::Duree)
	erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::DUREE,res_860026370)

	# NBUT
	#G3R6 FO evol 2357 spec 21.1

	# G3R21CY
	# ajout condition sur ccd = 0x17 (b_Emessage_IP)
	#SI ( ccd == 0x18 || ccd == 0x1B )

	# G3R24
	#SI ( ccd == 0x18 || ccd == 0x1B || ccd == 0x17 )
	# G4R6 lot 3 : ajout condition b_Fact_CPS_Loc
	SI ( b_SRP_TIERS_PTD_860026370 || b_118_TIERS_PTD_860026370 || b_Emessage_IP_860026370 ) && !b_Fact_CPS_Loc_860026370
	ALORS
		erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::NBUT,vc_860026370)
	SINON
		erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::NBUT,0)
	FINSI

	# MTHSTD
	# G4R6 QC812 #
	SI !b_Fact_CPS_Loc_860026370
	ALORS
		erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::MTHSTD,vcdr2_860026370)
	SINON
		erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::MTHSTD,0)
		#erreur = i_memset_field_n(g_iartout, $Tfe_rpv::MTHSTD, 0xF0)
	FINSI

	# CANAL
	SI i_valid_field_n(g_iartout17, $Tetelephonie::T3ConferenceId)
	ALORS
		nelem_860026370 = g_iartout17.ConferenceId!NELEM
		res_860026370 = (g_iartout17.ConferenceId[nelem_860026370-2] * 16) + g_iartout17.ConferenceId[nelem_860026370-1]
		erreur_860026370 = i_set_art_field(g_iartout,$Tfe_rpv::CANAL,res_860026370)
	SINON
		erreur_860026370 = i_memset_field_n(g_iartout, $Tfe_rpv::CANAL, 0x40)
	FINSI

	# SUPPORT G3R0Cu alpha
	# G2R1Cu : modif. definition
	SI ( ( i_strcmp(pt_call_type_860026370, "1") == 0 ) ||
	( i_strcmp(pt_call_type_860026370, "2") == 0 ) ||
	( i_strcmp(pt_call_type_860026370, "4") == 0 ) ||
	( InterEtelVoIpVpn_860026370 == 1 ) )
	ALORS
		# e-telephonie IP/IP Intra site ou service
		#erreur = i_set_art_field(g_iartout,$Tfe_rpv::SUPPORT, 6)
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::SUPPORT,"6")
	SINON
		SI (i_strcmp(pt_call_type_860026370, "3") == 0)
		ALORS
			# e-telephonie IP/IP Inter site
			#erreur = i_set_art_field(g_iartout,$Tfe_rpv::SUPPORT, 7)
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::SUPPORT,"7")
		SINON
			# parole
			#erreur = i_set_art_field(g_iartout,$Tfe_rpv::SUPPORT, 0)
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::SUPPORT,"0")
		FINSI
	FINSI

	# NOORIG # G3R22C3 QC523 QC548
	SI nos_present_860026370
	ALORS
		erreur_860026370 = i_get_art_str(g_iartout10,$Conversion::NOS_NUM, pt1_860026370)

		SI ( i_valid_field_n(g_iartout17, $Tetelephonie::T3CgidentityPU) )
		ALORS
			erreur_860026370 = i_format_str2(pt2_860026370,"0%s",pt1_860026370,0)
			i_get_sub_str(pt2_860026370,0,9,pt1_860026370)
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::NOORIG,pt1_860026370)
		SINON
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::NOORIG,pt1_860026370)
		FINSI
	SINON
		erreur_860026370 = i_memset_field_n(g_iartout, $Tfe_rpv::NOORIG, 0x40)
	FINSI

	# CCD
	SI ( CCD_REEL_860026370 != 0xff )
	ALORS
		CCD_REEL_FERPV_860026370=CCD_REEL_860026370
		CCD_REEL_FERPV_860026370 = CCD_REEL_FERPV_860026370 + 1000
		erreur_860026370 = i_set_art_field(g_iartout10,$Conversion::CCD,CCD_REEL_FERPV_860026370 )
		erreur_860026370 = i_conv_field("CCD",g_iartout10, 2, g_iartout, 4,0)

		erreur_860026370 = i_get_art_str(g_iartout,$Tfe_rpv::CCD,pt1_860026370)
		i_get_sub_str(pt1_860026370,1,3,pt2_860026370)
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::CCD,pt2_860026370)
	SINON
		#erreur=i_memset_field_n(g_iartout, $Tfe_rpv::CCD, 0x40)
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::CCD,"255")
	FINSI

	#G3R18Cy creation du champ INFDDE
	#QC428 Correctio valorisation de INFDDE
	SI ( detr_nat_860026370 == 1 )
	ALORS
		#erreur = i_set_art_field(g_iartout,$Tfe_rpv::INFDDE,0x80)
		erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::INFDDE,"128")
	SINON
		VAL_INF_860026370=i_get_art_field(g_iartout17,$Tetelephonie::DETR_INF)

		SI ( VAL_INF_860026370 == 0x40 )
		ALORS
			#erreur = i_set_art_field(g_iartout,$Tfe_rpv::INFDDE,000)
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::INFDDE,"000")
		SINON
			erreur_860026370 = i_set_art_field(g_iartout10,$Conversion::INF,VAL_INF_860026370 )
			erreur_860026370 = i_get_art_str( g_iartout10, $Conversion::INF, pt1_860026370)
			erreur_860026370 = i_format_str2( pt2_860026370, "%s%s", "000", pt1_860026370)
			i_get_sub_str (pt2_860026370, -3, -1,pt2_860026370)
			erreur_860026370 = i_set_art_str(g_iartout,$Tfe_rpv::INFDDE,pt2_860026370)
			#erreur = i_set_art_field(g_iartout,$Tfe_rpv::INFDDE,VAL_INF)
		FINSI
	FINSI

	# G4R6 Lot3
	# TYPE_EDIT
	erreur_860026370=i_set_art_str(g_iartout, $Tfe_rpv::TYPE_EDIT, pt_TYPE_EDIT_860026370)

	# CODE_TARIF
	erreur_860026370=i_set_art_str(g_iartout, $Tfe_rpv::CODE_TARIF, pt_CODE_TARIF_860026370)
	# \G4R6 Lot3

FINSI

#------------------------------------------------------------------------------
# TRAFIC
#------------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instTRAFIC_860026370) )
ALORS
	#trace(" ##__LINE__## Mise au format TRAFIC")

	# Duplication de l article
	#trace(" ##__LINE__## Duplication vers TRAFIC")
	SI (i_dup_art_dest(g_iartout17,g_iartout2,"TtraficN"))
	ALORS
		#trace(" ##__LINE__## erreur de i_dup_art_dest")
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"TtraficN","Tetelephonie",g_ieec)
		SAUT  DISTRI_ERR
	FINSI

	#DOMAINE
	erreur_860026370=i_set_art_str(g_iartout2,$TtraficN::DOMAINE,"10")

	#SERVICE
	erreur_860026370=i_set_art_str(g_iartout2,$TtraficN::SERVICE,"67")

	#IDUS_INF
	inf_860026370=i_get_art_field(g_iartout17,$Tetelephonie::IDUS_INF)
	erreur_860026370=i_set_art_field(g_iartout2,$TtraficN::IDUS_INF,inf_860026370)

	#IDUS_NUM
	erreur_860026370=i_get_art_str(g_iartout17,$Tetelephonie::IDUS_NUM,pt1_860026370)
	i_replace_str(pt1_860026370,"BCDE","AJSC",pt1_860026370)
	erreur_860026370=i_set_art_str(g_iartout2,$TtraficN::IDUS_NUM,pt1_860026370)

	#DEDE_NUM
	i_replace_str(pt_DEDE_TRAFIC_860026370,"ABC","A*#",pt1_860026370)
	erreur_860026370=i_set_art_str(g_iartout2,$TtraficN::DEDE_NUM,pt1_860026370)

	#DEDE_INF
	SI ( detr_nat_860026370 == 1 )
	ALORS
		inf_860026370 = 0x80
	SINON
		inf_860026370=i_get_art_field(g_iartout17,$Tetelephonie::DETR_INF)
		SI ( inf_860026370 == 0x40 )
		ALORS
			inf_860026370 = 0x00
		FINSI
	FINSI
	erreur_860026370=i_set_art_field(g_iartout2,$TtraficN::DEDE_INF,inf_860026370)

	# DATE
	erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::DATE,hlahm1_860026370)

	# DUREE
	res_860026370 = i_get_art_field(g_iartout17,$Tetelephonie::Duree)
	erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::DUREE,res_860026370)

	# TAX
	#G3R6 FO2357 evol spec 21.1
	# G3R21CY
	# ajout condition sur ccd = 0x17 (b_Emessage_IP)
	#SI ( ccd == 0x18 || ccd == 0x1B )

	# G3R24
	#SI ( ccd == 0x18 || ccd == 0x1B || ccd == 0x17)
	# G4R6 lot 3 : ajout condition b_Fact_CPS_Loc
	SI ( b_SRP_TIERS_PTD_860026370 || b_118_TIERS_PTD_860026370 || b_Emessage_IP_860026370 ) && !b_Fact_CPS_Loc_860026370
	ALORS
		erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::TAX,vc_860026370)
	SINON
		erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::TAX,0)
	FINSI

	#champ NDS_NUM
	SI nos_present_860026370
	ALORS
		erreur_860026370 = i_get_art_str(g_iartout10,$Conversion::NOS_NUM, pt1_860026370)
		erreur_860026370 = i_set_art_str(g_iartout2,$TtraficN::NDS_NUM,pt1_860026370)
	SINON
		erreur_860026370 = i_memset_field_n(g_iartout2, $TtraficN::NDS_NUM, 0x40)
	FINSI

	#champ SUP
	SI ( ( i_strcmp(pt_call_type_860026370, "1") == 0 ) || ( i_strcmp(pt_call_type_860026370, "2") == 0 ) || ( i_strcmp(pt_call_type_860026370, "4") == 0 ) )
	ALORS
		erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::SUP,7)
	SINON
		SI ( i_strcmp(pt_call_type_860026370, "3") == 0 )
		ALORS
			erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::SUP,8)
		SINON
			SI ( ( i_strcmp(pt_call_type_860026370, "5") == 0 ) || ( i_strcmp(pt_call_type_860026370, "7") == 0 ) )
			ALORS
				erreur_860026370 = i_set_art_field(g_iartout2,$TtraficN::SUP,9)
			FINSI
		FINSI
	FINSI

	#champ STY
	erreur_860026370=i_set_art_str(g_iartout2,$TtraficN::STY,"FF")

	#champ SGTQS
	erreur_860026370=i_set_art_str(g_iartout2, $TtraficN::SGTQS, pt_sgtqs_860026370)

	#champ CLASSDEST
	erreur_860026370=i_set_art_field(g_iartout2, $TtraficN::CLASSDEST, CCD_REEL_860026370)

	# G4R6 Lot3
	# TYPE_EDIT
	erreur_860026370=i_set_art_str(g_iartout2, $TtraficN::TYPE_EDIT, pt_TYPE_EDIT_860026370)

	# CODE_TARIF
	erreur_860026370=i_set_art_str(g_iartout2, $TtraficN::CODE_TARIF, pt_CODE_TARIF_860026370)
	# \G4R6 Lot3

FINSI

#----------------------------------------------------------------------------
# Symphonie
#----------------------------------------------------------------------------

POINT AVANT_REDIST
SI ( ( !i_ChercherCouranteECC(instSYMP_860026370)) && ( trait_ok_860026370 == 0 ) )
ALORS

	# CODCIRDR
	erreur_860026370=i_ajoutChampNum(g_iartout6,$TsymTetelephonie::T4codcirdr,$TsymTetelephonie::CODCIRDR,0)
	erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::CODCIRDR, pt_codcirdr_860026370)

	# CODCIR
	erreur_860026370=i_ajoutChampNum(g_iartout6,$TsymTetelephonie::T4codcir,$TsymTetelephonie::CODCIR,0)
	erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::CODCIR, pt_codcir_860026370)

	# ECCFACT
	erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::ECC_FACT, pt_eccfact_860026370)

	# SGTQS
	erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::SGTQS, pt_sgtqs_860026370)

	#CCD
	#erreur=i_ajoutChampNum(g_iartout6,$TsymTetelephonie::T4ccd,$TsymTetelephonie::CCD,0)
	erreur_860026370=i_set_art_field(g_iartout6, $TsymTetelephonie::CCD, CCD_REEL_860026370)

	#G3R23 suppression interrogation NARxyz
	# DEDE_FRT
	#erreur=i_get_art_str(g_iartin, $Tetelephonie::DETR_NUM, pt_DETR_NUM)
	#erreur = i_format_str2( pt1, "%s%s", "ETEL", pt_DETR_NUM )
	#i_strcpy(pt_DEDE_118FT, i_get_tab_field( "NARxyz", gmt_date, pt1 ))

	#SI (i_strplcmp (pt_DEDE_118FT,"118",0,3) == 0)
	#ALORS
	#	erreur=i_ajoutChampNum(g_iartout6,$TsymTetelephonie::T4dede_frt,$TsymTetelephonie::DEDE_FRT,0)
	#	erreur=i_set_art_str(g_iartout6, $TsymTetelephonie::DEDE_FRT, pt_DEDE_118FT)
	#FINSI

	# G4R6 Lot3
	# TYPE_EDIT
	SI i_strcmp(pt_TYPE_EDIT_860026370," ") != 0
	ALORS
		erreur_860026370 = i_ajoutChampNum(g_iartout6, $TsymTetelephonie::T4type_edit,$TsymTetelephonie::TYPE_EDIT,0)
		erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::TYPE_EDIT, pt_TYPE_EDIT_860026370)
	FINSI

	# CODE_TARIF
	SI i_strcmp(pt_CODE_TARIF_860026370,"    ") != 0
	ALORS
		erreur_860026370 = i_ajoutChampNum(g_iartout6, $TsymTetelephonie::T4code_tarif,$TsymTetelephonie::CODE_TARIF,0)
		erreur_860026370=i_set_art_str(g_iartout6, $TsymTetelephonie::CODE_TARIF, pt_CODE_TARIF_860026370)
	FINSI
	# /G4R6 Lot3

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

	SI ( EFFICACE_860026370 == 0 )
	ALORS
		erreur_860026370 = i_supprChamp(g_iartout6, "T4codcir")
		erreur_860026370 = i_supprChamp(g_iartout6, "T4codcirdr")
		#erreur = i_supprChamp(g_iartout6, "T4vcdr2")
		erreur_860026370 = i_supprChamp(g_iartout6, "T4call_type")
		erreur_860026370 = i_supprChamp(g_iartout6, "T4detrA")
		erreur_860026370 = i_supprChamp(g_iartout6, "T4idusA")
		#erreur = i_supprChamp(g_iartout6, "T4hlahm1")
		erreur_860026370 = i_supprChamp(g_iartout6, "T4tax1")
	FINSI

###########################################################################
# Article efficace MEMO VOCAL => suppression des champs non significatifs #
# car il n y a pas d appel a la BNC                                       #
###########################################################################

	SI ( EFFICACE_860026370 == 1 )
	ALORS
		# Le test doit se faire sur Callee pour la MEMO VOCAL
		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3Callee) )
		ALORS
			SI (g_iartout6.Callee[0] == 3)
			ALORS
				erreur_860026370 = i_supprChamp(g_iartout6, "T4codcir")
				erreur_860026370 = i_supprChamp(g_iartout6, "T4codcirdr")
				#erreur = i_supprChamp(g_iartout6, "T4vcdr2")
				erreur_860026370 = i_supprChamp(g_iartout6, "T4tax1")
			FINSI
		FINSI
	FINSI

###########################################################################
# cas appel a la BNC NOK mais sans mise ERRONE                     #
###########################################################################

	SI (ccd_860026370 == 0xff)
	ALORS
		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T4codcir) )
		ALORS
			erreur_860026370 = i_supprChamp(g_iartout6, "T4codcir")
		FINSI
		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T4codcirdr) )
		ALORS
			erreur_860026370 = i_supprChamp(g_iartout6, "T4codcirdr")
		FINSI
		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T4tax1) )
		ALORS
			erreur_860026370 = i_supprChamp(g_iartout6, "T4tax1")
		FINSI
	FINSI

#################################################
# Article efficace : suppression des codes pays #
#################################################

	# Traitement du demandeur

	SI i_valid_field_n(g_iartout6, $TsymTetelephonie::T3SelectorIN)
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::SelectorIN, 0, 2, 0x0f, g_iartout6, g_iartout6)
		modif_860026370 = 1
	FINSI

	SI i_valid_field_n(g_iartout6, $TsymTetelephonie::T3CgidentityPU)
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::CgidentityPU, 0, 2, 0x0f, g_iartout6, g_iartout6)
	FINSI

	SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3OriginCaller) && ( modif_860026370 == 0 ) )
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::OriginCaller, 0, 2, 0x0f, g_iartout6, g_iartout6)
	FINSI

	SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3TerminCaller) && ( modif_860026370 == 0 ) )
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::TerminCaller, 0, 2, 0x0f, g_iartout6, g_iartout6)
	FINSI

	# Traitement du demande

	modif_860026370 = 0
	erreur_860026370 = i_get_art_str(g_iartout6, $TsymTetelephonie::DETR_INF,pt1_860026370)
	erreur_860026370 = i_get_art_str(g_iartout6, $TsymTetelephonie::DETR_NUM,pt2_860026370)

	# Cas particulier des demandes DOM

	SI ( i_strcmp(pt1_860026370, "192") == 0 )
	ALORS
		i_get_sub_str(pt2_860026370, 0, 2, pt2_860026370)
		SI ( i_strcmp(pt2_860026370, "262") == 0 ) ||
		( i_strcmp(pt2_860026370, "590") == 0 ) ||
		( i_strcmp(pt2_860026370, "594") == 0 ) ||
		( i_strcmp(pt2_860026370, "596") == 0 )
		ALORS
			detr_dom_860026370 = 1
		FINSI

		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3VtrunkIN) && ( detr_dom_860026370 ==1 ) )
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::VtrunkIN, 0, 3, 0x0f, g_iartout6, g_iartout6)
			modif_860026370 = 1
		FINSI

		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3CdidentityPU) && ( detr_dom_860026370 ==1 ) )
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::CdidentityPU, 0, 3, 0x0f, g_iartout6, g_iartout6)
			modif_860026370 = 1
		FINSI

		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3TerminCallee) && ( detr_dom_860026370 ==1 ) && ( modif_860026370 == 0) )
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::TerminCallee, 0, 3, 0x0f, g_iartout6, g_iartout6)
		FINSI
	FINSI

	SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3OriginCallee) && ( detr_dom_860026370 ==1 ) && ( modif_860026370 == 0) )
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::OriginCallee, 0, 3, 0x0f, g_iartout6, g_iartout6)
	FINSI

	# Demandes nationaux (hors DOM)

	modif_860026370 = 0
	SI ( i_strcmp(pt1_860026370, "128") == 0 )
	ALORS
		SI i_valid_field_n(g_iartout6, $TsymTetelephonie::T3VtrunkIN)
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::VtrunkIN, 0, 2, 0x0f, g_iartout6, g_iartout6)
			modif_860026370 = 1
		FINSI

		SI i_valid_field_n(g_iartout6, $TsymTetelephonie::T3CdidentityPU)
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::CdidentityPU, 0, 2, 0x0f, g_iartout6, g_iartout6)
			modif_860026370 = 1
		FINSI

		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3TerminCallee) && ( modif_860026370 == 0 ) )
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::TerminCallee, 0, 2, 0x0f, g_iartout6, g_iartout6)
		FINSI

		SI ( i_valid_field_n(g_iartout6, $TsymTetelephonie::T3OriginCallee) && ( modif_860026370 == 0 ) )
		ALORS
			erreur_860026370 = i_supp_quart_num($TsymTetelephonie::OriginCallee, 0, 2, 0x0f, g_iartout6, g_iartout6)
		FINSI
	FINSI

	# Service : dans ce cas la, on a forcement uniquement TerminCallee dans le DC

	SI ( i_strcmp(pt1_860026370, "64") == 0 )
	ALORS
		erreur_860026370 = i_supp_quart_num($TsymTetelephonie::TerminCallee, 0, 2, 0x0f, g_iartout6, g_iartout6)
	FINSI

#################################################
# Modification de DETR_INF pour les appels DOM #
#################################################

	SI ( detr_dom_860026370 == 1 )
	ALORS
		erreur_860026370=i_set_art_field(g_iartout6, $TsymTetelephonie::DETR_INF, 0x80)
	FINSI

	#G4R6 lot 3
	#Suppression TAX1 et UT1 si appel C+S
	SI b_Fact_CPS_Loc_860026370
	ALORS
		SI i_valid_field_n(g_iartout6, $TsymTetelephonie::T4tax1)
		ALORS
			erreur_860026370 = i_supprChamp(g_iartout6, "T4tax1")
		FINSI
	FINSI
	#/G4R6 lot 3

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

	erreur_860026370 = i_supprChamp(g_iartout6, "DETR_NUM")
	erreur_860026370 = i_supprChamp(g_iartout6, "IDUS_NUM")
	erreur_860026370 = i_supprChamp(g_iartout6, "T4vcdr2")
	erreur_860026370 = i_supprChamp(g_iartout6, "T4_REJET")

	erreur_860026370 = i_stocke_art_iecc(g_iartout6,instSYMP_860026370)
FINSI

##################################################################################
# Mise au format pour SPOT (g_iartout5)
##################################################################################

SI( !i_ChercherCouranteECC(instSPOT_860026370) )
ALORS
	#trace(" ##__LINE__## duplication Vers SPOT")
	SI (i_dup_art_id(g_iartout17,g_iartout5))
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SPOT","Tetel",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	SI ( i_valid_field_n(g_iartout5,$Tetelephonie::T3ace))
	ALORS
		erreur_860026370 = i_supprChamp(g_iartout5,"T3ace")
	FINSI

	SI (i_rename_art(g_iartout5,C_TspotTeteleph_860026370))
	ALORS
		#trace(" ##__LINE__## erreur i_rename_art spot")
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SPOT","Tetel",g_ieec)
		SAUT DISTRI_ERR
	FINSI

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

	# Champ SGTQS

	erreur_860026370 = i_ajoutChampNum(g_iartout5,$TspotTeteleph::T4sgtqs,$TspotTeteleph::SGTQS,0)
	erreur_860026370=i_set_art_str(g_iartout5,$TspotTeteleph::SGTQS, pt_sgtqs_860026370)
FINSI

#-------------------------------------------------------------------------
# SPOT	g_iartout5
#-------------------------------------------------------------------------

SI( !i_ChercherCouranteECC( instSPOT_860026370 ) && ( trait_ok_860026370 == 0 ))
ALORS
	res_860026370 = i_stocke_art_iecc(g_iartout5, instSPOT_860026370)
	#trace1(" ##__LINE__## retour de i_stocke_art_iecc pour SPOT_ETEL : %d",res)
FINSI

##################################################################################
# Mise au format pour AFDB  (G3R20)
##################################################################################

SI( !i_ChercherCouranteECC(instAFDB_860026370) )
ALORS
	#trace(" ##__LINE__##  duplication vers AFDB")

	SI (i_dup_art_id(g_iartout17,g_iartout8))
	ALORS
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SPOT","Tetel",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	SI ( i_valid_field_n(g_iartout8,$Tetelephonie::T3ace))
	ALORS
		erreur_860026370 = i_supprChamp(g_iartout8,"T3ace")
	FINSI

	SI (i_rename_art(g_iartout8,C_TafdbEtel_860026370))
	ALORS
		#trace(" ##__LINE__## erreur i_rename_art spot")
		erreur_860026370 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"pour SPOT","Tetel",g_ieec)
		SAUT DISTRI_ERR
	FINSI

	#---------------------------------------------------------------------------------
	# Complements AFDB
	#---------------------------------------------------------------------------------

	# Champ SGTQS

	erreur_860026370 = i_ajoutChampNum(g_iartout8,$TafdbEtel::T4sgtqs,$TafdbEtel::SGTQS,0)
	erreur_860026370 = i_set_art_str(g_iartout8,$TafdbEtel::SGTQS, pt_sgtqs_860026370)

	# G3R22 QC504
	# Champ DATE_LOCALE (icar)

	erreur_860026370 = i_ajoutChampNum(g_iartout8,$TafdbEtel::T4icar,$TafdbEtel::icar,0)
	erreur_860026370 = i_set_art_field(g_iartout8,$TafdbEtel::icar, hlahm1_860026370)

	# Champ CALL_TYPE

	erreur_860026370 = i_ajoutChampNum(g_iartout8,$TafdbEtel::T4call_type,$TafdbEtel::CALL_TYPE,0)
	erreur_860026370 = i_set_art_str(g_iartout8,$TafdbEtel::CALL_TYPE, pt_call_type_860026370)
FINSI

#-------------------------------------------------------------------------
# AFDB	g_iartout8
#-------------------------------------------------------------------------

SI( !i_ChercherCouranteECC( instAFDB_860026370 ) && ( trait_ok_860026370 == 0 ))
ALORS
	res_860026370 = i_stocke_art_iecc(g_iartout8, instAFDB_860026370)
	#trace1(" ##__LINE__## retour de i_stocke_art_iecc pour AFDBETEL : %d ",res)
FINSI

# G3R21CY
##################################################################################
# Mise au format, envoi IECC pour CASPER (g_iartout3)
##################################################################################

SI( !i_ChercherCouranteECC( instCASPER_860026370 ) && ( trait_ok_860026370 == 0 ))
ALORS
	#trace(" ##__LINE__##  duplication vers CASPER")

	# Champ SGTQS
	erreur_860026370 = i_set_art_str(g_iartout3,$TcasperTeteleph::SGTQS, pt_sgtqs_860026370)

	# Champ CODCIR
	erreur_860026370 = i_set_art_str(g_iartout3,$TcasperTeteleph::CODCIR, pt_codcir_860026370)

	# Champ CODCIRDR
	erreur_860026370 = i_set_art_str(g_iartout3,$TcasperTeteleph::CODCIRDR, pt_codcirdr_860026370)

	res_860026370 = i_stocke_art_iecc(g_iartout3, instCASPER_860026370)
	#trace1(" ##__LINE__## retour de i_stocke_art_iecc pour CASPER : %d ",res)
FINSI

############################################################################
# Envoi vers IECC (autres que Symphonie,AFDB et SPOT)
############################################################################

SI (bREDIST_860026370 == 1)
ALORS
	SAUT DISTRI_REDIST
FINSI

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

SI (!i_ChercherCouranteECC(instFERPV_860026370) )
ALORS
	res_860026370 = i_stocke_art_iecc( g_iartout, instFERPV_860026370 )
FINSI

#----------------------------------------------------------------------------
# TRAFIC
#----------------------------------------------------------------------------

SI (! i_ChercherCouranteECC(instTRAFIC_860026370))
ALORS
	res_860026370 = i_stocke_art_iecc( g_iartout2, instTRAFIC_860026370)
FINSI

#trace(" ##__LINE__## Fin du Pcode de distribution Tetelephonie")

RETOUR TRAIT_OK

############################################################################
# Stockage en Elimine
############################################################################

POINT DISTRI_ELIMINE

res_860026370 = i_make_art_rej(g_iartin, g_iartout11, 0)
res_860026370 = i_stocke_art( g_iartout11, 0, PT_DIVERS, 0)

RETOUR TRAIT_OK

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

POINT DISTRI_ERR

#trace(" ##__LINE__## Stockage en errone de distribution ")
res_860026370 = i_make_art_rej(g_iartin, g_iartout8, 0)
res_860026370 = i_stocke_art( g_iartout8, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

###########################################################################
# Stockage pour redistribution
###########################################################################

POINT DISTRI_REDIST

SI (trait_ok_860026370 == 0)
ALORS
	#---------------------
	#  Creation de l'ENVELOPPE Optionelle:
	# Contient le nom de l'EEC necessaire au message d'erreur de la redistribution
	# Nom_EEC
	# Creation de l'enveloppe
	res_860026370 = i_add_opt( "EnomEEC" )
	# champ T1 (=>  0x08 pour la reconnaissance de l'enveloppe,
	# par l'arbre de reconnaissance Dopt )
	#res = i_set_attr_val_n( $EnomEEC::T1, 0x08 )

	# Champ L1
	#res = i_set_attr_val_n( $EnomEEC::L1, 0x06 )

	res_860026370 = i_set_attr_str_n( $EnomEEC::Nom_EEC, pt_sgtqs_860026370)
	erreur_860026370 = i_PlvMessEmettre(8503,2,g_iartin,"",3,pt_LIBELREDIST_860026370,"Tetelephonie",pt_sgtqs_860026370)
FINSI

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

RETOUR TRAIT_OK

#---------------- Fin Tetel_dis.src -----------------
