DEFINITION CPT_840000671 1501
DEFINITION INCREMENT_840000671 1
DEFINITION MODULE_TRAIT_840000671 0x5000
DEFINITION ERR_SYNTAX_840000671 0x070
DEFINITION ERR_SEM_840000671 0x040
REGISTRE ENTIER erreur_840000671
REGISTRE ENTIER status_840000671
REGISTRE ENTIER roleOfNode_840000671
REGISTRE ENTIER Y_840000671
REGISTRE ENTIER X_840000671
REGISTRE ENTIER Z_840000671
REGISTRE ENTIER date_840000671
REGISTRE ENTIER MODULE_840000671
REGISTRE ENTIER code_rejet_840000671
REGISTRE ENTIER EFFICACE_840000671
REGISTRE ENTIER ERREUR_840000671
################################################################################
#
#		Treatement Pcode of Tprims : Tprims_tr.src
#
#	history :
#		Creation le 07/12/10
#
#
################################################################################





erreur_840000671 = 0
status_840000671 = -1
roleOfNode_840000671 = -1
Y_840000671 = -1
X_840000671 = -1
Z_840000671 = -1
date_840000671 = -1 

EFFICACE_840000671 = 1
MODULE_840000671 = MODULE_TRAIT_840000671
ERREUR_840000671 = 0
code_rejet_840000671 = 0


trace(" ======================================")
trace("| [Tprims] Treatement module           |")
trace(" ======================================")
#-----------------------------------------
# IF CDR Source != CSCF and != AS
#  Then CDR is erroneous
#-----------------------------------------


#Test controle unitaire sur les champs
erreur_840000671= i_dup_art_id(g_iartin , g_iartout12)

#controle presence du champ callStartTime
SI( ! i_valid_field_n(g_iartin, $Tprims::callStartTime) )
ALORS
	trace("[Tprims Trait] Erreur Tprims CDR, callStartTime obligatoire")
	ERREUR_840000671 = ERR_SYNTAX_840000671
	code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
	erreur_840000671=i_PlvMessEmettre(6651, 2, g_iartout12, "", 2, code_rejet_840000671,"callStartTime", 0)
	SAUT ERREUR_CDR
FINSI

#controle presence du champ callStatus
SI(!i_valid_field_n(g_iartin, $Tprims::callStatus))
ALORS
	trace ("[Tprims Trait] Erreur Tprims CDR, callStatus obligatoire ")
	ERREUR_840000671 = ERR_SYNTAX_840000671
	code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
	erreur_840000671=i_PlvMessEmettre(6651, 2, g_iartout12, "", 2, code_rejet_840000671,"callStatus", 0)
	SAUT ERREUR_CDR
SINON
	status_840000671 = i_get_art_field(g_iartin,$Tprims::callStatus)	
	SI (status_840000671 !=0 && status_840000671 !=1)
	ALORS
		ERREUR_840000671 = ERR_SEM_840000671
		code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
		erreur_840000671=i_PlvMessEmettre(6652, 2, g_iartout12, "", 2, code_rejet_840000671,"status", 0)
		trace ("[Tprims Trait] Erreur Tprims CDR, status == 0 ou 1 ")
	 	SAUT ERREUR_CDR
	FINSI
FINSI

#controle presence du champ roleOfNode
SI(!i_valid_field_n(g_iartin, $Tprims::roleOfNode))
ALORS
	ERREUR_840000671 = ERR_SYNTAX_840000671
	code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
	erreur_840000671=i_PlvMessEmettre(6651, 2, g_iartout12, "", 2, code_rejet_840000671,"roleOfNode", 0)
	trace ("[Tprims Trait] Erreur Tprims CDR, roleOfNode obligatoire ")
	SAUT ERREUR_CDR
SINON
	roleOfNode_840000671 = i_get_art_field(g_iartin,$Tprims::roleOfNode)
	SI (roleOfNode_840000671 !=0 && roleOfNode_840000671 !=1)
	ALORS
		ERREUR_840000671 = ERR_SEM_840000671
		code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
		erreur_840000671=i_PlvMessEmettre(6652, 2, g_iartout12, "", 2, code_rejet_840000671,"roleOfNode", 0)
		trace ("[Tims Trait] Erreur Tprims CDR, roleOfNode == 0 ou 1 ")
		SAUT ERREUR_CDR
	FINSI
FINSI

#controle presence du champ callPrtAdr2Dat
SI(!i_valid_field_n(g_iartin, $Tprims::CallPrtAdr2Dat))
ALORS
	ERREUR_840000671 = ERR_SYNTAX_840000671
	code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
	erreur_840000671=i_PlvMessEmettre(6651, 2, g_iartout12, "", 2, code_rejet_840000671,"CallPrtAdr2Dat", 0)
	trace ("[Tprims Trait] Erreur Tprims CDR, champ CallPrtAdr2Dat obligatoire")
	SAUT ERREUR_CDR
FINSI

#controle presence du champ DialledDigits
SI(!i_valid_field_n(g_iartin, $Tprims::DialledDigits))
ALORS
	ERREUR_840000671 = ERR_SYNTAX_840000671
	code_rejet_840000671 = MODULE_840000671 + ERREUR_840000671 + EFFICACE_840000671
	erreur_840000671=i_PlvMessEmettre(6651, 2, g_iartout12, "", 2, code_rejet_840000671,"DialledDigits", 0)
	trace ("[Tprims Trait] Erreur Tprimd CDR,  champ DialledDigits obligatoire")
	SAUT ERREUR_CDR
FINSI


	###############################
	# increment du compteur
	###############################
Y_840000671 = g_ieec
SI (roleOfNode_840000671 == 0)
ALORS
	X_840000671 = 0xB1
SINON
	SI (roleOfNode_840000671 == 1)
	ALORS
		X_840000671 = 0xB2
	FINSI
FINSI	

Z_840000671=0
date_840000671 = i_DHgetLocalTime(4, 7, i_date_audit())
erreur_840000671 = i_incr_cpt(CPT_840000671,X_840000671,Y_840000671,Z_840000671,date_840000671,INCREMENT_840000671)

trace("[Tims Trait] CDR stored OK")
erreur_840000671 = i_stocke_art(g_iartin, 0, PT_OK, 0)
RETOUR TRAIT_OK

####################################################################
# Stockage en errone (Cas ou il y a des erreurs dans l article)
####################################################################
POINT ERREUR_CDR
erreur_840000671 = i_make_art_rej(g_iartout12, g_iartout11, code_rejet_840000671)
erreur_840000671 = i_stocke_art(g_iartout11, 0, PT_ERRONE, 0)
trace("[Tims Trait] ERREUR Tprims CDR , end of treatement")

RETOUR TRAIT_OK
#--------------- Fin	Tprims_tr.src -------------------
