DEFINITION CPT_840002003 1512
DEFINITION MODULE_TRAIT_840002003 0x5000
DEFINITION ERR_SEM_840002003 0x040
DEFINITION EFFICACE_840002003 0x01
DEFINITION pt_FicNameGlob_LEN_840002003 255
REGISTRE ENTIER erreur_840002003
REGISTRE ENTIER date_840002003
REGISTRE ENTIER Nb_jourRedist_840002003
REGISTRE ENTIER CPT_Y_840002003
REGISTRE ENTIER CPT_Z_840002003
REGISTRE ENTIER code_rejet_840002003
REGISTRE ENTIER longueur_840002003
REGISTRE ENTIER indice_840002003
REGISTRE ENTIER digit_840002003
REGISTRE ENTIER resultat_840002003
REGISTRE POINTEUR pt_NameOfFile_840002003
REGISTRE POINTEUR pt_NbJourRedist_840002003
REGISTRE POINTEUR pt_idCrae_840002003
REGISTRE ENTIER Resultat_recherche_840002003
REGISTRE POINTEUR pt_FicNameTemp_840002003
REGISTRE POINTEUR pt_FicNameGlob_840002003
REGISTRE POINTEUR pt_LibelleAlarme_840002003
#                         - Pcode du module de traitement Tcrae_header_trt.src : CRAE Header
#                         - creation le 11/09/2006
#                         - Auteur : RAS
# 11/01/11 - BEA - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 17/08/11 - JLG - G3R4 lot3 QC852, CRAE enrichissement du libelle des alarmes par le nom du fichier collecte
##########################################################################################################
# declaration des variables






# Initialisation
pt_NameOfFile_840002003="012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234"
i_strcpy(pt_NameOfFile_840002003,"")
pt_NbJourRedist_840002003="038977"
i_strcpy(pt_NbJourRedist_840002003,"")
pt_idCrae_840002003="ptidCrae"
i_strcpy(pt_idCrae_840002003, "p_idCrae")
Resultat_recherche_840002003 = 0
pt_FicNameTemp_840002003="pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt"
i_strcpy(pt_FicNameTemp_840002003,"")
pt_FicNameGlob_840002003="pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt"
i_strcpy(pt_FicNameGlob_840002003, "")
pt_LibelleAlarme_840002003="pt_LibelleAlarme_111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
i_strcpy(pt_LibelleAlarme_840002003,"")


########################################################

# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840002003 = i_dup_art_id(g_iartin , g_iartout12)
# /TT0033


trace("**[Header CRAE ] : debut du pcode de traitement**")

# Controle semantiques
#-
# mise a jour du champ T3t1/NameOfFIle pour les articles provenant de la redistribution

SI(i_valid_field_n(g_iartin, $Tcrae_header::NameOfFile)&&
	i_valid_field_n(g_iartin,$Tcrae_header::DateOfRedistri)
	)
ALORS
	trace("**Tcrae_hedare , article issu de la redistribution**")
	erreur_840002003 = i_get_field_str(g_iartin ,"NameOfFile",pt_NameOfFile_840002003)
	date_840002003 = i_get_art_field(g_iartin, $Tcrae_header::DateOfRedistri)
	Nb_jourRedist_840002003 = i_sdat_to_jdat(date_840002003)
	Nb_jourRedist_840002003 = i_cur_date() - Nb_jourRedist_840002003
	erreur_840002003 = i_EntierToString(Nb_jourRedist_840002003, pt_NbJourRedist_840002003, 4)
	erreur_840002003=i_format_str2(pt_NameOfFile_840002003, "%s%s" ,pt_NameOfFile_840002003 , pt_NbJourRedist_840002003)
	trace2("Tcrae_header , mis a jour <NameOfFile> par :<%s>", pt_NameOfFile_840002003, 0)
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
	erreur_840002003 = i_memcpy_art_field(g_iartout12, "NameOfFile",pt_NameOfFile_840002003, i_strlen(pt_NameOfFile_840002003))
# /TT0033
SINON
	# mise a jour de l'article avec le champ NameOfFile

# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
	erreur_840002003 = i_ajout_tlv(g_iartout12, "T3t1_NameOfFile" , "")
	erreur_840002003 = i_resize_tlv(g_iartout12, "T3t1_NameOfFile" , "NameOfFile" ,17)
# /TT0033
	SI(erreur_840002003!=0)
	ALORS
		trace("Tcrae_header, erreur d ajout du champ <NameOfFile>**")
		code_rejet_840002003 = MODULE_TRAIT_840002003 + ERR_SEM_840002003 + EFFICACE_840002003
		erreur_840002003 = i_PlvMessEmettre(8800, 2, g_iartout12, "", 2, code_rejet_840002003, "NameOfFile", 0)
		SAUT STOCKE_ERRONE
	FINSI
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
	erreur_840002003 = i_resize_tlv(g_iartout12, "T3t1_NameOfFile" , "NbRedist" ,2)
# /TT0033
	SI(erreur_840002003!=0)
	ALORS
		trace("Tcrae_header, erreur d ajout du champ <NbRedist>**")
		code_rejet_840002003 = MODULE_TRAIT_840002003 + ERR_SEM_840002003 + EFFICACE_840002003
		erreur_840002003 = i_PlvMessEmettre(8800, 2, g_iartout12, "", 2, code_rejet_840002003, "NbRedist", 0)
		SAUT STOCKE_ERRONE
	FINSI
# OGA 431
	SI( pt_FicNameGlob_LEN_840002003 < i_strlen(g_isource) )
	ALORS
		trace("variable g_isource plus grande que pointeur de copie de g_isource.")
		code_rejet_840002003 = MODULE_TRAIT_840002003 + 0x0D0 + EFFICACE_840002003
		erreur_840002003 = i_PlvMessEmettre(8800, 2, g_iartout12, "", 2, code_rejet_840002003, "lg NameOfFile > 255", 0)
		SAUT STOCKE_ERRONE
	FINSI
	i_strcpy(pt_FicNameGlob_840002003, g_isource)
	POINT DEBUT_BOUCLE_FIC_NAME
	Resultat_recherche_840002003 = i_recupererValeur(pt_FicNameGlob_840002003, pt_FicNameTemp_840002003, 255, '/')
	SI( Resultat_recherche_840002003 == 0 )
	ALORS
		# On ne fait rien...
		# Le nom de fichier doit dans pt_FicNameTemp
		i_strcpy(pt_NameOfFile_840002003, pt_FicNameTemp_840002003)
		SAUT DEBUT_BOUCLE_FIC_NAME
	SINON
		# Le resultat a ete sauvegarde au coup precedent.
		#i_strcpy(pt_NameOfFile, pt_FicNameTemp)
		trace("Fin boucle NameOfFile")
	FINSI

# OGA 448 : suppression des 9 derniers caracteres du g_isource (checksum)
	i_get_sub_str(pt_NameOfFile_840002003, 0, -10, pt_NameOfFile_840002003)
	SI (i_strlen(pt_NameOfFile_840002003) > 19)
	ALORS
		trace("**Tcrae_header, erreur : NameOfFile trop long **")
		code_rejet_840002003 = MODULE_TRAIT_840002003 + 0x0D0 + EFFICACE_840002003
		erreur_840002003 = i_format_str2(pt_LibelleAlarme_840002003, "%s=%s", "NameOfFile", pt_NameOfFile_840002003)
		erreur_840002003 = i_PlvMessEmettre(8800, 2, g_iartout12, "", 2, code_rejet_840002003, pt_LibelleAlarme_840002003, 0)
		SAUT STOCKE_ERRONE
	FINSI
# /OGA 448
# OGA 488
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
	erreur_840002003 = i_memcpy_art_field(g_iartout12, "NameOfFile",pt_NameOfFile_840002003, i_strlen(pt_NameOfFile_840002003))
# /TT0033
# /OGA 488
# /OGA 431
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Nom fichier/date de collecte> :1512
###############################################################################

# ano tracker cpt 1512
#CPT_Y = i_get_art_field(g_iartin , $Tcrae_header::IdCrae)
CPT_Z_840002003 = 0
date_840002003 = i_DHgetLocalTime(4, 7, i_date_audit())
erreur_840002003 = i_get_field_str(g_iartin, "NameOfFile", pt_NameOfFile_840002003)


erreur_840002003 = i_get_field_str(g_iartin, "IdCrae", pt_idCrae_840002003)

## conversion chaine de caractere vers entier
resultat_840002003 = 0
indice_840002003 = 0
longueur_840002003 = i_strlen(pt_idCrae_840002003)

POINT  BOUCULE_ENTIER
digit_840002003 = i_strtab(pt_idCrae_840002003, indice_840002003)-0x30
SI(digit_840002003 >= 0 && digit_840002003 <= 9)
ALORS
	resultat_840002003 = resultat_840002003*10 + digit_840002003
FINSI

indice_840002003 = indice_840002003 + 1
SI( indice_840002003 < longueur_840002003 )
ALORS
	SAUT BOUCULE_ENTIER
FINSI
CPT_Y_840002003 = resultat_840002003

erreur_840002003=i_set_cpt_txt(CPT_840002003, g_ieec, CPT_Y_840002003, CPT_Z_840002003, date_840002003, pt_NameOfFile_840002003)
# /ano tracker cpt 1512

SI(erreur_840002003!=0)
ALORS
	trace("**Tcrae_header, erreur de mise a jour du compteur 1512 **")
	code_rejet_840002003 = MODULE_TRAIT_840002003 + ERR_SEM_840002003 + EFFICACE_840002003
	erreur_840002003 = i_format_str2(pt_LibelleAlarme_840002003, "%s%s", "f=", pt_NameOfFile_840002003)
	erreur_840002003 = i_PlvMessEmettre(8801, 2, g_iartout12, "", 3, code_rejet_840002003, 1512, pt_LibelleAlarme_840002003)
	SAUT STOCKE_ERRONE
FINSI

#  Article valide , stockage en OK
trace("**Tcrae_header, stockage de l'article en OK**")
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840002003 = i_stocke_art(g_iartout12, 0, PT_OK, 0)
# /TT0033
RETOUR  TRAIT_OK


# stockage en errone

POINT STOCKE_ERRONE

# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840002003 = i_make_art_rej(g_iartout12, g_iartout2, code_rejet_840002003)
# /TT0033
erreur_840002003 = i_stocke_art(g_iartout2,0,PT_ERRONE,0)
trace("**Tcrae_header , Artcile stocke en errone**")
#      RETOUR TRAIT_OK
RETOUR BAD_BLOC
#------------------------ Fin Tcrae_header_trt.src ---------------------------------------
