DEFINITION MSG_ABSENCE_NDE_800009792 6937
REGISTRE ENTIER erreur_800009792
REGISTRE ENTIER SCT_800009792
REGISTRE ENTIER duree_800009792
REGISTRE ENTIER sdate_800009792
REGISTRE ENTIER inef_800009792
REGISTRE ENTIER nde_800009792
####################################################################
#	article DC DEA  CENTREX VN8 EEC
# URS/RBE - 29/04/03	C14:Utilisation de i_get_art_field au lieu de i_get_artobj_attr
# RBE	05/09/2003	Palliatif pour pb E10B3 duree trop grande
# PSA	03/12/2003	Retrait palliatif pour pb E10B3 duree trop grande (Cg)
# RBE	02/01/2004 	Mise a jour des codes erreur pour envoi en errone (code rejet)
# RBE 	25/03/2004	Inversion dans le code_rejet de efficace et inefficace
# PSA   07/10/2004	Cm : FO714 : suppression cpt ANO
# FAL   27/02/2006	G2R2Cd FO1705 verbes pcodes FO initialement R2Ca puis R2Cd
#	03/10/2011 RHE VerifPcode
####################################################################

# Numero de message en cas d'absence de NDE 


# Test presence NDE 

#trace("article DC DEA CENTREX VN8")

#####################################################################
# Recuperation du champ SCT
#####################################################################

SCT_800009792 = i_get_art_field(g_iartin, $Tctrxdea::SCT)

#####################################################################
# Si SCT : bits BC = 00:
#	heure fin de comm -> heure debut de comm
#	SCT = 01
#
# Si SCT : bits BC = 01: heure debut de comm (OK)
#
#####################################################################

duree_800009792 = i_get_art_field(g_iartin, $Tctrxdea::DUREE)

sdate_800009792 = i_get_art_field(g_iartin, $Tctrxdea::DATE)

SI !(SCT_800009792 & 0x60)
ALORS		
	sdate_800009792 = sdate_800009792 - duree_800009792
	erreur_800009792 = i_set_art_date(g_iartin,sdate_800009792)
	SCT_800009792 = SCT_800009792 | 0x20
	erreur_800009792 = i_set_art_field(g_iartin, $Tctrxdea::SCT, SCT_800009792)
FINSI

#####################################################################
# Determination du stockage/duplication en PRT
#####################################################################
inef_800009792 = i_get_art_field(g_iartin, $Tctrxdea::INEF)

SI (( inef_800009792 != 0 ) && ( inef_800009792 != 1 ) && ( inef_800009792 != 235 ) && ( inef_800009792 != 236 ) && ( inef_800009792 != 237 )) 
ALORS 
	SAUT STOCKE_OK_PRT
FINSI

#####################################################################
# Stockage de l'article
#####################################################################

POINT STOCKE_OK

#####################################################################
#	Test : champs NDE absent si non ineff (EV576)
#####################################################################
nde_800009792 = i_valid_field_n(g_iartin, $Tctrxdea::NDE)
SI (nde_800009792 == 0)
ALORS
# 	Stockage en erronee
	erreur_800009792 = i_PlvMessEmettre(MSG_ABSENCE_NDE_800009792,2,g_iartin,"",1,0x5041,0,0)


	erreur_800009792 = i_make_art_rej(g_iartin, g_iartout, 0x5041)
	erreur_800009792 = i_stocke_art(g_iartout,
			i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE),PT_ERRONE,0)

	RETOUR TRAIT_OK
FINSI

POINT STOCKE_OK_PRT

# Ajout des champs par le CE sur g_iartin pour stockage en DEADC
#FO1705 erreur = i_ajout_tlv(g_iartin, "T3ce", "")
erreur_800009792 = i_ajoutChamp(g_iartin, "T3ce", "", 8+4+2)

g_iartin.Crep = g_irupt_connex%256
g_iartin.Crup = g_irupt_ap%256
g_iartin.Cevt = g_ievtpar%256

erreur_800009792 = i_stocke_art(g_iartin, i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE),PT_OK,0)

RETOUR TRAIT_OK
