DEFINITION MODULE_TRAIT_840003562 0x5000
DEFINITION ERR_SEM_840003562 0x040
DEFINITION EFFICACE_840003562 0x01
DEFINITION CPT_1512_840003562 1512
DEFINITION CPT_1513_840003562 1513
DEFINITION CPT_1514_840003562 1514
DEFINITION CPT_1515_840003562 1515
DEFINITION CPT_1516_840003562 1516
DEFINITION CPT_1531_840003562 1531
DEFINITION pt_FicNameGlob_LEN_840003562 255
REGISTRE ENTIER erreur_840003562
REGISTRE ENTIER code_rejet_840003562
REGISTRE ENTIER CPT_X_840003562
REGISTRE ENTIER CPT_Y_840003562
REGISTRE ENTIER CPT_Z_840003562
REGISTRE ENTIER date_840003562
REGISTRE ENTIER date_unix_gmt_840003562
REGISTRE ENTIER val_CallEventCount_840003562
REGISTRE ENTIER val_ELocalTime_840003562
REGISTRE ENTIER val_LLocalTime_840003562
REGISTRE ENTIER indice_charge_840003562
REGISTRE ENTIER SommeTotal_840003562
REGISTRE ENTIER val_totalCharge_840003562
REGISTRE ENTIER ic_charge_840003562
REGISTRE POINTEUR pt_NameOfFile_840003562
REGISTRE POINTEUR pt_indice_charge_840003562
REGISTRE POINTEUR pt_charge_840003562
REGISTRE POINTEUR pt_chargeType_840003562
REGISTRE POINTEUR ptr_chargeType_840003562
REGISTRE POINTEUR pt_AUDIT_840003562
REGISTRE ENTIER Resultat_recherche_840003562
REGISTRE POINTEUR pt_FicNameTemp_840003562
REGISTRE POINTEUR pt_FicNameGlob_840003562
#                         - Pcode du module de traitement Tcrae_audit_trt.src : CRAE AuditControlInfo
#                         - creation le 26/09/2006
#                         - Auteur : NBOU
# HISTORIAQUE:
# 26/09/2006 : Creation
# 15/01/2007 :  FO 404 , mise a jour du compteur 1516 : somme des charges dont le chargeType est a "00"
# 11/01/11 - BEA - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs): RAS
# 14/12/11 - JLG - G3R5 QC965 probleme sur les compteurs 1512 ? 1516
# 04/01/12 - PKH - QC984 Modification de CPT_Y pour incrementer les compteurs applicatifs
# 25/01/12 - JLG - QC994 ajout cpt 1531
##########################################################################################################
#  Declaration des variables



# Initialisation
pt_NameOfFile_840003562="pt_NameOfFile0123456789"
pt_indice_charge_840003562="pt_indice_charge0123456789"
i_strcpy(pt_indice_charge_840003562,"")
pt_charge_840003562="pt_charge01234567891234"
pt_chargeType_840003562="pt_chargeType0123456789"
ptr_chargeType_840003562="ptr_chargeType0123456789"
i_strcpy(ptr_chargeType_840003562,"")
pt_AUDIT_840003562="AUDIT01234567897894561"
i_strcpy(pt_AUDIT_840003562,"")

Resultat_recherche_840003562 = 0
pt_FicNameTemp_840003562="pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt_NameOfTemp0123456789pt"
i_strcpy(pt_FicNameTemp_840003562,"")
pt_FicNameGlob_840003562="pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt_NameOfGlob0123456789pt"
i_strcpy(pt_FicNameGlob_840003562,"")

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

trace(" [ Audit Control Info ]: Debut du pcode de traitements")
# mise a jour de l'article en provenance du convertisseur CRAE avec le champ NameOfFile

# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840003562 = i_ajout_tlv(g_iartout12, "T3t1_NameOfFile" , "")
erreur_840003562 = i_resize_tlv(g_iartout12, "T3t1_NameOfFile" , "NameOfFile" ,17)
# /TT0033
SI(erreur_840003562!=0)
ALORS
	trace("Tcrae_auditControlInfo, erreur d ajout du champ <NameOfFile>**")
	code_rejet_840003562 = MODULE_TRAIT_840003562 + ERR_SEM_840003562 + EFFICACE_840003562
	SAUT STOCKE_ERRONE
FINSI
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840003562 = i_resize_tlv(g_iartout12, "T3t1_NameOfFile" , "NbRedist" ,2)
# /TT0033
SI(erreur_840003562!=0)
ALORS
	trace("Tcrae_auditControlInfo, erreur d ajout du champ <NbRedist>**")
	code_rejet_840003562 = MODULE_TRAIT_840003562 + ERR_SEM_840003562 + EFFICACE_840003562
	SAUT STOCKE_ERRONE
FINSI
# OGA 431
SI( pt_FicNameGlob_LEN_840003562 < i_strlen(g_isource) )
ALORS
	trace("variable g_isource plus grande que pointeur de copie de g_isource.")
	SAUT STOCKE_ERRONE
FINSI
i_strcpy(pt_FicNameGlob_840003562, g_isource)
POINT DEBUT_BOUCLE_FIC_NAME
Resultat_recherche_840003562 = i_recupererValeur(pt_FicNameGlob_840003562, pt_FicNameTemp_840003562, 255, '/')
SI( Resultat_recherche_840003562 == 0 )
ALORS
	# On ne fait rien...
	# Le nom de fichier doit dans pt_FicNameTemp
	i_strcpy(pt_NameOfFile_840003562, pt_FicNameTemp_840003562)
	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_840003562, 0, -10, pt_NameOfFile_840003562)
SI (i_strlen(pt_NameOfFile_840003562) > 19)
ALORS
	trace("**Tcrae_audit, erreur : NameOfFile trop long **")
	SAUT STOCKE_ERRONE
FINSI
# /OGA 448
# OGA 488
# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840003562 = i_memcpy_art_field(g_iartout12, "NameOfFile",pt_NameOfFile_840003562, i_strlen(pt_NameOfFile_840003562))
# /TT0033
# /OGA 488
# /OGA 431
erreur_840003562 = i_get_field_str(g_iartin, "NameOfFile", pt_NameOfFile_840003562)
trace2("MAJ de NameOfFile  <%s>",pt_NameOfFile_840003562, "")

##QC965
#QC984
date_840003562 = i_DHgetLocalTime(4, 7, i_date_audit())
CPT_X_840003562 = g_ieec
CPT_Y_840003562 = date_840003562 & 0x1FFFF
CPT_Z_840003562 = 0
trace1("<<<__LINE__<<<__FILE__<<< date de collecte <0x%x>",date_840003562)
trace3("<<<__LINE__<<<__FILE__<<< CPT_X=<%d>, CPT_Y=<0x%x>, CPT_Z=<%d>",CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562)

##############################################################################
######Recuperation de l identifiant du fichier CRAE
##############################################################################

pt_AUDIT_840003562 = i_LireMarqueAudit()
trace2("pt_AUDIT est %s %s ",pt_AUDIT_840003562, "")
#QC965
#VAL1 = i_strtab(pt_AUDIT,4)
#VAL2 = i_strtab(pt_AUDIT,5)
#trace1("VAL1 est %x",VAL1)
#trace1("VAL2 est %x", VAL2)
#CPT_Y  = (VAL1 & 0x3)*0x100 + VAL2


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

erreur_840003562 = i_get_field_str(g_iartin, "NameOfFile", pt_NameOfFile_840003562)
erreur_840003562 = i_set_cpt_txt(CPT_1512_840003562, CPT_X_840003562, CPT_Y_840003562, CPT_Z_840003562, date_840003562,pt_NameOfFile_840003562)
trace2("<<<__LINE__<<<__FILE__<< pt_NameOfFile=<%s>",pt_NameOfFile_840003562,"")
SI(erreur_840003562!=0)
ALORS
	trace("**Tcrae_audit, erreur de mise a jour du compteur 1512 **")
	SAUT STOCKE_ERRONE
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Roaming Out Amont & Nombre de CRA> :1513
###############################################################################

SI(i_valid_field_n(g_iartin, $Tcrae_audit::CallEventCount))
ALORS
	val_CallEventCount_840003562 = i_get_art_field(g_iartin, $Tcrae_audit::CallEventCount)
SINON
	val_CallEventCount_840003562 = 0
FINSI
trace3("<<<__LINE__<<<__FILE__<<< CallEventCount est <0x%04x> = <%d>",val_CallEventCount_840003562,val_CallEventCount_840003562,0)
erreur_840003562 = i_set_cpt_int(CPT_1513_840003562,CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562,date_840003562,val_CallEventCount_840003562)
SI(erreur_840003562!=0)
ALORS
	trace("**Tcrae_audit, erreur de mise a jour du compteur 1513 **")
	SAUT STOCKE_ERRONE
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Date du premiere Com> :1514
###############################################################################

# G3R5 QC965 : val_ELocalTime = date GMT depuis 1970
val_ELocalTime_840003562 = i_DHgetCe2gTime(4,7,i_get_art_field(g_iartin, $Tcrae_audit::ELocalTime)) - 0x83ABD000 
trace1("<<<__LINE__<<<__FILE__<<< ELocalTime est %x",val_ELocalTime_840003562)

erreur_840003562 = i_set_cpt_int(CPT_1514_840003562,CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562,date_840003562,val_ELocalTime_840003562)
SI(erreur_840003562!=0)
ALORS
	trace("**Tcrae_audit, erreur de mise a jour du compteur 1514 **")
	SAUT STOCKE_ERRONE
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Date de derniere Com> :1515
###############################################################################

# G3R5 QC965 : val_LLocalTime = date GMT depuis 1970
val_LLocalTime_840003562 = i_DHgetCe2gTime(4,7,i_get_art_field(g_iartin, $Tcrae_audit::LLocalTime)) - 0x83ABD000

erreur_840003562 = i_set_cpt_int(CPT_1515_840003562,CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562,date_840003562,val_LLocalTime_840003562)
trace1("<<<__LINE__<<<__FILE__<<< LLocalTime est %x",val_LLocalTime_840003562)
SI(erreur_840003562!=0)
ALORS
	trace("**Tcrae_audit, erreur de mise a jour du compteur 1515 **")
	SAUT STOCKE_ERRONE
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Montant Total> :1516
###############################################################################

###    Calcul de la somme de tous les totalcharge quand ChargeType vaut 00 ##########
indice_charge_840003562 = 1
SommeTotal_840003562 = 0
POINT SOM_CHARGES
SI(indice_charge_840003562 <= 100)
ALORS
	erreur_840003562 = i_EntierToString(indice_charge_840003562,pt_indice_charge_840003562,3)
	erreur_840003562 = i_format_str2(pt_charge_840003562,"%s%s", "totalCharge", pt_indice_charge_840003562)
	erreur_840003562 = i_format_str2(pt_chargeType_840003562,"%s%s", "chargeType", pt_indice_charge_840003562)
	trace2("groupe: %s %s", pt_charge_840003562, pt_chargeType_840003562)
	ic_charge_840003562 = i_get_field_num(g_iartin,pt_charge_840003562)
	SI(i_valid_field(g_iartin, pt_charge_840003562))
	ALORS
		val_totalCharge_840003562 = i_get_art_field(g_iartin , ic_charge_840003562)
		trace1("val_totalCharge %x", val_totalCharge_840003562)
		SI(val_totalCharge_840003562 != -1)
		ALORS
			erreur_840003562 = i_get_art_str(g_iartin, ic_charge_840003562+1, ptr_chargeType_840003562)
			trace2("ptr_chargeType %s %s",ptr_chargeType_840003562, "")
# FO 404 , Somme des charges dont le chargeType est uniquement a "00"

			SI (i_strcmp(ptr_chargeType_840003562,"00") == 0)
			ALORS
				SommeTotal_840003562 = SommeTotal_840003562 + val_totalCharge_840003562
				trace1("SommeTotal est %x", SommeTotal_840003562)
			FINSI
		FINSI

	FINSI
	indice_charge_840003562 = indice_charge_840003562 +1
	SAUT SOM_CHARGES
FINSI
trace1("<<<__LINE__<<<__FILE__<<< la somme de totalcharge est %x",SommeTotal_840003562)
erreur_840003562 = i_set_cpt_int(CPT_1516_840003562,CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562,date_840003562,SommeTotal_840003562)
SI(erreur_840003562!=0)
ALORS
	trace("**Tcrae_audit, erreur de mise a jour du compteur 1516 **")
	SAUT STOCKE_ERRONE
FINSI

##############################################################################
# Mise a jour du compteur applicatif <Montant Total> :1531
#QC994
###############################################################################
date_unix_gmt_840003562 = i_date_audit() - 0x83ABD000
trace3("<<<__LINE__<<<__FILE__<<< date_collecte_unix_gmt=<0x%x>, date_collecte=<0x%x>", date_unix_gmt_840003562, date_840003562, 0)
erreur_840003562 = i_set_cpt_int(CPT_1531_840003562,CPT_X_840003562,CPT_Y_840003562,CPT_Z_840003562,date_840003562,date_unix_gmt_840003562)
#/QC994


# TT0033 plus de modification du g_iartin a cause de pb decoupe gros fichier
erreur_840003562 = i_stocke_art(g_iartout12,0,PT_DIVERS,0)
# /TT0033

RETOUR  TRAIT_OK
POINT STOCKE_ERRONE

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