DEFINITION C_Article_860023154 "Tmesplus"
REGISTRE ENTIER erreur_860023154
REGISTRE ENTIER STY_860023154
REGISTRE ENTIER ETAP_860023154
REGISTRE ENTIER TAP_860023154
REGISTRE ENTIER DUR_860023154
REGISTRE ENTIER EFFICACE_860023154
REGISTRE ENTIER code_rejet_860023154
############################################################################
# Fichier : Tmesplus.src
#
#
# Traitement :  MESPLUS
#
# En entree :
#    Article : Tmesplus
#
# En sortie :
#
#HISTORIQUE
# 01/02/06: Creation
# 06/02/2006 -rhe - traitement des codes errones
############################################################################

############################################################################
#
#			          DEFINITIONS
#
############################################################################

#---------------------------------------------------------------------------
# Declarations
#---------------------------------------------------------------------------

#Constantes

#Variables

#---------------------------------------------------------------------------
# INITIALISATION
#--------------------------------------------------------------------------- 
#Variables
erreur_860023154=0
STY_860023154=0
ETAP_860023154=0
TAP_860023154=0
DUR_860023154=0
EFFICACE_860023154 = 0
code_rejet_860023154 = 0

############################################################################
#                              TRAITEMENTS
############################################################################
trace2("==== TRAITEMENT - MESPLUS - Article : %s ",C_Article_860023154," ")

# Controle champs
STY_860023154 = i_get_art_field( g_iartin, $Tmesplus::STY)
ETAP_860023154 = i_get_art_field( g_iartin, $Tmesplus::ETAP)
TAP_860023154 = i_get_art_field( g_iartin, $Tmesplus::TAP)
DUR_860023154 = i_get_art_field( g_iartin, $Tmesplus::DUREE)

#---------------------------------------------------------------------------
# DETERMINATION DES ARTICLES INEFFICACES
# Bit B du champ TAP : 0 : efficace, 1: inefficace
#----------------------------------------------------------------------------
SI ((TAP_860023154 & 0x40) == 0x40)
ALORS
	trace( "Article inefficace -> Stockage en inefficace")
	EFFICACE_860023154 = 0
SINON
	EFFICACE_860023154 = 1
FINSI

#----------------------------------------------------------------------------
# TEST du champ STY : on verifie que le champ STY est egal a 0x00
#----------------------------------------------------------------------------
SI (STY_860023154 != 0x00)
ALORS
	code_rejet_860023154 = 0x5040 + EFFICACE_860023154
	erreur_860023154 = i_PlvMessEmettre(7130,2,g_iartin,"",2,code_rejet_860023154,STY_860023154,0)
	SAUT STOCKE_ERRONE
FINSI

#----------------------------------------------------------------------------------------
# TEST du champ ETAP : on verifie la valeur du champ ETAP :0x5A, 0x5B, 0x5C, 0x5D ou 0x5E
# G3R4 ajout de 2 valeurs pour ETAP : 0xD2 et OxD3
#----------------------------------------------------------------------------------------
SI (((ETAP_860023154 < 0x5A) || (ETAP_860023154 > 0x5E)) && (ETAP_860023154 != 0xD2) && (ETAP_860023154 != 0xD3))
ALORS
	code_rejet_860023154 = 0x5040 + EFFICACE_860023154
	erreur_860023154 = i_PlvMessEmettre(7131,2,g_iartin,"",2,code_rejet_860023154,ETAP_860023154,0)
	SAUT STOCKE_ERRONE
FINSI

#----------------------------------------------------------------------------
# TEST de la duree non nulle d'un appel efficace : si TAP = 0 alors DUR > 0
#----------------------------------------------------------------------------
SI ((TAP_860023154 == 0) && (DUR_860023154 <= 0))
ALORS
	code_rejet_860023154 = 0x5040 + EFFICACE_860023154
	erreur_860023154 = i_PlvMessEmettre(7132,2,g_iartin,"",2,code_rejet_860023154,DUR_860023154,0)
	SAUT STOCKE_ERRONE
FINSI

############################################################################
#
#                               STOCKAGE
#
############################################################################

#---------------------------------------------------------------------------
# STOCKAGE EN OK
#----------------------------------------------------------------------------

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

RETOUR TRAIT_OK


#---------------------------------------------------------------------------
# STOCKAGE EN ERRONE
#----------------------------------------------------------------------------
POINT STOCKE_ERRONE

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

erreur_860023154 = i_make_art_rej( g_iartin, g_iartout, code_rejet_860023154)
erreur_860023154 = i_stocke_art( g_iartout,0,PT_ERRONE,0)

RETOUR TRAIT_OK

############################################################################
#                               FIN
############################################################################
