DEFINITION UN_ZERO_860026338 "0"
DEFINITION DEUX_ZERO_860026338 "00"
DEFINITION VALEUR_UT_860026338 103
DEFINITION C_str_FF_860026338 "FF"
DEFINITION C_str_1_860026338 "1"
DEFINITION C_str_3_860026338 "3"
DEFINITION C_str_001_860026338 "001"
DEFINITION C_str_004_860026338 "004"
DEFINITION C_str_005_860026338 "005"
DEFINITION C_str_006_860026338 "006"
DEFINITION C_str_star1_860026338 "B1"
DEFINITION C_str_star2_860026338 "B2"
DEFINITION C_str_AAP_860026338 "AAP"
DEFINITION C_str_AFT_860026338 "AFT"
DEFINITION C_str_CAT_860026338 "CAT"
DEFINITION C_str_CFT_860026338 "CFT"
DEFINITION C_str_CAA_860026338 "CAA"
DEFINITION C_str_CIN_860026338 "CIN"
DEFINITION C_str_CNA_860026338 "CNA"
DEFINITION C_str_ILASdef_860026338 "000000000FFFFFFF"
DEFINITION C_Article_860026338 "Tcp4dcOSA"
DEFINITION C_InstSYMP_860026338 "SYMP"
DEFINITION C_InstALLEGRO_860026338 "ALLEGRO"
DEFINITION C_InstSSCC_860026338 "SSCC"
DEFINITION C_InstSSCCS_860026338 "SSCCS"
DEFINITION C_InstENTRCA_860026338 "ENTRCA"
DEFINITION C_InstEBILL_860026338 "SC"
DEFINITION C_TsymTcp4dcOSA_860026338 "TsymTcp4dcOSA"
DEFINITION C_Tallegro_860026338 "Tallegro"
DEFINITION C_Tsscc_860026338 "Tsscc_OSA"
DEFINITION C_Tssccs_860026338 "Tssccs_OSA"
DEFINITION C_Tentr28_860026338 "Tentr28"
DEFINITION C_Tebill_860026338 "TscTcp4dcOSA"
REGISTRE ENTIER instSYMPH_860026338
REGISTRE ENTIER instEBILL_860026338
REGISTRE ENTIER instALLEGRO_860026338
REGISTRE ENTIER instSSCC_860026338
REGISTRE ENTIER instSSCCS_860026338
REGISTRE ENTIER instENTRCA_860026338
REGISTRE ENTIER erreur_860026338
REGISTRE ENTIER res_860026338
REGISTRE ENTIER bitA_860026338
REGISTRE ENTIER bitB_860026338
REGISTRE ENTIER VCP1_860026338
REGISTRE ENTIER VCDR2_860026338
REGISTRE ENTIER ARRONDI_860026338
REGISTRE ENTIER CODCIRDR_860026338
REGISTRE ENTIER CODCIR_860026338
REGISTRE ENTIER bCODCIR_860026338
REGISTRE ENTIER bCODCIRDR_860026338
REGISTRE ENTIER DUREE_860026338
REGISTRE ENTIER code_errone_860026338
REGISTRE ENTIER TYPCTR_860026338
REGISTRE ENTIER b_SCOM_CFT_860026338
REGISTRE ENTIER b_SCOM_AFT_860026338
REGISTRE ENTIER b_SCOM_CAT_860026338
REGISTRE ENTIER b_SCOM_AAP_860026338
REGISTRE POINTEUR pt_SGTQS_860026338
REGISTRE POINTEUR pt_NomEccFact_860026338
REGISTRE POINTEUR pt_BUF40_860026338
REGISTRE POINTEUR pt_buffer_860026338
REGISTRE POINTEUR pt_CODCIRDA_860026338
REGISTRE POINTEUR pt_CODCIRA_860026338
# ---------------------------------------------------------------------------
#
# FICHIER     : Tcp4dcOSAC.src
#
# Distribution
#
# VERSION     :
#
# AUTEUR      :DRE
#
# CREE le     : 23/02/07
#
# MODIFIE le  :
#
# DESCRIPTION : Communication emise par le RI OSA-PARLAY Carte FT
#
# HISTORIQUE  :
#	      Reprise du pcode Tcp4dc du RI CARTE
#
# EN ENTREE :
#    Article : Tcp4dcOSA
#    Header: Tcp4dcOSA   (domaine )
#
# EN SORTIE:
#    ALLEGRO	g_iartout2
#    SYMPHONIE
#    SSCC
#    SSCCS
#    ENTROPI
#    E-BILL (ex SuiviConso FDE)
#
#		23/02/07 - DRE - G3R0Cv Migration RI CARTE vers RI OSA-PARLAY
#		21/01/08 - FAL - G3R5 FO2298 Tebill.T1_Type
#		08/04/08 - BDE FAL - G3R6Cy Migration SI CARTE FT : ALLEGRO remplace VATEL
#		30/04/08 - FAL - G3R6Cy FO2380 modifcation champ SERV pour Allegro avec F0000 et F0020
#		07/05/08 - FAL - G3R6Cy FO2385 VCDR2 et VCP1 de SSCC
#		13/05/08 - FAL - G3R6Cy FO2386 ALLEGRO SCOM : ATP devient CAT
#   04/06/08 -BEA-RHE- G3R8 Carte_OSA_PARLAY V2_S1F5.doc ajout SCOM et SERV vers Symphonie
#   23/07/08 -BEA- Carte_OSA_PARLAY V2_S1F7.doc inversion ALLEGRO CCLA et CCNDE & FO 50
#   05/09/08 -RHE- G3R9Cy ajout CCD, CCLA, CCNDE pour e-bill
#   23/09/08 -RHE- G3R9Cy QC90 parametre res de i_EntierToString
#   26/09/08 -RHE- G3R9Cy QC94 CCLA et CCNDE pour e-bill
#   01/12/08 -PSA- G3R10  QC150 Mauvaise alimentation CCLA
#   17/06/09 -PSA- G3R13Cz Alimentation ALLEGRO : SERV par defaut a 001
#   31/08/09 -DRE- G3R14 QC282 Valorisation incorrecte du champ CLA pour ALLEGRO si la valeur CDEUR_old = 0x0F du DC
#   27/09/11 - THE - VerifPcode
#   30/09/13 -THE DRE - G4R4 lot2 Remplacement de SAFIRE par ENTROPI
#
# ---------------------------------------------------------------------------
#
#A savoir :
# artilce Conversion : construit uniquement lors de la mise au format ALLEGRO
# Tcp4dcOSA::TYPCTR est interne au programme
# les T4codcirdr et T4codcir sont calcules dans ma mise au format SYMPHONIE
#      mais il sont aussi utilises par ALLEGRO
#
############################################################################
# Declarations
############################################################################



# Numeros instances
#G4R4 lot2

#divers

#variables fonctionnelles


trace( "__FILE__:__LINE__ : *** Debut du pcode de distribution ***" )

#Constantes pour message d alarme
#G4R4 lot2 

###########################################
# Allocation de memoire

# Initialisations

instSYMPH_860026338=0
instEBILL_860026338=0
instALLEGRO_860026338=0
instSSCC_860026338=0
instSSCCS_860026338=0
instENTRCA_860026338=0
#resul1=0
#resul2=0
CODCIRDR_860026338 = 0xFF
CODCIR_860026338 = 0xFF
VCP1_860026338=0
VCDR2_860026338=0
ARRONDI_860026338=0

pt_SGTQS_860026338 	= "222222222222222222"
pt_BUF40_860026338	= "4040404040404040404040404040404040404040"
pt_NomEccFact_860026338	= "777777777777777777777"
pt_buffer_860026338	= "6666666666666666666666666"
#pt_res		= "555555555555"
#NUM_DE 		= "3333333333333333333333333"
#NUM_LA 		= "4444444444444444444444444"
pt_CODCIRDA_860026338 	= "53453546"
pt_CODCIRA_860026338 	= "78474546"

TYPCTR_860026338 = 0
b_SCOM_AAP_860026338 = 0
b_SCOM_AFT_860026338 = 0
b_SCOM_CAT_860026338 = 0
b_SCOM_CFT_860026338 = 0
bCODCIR_860026338 = 0
bCODCIRDR_860026338 = 0

# VerifPcode
i_strcpy(pt_SGTQS_860026338, "")
i_strcpy(pt_NomEccFact_860026338, "")
i_strcpy(pt_BUF40_860026338, "")
i_strcpy(pt_buffer_860026338, "")
i_strcpy(pt_CODCIRDA_860026338, "")
i_strcpy(pt_CODCIRA_860026338, "")


############################################################################
#       Envoi en Recyclage
############################################################################

SI (g_ipt==PT_RECYCLE)
ALORS
	trace("==== Envoi en recyclage ====")
	res_860026338 = i_stocke_art( g_iartin, 0, PT_RECYCLE, 0 )
	RETOUR TRAIT_OK
FINSI

SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::TYPCTR))
ALORS
	TYPCTR_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::TYPCTR)
	erreur_860026338 = i_supprChamp(g_iartin, "T4typctr")
FINSI

SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::SCOM_VAL) )
ALORS
	SI g_iartin.SCOM_VAL!NELEM > 7
	ALORS
		SI ( (g_iartin.SCOM_VAL[7] & 0x04) == 0 )
		ALORS
			SI ( (g_iartin.SCOM_VAL[2] & 0x02) == 0 )
			ALORS
				b_SCOM_CFT_860026338 = 1
			SINON
				b_SCOM_AFT_860026338 = 1
			FINSI
		SINON
			SI ( (g_iartin.SCOM_VAL[2] & 0x02) == 0 )
			ALORS
				#FO2386 b_SCOM_ATP = 1
				b_SCOM_CAT_860026338 = 1
			SINON
				b_SCOM_AAP_860026338 = 1
			FINSI
		FINSI
	FINSI
FINSI


############################################################################
# Variables Fonctionnelles Globales
############################################################################

#----------------------------------------------------------------------------------------------------
# Variable fonctionnelle VCP1(Valorisation en UTC entiere) et VCDR2 (Valorisation en millieme d'Euro)
#----------------------------------------------------------------------------------------------------
#
#UNITE en UTC entiere
SI ( ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 0 ) || ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 100 ) )
ALORS
	#trace("Unite en UTC entiere")
	#VPC1 UTC entiere
	VCP1_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1)
	#trace1("VCP1=%d",VCP1)
	#VCDR2 millieme d'Euros
	VCDR2_860026338=i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1) *VALEUR_UT_860026338
	#trace1("VCDR2=%d",VCDR2)
FINSI

#UNITE en en millieme d'Euros
SI ( ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 10 ) || ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 110 ) )
ALORS
	#trace("Unite en millieme d euros")
	#VCDR2 millieme d'Euros
	VCDR2_860026338=i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1)
	#trace1("VCDR2=%d",VCDR2)

	#VPC1 UTC entiere ; valeur de l'UT en Euro=103
	VCP1_860026338=VCDR2_860026338/VALEUR_UT_860026338

	ARRONDI_860026338 = ((VCDR2_860026338*10)/VALEUR_UT_860026338) - (VCP1_860026338 * 10)
	SI (ARRONDI_860026338>0)
	ALORS
		VCP1_860026338=VCP1_860026338+1
	FINSI
	#trace1("VCP1=%d",VCP1)
FINSI

#UNITE en en millieme d'UT
SI ( ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 8 ) || ( (i_get_art_field( g_iartin, $Tcp4dcOSA::UNITE1) ) == 108 ) )
ALORS
	#VCDR2 millieme d'Euros
	VCDR2_860026338=i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1) *VALEUR_UT_860026338 / 1000
	ARRONDI_860026338 = (i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1) *VALEUR_UT_860026338 / 100) - (VCDR2_860026338 * 10)
	SI (ARRONDI_860026338>4)
	ALORS
		VCDR2_860026338=VCDR2_860026338+1
	FINSI

	#VPC1 UTC entiere
	VCP1_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1) / 1000
	ARRONDI_860026338 = (i_get_art_field( g_iartin, $Tcp4dcOSA::TAX1) / 100) - (VCP1_860026338 * 10)
	SI (ARRONDI_860026338>0)
	ALORS
		VCP1_860026338=VCP1_860026338+1
	FINSI
FINSI

# CODCIR et CODCIRA
SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::CODCIR) )
ALORS
	CODCIR_860026338=i_get_art_field(g_iartin, $Tcp4dcOSA::CODCIR)
	bCODCIR_860026338 = 1
	erreur_860026338=i_get_art_str(g_iartin, $Tcp4dcOSA::CODCIRA,pt_CODCIRA_860026338)
	SI (g_iartin.CODCIRA[2] > 9)
	ALORS
		i_get_sub_str(pt_CODCIRA_860026338,2,5,pt_CODCIRA_860026338)
	SINON
		i_get_sub_str(pt_CODCIRA_860026338,1,5,pt_CODCIRA_860026338)
	FINSI
FINSI

# CODCIRDR et CODCIRDA
SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::CODCIRDR) )
ALORS
	CODCIRDR_860026338=i_get_art_field(g_iartin, $Tcp4dcOSA::CODCIRDR)
	bCODCIRDR_860026338 = 1

	erreur_860026338=i_get_art_str(g_iartin, $Tcp4dcOSA::CODCIRDA,pt_CODCIRDA_860026338)
	SI (g_iartin.CODCIRDA[2] > 9)
	ALORS
		i_get_sub_str(pt_CODCIRDA_860026338,2,5,pt_CODCIRDA_860026338)
	SINON
		i_get_sub_str(pt_CODCIRDA_860026338,1,5,pt_CODCIRDA_860026338)
	FINSI
FINSI


############################################################################
# Recherche Instances des ECC et Critere de distribution
############################################################################
#Tous les DC sont envoyis a VATEL, SYMPHONIE, SSCC, SSCC Secours, Suivi Conso Fil de l eau
#Sont envoyes a ENTROPI uniquement les dc internationaux

#---------------------------------------------------------------------------
# Symphonie
#---------------------------------------------------------------------------

instSYMPH_860026338=i_LireInstanceECC(C_InstSYMP_860026338)
SI (!instSYMPH_860026338)
ALORS
	code_errone_860026338 = 0xA0B1
	erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstSYMP_860026338,C_Article_860026338)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
#G3R6Cy ALLEGRO remplace VATEL
#---------------------------------------------------------------------------

instALLEGRO_860026338 = i_LireInstanceECC( C_InstALLEGRO_860026338 )
SI ( !instALLEGRO_860026338 )
ALORS
	code_errone_860026338 = 0xA0B1
	erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstALLEGRO_860026338,C_Article_860026338)
	SAUT DISTRI_ERR
SINON
	#trace( "ALLEGRO repond aux criteres de distribution")
	erreur_860026338 =  i_AjouterCouranteECC(instALLEGRO_860026338)
	# -- ECC de facturation --
	i_strcpy(pt_NomEccFact_860026338, "ALLEGRO")
FINSI


#---------------------------------------------------------------------------
# SSCC
#---------------------------------------------------------------------------

instSSCC_860026338 = i_LireInstanceECC( C_InstSSCC_860026338 )
SI ( !instSSCC_860026338 )
ALORS
	code_errone_860026338 = 0xA0B1
	erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstSSCC_860026338,C_Article_860026338)
	SAUT DISTRI_ERR
SINON
	#trace( "SSCC repond aux criteres de distribution")
	erreur_860026338 =  i_AjouterCouranteECC(instSSCC_860026338)
FINSI


#---------------------------------------------------------------------------
# SSCCS
#---------------------------------------------------------------------------

instSSCCS_860026338 = i_LireInstanceECC( C_InstSSCCS_860026338 )

SI ( !instSSCCS_860026338 )
ALORS
	code_errone_860026338 = 0xA0B1
	erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstSSCCS_860026338,C_Article_860026338)
	SAUT DISTRI_ERR
SINON
	#trace( "SSCCS repond aux criteres de distribution")
	erreur_860026338 =  i_AjouterCouranteECC(instSSCCS_860026338)
FINSI


#---------------------------------------------------------------------------
#G4R4 lot2  ENTROPI remplace SAFIRE
#---------------------------------------------------------------------------

# ----------------------------------------------------------------------------------
# Controles pour envoi vers Entropi : FD/TCP_old/DUR <> 0  ET
# FD/PREF/NUM 5 chiffres et commence par 9 (FranceDirect)
# ----------------------------------------------------------------------------------

DUREE_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::DUREE)
erreur_860026338= i_get_art_str(g_iartin, $Tcp4dcOSA::PREF_NUM, pt_buffer_860026338)

SI ( (DUREE_860026338 != 0) && (i_strlen(pt_buffer_860026338)==5) && (!i_strplcmp(pt_buffer_860026338,"9",0,1)) )
ALORS
	instENTRCA_860026338 = i_LireInstanceECC( C_InstENTRCA_860026338)
	SI ( !instENTRCA_860026338 )
	ALORS
		code_errone_860026338 = 0xA0B1
		erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstENTRCA_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI
	#trace("ENTROPI repond aux criteres de distribution")
	erreur_860026338 =  i_AjouterCouranteECC(instENTRCA_860026338)
FINSI


#---------------------------------------------------------------------------
# E-BILL (SUIVI CONSO FDE)
#---------------------------------------------------------------------------
instEBILL_860026338 = i_LireInstanceECC(C_InstEBILL_860026338)
#trace1("instEBILL=<%d>",instEBILL)
SI (!instEBILL_860026338)
ALORS
	code_errone_860026338 = 0xA0B1
	erreur_860026338 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026338,C_InstEBILL_860026338,C_Article_860026338)
	SAUT DISTRI_ERR
SINON
	#trace( "SC repond aux criteres de distribution")
	erreur_860026338 =  i_AjouterCouranteECC(instEBILL_860026338)
FINSI


############################################################################
# Duplication Symphonie
############################################################################

SI ( instSYMPH_860026338 )
ALORS
	# Article fourni a Symphonie sous son format d'origine enrichi d'ajouts
	# => Duplication article en entree + renommage

	# Retrait tlv
	SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::CODCIR) )
	ALORS
		erreur_860026338 = i_supprChamp(g_iartin, "T4codcir")
	FINSI
	SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::CODCIRDR) )
	ALORS
		erreur_860026338 = i_supprChamp(g_iartin, "T4codcirdr")
	FINSI

	# Duplication article en entree
	#trace("Stockage vers SYMPHONIE")

	SI (i_dup_art(g_iartin,C_TsymTcp4dcOSA_860026338,g_iartout))
	ALORS
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_TsymTcp4dcOSA_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI
FINSI


############################################################################
# Mises au format
############################################################################

#---------------------------------------------------------------------------
# Valeurs communes
#---------------------------------------------------------------------------

# Sans objet

#---------------------------------------------------------------------------
# ALLEGRO creation G3R6Cy
#---------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC( instALLEGRO_860026338 ) )
ALORS
	#trace("Stockage vers ALLEGRO")

	SI ( i_dup_art_dest( g_iartin, g_iartout2, C_Tallegro_860026338 ) )
	ALORS
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_Tallegro_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI

	#Mnemonique	Semantique			Position,Long	Type
	#ENT	En-tete					1-2,2		EBCDIC num
	erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::ENT,28)

	#TDC	Type de communication			3-4,2		EBCDIC alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::TDC,C_str_FF_860026338)

	#ICAR	Instant de debut de communication 	5-18,14		EBCDIC num
	#(heure metropole) debut de COM ceci est deja realise en traitement i_date_platine
	#DUP_TAB

	#TDD	Type de demandeur			19-20,2		EBCDIC num
	erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::TDD,30)

	#ILAS	Numero de compte			21-36,16	EBCDIC alpha
	SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::T3ilas))
	ALORS
		res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::ILAS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::ILAS,pt_buffer_860026338)
	SINON
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::ILAS,C_str_ILASdef_860026338)
	FINSI

	#NUM_DE	Numero demande normalise		37-52,16	EBCDIC alpha
	#Ajout de deux zeros pour numero international, de un zero pour numero normal, pas d'ajout pour numero court
	#( taille < 6) commencant par 3 ou 1
	#
	erreur_860026338 = i_get_art_str( g_iartin, $Tcp4dcOSA::DEDE_NUM, pt_buffer_860026338 )
	SI ( (i_get_art_field( g_iartin, $Tcp4dcOSA::DEDE_INF) & 0xc0) == 0xC0 )
	ALORS
		erreur_860026338 = i_format_str2(pt_BUF40_860026338,"%s%s",DEUX_ZERO_860026338,pt_buffer_860026338)
	SINON
		SI ( (i_strplcmp(pt_buffer_860026338,"83684",0,5)==0) || (i_strplcmp(pt_buffer_860026338,C_str_1_860026338,0,1)==0) || (i_strplcmp(pt_buffer_860026338,C_str_3_860026338,0,1)==0) )
		ALORS
			SI ( i_strlen(pt_buffer_860026338) > 6 )
			ALORS
				erreur_860026338 = i_format_str2(pt_BUF40_860026338,"%s%s",UN_ZERO_860026338,pt_buffer_860026338)
			SINON
				i_strcpy(pt_BUF40_860026338,pt_buffer_860026338)
			FINSI
		SINON
			erreur_860026338 = i_format_str2(pt_BUF40_860026338,"%s%s",UN_ZERO_860026338,pt_buffer_860026338)
		FINSI
	FINSI
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::NUM_DE,pt_BUF40_860026338)

	#DUR	Duree taxee				53-57,5		EBCDIC 	num
	#DUP_TAB

	#NB_UT	Taxation par palier			58-61,4		EBCDIC num
	SI ( ((b_SCOM_AFT_860026338==1) || (b_SCOM_AAP_860026338==1)) && (TYPCTR_860026338 == 15) )
	ALORS
		erreur_860026338=i_set_art_field( g_iartout2, $Tallegro::NB_UT, 0)
	SINON
		erreur_860026338=i_set_art_field( g_iartout2, $Tallegro::NB_UT, VCP1_860026338)
	FINSI

	#IPAS	Numero de carte				62-71,10	EBCDIC alpha
	res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::IPAS_NUM ,pt_buffer_860026338)
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::IPAS,pt_buffer_860026338)

	#CLA	Categorie de ligne appelante		72-73,2		EBCDIC alpha 00 0A 09 FF
	res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::CDEUR_old )
	SI ( (res_860026338 ==0) || (res_860026338==0x0A) || (res_860026338==0x09) || (res_860026338==0x0F) )
	ALORS
		erreur_860026338 = i_cree_art("Conversion",g_iartout10)
		erreur_860026338 = i_set_art_field(g_iartout10,$Conversion::REF_NUM,res_860026338)

		res_860026338 = i_get_art_str(g_iartout10,$Conversion::REF_TAB ,pt_buffer_860026338)
		#trace2("__LINE__ CLA ascii <%s>",pt_buffer,"")
		i_get_sub_str(pt_buffer_860026338,-2,-1,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::CLA,pt_buffer_860026338)
	FINSI

	#NUM_LA	Numero de ligne appelante normalise	74-83,10	EBCDIC alpha
	SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::T3idus))
	ALORS
		res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::IDUS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_format_str2(pt_BUF40_860026338,"%s%s",UN_ZERO_860026338,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::NUM_LA,pt_BUF40_860026338)
	SINON
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::NUM_LA,C_str_FF_860026338)
	FINSI

	#CCLA	Code circonscription ligne appelante	84-88,5		EBCDIC alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::CCLA,pt_CODCIRDA_860026338)

	#CCNDE	Code circonscription numero demande	89-93,5		EBCDIC alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::CCNDE,pt_CODCIRA_860026338)

	#NR	Numero de recouvrement			94-96,3		EBCDIC alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::NR,C_str_FF_860026338)

	#MACS	Numero d'autorisation MACSIM		97-116,20	EBCDIC alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::MACS,C_str_FF_860026338)

	#CCDEUR	Code pays demandeur			117-121	5	EBCDIC alpha
	#val def blanc

	#CCDE	Code pays demande			122-126,5	EBCDIC alpha
	#val def blanc

	#PREF	Prefixe d accees			127-136,10	EBCDIC alpha
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::PREF_NUM) )
	ALORS
		res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::PREF_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::PREF,pt_buffer_860026338)
	SINON
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::PREF,C_str_FF_860026338)
	FINSI

	#CCD	Code Classe de Destination		137-139,3	EBCDIC num
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::CCD) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::CCD)
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::CCD,res_860026338)
	SINON
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::CCD,255)
	FINSI

	#VCDR2	Valorisation calculee a la duree reelle	140-147,8	EBCDIC num
	SI ( (TYPCTR_860026338 == 15) && ((b_SCOM_AFT_860026338==1) || (b_SCOM_AAP_860026338==1)) )
	ALORS
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::VCDR2,0)
	SINON
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::VCDR2,VCDR2_860026338)
	FINSI

	#PRES	Code prestation				148-154,7	EBCDIC alpha
	#val def blanc

	#DATE1	Date de debut de validite d abonnement	155-164,10	EBCDIC Alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::DATE1,C_str_FF_860026338)

	#DATE2	Date de fin de validite d abonnement	165-174,10	EBCDIC Alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::DATE2,C_str_FF_860026338)

	#NDBV	Numero de boite vocale			175-184,10	EBCDIC Alpha
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::NDBV,C_str_FF_860026338)

	#IDUS_INF	Type d origine d appel		185-187,3	EBCDIC num
	SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::IDUS_INF) )
	ALORS
		res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::IDUS_INF )
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::IDUS_INF,res_860026338)
	SINON
		erreur_860026338 = i_set_art_field(g_iartout2,$Tallegro::IDUS_INF,0xFF)
	FINSI

	#FILLER	Filler					188-189,2	EBCDIC alpha FF
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::FILLER,C_str_FF_860026338)

	#VPP	Valorisation par palier positive	190-197,8	EBCDIC alpha FF
	erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::VPP,C_str_FF_860026338)

	#SCOM	Code produit				198-200,3	EBCDIC alpha  CFT ATP AFT AAP
	SI ( b_SCOM_CFT_860026338 )
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SCOM,C_str_CFT_860026338)
	SINON
		SI ( b_SCOM_AFT_860026338 )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SCOM,C_str_AFT_860026338)
		SINON
			SI ( b_SCOM_CAT_860026338 )
			ALORS
				#FO2386 erreur = i_set_art_str(g_iartout2,$Tallegro::SCOM,C_str_ATP)
				erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SCOM,C_str_CAT_860026338)
			SINON
				SI ( b_SCOM_AAP_860026338 )
				ALORS
					erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SCOM,C_str_AAP_860026338)
				FINSI
			FINSI
		FINSI
	FINSI

	#AGI	Code Agregat informatif		201-203,3	EBCDIC alpha  CNA CIN CAA
	res_860026338 = 0
	SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::DEDE_NUM) )
	ALORS
		erreur_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::DEDE_NUM,pt_buffer_860026338)
		SI ( (i_strplcmp(pt_buffer_860026338,C_str_star1_860026338,0,2)==0) || (i_strplcmp(pt_buffer_860026338,C_str_star2_860026338,0,2)==0) )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::AGI,C_str_CAA_860026338)
			res_860026338 = 1
		SINON
			SI ( i_valid_field_n(g_iartin,$Tcp4dcOSA::DECO_NUM) )
			ALORS
				erreur_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::DECO_NUM,pt_buffer_860026338)
				SI ( (i_strplcmp(pt_buffer_860026338,C_str_star1_860026338,0,2)==0) || (i_strplcmp(pt_buffer_860026338,C_str_star2_860026338,0,2)==0) )
				ALORS
					erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::AGI,C_str_CAA_860026338)
					res_860026338 = 1
				FINSI
			FINSI
		FINSI
	FINSI
	SI ( (res_860026338 == 0) && (i_valid_field_n(g_iartin,$Tcp4dcOSA::IDUS_INF)) )
	ALORS
		res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::IDUS_INF )
		SI ( (res_860026338 & 0xC0) == 0x80 )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::AGI,C_str_CNA_860026338)
		SINON
			SI ( (res_860026338 & 0xC0) == 0xC0 )
			ALORS
				erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::AGI,C_str_CIN_860026338)
			FINSI
		FINSI
	FINSI

	#SERV	Code Service	204-206,3	EBCDIC alpha  001 004 005 006
	# G3R13Cz: SERV par defaut a 001
	SI ( CODCIRDR_860026338 == 0xF0020 )
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SERV,C_str_005_860026338)
	SINON
		SI ( CODCIRDR_860026338 == 0xF0000 )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SERV,C_str_006_860026338)
		SINON
			res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::CDEUR_old )
			SI ( res_860026338 == 0x0F )
			ALORS
				erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SERV,C_str_004_860026338)
			SINON
				erreur_860026338 = i_set_art_str(g_iartout2,$Tallegro::SERV,C_str_001_860026338)
			FINSI
		FINSI
	FINSI
FINSI


#---------------------------------------------------------------------------
# SSCC
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC( instSSCC_860026338 ) )
ALORS

	############################################################################
	#trace("Duplication vers SSCC")
	SI ( i_dup_art(g_iartin,C_Tsscc_860026338, g_iartout4) )
	ALORS
		#trace("ERREUR de duplication vers SSCC")
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_Tsscc_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI
	############################################################################
	# Suppression des champs de l'ajout CE inutiles pour SSCC
	erreur_860026338 = i_supprChamp(g_iartout4,"T4tax1")
	###########################################################################"

	#trace (" mise au format de certains champs pour SSCC")

	#DATE
	res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::ddebut )
	erreur_860026338=i_set_art_field(g_iartout4, $Tsscc_OSA::DATE,res_860026338)

	#IDUS_INF
	SI (!i_valid_field_n(g_iartin,$Tcp4dcOSA::IDUS_INF))
	ALORS
		erreur_860026338=i_set_art_field(g_iartout4, $Tsscc_OSA::IDUS_INF,i_get_art_field( g_iartin, $Tcp4dcOSA::IDUS_INF ))
	FINSI

	#trace(" Ajout de champs manquants")

	# ILAS
	SI (!i_valid_field_n(g_iartin,$Tcp4dcOSA::ILAS))
	ALORS
		erreur_860026338=i_ajoutChampNum(g_iartout4,$Tsscc_OSA::T3ilas,$Tsscc_OSA::ILAS,0x06)
		erreur_860026338=i_memset_field(g_iartout4, "ILAS",0000000000000)
	FINSI

	# Champ VCP1 et VCDR2 FO2385
	erreur_860026338=i_ajoutChampNum(g_iartout4,$Tsscc_OSA::T4vcp1,$Tsscc_OSA::VCP1,0x08)
	erreur_860026338=i_ajoutChampNum(g_iartout4,$Tsscc_OSA::T4vcdr2,$Tsscc_OSA::VCDR2,0x08)

	SI ( (TYPCTR_860026338 == 15) && ((b_SCOM_AFT_860026338==1) || (b_SCOM_AAP_860026338==1)) )
	ALORS
		erreur_860026338=i_set_art_field(g_iartout4,$Tsscc_OSA::VCP1, 0)
		erreur_860026338=i_set_art_field(g_iartout4,$Tsscc_OSA::VCDR2, 0)
	SINON
		erreur_860026338=i_set_art_field(g_iartout4,$Tsscc_OSA::VCP1, VCP1_860026338)
		erreur_860026338=i_set_art_field(g_iartout4,$Tsscc_OSA::VCDR2, VCDR2_860026338)
	FINSI
FINSI


#---------------------------------------------------------------------------
# SSCCS
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC( instSSCCS_860026338)  )
ALORS

	############################################################################
	#trace("Duplication vers SSCCS")
	SI ( i_dup_art(g_iartin,C_Tssccs_860026338, g_iartout8) )
	ALORS
		#trace("ERREUR de duplication vers SSCCS")
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_Tssccs_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI

	############################################################################
	# Suppression des champs de l'ajout CE inutiles pour SSCCS
	erreur_860026338 = i_supprChamp(g_iartout8,"T4tax1")
	###########################################################################"
	#trace (" mise au format de certains champs pour SSCCS")

	#DATE
	res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::ddebut )
	erreur_860026338=i_set_art_field(g_iartout8, $Tssccs_OSA::DATE,res_860026338)

	#IDUS_INF
	SI (!i_valid_field_n(g_iartin,$Tcp4dcOSA::IDUS_INF))
	ALORS
		erreur_860026338=i_set_art_field(g_iartout8, $Tssccs_OSA::IDUS_INF,i_get_art_field( g_iartin, $Tcp4dcOSA::IDUS_INF ))
	FINSI

	#trace(" Ajout de champs manquants")

	# ILAS
	SI (!i_valid_field_n(g_iartin,$Tcp4dcOSA::ILAS))
	ALORS
		erreur_860026338=i_ajoutChampNum(g_iartout8,$Tssccs_OSA::T3ilas,$Tssccs_OSA::ILAS,0x06)
		erreur_860026338=i_memset_field(g_iartout8, "ILAS",0000000000000)
	FINSI

	# Champ VCP1 et VCDR2 FO2385
	erreur_860026338=i_ajoutChampNum(g_iartout8,$Tssccs_OSA::T4vcp1,$Tssccs_OSA::VCP1,0x08)
	erreur_860026338=i_ajoutChampNum(g_iartout8,$Tssccs_OSA::T4vcdr2,$Tssccs_OSA::VCDR2,0x08)
	SI ( (TYPCTR_860026338 == 15) && ((b_SCOM_AFT_860026338==1) || (b_SCOM_AAP_860026338==1)) )
	ALORS
		erreur_860026338=i_set_art_field(g_iartout8,$Tssccs_OSA::VCP1, 0)
		erreur_860026338=i_set_art_field(g_iartout8,$Tssccs_OSA::VCDR2, 0)
	SINON
		erreur_860026338=i_set_art_field(g_iartout8,$Tssccs_OSA::VCP1, VCP1_860026338)
		erreur_860026338=i_set_art_field(g_iartout8,$Tssccs_OSA::VCDR2, VCDR2_860026338)
	FINSI
FINSI


#---------------------------------------------------------------------------
#G4R4 lot2  ENTROPI remplace SAFIRE
#---------------------------------------------------------------------------

SI (!i_ChercherCouranteECC(instENTRCA_860026338))
ALORS
	#trace("Stockage vers ENTROPI")

	# Duplication article en entree
	SI (i_dup_art_dest( g_iartin, g_iartout5,C_Tentr28_860026338 ))
	ALORS
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_Tentr28_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI
	#T1
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::T1, 28 )

	#T2
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::T2, 2 )

	#APSV
	res_860026338 = i_get_art_field(g_iartin, $Tcp4dcOSA::APSV)
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::APSV,res_860026338 )

	# STY
	#trace("Appel de i_transformer_bits")
	SI (i_transformer_bits(g_iartin, $Tcp4dcOSA::STY,"FV",pt_buffer_860026338)!=0)
	ALORS
		#trace("Retour en erreur de i_transformer_bits")
		SAUT DISTRI_ERR
	FINSI
	erreur_860026338=i_set_art_str(g_iartout5, $Tentr28::STY,pt_buffer_860026338)

	# SCT
	#trace("Appel de i_transformer_bits")
	SI (i_transformer_bits(g_iartin, $Tcp4dcOSA::SCT,"FV",pt_buffer_860026338)!=0)
	ALORS
		#trace("Retour en erreur de i_transformer_bits")
		SAUT DISTRI_ERR
	FINSI
	erreur_860026338=i_set_art_str(g_iartout5, $Tentr28::SCT,pt_buffer_860026338)

	# DATE
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::ddebut) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::DATE)
		erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::DATE,res_860026338  )
	FINSI

	#INFDEDE
	#trace("Appel de i_transformer_bits")
	SI (i_transformer_bits(g_iartin, $Tcp4dcOSA::DEDE_INF,"FV",pt_buffer_860026338)!=0)
	ALORS
		#trace("Retour en erreur de i_transformer_bits")
		SAUT DISTRI_ERR
	FINSI
	erreur_860026338=i_set_art_str(g_iartout5, $Tentr28::INFDEDE,pt_buffer_860026338)

	#NUM_DEDE
	erreur_860026338= i_get_art_str( g_iartin, $Tcp4dcOSA::DEDE_NUM,pt_buffer_860026338)
	erreur_860026338 = i_set_art_str( g_iartout5, $Tentr28::NUMDEDE,pt_buffer_860026338 )

	# INF_IDUSA (valeur decimale des bits  A et B de IDUS_INF)
	#trace( "initialisation de INF_IDUS )
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::IDUS_INF) )
	ALORS
		res_860026338 = i_get_art_field(g_iartin, $Tcp4dcOSA::IDUS_INF)
		bitA_860026338 = i_get_bit_val(res_860026338,8)
		bitB_860026338 = i_get_bit_val(res_860026338,7)
		res_860026338 = (bitA_860026338 * 2) + bitB_860026338
		erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::INFDUSA, res_860026338 )
	FINSI

	# NUM_IDUS ()
	SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::T3idus))
	ALORS
		erreur_860026338= i_get_art_str( g_iartin, $Tcp4dcOSA::IDUS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str( g_iartout5, $Tentr28::NUMIDUS,pt_buffer_860026338 )
	FINSI

	# DATE2
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::T3rdip) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::DATE2)
		erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::DATE2,res_860026338  )
	FINSI


	#INFIPAS

	#trace("Appel de i_transformer_bits")
	SI (i_transformer_bits(g_iartin, $Tcp4dcOSA::IPAS_INF,"FV",pt_buffer_860026338)!=0)
	ALORS
		#trace("Retour en erreur de i_transformer_bits")
		SAUT DISTRI_ERR
	FINSI
	erreur_860026338=i_set_art_str(g_iartout5, $Tentr28::INFIPAS,pt_buffer_860026338)


	#NUMILAS
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::ILAS_NUM) )
	ALORS
		erreur_860026338 = i_get_art_str( g_iartin, $Tcp4dcOSA::ILAS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout5, $Tentr28::NUMILAS, pt_buffer_860026338 )
	FINSI

	#INFDECO
	#Recuperation des bits A,B et C de DECO_INF.
	# La division par 0x20 hexa (<=> 1000000 en binaire) permet d eliminer les bits DEFGH du champ DECO_INF
	erreur_860026338 = i_get_art_field( g_iartin,$Tcp4dcOSA::DECO_INF)
	res_860026338 = erreur_860026338/0x20
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::INFDECO,res_860026338  )

	#USER
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::T3user) )
	ALORS
		erreur_860026338= i_get_art_str( g_iartin, $Tcp4dcOSA::USER ,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout5, $Tentr28::USER,pt_buffer_860026338)
	FINSI


	#TAP

#      	trace("Appel de i_transformer_bits")
	SI (i_transformer_bits(g_iartin, $Tcp4dcOSA::TAP_old,"FV",pt_buffer_860026338)!=0)
	ALORS
#    		trace("Retour en erreur de i_transformer_bits")
		SAUT DISTRI_ERR
	FINSI
	erreur_860026338=i_set_art_str(g_iartout5, $Tentr28::TAP,pt_buffer_860026338)

	#CCD
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::CCD) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::CCD)
		erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::CCD,res_860026338  )
	FINSI

	#NB_UT
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::NB_UT, VCP1_860026338 )

	#VCDR2
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::VCDR2, VCDR2_860026338 )

	#HLAHM1
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::HLAHM1) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::HLAHM1)
		erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::HLAHM1,res_860026338  )
	FINSI

	#FIN
	erreur_860026338 = i_set_art_field(g_iartout5, $Tentr28::FIN, 0x0A )

	#trace("Fin Formatage vers SAFIRE")
FINSI


#---------------------------------------------------------------------------
#  E-BILL  (Suivi Conso)
#---------------------------------------------------------------------------

SI (!i_ChercherCouranteECC(instEBILL_860026338))
ALORS
	#trace("Stockage vers Suivi conso")

	# Duplication article en format fixe
	SI (i_dup_art_dest(g_iartin,g_iartout6,C_Tebill_860026338))
	ALORS
		#trace("erreur duplication vers Tebill")
		code_errone_860026338 = 0xA0D1
		erreur_860026338 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026338,C_Tebill_860026338,C_Article_860026338)
		SAUT DISTRI_ERR
	FINSI


	#T1
	#erreur=i_memset_field_n(g_iartout6, $Tebill::T1, 0x1C)

	#DATE
	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::HLAHM1) )
	ALORS
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::HLAHM1)
		erreur_860026338 = i_set_art_field(g_iartout6, $TscTcp4dcOSA::DATE,res_860026338  )
	SINON
		res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::DATE)
		erreur_860026338 = i_set_art_field(g_iartout6, $TscTcp4dcOSA::DATE,res_860026338  )
	FINSI

	#VCDR2	G3R6Cy
	SI ( (TYPCTR_860026338 == 15) && ((b_SCOM_AFT_860026338==1) || (b_SCOM_AAP_860026338==1)) )
	ALORS
		erreur_860026338 = i_set_art_field( g_iartout6, $TscTcp4dcOSA::TAX, 0 )
	SINON
		erreur_860026338 = i_set_art_field( g_iartout6, $TscTcp4dcOSA::TAX, VCDR2_860026338 )
	FINSI

	#IDUS_NUM
	SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::IDUS_NUM))
	ALORS
		res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::IDUS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout6,$TscTcp4dcOSA::IDUS_NUM,pt_buffer_860026338)
	FINSI

	# ILAS_INF (valeur decimale du bit  A de ILAS_INF)
	#trace( "initialisation de ILAS_INF )

	SI ( i_valid_field_n(g_iartin, $Tcp4dcOSA::ILAS_INF) )
	ALORS
		res_860026338 = i_get_art_field(g_iartin, $Tcp4dcOSA::ILAS_INF)
		bitA_860026338 = i_get_bit_val(res_860026338,8)
		erreur_860026338 = i_set_art_field(g_iartout6, $TscTcp4dcOSA::ILAS_INF,bitA_860026338 )
	FINSI


	#ILAS_NUM
	SI (i_valid_field_n(g_iartin,$Tcp4dcOSA::ILAS_NUM))
	ALORS
		res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::ILAS_NUM,pt_buffer_860026338)
		erreur_860026338 = i_set_art_str(g_iartout6,$TscTcp4dcOSA::ILAS_NUM,pt_buffer_860026338)
	FINSI

	#DEDE_INF
	res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::DEDE_INF)
	erreur_860026338 = i_set_art_field(g_iartout6, $TscTcp4dcOSA::DEDE_INF,res_860026338  )

	#DEDE_NUM
	res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::DEDE_NUM,pt_buffer_860026338)
	#trace2("Allofact DEDE_NUM=<%s>",pt_buffer,"")
	erreur_860026338 = i_set_art_str(g_iartout6,$TscTcp4dcOSA::DEDE_NUM,pt_buffer_860026338)


	#DECO_NUM
	res_860026338 = i_get_art_str(g_iartin,$Tcp4dcOSA::DECO_NUM,pt_buffer_860026338)
	#trace2("Allofact DECO_NUM=<%s>",pt_buffer,"")
	i_replace_str(pt_buffer_860026338,"B","*",pt_buffer_860026338)
	erreur_860026338 = i_set_art_str(g_iartout6,$TscTcp4dcOSA::DECO_NUM,pt_buffer_860026338)

	#T1_TYPE
	erreur_860026338 = i_set_art_str(g_iartout6,$TscTcp4dcOSA::T1_TYPE,"28")

	#CDEUR
	res_860026338= i_get_art_field( g_iartin, $Tcp4dcOSA::CDEUR_old)
	erreur_860026338 = i_set_art_field(g_iartout6, $TscTcp4dcOSA::CDEUR,res_860026338  )

	#CCD
	res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::CCD)
	erreur_860026338 = i_EntierToString ( res_860026338, pt_buffer_860026338, 3)
	erreur_860026338 = i_set_art_str(g_iartout6, $TscTcp4dcOSA::CCD, pt_buffer_860026338)

	#CCLA
	SI (bCODCIRDR_860026338 == 1)
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout6, $TscTcp4dcOSA::CCLA, pt_CODCIRDA_860026338)
	FINSI

	#CCNDE
	SI (bCODCIR_860026338 == 1)
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout6, $TscTcp4dcOSA::CCNDE, pt_CODCIRA_860026338)
	FINSI

FINSI

#---------------------------------------------------------------------------
# Complements Symphonie
#---------------------------------------------------------------------------
SI (instSYMPH_860026338)
ALORS
	#trace("ajout des complements Symphonie")
	# Champ CODCIRDR
	SI (CODCIRDR_860026338 != 0xFF)
	ALORS
		erreur_860026338=i_ajoutChampNum( g_iartout, $TsymTcp4dcOSA::T4codcirdr, $TsymTcp4dcOSA::CODCIRDR, 0 )
		erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::CODCIRDR,pt_CODCIRDA_860026338)
	FINSI

	# Champ CODCIR
	SI (CODCIR_860026338 != 0xFF)
	ALORS
		erreur_860026338=i_ajoutChampNum( g_iartout, $TsymTcp4dcOSA::T4codcir, $TsymTcp4dcOSA::CODCIR, 0 )
		erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::CODCIR,pt_CODCIRA_860026338)
	FINSI
	# Champ SGTQS
	erreur_860026338 = i_ajoutChampNum(g_iartout,$TsymTcp4dcOSA::T4sgtqs,$TsymTcp4dcOSA::SGTQS,0)
	i_strcpy(pt_SGTQS_860026338,i_LireEECSGTQS( g_ieec ))
	#trace2("SGTQS=<%s>",pt_SGTQS,"")
	erreur_860026338 = i_set_art_str(g_iartout, $TsymTcp4dcOSA::SGTQS, pt_SGTQS_860026338)


	# Champ ECC_FACT
	erreur_860026338=i_ajoutChampNum( g_iartout, $TsymTcp4dcOSA::T4eccfact, $TsymTcp4dcOSA::ECC_FACT, 0 )
	#trace2("ECC de facturation: %s",pt_NomEccFact,"")
	erreur_860026338 = i_set_art_str(g_iartout, $TsymTcp4dcOSA::ECC_FACT,pt_NomEccFact_860026338 )

	#G3R8 SCOM	Code produit
	erreur_860026338=i_ajoutChampNum( g_iartout, $TsymTcp4dcOSA::T4scom, $TsymTcp4dcOSA::SCOM, 0 )
	SI ( b_SCOM_CFT_860026338 )
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SCOM,C_str_CFT_860026338)
	SINON
		SI ( b_SCOM_AFT_860026338 )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SCOM,C_str_AFT_860026338)
		SINON
			#FO2386 SI ( b_SCOM_ATP )
			SI ( b_SCOM_CAT_860026338 )
			ALORS
				#FO2386 erreur = i_set_art_str(g_iartout,$Tallegro::SCOM,C_str_ATP)
				erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SCOM,C_str_CAT_860026338)
			SINON
				SI ( b_SCOM_AAP_860026338 )
				ALORS
					erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SCOM,C_str_AAP_860026338)
				FINSI
			FINSI
		FINSI
	FINSI

	#G3R8 SERV	Code Service
	erreur_860026338=i_ajoutChampNum( g_iartout, $TsymTcp4dcOSA::T4serv, $TsymTcp4dcOSA::SERV, 0 )
	SI ( CODCIRDR_860026338 == 0xF0020 )
	ALORS
		erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SERV,C_str_005_860026338)
	SINON
		#FO2380 SI ( CODCIRDR == 0 )
		SI ( CODCIRDR_860026338 == 0xF0000 )
		ALORS
			erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SERV,C_str_006_860026338)
		SINON
			res_860026338 = i_get_art_field( g_iartin, $Tcp4dcOSA::CDEUR_old )
			SI ( res_860026338 == 0x0A )
			ALORS
				erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SERV,C_str_001_860026338)
			SINON
				SI ( res_860026338 == 0x0F )
				ALORS
					erreur_860026338 = i_set_art_str(g_iartout,$TsymTcp4dcOSA::SERV,C_str_004_860026338)
				FINSI
			FINSI
		FINSI
	FINSI
FINSI


############################################################################
# Envoi vers IECC
############################################################################

SI (instSYMPH_860026338)
ALORS
	res_860026338 = i_stocke_art_iecc(g_iartout, instSYMPH_860026338)
	trace("Emission vers SYMPHONIE")
FINSI

#G3R6Cy ALLEGRO remplace VATEL
SI (!i_ChercherCouranteECC(instALLEGRO_860026338))
ALORS
	res_860026338 = i_stocke_art_iecc( g_iartout2, instALLEGRO_860026338 )
	trace( "Emission vers ALLEGRO" )
FINSI

SI (!i_ChercherCouranteECC(instSSCC_860026338))
ALORS
	res_860026338 = i_stocke_art_iecc(g_iartout4, instSSCC_860026338)
	trace("Emission vers SSCC")
FINSI
SI (!i_ChercherCouranteECC(instSSCCS_860026338))
ALORS
	res_860026338 = i_stocke_art_iecc(g_iartout8, instSSCCS_860026338)
	trace("Emission vers SSCCS")
FINSI
#G4R4 lot2
SI (!i_ChercherCouranteECC(instENTRCA_860026338))
ALORS
	res_860026338 = i_stocke_art_iecc(g_iartout5, instENTRCA_860026338)
	trace("Emission vers ENTROPI")
FINSI

SI (!i_ChercherCouranteECC(instEBILL_860026338))
ALORS
	res_860026338 = i_stocke_art_iecc(g_iartout6, instEBILL_860026338)
	trace("Emission vers Suivi Conso")
FINSI

trace( "____ : Fin du Pcode de distribution" )


RETOUR TRAIT_OK


############################################################################
# Stockage en Errone
############################################################################
POINT DISTRI_ERR


trace( "Tcp4dcOSA: Anomalie de distribution ==> ERRONE" )
erreur_860026338 = i_make_art_rej(g_iartin, g_iartout, code_errone_860026338)

res_860026338 = i_stocke_art( g_iartout, 0, PT_ERRONE, 0 )

RETOUR TRAIT_OK

# fin de fichier
