FVERS = 2
REFOBJET : ID = 660003390 ; ID_INIT = 660003366 ; NOM = TprimsVoLTE ; VERSION = B2 ; DATE = 22/12/14-14:14:36 ( 1419257676 ) ; CAT = 7 ; ETAT = 0 ; NB_FILS =0 ; ID_FILS = 
ID_EST = 660000107
COMMENT = "02/12/2014 G5R3 lot3 creation "
CREATEUR = pkhalfa
# DEBUT_CORPS
PCODE_PERE=
################################################################################
#
#   Treatement Pcode of TprimsVoLTE :  TprimsVoLTE.src
#
# history :
#   Creation le 02/12/2014  en G5R3 lot3
#
#
################################################################################
DEFINITION CPT 1501
DEFINITION CPT_1533 1533
DEFINITION INCREMENT 1
DEFINITION ERR_SYNTAX 0x070
DEFINITION MODULE_TRAIT 0x5000
DEFINITION ERR_SEM 0x040

REGISTRE ENTIER res
REGISTRE ENTIER erreur
REGISTRE ENTIER ERREUR
REGISTRE ENTIER code_rejet
REGISTRE ENTIER MODULE
REGISTRE ENTIER EFFICACE
REGISTRE ENTIER v_roleOfNode
REGISTRE ENTIER X

trace(" ======================================")
trace(" | [TprimsVoLTE] Treatement module    |")
trace(" ======================================")



EFFICACE = 1
MODULE = MODULE_TRAIT
ERREUR = 0
code_rejet = 0




#Test controle unitaire sur les champs

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


#controle valeur correcte du champ callStartTime
res = i_get_art_field(g_iartin,$TprimsVoLTE::callStartTime)

SI (res == -1)
ALORS
	trace("[TprimsVoLTE Trait] Erreur TprimsVoLTE CDR, callStartTime incorrect")
  	ERREUR = ERR_SYNTAX
 	code_rejet = MODULE + ERREUR + EFFICACE
 	erreur=i_PlvMessEmettre(6670, 2, g_iartout12, "", 2, code_rejet, "callStartTime", 0)
 	SAUT ERREUR_CDR
FINSI

#controle presence du champ callStatus et de son contenu
res = i_get_art_field(g_iartin, $TprimsVoLTE::callStatus)  
SI (res !=0 && res !=1)
ALORS
  ERREUR = ERR_SEM
  code_rejet = MODULE + ERREUR + EFFICACE
  erreur=i_PlvMessEmettre(6671, 2, g_iartout12, "", 2, code_rejet, "status", 0)
  trace1("[TprimsVoLTE Trait] Erreur TprimsVoLTE CDR, status=<0x%x>, valeurs attendues == 0 ou 1", res)
  SAUT ERREUR_CDR
FINSI

#controle presence du champ roleOfNode et de son contenu
v_roleOfNode = i_get_art_field(g_iartin, $TprimsVoLTE::roleOfNode)
SI (v_roleOfNode !=0 && v_roleOfNode !=1)
ALORS
  ERREUR = ERR_SEM
  code_rejet = MODULE + ERREUR + EFFICACE
  erreur=i_PlvMessEmettre(6672, 2, g_iartout12, "", 2, code_rejet, "roleOfNode", 0)
  trace1("[TprimsVoLTE Trait] Erreur TprimsVoLTE CDR, roleOfNode=<0x%x>, valeurs attendues == 0 ou 1", v_roleOfNode)
  SAUT ERREUR_CDR
FINSI

#Filtrage vers les elimines des cras TprimsVoLTE Terminating

SI ( i_get_art_field(g_iartin, $TprimsVoLTE::roleOfNode) == 1)
ALORS
     	SAUT STOCKE_DIV
 
FINSI

#Test controle unitaire sur les champs fait par le binaire


 ###############################
 # increment du compteur 1501
 ###############################

SI (v_roleOfNode == 0)
ALORS
  X = 0x00


# CPT : 1501
# X : type d'appel
# Y : g_ieec
# Z : 0
# date : date audit 

	erreur = i_incr_cpt(CPT, X, g_ieec, 0, i_DHgetLocalTime(4, 7, i_date_audit()), INCREMENT)
FINSI

 ###############################
 # increment du compteur 1533 4G
 ###############################

SI (v_roleOfNode == 0)
ALORS
  X = 0x00


# CPT : 1533
# X : type d'appel
# Y : g_ieec
# Z : 0
# date : date audit 

	erreur = i_incr_cpt( CPT_1533, X, g_ieec, 0, i_DHgetLocalTime(4, 7, i_date_audit()), INCREMENT)

FINSI


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





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

POINT STOCKE_DIV
trace( "[TprimsVoLTE] Pcode de traitement   Stockage en DIVERS" )
erreur = i_stocke_art( g_iartin, 0, PT_DIVERS, 0 )
RETOUR TRAIT_OK

####################################################################
# Stockage en errone (Cas ou il y a des erreurs dans l article)
####################################################################
POINT ERREUR_CDR
erreur = i_make_art_rej(g_iartout12, g_iartout11, code_rejet)
erreur = i_stocke_art(g_iartout11, 0, PT_ERRONE, 0)
trace("[TprimsVoLTE Trait] ERREUR TprimsVoLTE CDR , end of treatement")
RETOUR TRAIT_OK
#--------------- Fin  TprimsVoLTE.src -------------------
# FIN_CORPS
