DEFINITION INCREMENT_840005440 1
DEFINITION CPT_840005440 1501
DEFINITION CPT_3G_840005440 1504
DEFINITION CPT_4G_840005440 1533
DEFINITION MODULE_TRAIT_840005440 0x5000
DEFINITION ERR_DATE_840005440 0x060
DEFINITION ERR_SYNTAX_840005440 0x070
REGISTRE ENTIER erreur_840005440
REGISTRE ENTIER present_840005440
REGISTRE ENTIER code_rejet_840005440
REGISTRE ENTIER EFFICACE_840005440
REGISTRE ENTIER MODULE_840005440
REGISTRE ENTIER ERREUR_840005440
####################################################################
#	article TtMsg_nss9
#	TtMsg_nss9_tr.src
#	GF 16/10/02	Creation
#
# 20/01/11 - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 25/10/2012 - JLG - G3R8 lot2 : CS Fallback, Localisation 4G
####################################################################






trace("**** TtMsg_nss9 : Debut traitement ****")

# Initialisations

EFFICACE_840005440 = 1
MODULE_840005440 = MODULE_TRAIT_840005440
ERREUR_840005440 = 0
code_rejet_840005440 = 0

#stocke_date = i_cur_date()

#
# Test de la prisence du champ IMEI
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::IMEI)	
SI (present_840005440 == 0)
ALORS
	trace("IMEI absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"IMEI",0)
	SAUT STOCKE_ERRONE
FINSI

#
# Test de la prisence du champ DATE
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::DATE)	
SI (present_840005440 == 0)
ALORS
	trace("DATE absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"DATE",0)
	SAUT STOCKE_ERRONE
FINSI
#
# Test de la validite du champ DATE
#

erreur_840005440 = i_get_art_field(g_iartin, $TtMsg_nss9::DATE)

SI (erreur_840005440 == -1)
ALORS
	 trace("TtMsg_nss9 : Le champ DATE n'a pas un bon format => ERRONE")

	ERREUR_840005440 = ERR_DATE_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8421,2,g_iartin,"",2, code_rejet_840005440,"DATE",0)
	SAUT STOCKE_ERRONE
FINSI
#
# Test de la prisence du champ Heure
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::heure)	
SI (present_840005440 == 0)
ALORS
	trace("Heure absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"heure",0)
	SAUT STOCKE_ERRONE
FINSI

#
# Test de la prisence du champ 1stCalledLocIf
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::1stCalledLocIf)	
SI (present_840005440 == 0)
ALORS
	trace("1stCalledLocIf absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"1stCalledLocIf",0)
	SAUT STOCKE_ERRONE
FINSI
#
# Test syntaxique champ  "1stCalledLocIf"
#

	erreur_840005440 = i_test_field_ila_n(g_iartin,$TtMsg_nss9::1stCalledLocIf,"Lmap")
	SI (erreur_840005440 != 0)
	ALORS
		trace("TtMsg_nss9 : Erreur champ localisation format MAP")

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

		erreur_840005440 = i_PlvMessEmettre(8422,2,g_iartin,"",3, code_rejet_840005440,"1stCalledLocIf","MAP")
		SAUT STOCKE_ERRONE
	FINSI

#
# Test de la prisence du champ calledNumber
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::calledNumber)	
SI (present_840005440 == 0)
ALORS
	trace("calledNumber absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"calledNumber",0)
	SAUT STOCKE_ERRONE
FINSI	
#
# Test de la prisence du champ IMSI
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::IMSI)	
SI (present_840005440 == 0)
ALORS
	trace("IMSI absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"IMSI",0)
	SAUT STOCKE_ERRONE
FINSI	

#
# Test de la prisence du champ exchangeIdent
#
present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::exchangeIdent)	
SI (present_840005440 == 0)
ALORS
	trace("exchangeIdent absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"exchangeIdent",0)
	SAUT STOCKE_ERRONE
FINSI		
#	test de prisence de serviceCentAdr

present_840005440 = i_valid_field_n( g_iartin, $TtMsg_nss9::serviceCentAdr)	
SI (present_840005440 == 0)
ALORS
	trace("serviceCentAdr absent ==> stockage dans les errones" )

	ERREUR_840005440 = ERR_SYNTAX_840005440
	code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

	erreur_840005440 = i_PlvMessEmettre(8420,2,g_iartin,"",2, code_rejet_840005440,"serviceCentAdr",0)
	SAUT STOCKE_ERRONE
FINSI


####################################################################
#	Controles syntaxiques
####################################################################

#
# Test automatique du CRA 
#

	erreur_840005440 = i_test_art(g_iartin)
	SI (erreur_840005440)
	ALORS
		trace("Test auto : article TtMsg_nss9 errone")

		ERREUR_840005440 = ERR_SYNTAX_840005440
		code_rejet_840005440 = MODULE_840005440 + ERREUR_840005440 + EFFICACE_840005440

		erreur_840005440 = i_PlvMessEmettre(8423,2,g_iartin,"",1, code_rejet_840005440,0,0)
		SAUT STOCKE_ERRONE
	FINSI	


#####################################################################
#	Determination de la date de stockage en heure de fin
#####################################################################

# compteur CPT=1501 pour les CRA type 01
	erreur_840005440 = i_incr_cpt(CPT_840005440, 0x01, g_ieec, 0, i_DHgetLocalTime(4, 7, i_date_audit()), INCREMENT_840005440)

#	trace("Stockage de l'article en OK")

# ANO PVCS1887 ??? pourquoi pas de filtre sur le pcode de la precedente version ?
# Incrementation du Compteur 3G
#	erreur=i_incr_cpt(CPT_3G, 0x01 , g_ieec , 0, i_DHgetLocalTime(4, 7, i_date_audit()), 1)

# compteur 3G, CPT_3G=1504 pour les CRA de type 01
SI (i_valid_field_n(g_iartin, $TtMsg_nss9::rNCidOf1stRNC) && !i_valid_field_n(g_iartin, $TtMsg_nss9::1stCdLocInfEx))
ALORS
	trace1("*****TtMsg_nss9: erreur=i_incr_cpt(CPT_3G,0,g_ieec,0,date,INCREMENT)cpt=%d", CPT_3G_840005440)
	erreur_840005440=i_incr_cpt(CPT_3G_840005440, 0x01, g_ieec, 0, i_DHgetLocalTime(4, 7, i_date_audit()), INCREMENT_840005440)
FINSI

# compteur 4G, CPT_4G=1533 pour les CRA de type 01
SI (i_valid_field_n(g_iartin, $TtMsg_nss9::1stCdLocInfEx))
ALORS
   erreur_840005440=i_incr_cpt(CPT_4G_840005440, 0x01, g_ieec, 0, i_DHgetLocalTime(4, 7, i_date_audit()), INCREMENT_840005440)
FINSI


	erreur_840005440 = i_stocke_art(g_iartin, 0, PT_OK, 0)
	trace("*****TtMsg_nss9: Fin de traitement OK******")

RETOUR TRAIT_OK

POINT STOCKE_ERRONE

	erreur_840005440 = i_make_art_rej(g_iartin, g_iartout, code_rejet_840005440)
	erreur_840005440 = i_stocke_art(g_iartout,0,PT_ERRONE,0)
	trace("TtMsg_nss9 : Article errone (syntaxe) => Fin de traitement")

RETOUR TRAIT_OK	

trace("*****TtMsg_nss9: Fin de traitement******")
#----------------- Fin TtMsg_nss9_tr.src --------------------------------------
