DEFINITION C_Article_860021856 "Tch6dea"
DEFINITION MSG_ABSENCE_NDE_860021856 6935
REGISTRE ENTIER code_rejet_860021856
REGISTRE ENTIER erreur_860021856
REGISTRE ENTIER SCT_860021856
REGISTRE ENTIER duree_860021856
REGISTRE ENTIER sdate_860021856
REGISTRE ENTIER nde_860021856
REGISTRE ENTIER res_860021856
REGISTRE ENTIER res1_860021856
####################################################################
#       article DC DEA sur acheminement 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
#	04/11/2003 - MCH : FO466 : remplacement ajou_tlv par ajoutchampNum
# 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
#			FO714 : suppression cpt ANO
# FAL	07/12/2005	FO1379 plus de test sur DEMANDE
# FAL	10/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 sur acheminement VN6")

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

SCT_860021856 = 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_860021856 = i_get_art_field(g_iartin, $Tch6dea::DUREE)

#FO2086 
#trace1(" FO2086 duree %d ",duree)
SI (duree_860021856 > 0x10B30)
ALORS
		code_rejet_860021856 = 0x5022
		erreur_860021856 = i_PlvMessEmettre(6927,2,g_iartin,"",2,code_rejet_860021856,C_Article_860021856,0)
		SAUT STOCKE_ERRONE
FINSI


sdate_860021856 = i_get_art_field(g_iartin, $Tch6dea::DATE)

SI !(SCT_860021856 & 0x60)
ALORS
	sdate_860021856 = sdate_860021856 - duree_860021856
	erreur_860021856 = i_set_art_date(g_iartin,sdate_860021856)
	SCT_860021856 = SCT_860021856 | 0x20
	g_iartin.SCT = SCT_860021856

FINSI

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

SI (duree_860021856 == 0) 
ALORS 
	SAUT STOCKE_OK_PRT
FINSI

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

POINT STOCKE_OK

#####################################################################
#	Test : champs NDE absent si non ineff (EV576)
#####################################################################
nde_860021856 = i_valid_field_n(g_iartin, $Tch6dea::NDE)
SI (nde_860021856 == 0)
ALORS
    #FO1379 dernier chance si IDVAV et ICOM present
    res_860021856 =  i_valid_field_n(g_iartin, $Tch6dea::NUM_IDAV)
    res1_860021856 = i_valid_field_n(g_iartin, $Tch6dea::NUM_ICOM)
    SI((res_860021856 == 0)||(res1_860021856 == 0 ))
    ALORS
	# 	Stockage en errone
	code_rejet_860021856 = 0x5041
	erreur_860021856 = i_PlvMessEmettre(MSG_ABSENCE_NDE_860021856,2,g_iartin,"",1,code_rejet_860021856,0,0)
	SAUT STOCKE_ERRONE

   FINSI	
FINSI



POINT STOCKE_OK_PRT

#
# Ajout des champs par le CE sur g_iartin pour stockage en DEADC
#

# FO466 : remplacement ajou_tlv par ajoutchampNum
erreur_860021856 = i_ajoutChampNum(g_iartin,$Tch6dea::T4DOUB,$Tch6dea::Crep,0)
erreur_860021856 = i_ajoutChampNum(g_iartin,$Tch6dea::T4_CORR,$Tch6dea::CORR_OK,0)
g_iartin.Crep = g_irupt_connex%256
g_iartin.Crup = g_irupt_ap%256
g_iartin.Cevt = g_ievtpar%256


erreur_860021856 = 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("[Tch6dea_trt]Stockage de l'article en ERRONE")
	erreur_860021856 = i_make_art_rej(g_iartin, g_iartout, code_rejet_860021856)
	erreur_860021856 = i_stocke_art(g_iartout,i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE),PT_ERRONE,0)
	trace("[Trm6dc_trt]Fin traitement Article DC VN6 ou VN7")			
RETOUR TRAIT_OK
