DEFINITION C_ARTICLE_860026342 "TjtvORD"
DEFINITION C_NUMTAB_860026342 1
DEFINITION C_ZONEMETRO_860026342 7
DEFINITION C_NUMTABSEL_860026342 4
DEFINITION C_Ref_860026342 "JEUTV"
DEFINITION C_InstALLEGRO_860026342 "ALLEGRO_PDZ"
DEFINITION C_InstMMDM_860026342 "MMDMJOD"
DEFINITION C_InstTVING_860026342 "TVING"
DEFINITION C_TPRESDIV_Contexte_860026342 "C2"
DEFINITION C_JTV_Type_860026342 "ORD"
DEFINITION C_TallegroPresDiv_860026342 "TallegroPresDiv"
DEFINITION C_NUMTAB2_860026342 2
DEFINITION C_TmmdmTjtvORD_860026342 "TmmdmTjtvORD"
DEFINITION TD_NEWTV_860026342 8
DEFINITION RD_TABLE9_860026342 0x01000000
REGISTRE ENTIER ICAR_METRO_860026342
REGISTRE ENTIER ICAR_UTC_860026342
REGISTRE ENTIER NUMZONE_860026342
REGISTRE ENTIER code_rejet_860026342
REGISTRE ENTIER EFFICACE_860026342
REGISTRE ENTIER ICAR_LOCAL_860026342
REGISTRE ENTIER duree_860026342
REGISTRE ENTIER date_locale_fin_860026342
REGISTRE ENTIER date_Metro_fin_860026342
REGISTRE ENTIER b_Facturable_860026342
REGISTRE ENTIER erreur_860026342
REGISTRE ENTIER res_860026342
REGISTRE ENTIER instALLEGRO_860026342
REGISTRE ENTIER instMMDM_860026342
REGISTRE ENTIER instTypAccTving_860026342
REGISTRE ENTIER b_REDIST_860026342
REGISTRE ENTIER ValEntier_860026342
REGISTRE ENTIER taille_860026342
REGISTRE ENTIER code_errone_860026342
REGISTRE ENTIER cpt_redist_860026342
REGISTRE ENTIER instECCv_860026342
REGISTRE POINTEUR pt_IDUS_NUM_860026342
REGISTRE POINTEUR pt_GEOGRAPHIC_ZONE_860026342
REGISTRE POINTEUR pt_temp_860026342
REGISTRE POINTEUR pt_ZONE_GEO_860026342
REGISTRE POINTEUR pt_SGTQS_860026342
REGISTRE POINTEUR pt_PAYMENT_METHOD_860026342
REGISTRE POINTEUR pt_SERVICE_TYPE_860026342
REGISTRE POINTEUR pt_ECCv_860026342
REGISTRE POINTEUR pt_TypeAcces_860026342
REGISTRE POINTEUR pt_TPRESDIV_Cle_860026342
REGISTRE POINTEUR pt_TPRESDIV_DebCre_860026342
REGISTRE POINTEUR pt_TPRESDIV_CodPrest_860026342
REGISTRE POINTEUR pt_LIBELREDIST_860026342
REGISTRE POINTEUR pt_PRICE_HT_860026342
REGISTRE POINTEUR pt_ValEntier_860026342
REGISTRE POINTEUR pt_ValDec_860026342
REGISTRE POINTEUR pt_MONTANT_HT_860026342
REGISTRE POINTEUR pt_ICAR_LOCAL_860026342
REGISTRE POINTEUR pt_TIME_860026342
REGISTRE POINTEUR pt_AID_860026342
REGISTRE POINTEUR pt_temp2_860026342
############################################################################
#	Pcode de Distribution TjtvORD.src
#
# En entree :
#	Article : TjtvORD 	DC ISSU DE LA PFS G-CLUSTER
#
# En sortie :
#		ALLEGRO_PDZ	- g_iartout2	- TallegroPresDiv
#		MMDM		- g_iartout4	- TmmdmTjtvORD
#				- g_iartout5 	utilisation interne
#
# Historique
#
#	25/10/2011 - THE DRE - Creation
#	04/09/2012 - DRE - G3R24C8 QC633 correction Convertion PRICE_HT en MONTANT_HT
#	18/09/2013 - DRE - G4R4
#
############################################################################
# Constantes


# Variables entieres


# Variables pointeurs
#G4R4


############################
# Affectation Pointeurs    #
############################
pt_IDUS_NUM_860026342			= "pt_IDUS_NUM11111111111111111111111111111111"
pt_GEOGRAPHIC_ZONE_860026342	= "pt_GEOGRAPHIC_ZONE888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
pt_temp_860026342				= "pt_temp111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
pt_ZONE_GEO_860026342			= "pt_ZONE_GEO9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"
pt_SGTQS_860026342			= "pt_SGTQS7777777777777777777777"
pt_PAYMENT_METHOD_860026342 	= "pt_PAYMENT_METHOD123456789"
pt_SERVICE_TYPE_860026342		= "pt_SERVICE_TYPE12345678901"
pt_ECCv_860026342 			= "pt_ECCv222222222222222222222222222222222222"
pt_TypeAcces_860026342 		= "pt_TypeAcces1111111111111222222222222222222"
pt_TPRESDIV_Cle_860026342 	= "pt_TPRESDIV_Cle333333333333333333333333333333333333333333333333333333333"
pt_TPRESDIV_DebCre_860026342 	= "pt_TPRESDIV_DebCre1111111111112222222222333"
pt_TPRESDIV_CodPrest_860026342 	= "pt_TPRESDIV_CodPrest4444444444444444444444444444444444444444444444444444"
pt_LIBELREDIST_860026342		= "pt_LIBELREDIST88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
pt_PRICE_HT_860026342 		= "pt_PRICE_HT5555555555555555555"
pt_ValEntier_860026342		= "pt_ValEntier2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
pt_ValDec_860026342			= "pt_ValDec555522222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
pt_MONTANT_HT_860026342		= "pt_MONTANT_HT66666666666666666"
pt_ICAR_LOCAL_860026342		= "pt_ICAR_LOCAL7777777777777777777777777"
pt_TIME_860026342 			= "pt_TIME22222222222222222222222"
pt_AID_860026342 				= "pt_AID8888888888888888888888888888888888888"
#G4R4
pt_temp2_860026342			= "pt_temp24444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444"


############################
# Initialisation variables entieres
############################
NUMZONE_860026342		= 0
EFFICACE_860026342	= 2
duree_860026342		= 0
date_locale_fin_860026342	= 0
date_Metro_fin_860026342	= 0
b_Facturable_860026342	= 0
instALLEGRO_860026342	= 0
instMMDM_860026342 	= 0
instTypAccTving_860026342	= 0
b_REDIST_860026342	= 0
ValEntier_860026342	= 0
cpt_redist_860026342 	= -1
instECCv_860026342 	= 0


############################
# Initialisation Pointeurs #
############################
i_strcpy(pt_IDUS_NUM_860026342,"")
i_strcpy(pt_temp_860026342,"")
i_strcpy(pt_GEOGRAPHIC_ZONE_860026342,"")
i_strcpy(pt_ZONE_GEO_860026342,"")
i_strcpy(pt_SGTQS_860026342,"")
i_strcpy(pt_PAYMENT_METHOD_860026342,"")
i_strcpy(pt_SERVICE_TYPE_860026342,"")
i_strcpy(pt_ECCv_860026342,"")
i_strcpy(pt_TypeAcces_860026342,"")
i_strcpy(pt_TPRESDIV_Cle_860026342,"")
i_strcpy(pt_TPRESDIV_DebCre_860026342,"")
i_strcpy(pt_TPRESDIV_CodPrest_860026342,"")
i_strcpy(pt_LIBELREDIST_860026342,"")
i_strcpy(pt_PRICE_HT_860026342,"")
i_strcpy(pt_ValEntier_860026342,"")
i_strcpy(pt_ValDec_860026342,"")
i_strcpy(pt_MONTANT_HT_860026342,"")
i_strcpy(pt_ICAR_LOCAL_860026342,"")
i_strcpy(pt_TIME_860026342,"")
i_strcpy(pt_AID_860026342,"")
#G4R4
i_strcpy(pt_temp2_860026342,"")


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

############################
# Debut Distribution       #
############################

# Duplication article entree
erreur_860026342 = i_dup_art_id(g_iartin, g_iartout)
erreur_860026342 = i_cree_art("Conversion",g_iartout10)

############################
# Identification de la provenance de l'article
############################

# trait_ok : nb de passage en redistribution
cpt_redist_860026342 = i_LireRedistCpt()


############################
#  Normalisation du champ  IDUS_NUM  (T4phone_number)
############################
SI ( i_valid_field_n(g_iartin,$TjtvORD::IDUS_NUM) )
ALORS
	erreur_860026342 = i_get_art_str(g_iartout,$TjtvORD::IDUS_NUM,pt_IDUS_NUM_860026342)

	SI i_strplcmp(pt_IDUS_NUM_860026342,"00",0,2)==0 || i_strplcmp(pt_IDUS_NUM_860026342,"+",0,1)==0
	ALORS
		#InterNational
		SI i_strplcmp(pt_IDUS_NUM_860026342,"00",0,2)==0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026342,2,-1,pt_IDUS_NUM_860026342)
		FINSI

		SI i_strplcmp(pt_IDUS_NUM_860026342,"+",0,1)==0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026342,1,-1,pt_IDUS_NUM_860026342)
		FINSI

		SI i_strplcmp(pt_IDUS_NUM_860026342,"33",0,2)==0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026342,2,-1,pt_IDUS_NUM_860026342)
		FINSI

		SI ( i_strplcmp(pt_IDUS_NUM_860026342,"262",0,3) == 0 || i_strplcmp(pt_IDUS_NUM_860026342,"590",0,3) == 0
		|| i_strplcmp(pt_IDUS_NUM_860026342,"594",0,3) == 0 || i_strplcmp(pt_IDUS_NUM_860026342,"596",0,3) == 0 )
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026342,3,-1,pt_IDUS_NUM_860026342)
		FINSI
	SINON
		#National
		SI i_strplcmp(pt_IDUS_NUM_860026342,"0",0,1)==0
		ALORS
			i_get_sub_str (pt_IDUS_NUM_860026342,1,-1,pt_IDUS_NUM_860026342)
		FINSI
	FINSI
FINSI

#DATES
SI ( i_valid_field_n(g_iartin,$TjtvORD::DATE) )
ALORS
	ICAR_METRO_860026342 = i_get_art_field(g_iartout,$TjtvORD::DATE)
	ICAR_UTC_860026342 = i_DHgetCe2gTime(C_NUMTAB_860026342,C_ZONEMETRO_860026342,ICAR_METRO_860026342)
SINON
	ICAR_METRO_860026342 = i_get_art_field(g_iartout,$TjtvORD::ddebut)
	ICAR_UTC_860026342 = i_DHgetCe2gTime(C_NUMTAB_860026342,C_ZONEMETRO_860026342,ICAR_METRO_860026342)
FINSI

SI ( i_valid_field_n (g_iartin,$TjtvORD::GEOGRAPHIC_ZONE) )
ALORS
	erreur_860026342 = i_get_art_str(g_iartout,$TjtvORD::GEOGRAPHIC_ZONE,pt_GEOGRAPHIC_ZONE_860026342)
	erreur_860026342 = i_recupererValeur(pt_GEOGRAPHIC_ZONE_860026342, pt_temp_860026342, i_strlen(pt_GEOGRAPHIC_ZONE_860026342),'/')
	i_strcpy(pt_ZONE_GEO_860026342,UCASE_860026233(pt_GEOGRAPHIC_ZONE_860026342))
	i_replace_str(pt_ZONE_GEO_860026342," ","_",pt_ZONE_GEO_860026342)

	erreur_860026342 = i_set_art_str(g_iartout10, $Conversion::ZONE_GEO,pt_ZONE_GEO_860026342)

	NUMZONE_860026342 = i_DHgetZoneID(C_NUMTABSEL_860026342, g_iartout10)
	SI NUMZONE_860026342 == 0
	ALORS
		#trace("##### Zone Grographique inconnue ########")
		code_rejet_860026342 = 0xA080
		code_rejet_860026342 = code_rejet_860026342 + EFFICACE_860026342
		erreur_860026342 = i_format_str2( pt_temp_860026342 , " La zone geographique <%s> est inconnue dans la Table de Selection des Decalages Horaires <%s>",pt_ZONE_GEO_860026342,"zones.4")
		erreur_860026342 = i_PlvMessEmettre( 8612, 2, g_iartin,"", 3,code_rejet_860026342, C_ARTICLE_860026342, pt_temp_860026342)
		SAUT AVANT_REDIST
	FINSI
#trace1("################## NUMZONE = >%d< ####################",NUMZONE)

	ICAR_LOCAL_860026342 = i_DHgetLocalTime(C_NUMTAB2_860026342,NUMZONE_860026342, ICAR_METRO_860026342)
SINON
	ICAR_LOCAL_860026342=ICAR_METRO_860026342
FINSI
date_locale_fin_860026342 = ICAR_LOCAL_860026342 + duree_860026342
date_Metro_fin_860026342 = ICAR_METRO_860026342 + duree_860026342

# SGTQS
i_strcpy(pt_SGTQS_860026342, i_LireEECSGTQS(g_ieec))

#  Enregistrement du champ Nom_EEC dans l'ENVELOPPE Optionelle de redistribution
erreur_860026342 = i_add_opt( "EnomEEC" )
erreur_860026342 = i_set_attr_str_n($EnomEEC::Nom_EEC, pt_SGTQS_860026342)
erreur_860026342 = i_set_attr_val_n( $EnomEEC::date_Locale_fin, date_locale_fin_860026342)
erreur_860026342 = i_set_attr_val_n( $EnomEEC::date_Metro_fin, date_Metro_fin_860026342)

SI ( ( i_valid_field_n(g_iartin,$TjtvORD::PAYMENT_METHOD) ) && ( i_valid_field_n(g_iartin,$TjtvORD::SERVICE_TYPE) ) )
ALORS
	erreur_860026342 = i_get_art_str(g_iartout,$TjtvORD::PAYMENT_METHOD,pt_PAYMENT_METHOD_860026342)
	SI i_strlen(pt_PAYMENT_METHOD_860026342) > 1 
	ALORS
		i_strcpy(pt_PAYMENT_METHOD_860026342,REMPLACE_CHAINE_860026233(pt_PAYMENT_METHOD_860026342," ", ""))
	FINSI

	erreur_860026342 = i_get_art_str(g_iartout,$TjtvORD::SERVICE_TYPE,pt_SERVICE_TYPE_860026342)
	SI i_strlen(pt_SERVICE_TYPE_860026342) > 1 
	ALORS
		i_strcpy(pt_SERVICE_TYPE_860026342,REMPLACE_CHAINE_860026233(pt_SERVICE_TYPE_860026342," ", ""))
	FINSI

#G4R4 #############################
#	SI ( (i_strcmp(pt_PAYMENT_METHOD, "2") == 0 ) && ( i_strcmp(pt_SERVICE_TYPE, "2") != 0 ) )
#	ALORS
#		b_Facturable = 1
	erreur_860026342 = i_format_str2( pt_temp_860026342, "%s_%s", C_TPRESDIV_Contexte_860026342, C_JTV_Type_860026342 )
	erreur_860026342 = i_format_str2( pt_temp2_860026342, "%s_%s", pt_temp_860026342, pt_PAYMENT_METHOD_860026342 )
	erreur_860026342 = i_format_str2( pt_TPRESDIV_Cle_860026342, "%s_%s", pt_temp2_860026342, pt_SERVICE_TYPE_860026342 )
	
	SI i_strcmp (i_get_tab_field( "TPRESDIV", ICAR_UTC_860026342, pt_TPRESDIV_Cle_860026342 ),g_inull ) != 0
	ALORS
		b_Facturable_860026342 = 1
	FINSI

FINSI


############################
#  Soumission de la requete de consultation d'une table de distribution
############################

SI ( i_strcmp(pt_IDUS_NUM_860026342, "") != 0 )
ALORS
	taille_860026342 = i_conv_ascii_dcb(pt_IDUS_NUM_860026342, pt_temp_860026342)

	SI ( i_EnvoiReqConsTabDist(TD_NEWTV_860026342, ICAR_UTC_860026342, pt_temp_860026342, taille_860026342, 0, 1) != 0 )
	ALORS
		code_rejet_860026342 = 0xA0C0
		code_rejet_860026342 = code_rejet_860026342 + EFFICACE_860026342
		erreur_860026342 = i_PlvMessEmettre(8607,2,g_iartout,"",3,code_rejet_860026342,C_Ref_860026342,C_ARTICLE_860026342)
		SAUT AVANT_REDIST
	FINSI
SINON
	SAUT AVANT_REDIST
FINSI

##########################################################################
# Recherche des instances des ECC
##########################################################################

#ALLEGRO_PDZ
instALLEGRO_860026342 = i_LireInstanceECC(C_InstALLEGRO_860026342)
SI (!instALLEGRO_860026342)
ALORS
	#trace("Pas d'instance pour ALLEGRO_PDZ !")
	erreur_860026342 = i_PlvMessEmettre(8501,2,g_iartin,"",3,C_InstALLEGRO_860026342,C_ARTICLE_860026342,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("__FILE__:__LINE__ : instALLEGRO=<%d>",instALLEGRO)

#MMDM
instMMDM_860026342 = i_LireInstanceECC(C_InstMMDM_860026342)
SI (!instMMDM_860026342)
ALORS
	#trace("Pas d'instance pour MMDM !")
	erreur_860026342 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"MMDM",C_ARTICLE_860026342,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("__FILE__:__LINE__ : instMMDM=<%d>",instMMDM)

############################
# Recherche instance ECC_Interne
############################
#TypAccTving
instTypAccTving_860026342 = i_LireInstanceECC(C_InstTVING_860026342)

SI (!instTypAccTving_860026342)
ALORS
	#trace("Pas d'instance pour TypAccTving !")
	erreur_860026342 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"TypAccTving",C_ARTICLE_860026342,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("__FILE__:__LINE__ : instTVING=<%d>",instTypAccTving)

############################
# Lecture Resultat requete
############################
SI ( i_strcmp(pt_IDUS_NUM_860026342, "") != 0 )
ALORS
	erreur_860026342 = i_LireReqConsTabDist()

#Recherche du type d'acces
	erreur_860026342 = i_LireChaineECCv( instTypAccTving_860026342, pt_ECCv_860026342)
	SI erreur_860026342 == 0
	ALORS
		i_get_sub_str(pt_ECCv_860026342, 0, 0, pt_TypeAcces_860026342)
	FINSI

#Recherche de l'AID
	res_860026342 = 0
	instECCv_860026342 = i_LireEntierECCv( instTypAccTving_860026342 )
	res_860026342 = i_LireInfoECC( instTypAccTving_860026342, instECCv_860026342 )

	SI ( res_860026342 != 0)
	ALORS
		erreur_860026342 = i_LireImsiInfo( res_860026342, 0, 8, pt_AID_860026342)
	FINSI

	SI ( b_Facturable_860026342 && i_strcmp(pt_TypeAcces_860026342,"") != 0 )
	ALORS
		# Rechercher les informations, liees a la prestation,
		# dans la table externe des prestations (TPRESDIV)
		# a partir de la cle constituee : du contexte, du type de DC et du type d'acces
		# ex: cle = C1ORDF  resultat = 0_prestORDF
		erreur_860026342 = i_format_str2( pt_temp_860026342, "%s_%s", C_TPRESDIV_Contexte_860026342, C_JTV_Type_860026342 )
		erreur_860026342 = i_format_str2( pt_TPRESDIV_Cle_860026342, "%s_%s", pt_temp_860026342, pt_TypeAcces_860026342 )

		i_strcpy(pt_temp_860026342, i_get_tab_field( "TPRESDIV", ICAR_UTC_860026342, pt_TPRESDIV_Cle_860026342 ))

		erreur_860026342 = i_recupererValeur(pt_temp_860026342, pt_TPRESDIV_DebCre_860026342, i_strlen(pt_temp_860026342),'_')

		i_strcpy(pt_TPRESDIV_CodPrest_860026342,pt_temp_860026342)
	FINSI
FINSI

############################
# Controle pour envoi en redistribution
############################

SI ( b_Facturable_860026342 && i_strcmp(pt_TPRESDIV_CodPrest_860026342,"") == 0 )
ALORS
	SI i_strcmp(pt_TypeAcces_860026342,"") == 0
	ALORS
		b_REDIST_860026342 = 1
		i_strcpy(pt_LIBELREDIST_860026342, "Echec:  Type d'Acces absent du referentiel TVING, IDUS_NUM = <")
		erreur_860026342 = i_format_str2( pt_temp_860026342, "%s%s", pt_LIBELREDIST_860026342, pt_IDUS_NUM_860026342 )
		i_strcpy(pt_LIBELREDIST_860026342,pt_temp_860026342)
	SINON
		b_REDIST_860026342 = 2
		i_strcpy(pt_LIBELREDIST_860026342, "Echec: Code Prestation absent de la table externe TPRESDIV, manque cle <")
		erreur_860026342 = i_format_str2( pt_temp_860026342, "%s%s", pt_LIBELREDIST_860026342, pt_TPRESDIV_Cle_860026342 )
		i_strcpy(pt_LIBELREDIST_860026342,pt_temp_860026342)
	FINSI

	SAUT AVANT_REDIST
FINSI

############################
# Convertion PRICE_HT en MONTANT_HT
############################

SI b_Facturable_860026342 && i_strcmp(pt_TPRESDIV_CodPrest_860026342,"") != 0
ALORS
	erreur_860026342 = i_get_art_str(g_iartout,$TjtvORD::PRICE_HT,pt_temp_860026342)
	i_strcpy(pt_PRICE_HT_860026342,pt_temp_860026342)
	
	# on attend "." point ou "," virgule dans le montant
	i_replace_str(pt_temp_860026342,",",".",pt_temp_860026342)
	erreur_860026342 = i_recupererValeur(pt_temp_860026342, pt_ValEntier_860026342, i_strlen(pt_temp_860026342),'.')
	
	# pt_PRICE_HT = nombre, pt_ValEntier = valeur entiere du nombre et pt_temp = valeur decimale du nombre)
	#	ex: pt_PRICE_HT = "123"
	#			pt_ValEntier = "123" et pt_temp=""
	#	ex: pt_PRICE_HT = "123,42536"
	#			pt_ValEntier = "123" et pt_temp="42536"
	
	#Test si le nombre comporte des decimales
	SI i_strlen(pt_temp_860026342) > 0
	ALORS
		erreur_860026342 = i_format_str2( pt_ValDec_860026342, "%s%s", pt_temp_860026342,"00")
	
		i_get_sub_str(pt_ValDec_860026342, 2, 2 , pt_temp_860026342)
		#test si la 3ieme decimale est superieure a 4
		SI i_strcmp(pt_temp_860026342,"4") > 0
		ALORS
			#faire l'arrondi comptable
			i_get_sub_str(pt_ValDec_860026342, 0, 1 , pt_ValDec_860026342)
			#prendre les 2 premieres decimales ex pt_ValDec = "42"
			#transformation en entier en passant par le float
			erreur_860026342 = i_str_to_float (pt_ValDec_860026342)
			res_860026342 = i_float_to_entier(erreur_860026342)
			#ex res = 42
			res_860026342 = res_860026342 + 1
			#ex res = 42 + 1 = 43 (arrondi par exces)
			SI res_860026342 > 99
			ALORS
				#faire +1 a la partie entiere du nombre et mettre a zero la partie decimale
				erreur_860026342 = i_str_to_float (pt_ValEntier_860026342)
				ValEntier_860026342 = i_float_to_entier(erreur_860026342) + 1
				#ValEntier = 124
				erreur_860026342 = i_EntierToString ( ValEntier_860026342, pt_ValEntier_860026342, 10)
				#pt_ValEntier = "124"
				i_strcpy(pt_temp_860026342,"00")
			SINON
				erreur_860026342 = i_EntierToString ( res_860026342, pt_ValDec_860026342, 10)
				SI res_860026342 < 10
				ALORS
					erreur_860026342 = i_format_str2( pt_temp_860026342, "%s%s", "0",pt_ValDec_860026342)
				SINON
					i_strcpy(pt_temp_860026342,pt_ValDec_860026342)
				FINSI
			FINSI
		SINON
			i_get_sub_str(pt_ValDec_860026342, 0, 1 , pt_temp_860026342)
		FINSI
	
		erreur_860026342 = i_format_str2( pt_PRICE_HT_860026342, "%s%s", pt_ValEntier_860026342,pt_temp_860026342 )
		erreur_860026342 = i_format_str2( pt_MONTANT_HT_860026342, "%s%s", pt_PRICE_HT_860026342,"00")
	
		#concatenation de la partie entiere et de la partie decimale arrondie + jout de 2 zeros pour mettre en 10 000 ieme d'Euro
		# ex pt_MONTANT_HT = 1234300
	SINON
		erreur_860026342 = i_format_str2( pt_MONTANT_HT_860026342, "%s%s", pt_ValEntier_860026342,"0000")
		# ex pt_MONTANT_HT = 1230000
	FINSI
FINSI
#####################################################################
# CRITERES DE DISTRIBUTION
#####################################################################

# ALLEGRO_PDZ

SI ( b_Facturable_860026342 && i_strcmp(pt_TPRESDIV_CodPrest_860026342,"") != 0 )
ALORS
	erreur_860026342 = i_AjouterCouranteECC(instALLEGRO_860026342)
FINSI

POINT AVANT_REDIST

#MMDM
instMMDM_860026342 = i_LireInstanceECC(C_InstMMDM_860026342)
SI (!instMMDM_860026342)
ALORS
	#trace("Pas d'instance pour MMDM !")
	erreur_860026342 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"MMDM",C_ARTICLE_860026342,g_ieec)
	SAUT DISTRI_ERR
FINSI
#trace1("__FILE__:__LINE__ : instMMDM=<%d>",instMMDM)

SI cpt_redist_860026342 == 0
ALORS
	erreur_860026342 = i_AjouterCouranteECC(instMMDM_860026342)
FINSI

##################################################################################
# Validation de la liste des ECCs destinataires
##################################################################################

erreur_860026342=i_ValiderListeECC( 0, 0, 0, 0)

############################################################################
# Mises au format
############################################################################
#--------------------------------------------------------------------------
# ALLEGRO_PDZ
#--------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instALLEGRO_860026342) )
ALORS
	#trace("Stockage vers ALLEGRO_PDZ")

	SI ( i_dup_art( g_iartout, C_TallegroPresDiv_860026342, g_iartout2 ) )
	ALORS
		code_errone_860026342 = 0xA0D1
		erreur_860026342 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026342,C_TallegroPresDiv_860026342,C_ARTICLE_860026342)
		SAUT DISTRI_ERR
	FINSI

	#CODART
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::CODART,"E1")

	#NOLIG
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::NOLIG,pt_IDUS_NUM_860026342)

	#CODPRES
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::CODPRES,pt_TPRESDIV_CodPrest_860026342)

	#DEBCRED
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::DEBCRED,pt_TPRESDIV_DebCre_860026342)

	#DATPREST
	erreur_860026342 = i_set_art_field(g_iartout2,$TallegroPresDiv::DATPREST,ICAR_LOCAL_860026342)

	#CODEMET
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::CODEMET,"N57P")

	#MONTANT
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::MONTANT,pt_MONTANT_HT_860026342)

	#DEVISE
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::DEVISE,"EUR")

	#HEURE
	erreur_860026342 = i_set_art_field(g_iartout10,$Conversion::DATE_ASC,ICAR_LOCAL_860026342)

	erreur_860026342 = i_get_art_str(g_iartout10, $Conversion::DATE_STR,pt_ICAR_LOCAL_860026342)
	i_get_sub_str(pt_ICAR_LOCAL_860026342,8,11,pt_TIME_860026342)
	erreur_860026342 = i_set_art_str(g_iartout2,$TallegroPresDiv::HEURE,pt_TIME_860026342)
FINSI

#--------------------------------------------------------------------------
# MMDM
#--------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instMMDM_860026342) )
ALORS
	SI ( i_dup_art_id(g_iartout,g_iartout4) )
	ALORS
		#trace("Erreur de i_dup_art")
		code_errone_860026342 = 0xA0D0
		code_errone_860026342 = code_errone_860026342 + EFFICACE_860026342
		erreur_860026342 = i_PlvMessEmettre(8602,2,g_iartout,"",3,code_errone_860026342,C_TmmdmTjtvORD_860026342,C_ARTICLE_860026342)
		SAUT  DISTRI_ERR
	FINSI
	erreur_860026342 = i_rename_art(g_iartout4, C_TmmdmTjtvORD_860026342)

	#*** Ajout Champs obligatoires *** 

	# TYPE_ACCES
	SI ( i_strlen(pt_TypeAcces_860026342) != 0 )
	ALORS
		erreur_860026342 = i_ajoutChampNum(g_iartout4, $TmmdmTjtvORD::T4type_acces,$TmmdmTjtvORD::TYPE_ACCES,1)
		erreur_860026342 = i_set_art_str(g_iartout4, $TmmdmTjtvORD::TYPE_ACCES, pt_TypeAcces_860026342)
		erreur_860026342 = i_resize_tlv ( g_iartout4, "T4type_acces","TYPE_ACCES", i_strlen(pt_TypeAcces_860026342) )
	FINSI

	# AID
	SI ( i_strlen(pt_AID_860026342) != 0 )
	ALORS
		erreur_860026342 = i_ajoutChampNum(g_iartout4, $TmmdmTjtvORD::T4aid,$TmmdmTjtvORD::AID,1)
		erreur_860026342=i_set_art_str(g_iartout4,$TmmdmTjtvORD::AID,pt_AID_860026342)
		erreur_860026342 = i_resize_tlv ( g_iartout4, "T4aid","AID", i_strlen(pt_AID_860026342) )
	FINSI
	
	# CODE_PREST
	SI ( i_strlen(pt_TPRESDIV_CodPrest_860026342) != 0 )
	ALORS
		erreur_860026342 = i_ajoutChampNum(g_iartout4, $TmmdmTjtvORD::T4cod_prest,$TmmdmTjtvORD::CODE_PREST,1)
		taille_860026342 = i_get_art_field(g_iartout4, $TmmdmTjtvORD::L4cod_prest)
		erreur_860026342 = i_set_art_str(g_iartout4,$TmmdmTjtvORD::CODE_PREST,pt_TPRESDIV_CodPrest_860026342)

		SI ( i_strlen(pt_TPRESDIV_CodPrest_860026342) < taille_860026342 )
		ALORS
			erreur_860026342 = i_resize_tlv ( g_iartout4, "T4cod_prest","CODE_PREST", i_strlen(pt_TPRESDIV_CodPrest_860026342) )
		FINSI
	FINSI
FINSI

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

#----------------------------------------------------------------------------
# ALLEGRO_PDZ
#----------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instALLEGRO_860026342) )
ALORS
	erreur_860026342=i_stocke_art_iecc(g_iartout2, instALLEGRO_860026342)
	trace("Emission vers ALLEGRO_PDZ reussie")
FINSI

#----------------------------------------------------------------------------
# MMDM
#----------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instMMDM_860026342) )
ALORS
	erreur_860026342=i_stocke_art_iecc(g_iartout4, instMMDM_860026342)
	trace("Emission vers MMDM reussie")
FINSI

#----------------------------------------------------------------------------
# ENVOI EN REDISTRIBUTION
#----------------------------------------------------------------------------

SI b_REDIST_860026342 > 0
ALORS
	SAUT DISTRI_REDIST
FINSI

#----------------------------------------------------------------------------
# FIN DISTRIBUTION
#----------------------------------------------------------------------------

RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_ERRONE
#####################################################################

POINT DISTRI_ERR

#IFDEF trace_niv1 = 1
trace2( "Stockage de l'article %s en ERRONE",C_ARTICLE_860026342,"" )
#ENDIF

erreur_860026342 = i_make_art_rej(g_iartin, g_iartout7, code_rejet_860026342)
erreur_860026342 = i_stocke_art(g_iartout7,0,PT_ERRONE,0)

RETOUR TRAIT_OK

###########################################################################
# POINT de branchement : stockage PT_ELIMINE
###########################################################################

POINT DISTRI_ELM

#IFDEF trace_niv1 = 1
trace2( "Stockage de l'article %s en ELIMINE",C_ARTICLE_860026342,"" )
#ENDIF

erreur_860026342 = i_stocke_art( g_iartin, 0, PT_ELIMINE, 0 )

RETOUR TRAIT_OK

############################################################################
# Stockage en Redistribution
############################################################################

POINT DISTRI_REDIST

SI (cpt_redist_860026342 == 0)
ALORS
	SI b_REDIST_860026342 == 1
	ALORS
		erreur_860026342 = i_PlvMessEmettre(8603,2,g_iartin,"",3,pt_LIBELREDIST_860026342,C_ARTICLE_860026342,pt_SGTQS_860026342)
	SINON
		erreur_860026342 = i_PlvMessEmettre(8604,2,g_iartin,"",3,pt_LIBELREDIST_860026342,C_ARTICLE_860026342,pt_SGTQS_860026342)
	FINSI
FINSI
#trace( "__FILE__:__LINE__ : Fin du Pcode de distribution : Stockage en REDISTRIBUTION" )

res_860026342 = i_stocke_art( g_iartin, 0, PT_REDIST|RD_TABLE9_860026342, 0 )
trace2( "Fin du Pcode de distribution %s ",C_ARTICLE_860026342,"" )

RETOUR TRAIT_OK
