DEFINITION C_Article_800009782 "Tbivsip"
REGISTRE ENTIER Indicator_800009782
REGISTRE ENTIER RoleNode_800009782
REGISTRE ENTIER erreur_800009782
REGISTRE ENTIER code_rejet_800009782
REGISTRE ENTIER b_TERMINATING_800009782
REGISTRE ENTIER b_ORIGINATING_800009782
#####################################################################
# TRAITEMENT Tbivsip : DC de facturation flux issus de la 
#					   premediation CGW-IMS
#####################################################################
#	HISTORIQUE
# 08/10/2010 - PKH - Creation
# 04/06/2010 - PKH - QC375 evolution sur les valeurs attendues pour AnswerIndicator 
# 27/04/2011 - THE - QC468 suppression test callstatus
#	03/10/2011 RHE VerifPcode
#####################################################################

Indicator_800009782 = -1 
# VerifPcode - RHE # Status = -1    
RoleNode_800009782 = -1 
erreur_800009782  = 0   
code_rejet_800009782 = 0
b_ORIGINATING_800009782 = -1
b_TERMINATING_800009782 = -1

#####################################################################

trace("[Tbivsip_tr] Traitement - Tbivsip")

################################################################
#
#	Controle unitaire
#
################################################################
#==============================================================
#QC375 ajout de la valeur 0x02 possible pour le champ AnswerIndicator champ non oligatoire
#champ AnswerIndic
SI (i_valid_field_n(g_iartin, $Tbivsip::AnswerIndicator))
ALORS
	Indicator_800009782 = i_get_art_field(g_iartin, $Tbivsip::AnswerIndicator)
	SI (Indicator_800009782 != 0 && Indicator_800009782 != 1 && Indicator_800009782 != 2)
	ALORS
		code_rejet_800009782 = 0x5042
		erreur_800009782 = i_PlvMessEmettre(7300,2,g_iartin,"",3,code_rejet_800009782,C_Article_800009782,Indicator_800009782)	
		SAUT STOCKE_ERRONE
	FINSI
FINSI

#champ callStatuts
#SI (i_valid_field_n(g_iartin, $Tbivsip::CallStatus))
#ALORS
#	Status = i_get_art_field(g_iartin, $Tbivsip::CallStatus)
#	SI (Status !=1 && Status != 0)
#	ALORS
#		code_rejet = 0x5042
#		erreur = i_PlvMessEmettre(7302,2,g_iartin,"",3,code_rejet,C_Article,Status)
#		SAUT STOCKE_ERRONE
#	FINSI
#FINSI




#champ CallStarTime
SI (!i_valid_field_n(g_iartin, $Tbivsip::CallStartTime))
ALORS 
		code_rejet_800009782 = 0x5072
		erreur_800009782 = i_PlvMessEmettre(7303,2,g_iartin,"",2,code_rejet_800009782,C_Article_800009782,0)	
		SAUT STOCKE_ERRONE
FINSI	
		

#champ RoleNode  RoleNode = 0 appel sortant (ORIGINATING)
#				 RoleNode = 1 appel entrant (TERMINATING)

SI (i_valid_field_n(g_iartin, $Tbivsip::RoleNode))
ALORS
	RoleNode_800009782 = i_get_art_field(g_iartin, $Tbivsip::RoleNode)
	SI (RoleNode_800009782 != 0 && RoleNode_800009782 != 1)
	ALORS
		code_rejet_800009782 = 0x5042
		erreur_800009782 = i_PlvMessEmettre(7304,2,g_iartin,"",3,code_rejet_800009782,C_Article_800009782,RoleNode_800009782)	
		SAUT STOCKE_ERRONE
	SINON
		SI (RoleNode_800009782 == 0)
		ALORS
		     b_ORIGINATING_800009782 = 1  
		SINON
			SI (RoleNode_800009782 == 1)
			ALORS
			     b_TERMINATING_800009782 = 1  
			FINSI
		FINSI
	FINSI
SINON
		code_rejet_800009782 = 0x5072
		erreur_800009782 = i_PlvMessEmettre(7305,2,g_iartin,"",2,code_rejet_800009782,C_Article_800009782,0)	
		SAUT STOCKE_ERRONE
FINSI

######################################
# Stockage OK
######################################

erreur_800009782 = i_stocke_art(g_iartin, 0, PT_OK, 0)
RETOUR TRAIT_OK

############################################
#  POINT de branchement : stockage ERRONE  #
############################################

POINT STOCKE_ERRONE

#trace("Stockage en ERRONE ")
erreur_800009782 = i_make_art_rej(g_iartin,g_iartout,code_rejet_800009782)
erreur_800009782 = i_stocke_art(g_iartout, 0, PT_ERRONE,0)

RETOUR TRAIT_OK


