DEFINITION C_Article_860021858 "Trm6dea"
DEFINITION MSG_ABSENCE_NDE_860021858 6936
REGISTRE ENTIER code_rejet_860021858
REGISTRE ENTIER erreur_860021858
REGISTRE ENTIER SCT_860021858
REGISTRE ENTIER duree_860021858
REGISTRE ENTIER sdate_860021858
REGISTRE ENTIER nde_860021858
REGISTRE ENTIER res_860021858
REGISTRE ENTIER res1_860021858
####################################################################
#	article DEA RADIOMOBILE VN6 EEC
#
# 	29/04/2003 - RBE : 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	29/09/2004	FO882 : efficacite uniquement sur la duree
# FAL	07/12/2005	FO1379 plus de test sur DEMANDE
# FAL	27/02/2006	G2R2Cd FO1705 verbes pcodes FO initialement R2Ca puis R2Cd
# FAL	09/01/2007	FO2086 core lors appel BNC cas duree trop longue 18h en commut et 19h pour PLATINE 
####################################################################

#FO2086

# Numero de message en cas d'absence de NDE (EV576)



# Test presence NDE (EV576)
#trace("article DEA RADIOMOBILE VN6")

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

SCT_860021858 = g_iartin.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_860021858 = i_get_art_field(g_iartin, $Trm6dea::DUREE)

#FO2086 
#trace1(" FO2086 duree %d ",duree)
SI (duree_860021858 > 0x10B30)
ALORS
		code_rejet_860021858 = 0x5022
		erreur_860021858 = i_PlvMessEmettre(6927,2,g_iartin,"",2,code_rejet_860021858,C_Article_860021858,0)
		SAUT STOCKE_ERRONE
FINSI



sdate_860021858 = i_get_art_field(g_iartin, $Trm6dea::DATE)

SI !(SCT_860021858 & 0x60)
ALORS		
	sdate_860021858 = sdate_860021858 - duree_860021858
	erreur_860021858 = i_set_art_date(g_iartin,sdate_860021858)
	SCT_860021858 = SCT_860021858 | 0x20
	g_iartin.SCT = SCT_860021858
FINSI

#####################################################################
# Determination efficacite
#####################################################################

SI (duree_860021858 == 0) 
ALORS 
	SAUT STOCKE_OK_PRT
FINSI

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

POINT STOCKE_OK


#####################################################################
#	Test : champs NDE absent si non ineff (EV576)
#####################################################################
nde_860021858 = i_valid_field_n(g_iartin, $Trm6dea::NDE)
SI (nde_860021858 == 0)
ALORS
    #FO1379 dernier chance si IDVAV et ICOM present
    res_860021858 =  i_valid_field_n(g_iartin, $Trm6dea::NUM_IDAV)
    #masqueFO1379#trace1 (" i_valid_field_n NUM_IDAV <%d>",res)
    res1_860021858 = i_valid_field_n(g_iartin, $Trm6dea::NUM_ICOM)
    #masqueFO1379#trace1 (" i_valid_field_n NUM_ICOM <%d>",res1)
    
    SI((res_860021858 == 0)||(res1_860021858 == 0 ))
    ALORS
# 	Stockage en erronee
	code_rejet_860021858 = 0x5041
	erreur_860021858 = i_PlvMessEmettre(MSG_ABSENCE_NDE_860021858,2,g_iartin,"",1,code_rejet_860021858,0,0)
	
	SAUT STOCKE_ERRONE
    FINSI
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_860021858 = 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_860021858 = i_stocke_art(g_iartin, i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE), PT_OK, 0)

RETOUR TRAIT_OK


#####################################################################
# POINT de branchement : stockage PT_ERRONE
#		correspond au cas d'erreur syntaxiques et semantiques
#####################################################################
POINT STOCKE_ERRONE
 	trace("[Trm6dea_trt]Stockage de l'article en ERRONE")
	erreur_860021858 = i_make_art_rej(g_iartin, g_iartout, code_rejet_860021858)
	erreur_860021858 = i_stocke_art(g_iartout,i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE),PT_ERRONE,0)
	trace("[Trm6dea_trt]Fin traitement Article DC VN6 ou VN7")			
RETOUR TRAIT_OK
