DEFINITION CCD_800007779 0xFF
DEFINITION ARTICLE_800007779 "DC Carte FT INEF"
REGISTRE ENTIER erreur_800007779
REGISTRE ENTIER SCT_800007779
REGISTRE ENTIER code_errone_800007779
REGISTRE ENTIER DUREE_800007779
REGISTRE ENTIER DATE_800007779
############################################################################
#
# Fichier : Tcp4inefOSA.src
#
# Traitement 
#
# Communications  inefficaces transmises par le RI OSA-PARLAY Carte FT 
#
# Historique:
#	23/02/07 - DRE - G3R0Cv Migration RI CARTE vers RI OSA-PARLAY
#	04/03/10 - DRE - G3R16 Mise en conformite des messages d erreur 6200 et 6201
#	
#	
############################################################################

#
# Variables intermediaires utilisees
#

#

#==============================================================================
#               DATE DE STOCKAGE = HEURE DE FIN DE COMMUNICATION
#==============================================================================

#	INSTANT CARACTERISTIQUE DE L'APPEL:
#	Dans les articles archives, heure de debut
#	Dans les articles acquis, 
#		GCP-SCT Eb C = 0 : heure de fin	    (il faut la convertir)
#		GCP-SCT Eb C = 1 : heure de debut

SCT_800007779 = i_get_art_field(g_iartin, $Tcp4inefOSA::SCT)
DUREE_800007779 = i_get_art_field(g_iartin, $Tcp4inefOSA::DUREE)
DATE_800007779 = i_get_art_field(g_iartin, $Tcp4inefOSA::DATE)

SI ! (SCT_800007779 & 0x20)
ALORS
	DATE_800007779 = DATE_800007779 - DUREE_800007779
	erreur_800007779 = i_set_art_field(g_iartin, $Tcp4inefOSA::DATE, DATE_800007779 )
	SCT_800007779 = SCT_800007779 | 0x20
	erreur_800007779 = i_set_art_field(g_iartin, $Tcp4inefOSA::SCT, SCT_800007779)
FINSI

#==============================================================================
#				CONTROLES SYNTAXIQUES
#==============================================================================

erreur_800007779 = i_test_art(g_iartin)

SI ( erreur_800007779 )
ALORS
	code_errone_800007779 = 0x5040
#DRE - G3R16
	erreur_800007779 = i_PlvMessEmettre(6200,2,g_iartin,"",2,code_errone_800007779,ARTICLE_800007779,0)
#	erreur = i_PlvMessEmettre(6200,2,g_iartin,"",1,code_errone,0,0)
	SAUT STOCKE_ERRONE
FINSI

#==============================================================================
#				CONTROLES SEMANTIQUES
#==============================================================================

# Champ GCP-SCT, si Eb BC = 10b ou 11b article errone
# Remarque: seul le bit B est teste

SI ( SCT_800007779 & 0x40 )
ALORS
	code_errone_800007779 = 0x5040
#DRE - G3R16
	erreur_800007779 = i_PlvMessEmettre(6201,2,g_iartin,"",2,code_errone_800007779,ARTICLE_800007779,0)
#	erreur = i_PlvMessEmettre(6201,2,g_iartin,"",1,code_errone,0,0)
	SAUT STOCKE_ERRONE
FINSI


#==============================================================================
#				STOCKAGE DANS VALIDE
#==============================================================================

POINT 	STOCKE_OK

SI ( ! i_valid_field_n(g_iartin, $Tcp4inefOSA::T3ace))
ALORS
        erreur_800007779 = i_ajoutChamp(g_iartin, "T4ccd", "", 0x07)
FINSI

erreur_800007779 = i_set_art_field(g_iartin, $Tcp4inefOSA::CCD, CCD_800007779)



#==============================================================================
#	Retrait du T3tcp_new et stockage
#==============================================================================

erreur_800007779 = i_supprChamp(g_iartin, "T3tcp_new")


# Ajout de l enveloppe optionnelle
erreur_800007779 = i_add_opt ("Ecarte")
erreur_800007779 = i_set_attr_val_n($Ecarte::T1,0x0A)
erreur_800007779 = i_set_attr_val_n($Ecarte::L1,0x08)
erreur_800007779 = i_set_attr_val_n($Ecarte::Hdfin,DATE_800007779 + DUREE_800007779)
erreur_800007779 = i_set_attr_val_n($Ecarte::Hduree,DUREE_800007779)

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

RETOUR TRAIT_OK

#==============================================================================
#				STOCKAGE DANS ERRONE
#==============================================================================

POINT	STOCKE_ERRONE

erreur_800007779 = i_make_art_rej(g_iartin, g_iartout5, code_errone_800007779)    
erreur_800007779 = i_stocke_art(g_iartout5, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK



