# Fonction PCODE ID = 860026233
REGISTRE ENTIER ic_c_csv1
REGISTRE ENTIER finser
REGISTRE ENTIER traude_num
REGISTRE ARTOBJ artobjout
############################################################################
#
# Nom du fichier: SetChampCsv.src
# 
# Fonction:
#    Mise a jour des champs C_csv et OP_csv
#    pour l' application FE, TRAFIC, DELTA MINUTE 
#
# En entree :
#    traude_num : numero du traude
#    finser     : cause de fin de service
#    ic_c_csv1  : indice du 1er champ C_CSV de l'artobjout 
#    artobjout  : article recevoir des mises a jour
#
# En sortie:
#    Bon        : TRAIT_OK
#    Erreur     : -1
#
############################################################################



REGISTRE ENTIER   erreur

REGISTRE ENTIER   ic_c_csv
REGISTRE ENTIER   ic_op_csv
REGISTRE ENTIER   nb_csv_i

REGISTRE POINTEUR p_buffer
REGISTRE POINTEUR p_octet


	#
	# recuperation des valeurs d'entree
	#

ic_c_csv1 = depilerENTIER()
finser = depilerENTIER()
traude_num = depilerENTIER()
artobjout = depilerARTOBJ()
	trace1("distribution - Debut SetChampCsv traude_num %d", traude_num)
	#trace1("finser %d", finser)
	#trace1("ic_c_csv1 %d", ic_c_csv1)

	#
	# Champ C_CSVi et OP_CSVi ( i = 1 a 5 )
	#

	nb_csv_i = 0

POINT INIT_C_CSV

	# Initialiser les champs C_CSV et OP_CSV a blanc ( 0x40 format EBCDIC)
	ic_c_csv = ic_c_csv1 + 2*nb_csv_i
	ic_op_csv = ic_c_csv + 1

	erreur = i_memset_field_n(artobjout, ic_c_csv, 0x40)
	erreur = i_memset_field_n(artobjout, ic_op_csv, 0x40)
	
	SI ( erreur != 0 )
	ALORS
		RETOUR -1
	FINSI

	SI ( traude_num != 1 )
	ALORS

		SI ( ( finser == 0x00 ) || ( finser == 0x01 ) )
		ALORS
			p_buffer = "2"
		SINON
			SI ( finser == 0x02 )
			ALORS
				p_buffer = "S"
			SINON
				SI ( ( finser == 0x03 ) || ( finser == 0x04 ) )
				ALORS
					p_buffer = "4"
				SINON
					p_buffer = "  "
				FINSI
			FINSI
		FINSI

		SI ( ( finser != -1 ) && (finser <= 0x04 ) )
		ALORS
			p_octet = "U"
		SINON
			p_octet = " "
		FINSI

		### chaines ASCII ( p_buffer et p_octet )
		### seront stockees dans les champs C_CSVi et OP_CSVi 
		### conversion de chaine ASCII en chaine EBCDIC
		SI ( ( i_set_art_str(artobjout, ic_c_csv, p_buffer) != 0 ) ||
		     ( i_set_art_str(artobjout, ic_op_csv, p_octet) != 0 )  )
		ALORS
			trace(" Erreur de i_set_art_field OP_CSVi " )
			RETOUR -1
		FINSI
	FINSI

	### Initialiser un autre C_CSVi
	nb_csv_i = nb_csv_i + 1

	SI ( nb_csv_i < 5 )
	ALORS
		SAUT INIT_C_CSV
	FINSI


RETOUR TRAIT_OK


