DEFINITION Multidistribution_Non_660004650 0
DEFINITION DISTRIBUTION_SPECIALE_660004650 0
DEFINITION C_Tdpv_660004650 "Tdpvgsm"
DEFINITION C_Article_660004650 "Twifi"
DEFINITION NUMTAB_660004650 4
DEFINITION TRAI_KO_660004650 -1
REGISTRE ENTIER date_plat_660004650
REGISTRE ENTIER date_fin_660004650
REGISTRE ENTIER date_660004650
REGISTRE ENTIER erreur_660004650
REGISTRE ENTIER code_rejet_660004650
REGISTRE ENTIER code_errone_660004650
REGISTRE ENTIER type_cra_660004650
REGISTRE ENTIER EFFICACE_660004650
REGISTRE ENTIER index_660004650
REGISTRE ENTIER Nb_redist_660004650
REGISTRE ENTIER date_audit_660004650
REGISTRE ENTIER ICAR_ABS_660004650
REGISTRE ENTIER EEC_audit_660004650
REGISTRE ENTIER bloc_audit_660004650
REGISTRE ENTIER DC_audit_660004650
REGISTRE ENTIER comid_num_660004650
REGISTRE ENTIER longueur_660004650
REGISTRE ENTIER Roaming_660004650
REGISTRE ENTIER long_660004650
REGISTRE POINTEUR pt_idemet_660004650
REGISTRE POINTEUR pt_marque_audit_660004650
REGISTRE POINTEUR pt_1_660004650
REGISTRE POINTEUR pt_2_660004650
REGISTRE POINTEUR pt_3_660004650
REGISTRE POINTEUR pt_TADIG_660004650
REGISTRE POINTEUR pt_MCCMNC_660004650
REGISTRE POINTEUR pt_VisitNetID_660004650
REGISTRE POINTEUR pt_res_660004650
REGISTRE POINTEUR pt_MCCMNC_DCB_660004650
REGISTRE POINTEUR pt_prefix_660004650
################################################################
# Pcode de DISTRIBUTION Twifi_dis.src
# Service WIFI:
# Article : Twifi
#	"VO" 	for voucher
#	"SU" 	for subscriber
#	"RI" 	for roaming in
#	"RO" 	for roaming out
#	"RR" 	for roaming out to be transmitted by SARAT
#	"RT" 	for roaming out to be filtered by SARAT
#	"RIR" 	for roaming in, from non TAP operator
#	"RIT" 	for roaming in, from TAP operator
#	"WCO" 	Wifi COmmunautaire
################################################################
#
# URS/		21/12/2005	Creation
# 19/04/06 FO 180 dump article
# 19/04/06 FO 181 stockage en errone
# 12/05/06 PSA Appel fonction i_incr_redist_dist pour compteur redistribution
# 01/09/06 JLG report FO CaME : 240, 242
# 04/09/06 JLG FO 240 complements
# 20/12/06 DRE G3R0CdME lot3
# 14/06/07 PKH/PSA G1R3/G3R0CeME : FO 525
# 09/08/07 Creation enveloppe optionnelle E_Redist2
# 26/08/10 JLG G3R1 lot3 : Prise en compte wifi communautaire
# 27/12/10 BEA G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 28/03/11 PKH G3R3 lot2 Wifi communautaire Type = FAI
# 27/07/11 PKH G3R4 lot2 Identification du code op?rateur de roaming TADIG
# 25/08/11 PKH QC918 Correction format du champ T3t59 du Dpvgsm
# 26/08/11 PKH QC919 Correction intitule de l alarme 7518 interrogation de la table ext MCCMNC avec la cle
# 29/08/11 JLG QC920 Evolution spec :Modification des conditions de recherche en table MCCMNC_TADIG
# 29/02/2012 - JLG -G3R6 QC1005 modif alarme retour aiguillage
# 11/02/2014 - JLG -G5R1 QC1331, Built 3 : Changement Marque Audit
# 02/07/2014 - JLG -G5R1 QC1405, champ eec du DPV si g_ieec > 500
################################################################








# Initialisations
EFFICACE_660004650 = 2
code_rejet_660004650 = 0
Roaming_660004650 = 0
long_660004650 = 0

# INITIALISATION POINTEUR
pt_idemet_660004650	= "4444444444444444444444444444444444444444444444444444444444444444444444444"
pt_1_660004650 		= "2222222222222222222222222222222222222222222222222222245678901234567890123456789012345678901234567890\
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\
1234567890123456789012345678901234567890123456"
pt_2_660004650 		= "33333333333333333333333333333333333333333333333333333"
pt_3_660004650 		= "55555555555555555555555555555555555555555555555555555"
pt_marque_audit_660004650	= "6666666666666666666666666666666666666666666666"
pt_TADIG_660004650 = "pt_TADIG11111111111111111111111111111111111111111111111111111111111111111111111111"
pt_MCCMNC_660004650 = "pt_MCCMNC777777777777777777777777777777777777777777777777777777777777777777777777"
pt_VisitNetID_660004650 = "pt_VisitNetID171717171717171717171717171717171711771717171171717171717717171"
pt_res_660004650 = "pt_res575757575757757575757575757575757575755775575757575755555757755757575757577"
pt_MCCMNC_DCB_660004650 = "pt_MCCMNC_DCB47474747474747474747474744747474744747474747747474747474747747"
pt_prefix_660004650 = "pt_prefix9292929292992922992299292292929292929292929292929"

i_strcpy(pt_TADIG_660004650,"")
i_strcpy(pt_MCCMNC_660004650,"")
i_strcpy(pt_marque_audit_660004650,"")
i_strcpy(pt_VisitNetID_660004650,"")
i_strcpy(pt_res_660004650,"")
i_strcpy(pt_MCCMNC_DCB_660004650,"")
i_strcpy(pt_prefix_660004650,"")
#####################################################################################

trace("Pcode de distribution de Twifi")
#erreur = i_fdump_art(g_iartin)

########### Date_Audit # date=i_date_audit()
########################################################
########### Date_Audit
date_audit_660004650=i_date_audit()
#trace1("[Twifi_dis] date_audit=%x",date_audit)

#############################
# REDISTRIBUTION
#############################
#Compteur de redistrib
##################################################################################
# la provenance de l'article
# Nb_redist : nb de passage en redistribution (lecture de l'enveloppe obligatoire)
##################################################################################
Nb_redist_660004650 = -1
Nb_redist_660004650 = i_LireRedistCpt()

SI (Nb_redist_660004650 == 0)
ALORS
	erreur_660004650 = i_add_opt( "E_Redistri2" )
FINSI
erreur_660004650 = i_set_attr_val_n( $E_Redistri2::EnvoiRedis, 0)

# FE_0028 comptabilisation des CRAs issus de la redistribution
date_fin_660004650=i_get_art_field(g_iartin,$Twifi::dfin)
erreur_660004650= i_incr_redist_dist_660004265(date_fin_660004650)

##############################################################################
# Variables fonctionnelles
##############################################################################
#Hot_SpotId

#Userlogin_name

#Userlogin_realm

# AccesPointId

#G3R4 lot4
#QC920
SI (i_valid_field_n(g_iartin, $Twifi::VisitNetID))
ALORS
	erreur_660004650 = i_get_art_str (g_iartin,$Twifi::VisitNetID,pt_VisitNetID_660004650)
	i_get_sub_str (pt_VisitNetID_660004650,0,2,pt_prefix_660004650)
	SI (i_strcmp(pt_prefix_660004650,"208") != 0)
	ALORS
		Roaming_660004650 = 1
		i_strcpy(pt_res_660004650,i_get_tab_field("MCCMNC_TADIG", date_fin_660004650, pt_VisitNetID_660004650))
		SI (i_strcmp( pt_res_660004650, g_inull)  != 0)
		ALORS
			erreur_660004650 = i_recupererValeur(pt_res_660004650,pt_TADIG_660004650,5,'-')
			SI (i_strcmp (pt_res_660004650,g_inull) == 0)
			ALORS
				i_strcpy(pt_MCCMNC_660004650,pt_VisitNetID_660004650)
			SINON
				i_strcpy(pt_MCCMNC_660004650,pt_res_660004650)
			FINSI
		SINON
			code_errone_660004650 = 0xA0A0
			code_errone_660004650 = code_errone_660004650 + EFFICACE_660004650
			erreur_660004650 = i_PlvMessEmettre(7518,2,g_iartin,"",3,code_errone_660004650,"WIFI - MCCMNC_TADIG",pt_VisitNetID_660004650)
			SAUT STOCKE_ERRONE
		FINSI
	FINSI
	trace2 ("<<__LINE__ >> ============ pt_TADIG = %s pt_MCCMNC = %s ==============",pt_TADIG_660004650,pt_MCCMNC_660004650)
FINSI


##############################################################################
# Conversion DPV3.3
##############################################################################

############################################################################
# Duplication Tdpv33 (g_iartout)
############################################################################
#Duplication article d entree vers DPV TLV

SI (i_dup_art_tab( g_iartin, g_iartout, C_Tdpv_660004650))
ALORS
	#trace("ERREUR de duplication")
	code_errone_660004650 = 0xA0D0
	code_errone_660004650 = code_errone_660004650 + EFFICACE_660004650
	erreur_660004650 = i_PlvMessEmettre(6254,2,g_iartin,"",2,code_errone_660004650,C_Tdpv_660004650,0)
	SAUT STOCKE_ERRONE
FINSI

erreur_660004650 = i_cree_art("Conv_URS",g_iartout10)

########################## Modif des champs #############################
###### T3t1.1 type :MSET :80:1

###### T3t1.2 tentite :MSET :14:1

########T3t1.3	idemet :MSET :FF:9 (defaut table dup)
########### ICAR_ABS
date_660004650 =i_get_art_field(g_iartin,$Twifi::DATE)
ICAR_ABS_660004650 =i_date_platine(g_ieec,g_iartin,date_660004650)

i_strcpy(pt_idemet_660004650, " ")
i_strcpy(pt_idemet_660004650, i_get_tab_field("VariableContexte", ICAR_ABS_660004650, "AX_IDEMET_WIFI"))


SI (i_strcmp(pt_idemet_660004650,g_inull)) != 0
ALORS
	longueur_660004650= 0
	longueur_660004650=i_strlen(pt_idemet_660004650)
	erreur_660004650 = i_set_art_str(g_iartout10,$Conv_URS::RepTab, pt_idemet_660004650)
#	erreur = i_get_art_str(g_iartout10,$Conv_URS::RepTab, pt_1)
#	trace2("[Twifi_dis] *****RepTab***=%s",pt_1,"")
	index_660004650=0
	POINT BOUCLE0
	SI (index_660004650 < longueur_660004650)
	ALORS
		g_iartout10.ax_idemet[index_660004650]=g_iartout10.RepTab[index_660004650] - 0x30
		SI (g_iartout10.RepTab[index_660004650] > 0x40)
		ALORS
			g_iartout10.ax_idemet[index_660004650]=g_iartout10.RepTab[index_660004650] - 0x37
		FINSI
#		trace1("index=%d",index)
#		trace1("g_iartout10.ax_idemet=%x",g_iartout10.RepTab[index] - 0x30)
		index_660004650=index_660004650+1
		SAUT BOUCLE0
	FINSI
	erreur_660004650 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::ax_idemet, $Tdpvgsm::idemet)
SINON
#	pt_idemet : "33019000000FFFFFFF"
#	longueur = g_iartout.idemet!NELEM
	g_iartout.idemet[0]= 0x3
	g_iartout.idemet[1]= 0x3
	g_iartout.idemet[2]= 0x0
	g_iartout.idemet[3]= 0x1
	g_iartout.idemet[4]= 0x9
	index_660004650 = 5
	POINT BOUCLE
	SI index_660004650 < 11
	ALORS
		g_iartout.idemet[index_660004650]= 0x0
		index_660004650 = index_660004650 + 1
		SAUT BOUCLE
	FINSI
FINSI

###### T3t1.4 IMSI :MSET :FF:8

SI ( !i_valid_field_n(g_iartin, $Twifi::IMSI))
ALORS
#	trace("[Twifi_dis] IMSI absent")
	i_strcpy(pt_1_660004650," ")
	erreur_660004650 = i_get_art_str(g_iartin, $Twifi::UserLogin, pt_1_660004650)
#	trace2( "[Twifi_dis] valeur : %s",pt_1,"")
	i_strcpy(pt_3_660004650," ")
	erreur_660004650 = i_get_art_str(g_iartin, $Twifi::ChargingType, pt_3_660004650)
	i_strcpy(pt_2_660004650," ")
	i_get_sub_str(pt_1_660004650, 0, 0, pt_2_660004650)
#	trace2( "[Twifi_dis] valeur : %s",pt_2,"")
	SI ((i_strcmp("D", pt_2_660004650) == 0) || (i_strcmp("d", pt_2_660004650) == 0)) && ((i_strcmp("RIR",pt_3_660004650) != 0) && (i_strcmp("RIT",pt_3_660004650) != 0))
	ALORS
#		trace("[Twifi_dis] IMSI absent UserLogin commence par D")
		index_660004650 = 0
		POINT BOUCLE1
		SI index_660004650 < 15
		ALORS
			g_iartout.IMSI[index_660004650]= 0x5
			index_660004650 = index_660004650 + 1
			SAUT BOUCLE1
		FINSI
	SINON
#		trace("[Twifi_dis] IMSI absent UserLogin ne commence pas par D")
		index_660004650 = 0
		POINT BOUCLE2
		SI index_660004650 < 15
		ALORS
			g_iartout.IMSI[index_660004650]= 0x9
			index_660004650 = index_660004650 + 1
			SAUT BOUCLE2
		FINSI
	FINSI
SINON
	erreur_660004650 = i_dup_chp_1val(g_iartin, g_iartout, $Twifi::IMSI, $Tdpvgsm::IMSI)
#	trace("[Twifi_dis] IMSI present")
FINSI

###### T3t1.5 DATE :1VAL :DATE

###### T3t1.6 DUREE :1VAL :DUREE

###### T3t1.7 svcsup :MSET :E0:1

###### T3t1.8 tlserv :MSET :FF:1

###### T3t1.9 support1 :MSET :FF:1

###### T3t1.10 systype :MSET :FF:1

###### T3t1.11 reserve2 :MSET :FF:1

###### T3t1.12 origine :MSET :FF:1

###### T3t1.13 indeff :MSET :00:1

###### T3t1.14 tterm :1VAL :TermCause


###### T3t1.15 indtax :MSET :FF:1

###### T3t1.16 nbUT :MSET :FF:4

###### T3t1.17 chgcar :MSET :FF:2
# 		ChargingType
# G3R1 lot3 : ajout WCO (wifi communautaire)
# G3R3 lot2 : ajout FAI -> 0x1005
###################################################################
erreur_660004650 = i_get_art_str(g_iartin, $Twifi::ChargingType, pt_1_660004650)
longueur_660004650 = (i_strlen(pt_1_660004650))
SI longueur_660004650 ==2
ALORS
	i_strcpy(pt_2_660004650," ")
	i_get_sub_str(pt_1_660004650, 0, 1, pt_2_660004650)
	SI (i_strcmp("RO", pt_2_660004650) == 0)
	ALORS
		erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1001)
	SINON
		SI (i_strcmp("VO", pt_2_660004650) == 0)
		ALORS
			erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1004)
		SINON
			SI (i_strcmp("SU", pt_2_660004650) == 0)
			ALORS
				erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1008)
			SINON
				SI (i_strcmp("RR", pt_2_660004650) == 0)
				ALORS
					erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100A)
				SINON
					SI (i_strcmp("RT", pt_2_660004650) == 0)
					ALORS
						erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100C)
					SINON
						SI (i_strcmp("RI", pt_2_660004650) == 0)
						ALORS
							erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1002)
						SINON
							erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0xFFFF)
							SI (i_strcmp("RX", pt_2_660004650) == 0)
							ALORS
								erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100B)
							SINON
								erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0xFFFF)
								SI (i_strcmp("RZ", pt_2_660004650) == 0)
								ALORS
									erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100F)
								SINON
									erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0xFFFF)
								FINSI
							FINSI
						FINSI
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI
SINON
	SI (i_strcmp("RIR", pt_1_660004650) == 0)
	ALORS
		erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100D)
	SINON
		SI (i_strcmp("RIT", pt_1_660004650) == 0)
		ALORS
			erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x100E)
		SINON
			SI (i_strcmp("WCO", pt_1_660004650) == 0)
			ALORS
				erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1003)
			SINON
				SI (i_strcmp("FAI", pt_1_660004650) == 0)
				ALORS
					erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0x1005)
				SINON
					erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chgcar,0xFFFF)
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

###### T3t1.18 couleur :MSET :FF:1

###### T3t2 idpart :1VAL :idpart(Conv_URS)

###### T3t3 local :MSET :99:5

# G3R1 lot3 : ajout WCO
# G3R3 lot2 : ajout FAI

SI (  ( i_strcmp("VO", pt_1_660004650) == 0 || i_strcmp("SU", pt_1_660004650) == 0 || i_strcmp("RO", pt_1_660004650) == 0 || i_strcmp("RR", pt_1_660004650) == 0 || i_strcmp("RT", pt_1_660004650) == 0 || i_strcmp("RI", pt_1_660004650) == 0 || i_strcmp("RIR", pt_1_660004650) == 0 || i_strcmp("RIT", pt_1_660004650) == 0 || i_strcmp("RX", pt_1_660004650) == 0 || i_strcmp("RZ", pt_1_660004650) == 0 || i_strcmp("WCO", pt_1_660004650) == 0 || i_strcmp("FAI", pt_1_660004650) == 0) &&  i_valid_field_n(g_iartin, $Twifi::VisitNetID)  )
ALORS
	erreur_660004650 = i_dup_chp_1val(g_iartin, g_iartout, $Twifi::VisitNetID, $Tdpvgsm::local)
SINON
	g_iartout.local[9]= 0xF
FINSI

###### T3t4 MSISDN :1VAL :msisdn

###### T3t16 TrSortant :1VAL :HomeNetIT

#erreur = i_dup_chp_1val(g_iartin, g_iartout, $Twifi::TrSortant, $Tdpvgsm::HomeNetIT)
#erreur = i_get_art_str(g_iartin, $Twifi::HomeNetIT, pt_1)
#trace2("[Twifi_dis] TrSortant val de HomeNetIT=%s",pt_1,"")
longueur_660004650 = i_get_art_field(g_iartin, $Twifi::HomeNetIT - 2)
index_660004650=0
POINT BOUCLE3
SI (index_660004650 < longueur_660004650) && (index_660004650 < 7)
ALORS
	g_iartout.TrSortant[index_660004650]=g_iartin.HomeNetIT[index_660004650]
	index_660004650=index_660004650+1
	SAUT BOUCLE3
FINSI

SI index_660004650 != 7
ALORS
	erreur_660004650 = i_resize_tlv(g_iartout, "T3t16", "TrSortant", index_660004650)
FINSI


###### T3t20
###### T4t20.1 PDPaddr :1VAL :IPAdressT

###### T4t20.2 accPointName3 :1VAL :SubscriberID #accPointName3 :MSET :FF
# G3R1 lot3 : ajout WCO
# G3R3 lot2 : ajout FAI
i_strcpy(pt_1_660004650,"")
erreur_660004650 = i_get_art_str(g_iartin, $Twifi::ChargingType, pt_1_660004650)
i_strcpy(pt_2_660004650,"")
i_get_sub_str(pt_1_660004650, 0, 1, pt_2_660004650)
# RI, RIT, RIR sont absents de la comparaison
SI ( i_strcmp("VO", pt_2_660004650) != 0 && i_strcmp("SU", pt_2_660004650) != 0 && i_strcmp("RO", pt_2_660004650) != 0 && i_strcmp("RR", pt_2_660004650) != 0 && i_strcmp("RT", pt_2_660004650) != 0 && i_strcmp("RX", pt_2_660004650) != 0 && i_strcmp("RZ", pt_2_660004650) != 0 && i_strcmp("WCO", pt_1_660004650) != 0 &&i_strcmp("FAI", pt_1_660004650) != 0 )
ALORS
	i_strcpy(pt_3_660004650,"wlan.orange.fr")
	longueur_660004650 = i_strlen(pt_3_660004650)
	erreur_660004650 = i_set_art_str(g_iartin,$Twifi::accpointname3,pt_3_660004650)
	erreur_660004650 = i_dup_chp_1val(g_iartin, g_iartout, $Twifi::accpointname3T, $Tdpvgsm::accPointName3)
	erreur_660004650 = i_resize_tlv(g_iartout,"T4t20.2", "accPointName3", longueur_660004650)
SINON
	erreur_660004650 = i_dup_chp_1val(g_iartin, g_iartout, $Twifi::SubscriberIT, $Tdpvgsm::accPointName3)
FINSI

###### T4t20.3 accPointName4 :1VAL :accpointname4T

erreur_660004650 = i_get_art_str(g_iartin, $Twifi::accpointname4, pt_1_660004650)
longueur_660004650 = 0
longueur_660004650 = (i_strlen(pt_1_660004650))
erreur_660004650 = i_resize_tlv(g_iartout, "T4t20.3", "accPointName4",longueur_660004650)

###### T4t20.4 chargingID :MSET :00:4 <> Identifiant
#QC1331
pt_marque_audit_660004650=i_LireMarqueAudit()

# Recuperation identifiant EEC (6eme octet) EEC
# Masquage des 6 bits de poids faible
EEC_audit_660004650 = i_strtab(pt_marque_audit_660004650, 12) & 0x3f
#trace1("[Tussd_dis] EEC_audit : %d", EEC_audit)

# Recuperation identifiant de bloc (7 et 8eme octet)
# Masquage des 15 bits de poids faible
bloc_audit_660004650 =  ( ( i_strtab(pt_marque_audit_660004650, 15) * 256) + i_strtab(pt_marque_audit_660004650, 14) ) & 0x7fff
#trace1("[Tussd_dis] bloc_audit : %d", bloc_audit)

# Recuperation identifiant du DC (11 et 12eme octet)
# Masquage des 10 bits de poids faible
DC_audit_660004650 = ( ( i_strtab(pt_marque_audit_660004650, 9) * 256 )+ i_strtab(pt_marque_audit_660004650, 8) ) & 0x3ff
#trace1("[Tussd_dis] DC_audit : %d", DC_audit)

# Calcul  identifiant audit de com
comid_num_660004650 = (EEC_audit_660004650 * 33554432) + (bloc_audit_660004650 * 1024) + DC_audit_660004650
#trace1("[Tussd_dis] comid_num : %d", comid_num)

erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::chargingID, comid_num_660004650)

###### T4t20.6 PartialType :MSET :03:1

###### T4t20.7 RecEntId1 :1VAL :AccPointIT

###### T4t20.10
###### V4t20.10.1 totVolOut :1VAL :UpTrafficL
###### V4t20.10.2 totVolIn :1VAL :DownTrafficL

###### T3t29 WlanHotSpotId :1VAL :HotspotID
#erreur=i_get_art_str(g_iartin,$Twifi::HotspotID,pt_1)
#longueur = (i_strlen(pt_1))
#longueur=longueur + 1
#erreur=i_memcpy_art_field(g_iartin, $Twifi::HotspotIT,pt_1,longueur)
#erreur=i_memcpy_art_field(g_iartout, $Tdpvgsm::WlanHotSpotId,pt_1,longueur)

###### T3t30
###### T4t30.1 timeInCE :1VAL :DATE
###### date_plat
date_plat_660004650 = i_DHgetLocalTime(NUMTAB_660004650, 7, date_audit_660004650)
#trace1("======== date_plat = %d ========",date_plat)

erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::timeInCE,date_plat_660004650)

###### T4t30.2 eec :MSET :00:1
# QC1405
SI (g_ieec > 500)
ALORS
  erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec - 500)
SINON
  erreur_660004650 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec)
FINSI
#/QC1405

###### T3t31 WlanSubscribId :1VAL :UserLoginT
erreur_660004650=i_get_art_str(g_iartin,$Twifi::UserLogin,pt_1_660004650)
longueur_660004650 = (i_strlen(pt_1_660004650))
SI longueur_660004650 > 37
ALORS
	longueur_660004650 = 37
SINON
	erreur_660004650 = i_resize_tlv( g_iartout, "T3t31", "WlanSubscribId", longueur_660004650 )
FINSI

i_get_sub_str(pt_1_660004650, 0, longueur_660004650 - 1, pt_2_660004650)
erreur_660004650 = i_set_art_str(g_iartout, $Tdpvgsm::WlanSubscribId,pt_2_660004650)

#longueur=longueur + 1
#erreur=i_memcpy_art_field(g_iartin, $Twifi::UserLoginT,pt_1,longueur)
#erreur=i_memcpy_art_field(g_iartout, $Tdpvgsm::WlanSubscribId,pt_1,longueur)

###### T3t32 WlanAccPointId :1VAL :AccPointID
#erreur=i_get_art_str(g_iartin,$Twifi::AccPointID,pt_1)
#longueur = (i_strlen(pt_1))
#longueur=longueur + 1
#erreur=i_memcpy_art_field(g_iartin, $Twifi::AccPointIDT,pt_1,longueur)
#erreur=i_memcpy_art_field(g_iartout, $Tdpvgsm::WlanAccPointId,pt_1,longueur)

###### T3t40
###### T4t40.1 userIdNet :1VAL :UserLogin

###### T3t60 GMULTI2
#Debut G3R0CdME lot3
SI ( i_valid_field_n(g_iartin, $Twifi::AdresseMAC))
ALORS
	erreur_660004650 = i_get_art_str(g_iartin,$Twifi::AdresseMAC,pt_1_660004650)
	longueur_660004650 = i_conv_ascii_dcb(REMPLACE_CHAINE_660004265(pt_1_660004650, ".", ""), pt_2_660004650)
	erreur_660004650 = i_ajoutChamp(g_iartout, "T3t60","GMULTI2",0)
	erreur_660004650 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::GMULTI2,pt_2_660004650, longueur_660004650)
	erreur_660004650 = i_resize_tlv( g_iartout, "T3t60", "GMULTI2", longueur_660004650 * 8 )
FINSI


#Fin G3R0CdME lot3

#G3R4 lot2
###### T3t51 servPlatRoaInf, T3t59 PrefixIMSIpart
#QC918
SI (Roaming_660004650 == 1)
ALORS
	erreur_660004650 = i_ajoutChamp(g_iartout,"T3t51","servPlatRoaInf",0)
	long_660004650 = i_conv_ascii_dcb (pt_MCCMNC_660004650, pt_MCCMNC_DCB_660004650)
	erreur_660004650 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::servPlatRoaInf,pt_MCCMNC_DCB_660004650, long_660004650)
	erreur_660004650  = i_resize_tlv( g_iartout, "T3t51", "servPlatRoaInf", long_660004650 * 8)
	erreur_660004650 = i_ajoutChamp(g_iartout,"T3t59","PrefixIMSIpart",1)
	erreur_660004650 = i_set_art_str(g_iartout,$Tdpvgsm::LocalTADIG,pt_TADIG_660004650)
FINSI

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

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

erreur_660004650 = aiguillage2_660004590 (g_iartin, g_iartout, DISTRIBUTION_SPECIALE_660004650, Multidistribution_Non_660004650)

SI (erreur_660004650 == TRAI_KO_660004650)
ALORS
# QC1005
	trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
#	code_errone = 0xA0B0
#	code_errone = code_errone + EFFICACE
#	type_cra= 0x01
#	erreur = i_PlvMessEmettre(7500,2,g_iartin,"",3,code_errone,C_Article,type_cra)
	SAUT STOCKE_ERRONE
FINSI

# DPV 33

RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_OK
#####################################################################

POINT STOCKE_OK

erreur_660004650 = i_stocke_art(g_iartin, 0, PT_OK,0)

trace("Fin distribution Article Twifi")
RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_ERRONE
#	       correspond au cas d'erreur syntaxiques et semantiques
#####################################################################

POINT STOCKE_ERRONE

trace("Stockage de l'article en ERRONE")

erreur_660004650 = i_make_art_rej(g_iartin, g_iartout, code_rejet_660004650)
erreur_660004650 = i_stocke_art(g_iartout, 0, PT_ERRONE, 0)

trace("Fin traitement Twifi")
RETOUR TRAIT_OK


###########################################################################
# Stockage en elimine
###########################################################################

POINT STOCKE_DIV
#IFDEF trace_niv1 = 1
trace( "Fin du Pcode de distribution WIFI : Stockage en ELIMINE" )
#ENDIF
erreur_660004650 = i_stocke_art( g_iartin, 0, PT_DIVERS, 0 )

RETOUR TRAIT_OK

#---------------------------------- Fin Twifi_dis.src -------------------------
