DEFINITION C_ARTICLE_860027521 "Twha"
DEFINITION C_SUBSCRIB_860027521 "SUBSCRIB"
DEFINITION C_NUMTAB_860027521 1
DEFINITION C_NUMTAB2_860027521 2
DEFINITION C_ZONEMETRO_860027521 7
DEFINITION C_NUMTABSEL_860027521 4
DEFINITION C_TallegroPresDiv_860027521 "TallegroPresDiv"
DEFINITION C_KenobiTwha_860027521 "TkenobiTwha"
DEFINITION C_InstALLEGRO_860027521 "ALLEGRO_PDZ"
DEFINITION C_InstTVING_860027521 "TVING"
DEFINITION C_InstTYPECLIENT_860027521 "TYPECLIENT"
DEFINITION C_InstKENOBI_860027521 "KENOBIWHA"
DEFINITION C_Ref_860027521 "NEWTV"
DEFINITION TD_NEWTV_860027521 8 
DEFINITION RD_TABLE9_860027521 0x01000000
DEFINITION C_TPRESDIV_Contexte3_860027521 "C3"
DEFINITION C_InstALLEGRO_NEW_860027521 "ALLEGRO_NEW"
DEFINITION C_CodEmet_860027521 "NPF5"
DEFINITION C_InterTCodeCSA_cle_860027521 "INq"
DEFINITION C_CodeCSACharme_860027521 "4"     
DEFINITION C_CodeCSAAdulte_860027521 "5"     
DEFINITION C_TallegroPE_PO_860027521 "TallegroPE_PO"
DEFINITION C_TallegroUP_UR_860027521 "TallegroUP_UR"
REGISTRE ENTIER erreur_860027521
REGISTRE ENTIER res_860027521
REGISTRE ENTIER cpt_redist_860027521
REGISTRE ENTIER code_errone_860027521 
REGISTRE ENTIER code_rejet_860027521
REGISTRE ENTIER ICAR_METRO_860027521
REGISTRE ENTIER ICAR_LOCAL_860027521
REGISTRE ENTIER ICAR_UTC_860027521
REGISTRE ENTIER NUMZONE_860027521
REGISTRE ENTIER taille_860027521
REGISTRE ENTIER ValEntier_860027521
REGISTRE ENTIER EFFICACE_860027521
REGISTRE ENTIER instALLEGRO_860027521
REGISTRE ENTIER instTypAccTving_860027521
REGISTRE ENTIER instTypCliRevod_860027521
REGISTRE ENTIER instKENOBI_860027521
REGISTRE ENTIER b_Facturable_860027521
REGISTRE ENTIER b_REDIST_860027521
REGISTRE ENTIER duree_860027521
REGISTRE ENTIER date_locale_fin_860027521
REGISTRE ENTIER date_Metro_fin_860027521
REGISTRE ENTIER b_ELM_860027521
REGISTRE ENTIER instALLEGRO_NEW_860027521
REGISTRE ENTIER b_AF2015_860027521
REGISTRE ENTIER b_PE_PO_860027521
REGISTRE ENTIER b_UP_UR_860027521
REGISTRE POINTEUR pt_temp_860027521
REGISTRE POINTEUR pt_ValEntier_860027521
REGISTRE POINTEUR pt_ValDec_860027521
REGISTRE POINTEUR pt_LIBELREDIST_860027521
REGISTRE POINTEUR pt_P_OPERATION_860027521
REGISTRE POINTEUR pt_IDUS_NUM_860027521
REGISTRE POINTEUR pt_OPERATION_860027521
REGISTRE POINTEUR pt_GODET_860027521
REGISTRE POINTEUR pt_ECCv_860027521
REGISTRE POINTEUR pt_TypeAcces_860027521
REGISTRE POINTEUR pt_TypeClient_860027521
REGISTRE POINTEUR pt_TPRESDIV_Cle_860027521
REGISTRE POINTEUR pt_TPRESDIV_DebCre_860027521
REGISTRE POINTEUR pt_TPRESDIV_CodPrest_860027521
REGISTRE POINTEUR pt_PRICE_HT_860027521
REGISTRE POINTEUR pt_MONTANT_HT_860027521
REGISTRE POINTEUR pt_SGTQS_860027521
REGISTRE POINTEUR pt_ICAR_LOCAL_860027521
REGISTRE POINTEUR pt_TIME_860027521
REGISTRE POINTEUR pt_GEOGRAPHIC_ZONE_860027521
REGISTRE POINTEUR pt_ZONE_GEO_860027521
REGISTRE POINTEUR pt_v_godet_860027521
REGISTRE POINTEUR pt_temp2_860027521
REGISTRE POINTEUR pt_TypeOpServ_860027521
REGISTRE POINTEUR pt_LibZ1_860027521
REGISTRE POINTEUR pt_LibZ2_860027521
REGISTRE POINTEUR pt_LibZ3_860027521
REGISTRE POINTEUR pt_LibZ5_860027521
REGISTRE POINTEUR pt_LibZ6_860027521
REGISTRE POINTEUR pt_TCodeCSA_Cle_860027521
REGISTRE POINTEUR pt_TPRESDIV_TypPrest_860027521
REGISTRE POINTEUR pt_CodeCSA_860027521
REGISTRE POINTEUR pt_AID_860027521
############################################################################
#	Pcode de Distribution Twha.src
#
# En entree :
#	Article : Twha 	DC ISSU DE LA PFS NewTV_WHA
#
# En sortie :
#		ALLEGRO_PDZ	- g_iartout2	- TallegroPresDiv
#		ALLEGRO_NEW	- g_iartout2	- TallegroPE_PO ou TallegroUP_UR
#		KENOBI		- g_iartout5	- TkenobiTwha
#
# Historique
#
#	08/11/2010 - DRE - Creation
#	08/12/2010 - DRE - QC437 initialisation du pointeur pt_P_OPERATION avec la valeur du champ OPERATION
#	15/12/2010 - DRE - G3R19 : QC440 Gestion des alarmes de Resdistribution 
#	20/12/2010 - DRE - G3R19 : QC441 partie 1 et 5
#	04/01/2011 - DRE - G3R19 : QC445 Ajout instance ALLEGRO_PDZ
#	03/02/2011 - DRE - G3R19Cy : Modif calcul de la date locale
#	27/04/2011 - RHE - G3R21 : Kenobi
#	26/10/2011 - THE - G3R23 + suppression MMDM
#	09/03/2012 - DRE - G3R24 item PEC des DC JeuxTV-tiers + arret distri des DCs Jeux G-Cluster a KENOBI
#	04/04/2012 - DRE - G36 ajouR24 QC58t de la conversion du code operation "CG" en "ORD"
#	13/04/2012 - THE - G3R24 Modif criteres de distri KENOBI et suppression ELM
#	17/04/2012 - THE - G3R24 QC 591 modif distri ELM
#	04/09/2012 - DRE - G3R24C8 QC633 correction Convertion PRICE_HT en MONTANT_HT
#	18/09/2013 - DRE - G4R4
#	09/02/2015 - DRE - G4R9 lot2
#	12/03/2015 - DRE - G4R9C2 Test PE PO UP UR pour ALLEGRO_NEW
#   	15/04/2015 - DRE - G4R9C4 QC895 Maj des criteres de valorisation de LibZ1, LibZ2
#
############################################################################
# Constantes
# 8 = TD_XXXXX
# G3R23

#G3R24
#G4R9


# Variables fonctionnelles globales
# G3R24
#G4R9



# Pointeurs
#G4R9

############################
# Affectation Pointeurs    #
############################
pt_temp_860027521			= "pt_temp111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
pt_ValEntier_860027521		= "pt_ValEntier2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
pt_ValDec_860027521		= "pt_ValDec555522222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
pt_LIBELREDIST_860027521		= "pt_LIBELREDIST88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
pt_P_OPERATION_860027521		= "pt_P_OPERATION00000000111111111112222222222"
pt_IDUS_NUM_860027521		= "pt_IDUS_NUM11111111111111111111111111111111"
pt_OPERATION_860027521 		= "pt_OPERATION2222222222222222222222222222222"
pt_GODET_860027521		= "pt_GODET33333333333333333333333333333333333"
pt_ECCv_860027521 		= "pt_ECCv444444444444444444444444444444444444"	
pt_TypeAcces_860027521 		= "pt_TypeAcces5555555555555555555555555555555"
pt_TypeClient_860027521 		= "pt_TypeClient888888888888888888888888888888"
pt_TPRESDIV_Cle_860027521 	= "pt_TPRESDIV_Cle333333333333333333333333333333333333333333333333333333333"
pt_TPRESDIV_DebCre_860027521 	= "pt_TPRESDIV_DebCre9999999999999999999999999"
pt_TPRESDIV_CodPrest_860027521 	= "pt_TPRESDIV_CodPrest4444444444444444444444444444444444444444444444444444"
pt_PRICE_HT_860027521 		= "pt_PRICE_HT555555555555555555555555555555555"
pt_MONTANT_HT_860027521		= "pt_MONTANT_HT6666666666666666666666666666666"
pt_SGTQS_860027521		= "pt_SGTQS777777777777777777777777777777"
pt_ICAR_LOCAL_860027521		= "pt_ICAR_LOCAL7777777777777777777777777"
pt_TIME_860027521			= "pt_TIME8888888888888888888888888888888"
pt_GEOGRAPHIC_ZONE_860027521	= "pt_GEOGRAPHIC_ZONE888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
pt_ZONE_GEO_860027521		= "pt_ZONE_GEO9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"
pt_v_godet_860027521		= "pt_v_godet0123"
pt_temp2_860027521		= "pt_temp222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"
#G4R9
pt_TypeOpServ_860027521		= "pt_TypeOpServ"
pt_LibZ1_860027521		= "pt_LibZ1pt_LibZ1"
pt_LibZ2_860027521             	= "pt_LibZ2pt_LibZ2"
pt_LibZ3_860027521             	= "pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3pt_LibZ3"
pt_LibZ5_860027521             	= "pt_LibZ5pt_LibZ5pt_LibZ5pt_LibZ5"
pt_LibZ6_860027521             	= "pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6pt_LibZ6"
pt_TCodeCSA_Cle_860027521      	= "pt_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Clept_TCodeCSA_Cle"
pt_TPRESDIV_TypPrest_860027521 	= "pt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrestpt_TPRESDIV_TypPrest"
pt_CodeCSA_860027521		= "pt_CodeCSA"
pt_AID_860027521			= "pt_AIDpt_AIDpt_AIDpt_AIDpt_AIDpt_AIDpt_AIDpt_AIDpt_AIDpt_AID"



############################
# Initialisation Variables #
############################
b_Facturable_860027521	= 0
b_REDIST_860027521 	= 0
ValEntier_860027521	= 0
cpt_redist_860027521 	= -1
instALLEGRO_860027521 	= 0
instTypAccTving_860027521	= 0
instTypCliRevod_860027521	= 0
instKENOBI_860027521	= 0
NUMZONE_860027521		= 0
# G3R24
b_ELM_860027521		= 0
#G4R9
b_AF2015_860027521	= 0
b_PE_PO_860027521		= 0
b_UP_UR_860027521		= 0
instALLEGRO_NEW_860027521	= 0
 
############################
# Initialisation Pointeurs #
############################
i_strcpy(pt_temp_860027521,"")
i_strcpy(pt_ValEntier_860027521,"")
i_strcpy(pt_ValDec_860027521,"")
i_strcpy(pt_LIBELREDIST_860027521,"")
i_strcpy(pt_P_OPERATION_860027521,"")
i_strcpy(pt_IDUS_NUM_860027521,"")
i_strcpy(pt_OPERATION_860027521,"")
i_strcpy(pt_GODET_860027521,"")
i_strcpy(pt_ECCv_860027521,"")
i_strcpy(pt_TypeAcces_860027521,"")
i_strcpy(pt_TypeClient_860027521,"")
i_strcpy(pt_TPRESDIV_Cle_860027521,"")
i_strcpy(pt_TPRESDIV_DebCre_860027521,"")
i_strcpy(pt_TPRESDIV_CodPrest_860027521,"")
i_strcpy(pt_PRICE_HT_860027521,"")
i_strcpy(pt_MONTANT_HT_860027521,"")
i_strcpy(pt_SGTQS_860027521,"")
i_strcpy(pt_ICAR_LOCAL_860027521,"")
i_strcpy(pt_TIME_860027521,"")
i_strcpy(pt_GEOGRAPHIC_ZONE_860027521,"")
i_strcpy(pt_ZONE_GEO_860027521,"")
i_strcpy(pt_v_godet_860027521,"")
i_strcpy(pt_temp2_860027521,"")
#G4R9
i_strcpy(pt_TypeOpServ_860027521,"")
i_strcpy(pt_LibZ1_860027521,"")
i_strcpy(pt_LibZ2_860027521,"")
i_strcpy(pt_LibZ3_860027521,"")
i_strcpy(pt_LibZ5_860027521,"")
i_strcpy(pt_LibZ6_860027521,"")        
i_strcpy(pt_TCodeCSA_Cle_860027521,"")
i_strcpy(pt_TPRESDIV_TypPrest_860027521,"")
i_strcpy(pt_CodeCSA_860027521,"")
i_strcpy(pt_AID_860027521,"")

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

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

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

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

EFFICACE_860027521 = 2

############################
# Recuperation des champs
############################

#OPERATION
erreur_860027521 = i_get_art_str(g_iartout,$Twha::OPERATION,pt_OPERATION_860027521)

# G3R24C4
#SI (  ( i_strcmp(pt_OPERATION, "RJ") == 0 ) || ( i_strcmp(pt_OPERATION, "RG") == 0 )  )
#ALORS
#	SAUT DISTRI_ELM
#	trace("Emission En ELIMINE")
#FINSI

# GODET
erreur_860027521 = i_get_art_str(g_iartout,$Twha::GODET,pt_GODET_860027521)

#G4R9 lot2
#AID
erreur_860027521 = i_get_art_str(g_iartout,$Twha::AID,pt_AID_860027521)
SI i_strlen(pt_AID_860027521) > 14
ALORS
	i_get_sub_str( pt_AID_860027521, 0, 13, pt_AID_860027521 )
FINSI	




############################
#  Normalisation du champ  IDUS_NUM  (T3nd)
############################

erreur_860027521 = i_get_art_str(g_iartout,$Twha::IDUS_NUM,pt_IDUS_NUM_860027521)

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

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

#DATES
ICAR_METRO_860027521 = i_get_art_field(g_iartout,$Twha::DATE)
ICAR_UTC_860027521 = i_DHgetCe2gTime(C_NUMTAB_860027521,C_ZONEMETRO_860027521,ICAR_METRO_860027521)
#Zone geographique
erreur_860027521 = i_get_art_str(g_iartout,$Twha::TIME_ZONE,pt_GEOGRAPHIC_ZONE_860027521)
erreur_860027521 = i_recupererValeur(pt_GEOGRAPHIC_ZONE_860027521, pt_temp_860027521, i_strlen(pt_GEOGRAPHIC_ZONE_860027521),'/')
i_strcpy(pt_ZONE_GEO_860027521,UCASE_860026233(pt_GEOGRAPHIC_ZONE_860027521))
i_replace_str(pt_ZONE_GEO_860027521," ","_",pt_ZONE_GEO_860027521)

erreur_860027521 = i_set_art_str(g_iartout10, $Conversion::ZONE_GEO,pt_ZONE_GEO_860027521)

NUMZONE_860027521 = i_DHgetZoneID(C_NUMTABSEL_860027521, g_iartout10)

SI NUMZONE_860027521 == 0
ALORS
	#trace("##### Zone Grographique inconnue ########")
	code_rejet_860027521 = 0xA080
	code_rejet_860027521 = code_rejet_860027521 + EFFICACE_860027521
	erreur_860027521 = i_format_str2( pt_temp_860027521 , " La zone geographique <%s> est inconnue dans la Table de Selection des Decalages Horaires <%s>",pt_ZONE_GEO_860027521,"zones.4")
	erreur_860027521 = i_PlvMessEmettre( 8612, 2, g_iartin,"", 3,code_rejet_860027521, C_ARTICLE_860027521, pt_temp_860027521)
	SAUT DISTRI_ERR
FINSI
#trace1("################## NUMZONE = >%d< ####################",NUMZONE)

ICAR_LOCAL_860027521 = i_DHgetLocalTime(C_NUMTAB2_860027521,NUMZONE_860027521, ICAR_METRO_860027521)

duree_860027521 = 0
date_locale_fin_860027521 = ICAR_LOCAL_860027521 + duree_860027521
date_Metro_fin_860027521 = ICAR_METRO_860027521 + duree_860027521

# SGTQS
i_strcpy(pt_SGTQS_860027521, i_LireEECSGTQS(g_ieec))

#  Enregistrement du champ Nom_EEC dans l'ENVELOPPE Optionelle de redistribution
erreur_860027521 = i_add_opt( "EnomEEC" )
erreur_860027521 = i_set_attr_str_n($EnomEEC::Nom_EEC, pt_SGTQS_860027521)
erreur_860027521 = i_set_attr_val_n( $EnomEEC::date_Locale_fin, date_locale_fin_860027521)
erreur_860027521 = i_set_attr_val_n( $EnomEEC::date_Metro_fin, date_Metro_fin_860027521)

# OPERATION
erreur_860027521 = i_get_art_str(g_iartout,$Twha::OPERATION,pt_OPERATION_860027521)
SI i_strlen(pt_OPERATION_860027521) > 1 
ALORS
	i_strcpy(pt_OPERATION_860027521,REMPLACE_CHAINE_860026233(pt_OPERATION_860027521," ", ""))
FINSI

erreur_860027521 = i_get_art_str(g_iartout,$Twha::GODET,pt_GODET_860027521)

#G4R4 #############################
erreur_860027521 = i_format_str2( pt_temp_860027521, "%s_%s", C_TPRESDIV_Contexte3_860027521, pt_OPERATION_860027521 )
erreur_860027521 = i_format_str2( pt_TPRESDIV_Cle_860027521, "%s_%s", pt_temp_860027521, pt_GODET_860027521 )
SI i_strcmp (i_get_tab_field( "TPRESDIV", ICAR_UTC_860027521, pt_TPRESDIV_Cle_860027521 ),g_inull ) != 0
ALORS
	b_Facturable_860027521 = 1
FINSI

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

taille_860027521 = i_conv_ascii_dcb(pt_IDUS_NUM_860027521, pt_temp_860027521)

SI (i_EnvoiReqConsTabDist(TD_NEWTV_860027521, ICAR_UTC_860027521, pt_temp_860027521, taille_860027521, 0, 1) != 0)
ALORS
	code_rejet_860027521 = 0xA0C0
	code_rejet_860027521 = code_rejet_860027521 + EFFICACE_860027521
	erreur_860027521 = i_PlvMessEmettre(8607,1,g_iartout,"",3,code_rejet_860027521,C_Ref_860027521,C_ARTICLE_860027521)
	SAUT DISTRI_ERR
FINSI

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

#ALLEGRO_PDZ
instALLEGRO_860027521 = i_LireInstanceECC(C_InstALLEGRO_860027521)

SI (!instALLEGRO_860027521)
ALORS
	#trace("Pas d'instance pour ALLEGRO_PDZ !")
	erreur_860027521 = i_PlvMessEmettre(8501,1,g_iartin,"",3,C_InstALLEGRO_860027521,C_ARTICLE_860027521,g_ieec)
	SAUT DISTRI_ERR
FINSI	
#trace1("__FILE__:__LINE__ : instALLEGRO=<%d>",instALLEGRO)

#G4R9 lot2
#ALLEGRO_NEW
instALLEGRO_NEW_860027521 = i_LireInstanceECC(C_InstALLEGRO_NEW_860027521)

SI (!instALLEGRO_NEW_860027521)
ALORS
	#trace("Pas d'instance pour ALLEGRO_NEW !")
	erreur_860027521 = i_PlvMessEmettre(8501,1,g_iartin,"",3,C_InstALLEGRO_NEW_860027521,C_ARTICLE_860027521,g_ieec)
	SAUT DISTRI_ERR
FINSI	
#trace1("__FILE__:__LINE__ : instALLEGRO_NEW=<%d>",instALLEGRO_NEW)
#\G4R9 lot2



#G3R21
# KENOBI
instKENOBI_860027521 = i_LireInstanceECC(C_InstKENOBI_860027521)

SI (!instKENOBI_860027521)
ALORS
	#trace("Pas d'instance pour KENOBI !")
	erreur_860027521 = i_PlvMessEmettre(8501,1,g_iartin,"",3,"KENOBIWHA",C_ARTICLE_860027521,g_ieec)
	SAUT DISTRI_ERR
FINSI	
#trace1("__FILE__:__LINE__ : instKENOBI=<%d>",instKENOBI)

############################
# Recherche instance ECC_Interne
############################

## TypAccTving
instTypAccTving_860027521 = i_LireInstanceECC(C_InstTVING_860027521)

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

## TypCliRevod
instTypCliRevod_860027521 = i_LireInstanceECC(C_InstTYPECLIENT_860027521)

SI (!instTypCliRevod_860027521)
ALORS
	#trace("Pas d'instance pour TypCliRevod !")
	erreur_860027521 = i_PlvMessEmettre(8501,1,g_iartin,"",3,"TypCliRevod",C_ARTICLE_860027521,g_ieec)
	SAUT DISTRI_ERR
FINSI	
#trace1("__FILE__:__LINE__ : instTypCliRevod=<%d>",instTypCliRevod)

############################
# Lecture Resultat requete
############################

erreur_860027521 = i_LireReqConsTabDist()

#Recherche du type d'acces
erreur_860027521 = i_LireChaineECCv( instTypAccTving_860027521, pt_ECCv_860027521)

SI erreur_860027521 == 0
ALORS
	i_get_sub_str(pt_ECCv_860027521, 0, 0, pt_TypeAcces_860027521)
FINSI

#Recherche du type de client
res_860027521 = 0
res_860027521 = i_LireInfoECC( instTypCliRevod_860027521, 0 )

SI ( res_860027521 != 0)
ALORS
	erreur_860027521 = i_LireChaineInfo( res_860027521, 0, 8, pt_temp_860027521)
	# Dans le referentiel, le bourrage de l'info est FF soit 255 au lieu de null (00)
	# Ci dessous on recupere tout ce qui se trouve avant ce bourrage
	erreur_860027521 = i_recupererValeur (pt_temp_860027521,pt_TypeClient_860027521,i_strlen(pt_temp_860027521),i_get_val_oct(255, 1))
FINSI

SI i_strcmp(pt_TypeClient_860027521,"") == 0
ALORS 
	i_strcpy(pt_TypeClient_860027521,C_SUBSCRIB_860027521)
FINSI

#G4R9 lot2
#pt_TypeOpServ
SI i_valid_field_n(g_iartout,$Twha::TypeOpServ)
ALORS
	erreur_860027521 = i_get_art_str(g_iartout,$Twha::TypeOpServ,pt_TypeOpServ_860027521)
	b_AF2015_860027521 = 1
FINSI

#\G4R9 lot2



i_strcpy(pt_TPRESDIV_Cle_860027521,"")
SI b_Facturable_860027521 && i_strcmp(pt_TypeAcces_860027521,"") != 0
ALORS
	SI b_AF2015_860027521 == 1
	ALORS
		erreur_860027521 = i_format_str2( pt_temp_860027521, "%s_%s", C_TPRESDIV_Contexte3_860027521, pt_OPERATION_860027521 )
		erreur_860027521 = i_format_str2( pt_temp2_860027521, "%s_%s", pt_temp_860027521, pt_GODET_860027521 )
		erreur_860027521 = i_format_str2( pt_temp_860027521, "%s_%s", pt_temp2_860027521, pt_TypeAcces_860027521 )
		erreur_860027521 = i_format_str2( pt_TPRESDIV_Cle_860027521, "%s_%s", pt_temp_860027521, pt_TypeOpServ_860027521 )
	SINON
		erreur_860027521 = i_format_str2( pt_temp_860027521, "%s_%s", C_TPRESDIV_Contexte3_860027521, pt_OPERATION_860027521 )
		erreur_860027521 = i_format_str2( pt_temp2_860027521, "%s_%s", pt_temp_860027521, pt_GODET_860027521 )
		erreur_860027521 = i_format_str2( pt_TPRESDIV_Cle_860027521, "%s_%s", pt_temp2_860027521, pt_TypeAcces_860027521 )
	FINSI
	
	i_strcpy(pt_temp_860027521, i_get_tab_field( "TPRESDIV", ICAR_UTC_860027521, pt_TPRESDIV_Cle_860027521 ))

	#G4R9 lot2
	SI pt_temp_860027521 != g_inull
	ALORS	
		erreur_860027521 = i_recupererValeur(pt_temp_860027521, pt_TPRESDIV_DebCre_860027521, i_strlen(pt_temp_860027521),'_')
		erreur_860027521 = i_recupererValeur(pt_temp_860027521, pt_TPRESDIV_CodPrest_860027521, i_strlen(pt_temp_860027521),'_')
		i_strcpy(pt_TPRESDIV_TypPrest_860027521,pt_temp_860027521)
		
		SI ( i_strcmp(pt_TPRESDIV_TypPrest_860027521,"PE") == 0 || i_strcmp(pt_TPRESDIV_TypPrest_860027521,"PO") == 0 )
		ALORS
			b_PE_PO_860027521 = 1
		FINSI
		SI ( i_strcmp(pt_TPRESDIV_TypPrest_860027521,"UP") == 0 || i_strcmp(pt_TPRESDIV_TypPrest_860027521,"UR") == 0 )
		ALORS
			b_UP_UR_860027521 = 1
		FINSI
	FINSI
	#\G4R9 lot2

FINSI

############################
# Controle pour envoi en redistribution
############################
SI b_Facturable_860027521 && i_strcmp(pt_TPRESDIV_CodPrest_860027521,"") == 0
ALORS
	SI i_strcmp(pt_TypeAcces_860027521,"") == 0 
	ALORS
		b_REDIST_860027521 = 1
		i_strcpy(pt_LIBELREDIST_860027521, "Echec:  Type d'Acces absent du referentiel TVING, IDUS_NUM = <")
		erreur_860027521 = i_format_str2( pt_temp_860027521, "%s%s", pt_LIBELREDIST_860027521, pt_IDUS_NUM_860027521 )
		i_strcpy(pt_LIBELREDIST_860027521,pt_temp_860027521)
	SINON
		b_REDIST_860027521 = 2
		i_strcpy(pt_LIBELREDIST_860027521, "Echec: Code Prestation absent de la table externe TPRESDIV, manque cle <")
		erreur_860027521 = i_format_str2( pt_temp_860027521, "%s%s", pt_LIBELREDIST_860027521, pt_TPRESDIV_Cle_860027521 )
		i_strcpy(pt_LIBELREDIST_860027521,pt_temp_860027521)
	FINSI

	SAUT AVANT_REDIST
FINSI

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

# G3R24
SI b_Facturable_860027521 && i_strcmp(pt_TPRESDIV_CodPrest_860027521,"") != 0
ALORS
	erreur_860027521 = i_get_art_str(g_iartout,$Twha::MONTANT_HT,pt_temp_860027521)
	i_strcpy(pt_PRICE_HT_860027521,pt_temp_860027521)
	
	# on attend "." point ou "," virgule dans le montant
	i_replace_str(pt_temp_860027521,",",".",pt_temp_860027521)
	
	erreur_860027521 = i_recupererValeur(pt_temp_860027521, pt_ValEntier_860027521, i_strlen(pt_temp_860027521),'.')
	
	# 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_860027521) > 0
	ALORS
		erreur_860027521 = i_format_str2( pt_ValDec_860027521, "%s%s", pt_temp_860027521,"00")
	
		i_get_sub_str(pt_ValDec_860027521, 2, 2 , pt_temp_860027521)
		#test si la 3ieme decimale est superieure a 4
		SI i_strcmp(pt_temp_860027521,"4") > 0 
		ALORS
			#faire l'arrondi comptable
			i_get_sub_str(pt_ValDec_860027521, 0, 1 , pt_ValDec_860027521)
			#prendre les 2 premieres decimales ex pt_ValDec = "42"
			#transformation en entier en passant par le float
			erreur_860027521 = i_str_to_float (pt_ValDec_860027521)
			res_860027521 = i_float_to_entier(erreur_860027521)
			#ex res = 42
			res_860027521 = res_860027521 + 1
			#ex res = 42 + 1 = 43 (arrondi par exces)
			SI res_860027521 > 99
			ALORS
				#faire +1 a la partie entiere du nombre et mettre a zero la partie decimale
				erreur_860027521 = i_str_to_float (pt_ValEntier_860027521)
				ValEntier_860027521 = i_float_to_entier(erreur_860027521) + 1
				#ValEntier = 124
				erreur_860027521 = i_EntierToString ( ValEntier_860027521, pt_ValEntier_860027521, 10)
				#pt_ValEntier = "124"
				i_strcpy(pt_temp_860027521,"00")
			SINON
				erreur_860027521 = i_EntierToString ( res_860027521, pt_ValDec_860027521, 10)
				SI res_860027521 < 10
				ALORS
					erreur_860027521 = i_format_str2( pt_temp_860027521, "%s%s", "0",pt_ValDec_860027521)
				SINON
					i_strcpy(pt_temp_860027521,pt_ValDec_860027521)
				FINSI
			FINSI
		SINON	
			i_get_sub_str(pt_ValDec_860027521, 0, 1 , pt_temp_860027521)
			
		FINSI
		erreur_860027521 = i_format_str2( pt_PRICE_HT_860027521, "%s%s", pt_ValEntier_860027521,pt_temp_860027521 )
		erreur_860027521 = i_format_str2( pt_MONTANT_HT_860027521, "%s%s", pt_PRICE_HT_860027521,"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_860027521 = i_format_str2( pt_MONTANT_HT_860027521, "%s%s", pt_ValEntier_860027521,"0000")
		# ex pt_MONTANT_HT = 1230000
	FINSI
FINSI



#G4R9 lot2
############################################################################
# Recuperation des champs pour ALLEGRO_NEW                                 #
############################################################################


#QC895
SI i_strcmp(pt_TPRESDIV_TypPrest_860027521,"PE") == 0 || i_strcmp(pt_TPRESDIV_TypPrest_860027521,"UR") == 0
ALORS
	#pt_LibZ1
	SI i_valid_field_n(g_iartout,$Twha::startPeriod)
	ALORS
		erreur_860027521 = i_get_art_str(g_iartout,$Twha::startPeriod,pt_temp_860027521)
		i_get_sub_str(pt_temp_860027521, 0, 9, pt_temp_860027521)
		i_strcpy(pt_LibZ1_860027521,REMPLACE_CHAINE_860026233(pt_temp_860027521, "/", ""))
	FINSI
		
	#pt_LibZ2
	SI i_valid_field_n(g_iartout,$Twha::endPeriod)
	ALORS
		erreur_860027521 = i_get_art_str(g_iartout,$Twha::endPeriod,pt_temp_860027521)
		i_get_sub_str(pt_temp_860027521, 0, 9, pt_temp_860027521)
		i_strcpy(pt_LibZ2_860027521,REMPLACE_CHAINE_860026233(pt_temp_860027521, "/", ""))
	FINSI
FINSI
#\QC895

#pt_LibZ5
SI i_valid_field_n(g_iartout,$Twha::Editeur)
ALORS
	erreur_860027521 = i_get_art_str(g_iartout,$Twha::Editeur,pt_LibZ5_860027521)
FINSI

#pt_LibZ6,
#pt_LibZ3
SI b_AF2015_860027521 == 1
ALORS
	SI b_UP_UR_860027521 == 1
	ALORS
		erreur_860027521 = i_get_art_str(g_iartout,$Twha::PRODUCT_DESC,pt_LibZ6_860027521)
		SI i_valid_field_n(g_iartout,$Twha::CodeCSA)
		ALORS		
			erreur_860027521 = i_get_art_str(g_iartout,$Twha::CodeCSA,pt_CodeCSA_860027521)
			SI i_strcmp(pt_CodeCSA_860027521, C_CodeCSACharme_860027521) == 0 || i_strcmp(pt_CodeCSA_860027521, C_CodeCSAAdulte_860027521) == 0 
			ALORS
				erreur_860027521 = i_format_str2( pt_TCodeCSA_Cle_860027521, "%s%s", C_InterTCodeCSA_cle_860027521, pt_CodeCSA_860027521)
				i_strcpy (pt_LibZ6_860027521,i_get_tab_field("Inter",ICAR_UTC_860027521,pt_TCodeCSA_Cle_860027521))
			FINSI	
		FINSI
	SINON
		SI b_PE_PO_860027521 == 1
		ALORS
			erreur_860027521 = i_get_art_str(g_iartout,$Twha::PRODUCT_DESC,pt_LibZ3_860027521)
		FINSI
	FINSI	
FINSI	

SI i_strlen(pt_LibZ6_860027521) > 70
ALORS
	i_get_sub_str( pt_LibZ6_860027521, 0, 69, pt_LibZ6_860027521 )
FINSI

SI i_strlen(pt_LibZ3_860027521) > 21
ALORS
	i_get_sub_str( pt_LibZ3_860027521, 0, 20, pt_LibZ3_860027521 )
FINSI	

#\G4R9 lot2

#####################################################################
# CRITERES DE DISTRIBUTION
#####################################################################

# ALLEGRO_PDZ

#G4R9 lot2
#SI b_Facturable && i_strcmp(pt_TPRESDIV_CodPrest,"") != 0
SI b_AF2015_860027521 == 0 && b_Facturable_860027521 && i_strcmp(pt_TPRESDIV_CodPrest_860027521,"") != 0
ALORS
	erreur_860027521 = i_AjouterCouranteECC(instALLEGRO_860027521)
FINSI 

#G4R9 lot2
SI b_AF2015_860027521 == 1 && b_Facturable_860027521 && i_strcmp(pt_TPRESDIV_CodPrest_860027521,"") != 0
ALORS
	erreur_860027521 = i_AjouterCouranteECC(instALLEGRO_NEW_860027521)
FINSI 
#\G4R9 lot2


POINT AVANT_REDIST

# KENOBI
# G3R24C4
SI cpt_redist_860027521 == 0
ALORS
	erreur_860027521 = i_AjouterCouranteECC(instKENOBI_860027521)
FINSI

# ELM
# G3R24C4
#SI b_REDIST == 0 || cpt_redist == 2
#ALORS
#	SI (  ( i_strcmp(pt_OPERATION, "CJ") == 0 ) || ( i_strcmp(pt_OPERATION, "CG") == 0 )  )
#	ALORS
#		b_ELM = 1
#	FINSI
#FINSI


##################################################################################
# Validation de la liste des ECCs destinataires
##################################################################################
erreur_860027521=i_ValiderListeECC( 0, 0, 0, 0)

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

	#SI ( i_dup_art_dest( g_iartout, g_iartout2, C_TallegroPresDiv ) )
	SI ( i_dup_art( g_iartout, C_TallegroPresDiv_860027521, g_iartout2 ) )
	ALORS
		code_errone_860027521 = 0xA0D1
		erreur_860027521 = i_PlvMessEmettre(8602,1,g_iartin,"",3,code_errone_860027521,C_TallegroPresDiv_860027521,C_ARTICLE_860027521)
		SAUT DISTRI_ERR
	FINSI

	#CODART
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::CODART,"E1")
	
	#NOLIG
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::NOLIG,pt_IDUS_NUM_860027521)
		
	#CODPRES
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::CODPRES,pt_TPRESDIV_CodPrest_860027521)
	
	#DEBCRED
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::DEBCRED,pt_TPRESDIV_DebCre_860027521)

	#DATPREST
	erreur_860027521 = i_set_art_field(g_iartout2,$TallegroPresDiv::DATPREST,ICAR_LOCAL_860027521)

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

	#MONTANT
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::MONTANT,pt_MONTANT_HT_860027521)

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

	#HEURE
	erreur_860027521 = i_set_art_field(g_iartout10,$Conversion::DATE_ASC,ICAR_LOCAL_860027521)

	erreur_860027521 = i_get_art_str(g_iartout10, $Conversion::DATE_STR,pt_ICAR_LOCAL_860027521)
	i_get_sub_str(pt_ICAR_LOCAL_860027521,8,11,pt_TIME_860027521)
	erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPresDiv::HEURE,pt_TIME_860027521)
FINSI


#G4R9 lot2
#--------------------------------------------------------------------------
# ALLEGRO_NEW
#--------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instALLEGRO_NEW_860027521) )
ALORS
	# G4R9C2
	SI !b_PE_PO_860027521 && !b_UP_UR_860027521
	ALORS
		code_errone_860027521 = 0xA0A1
		erreur_860027521 = i_format_str2(pt_temp_860027521,"Non distribution a ALLEGRO_NEW, Car Type de prestation different de PE,PO,UP ou UR : Cle prestdiv = <%s>, Cle Table TPRESDIV = <%s>",pt_TPRESDIV_TypPrest_860027521,pt_TPRESDIV_Cle_860027521)
		erreur_860027521 = i_PlvMessEmettre(8614, 1, g_iartin, "", 3, code_errone_860027521,C_ARTICLE_860027521, pt_temp_860027521)
		SAUT DISTRI_ERR
	FINSI

	#mise au format TallegroPE_PO
	SI b_PE_PO_860027521 == 1
	ALORS
		SI ( i_dup_art( g_iartout, C_TallegroPE_PO_860027521, g_iartout2 ) )
		ALORS
			code_errone_860027521 = 0xA0D1
			erreur_860027521 = i_PlvMessEmettre(8602,1,g_iartin,"",3,code_errone_860027521,C_TallegroPE_PO_860027521,C_ARTICLE_860027521)
			SAUT DISTRI_ERR
		FINSI
		#CODART
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::CODART,"E1")
		
		#AID
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::AID,pt_AID_860027521)
		
		#INDAID
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::INDAID,"1")
			
		#CODPRES
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::CODPRES,pt_TPRESDIV_CodPrest_860027521)
		
		#DEBCRED
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::DEBCRED,pt_TPRESDIV_DebCre_860027521)
	
		#DATPREST
		erreur_860027521 = i_set_art_field(g_iartout2,$TallegroPE_PO::DATPREST,ICAR_LOCAL_860027521)
	
		#CODEMET
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::CODEMET,C_CodEmet_860027521)
	
		#MONTANT
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::MONTANT,pt_MONTANT_HT_860027521)
	
		#DEVISE
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::DEVISE,"EUR")
		
		#DUREE filler de 7 caracteres a espaces
	
		#HEURE
		erreur_860027521 = i_set_art_field(g_iartout10,$Conversion::DATE_ASC,ICAR_LOCAL_860027521)
	
		erreur_860027521 = i_get_art_str(g_iartout10, $Conversion::DATE_STR,pt_ICAR_LOCAL_860027521)
		i_get_sub_str(pt_ICAR_LOCAL_860027521,8,11,pt_TIME_860027521)
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::HEURE,pt_TIME_860027521)
		
		#Z1
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::Z1,pt_LibZ1_860027521)
	
		#Z2
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::Z2,pt_LibZ2_860027521)
	
		#Z3
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroPE_PO::Z3,pt_LibZ3_860027521)
		
		
	FINSI
	
	#mise au format TallegroUP_UR
	SI b_UP_UR_860027521 == 1
	ALORS
		SI ( i_dup_art( g_iartout, C_TallegroUP_UR_860027521, g_iartout2 ) )
		ALORS
			code_errone_860027521 = 0xA0D1
			erreur_860027521 = i_PlvMessEmettre(8602,1,g_iartin,"",3,code_errone_860027521,C_TallegroUP_UR_860027521,C_ARTICLE_860027521)
			SAUT DISTRI_ERR
		FINSI
		#CODART
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::CODART,"E1")
		
		#AID
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::AID,pt_AID_860027521)
		
		#INDAID
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::INDAID,"1")
			
		#CODPRES
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::CODPRES,pt_TPRESDIV_CodPrest_860027521)
		
		#DEBCRED
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::DEBCRED,pt_TPRESDIV_DebCre_860027521)
	
		#DATPREST
		erreur_860027521 = i_set_art_field(g_iartout2,$TallegroUP_UR::DATPREST,ICAR_LOCAL_860027521)
	
		#CODEMET
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::CODEMET,C_CodEmet_860027521)
	
		#MONTANT
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::MONTANT,pt_MONTANT_HT_860027521)
	
		#DEVISE
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::DEVISE,"EUR")
		
		#DUREE filler de 7 caracteres a espaces
	
		#HEURE
		erreur_860027521 = i_set_art_field(g_iartout10,$Conversion::DATE_ASC,ICAR_LOCAL_860027521)
	
		erreur_860027521 = i_get_art_str(g_iartout10, $Conversion::DATE_STR,pt_ICAR_LOCAL_860027521)
		i_get_sub_str(pt_ICAR_LOCAL_860027521,8,11,pt_TIME_860027521)
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::HEURE,pt_TIME_860027521)
		
		#Z1
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::Z1,pt_LibZ1_860027521)
	
		#Z2
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::Z2,pt_LibZ2_860027521)
				
		#Z5
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::Z5,pt_LibZ5_860027521)
	
		#Z6
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::Z6,pt_LibZ6_860027521)
		
		#TYP_OP
		erreur_860027521 = i_set_art_str(g_iartout2,$TallegroUP_UR::TYP_OP,pt_TypeOpServ_860027521)
		
	
	FINSI
FINSI

#\G4R9 lot2


#--------------------------------------------------------------------------
# KENOBI : G3R21
#--------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instKENOBI_860027521) )
ALORS
	SI ( i_dup_art_id(g_iartout,g_iartout5) )
	ALORS
		#trace("Erreur de i_dup_art")
		code_errone_860027521 = 0xA0D0
		code_errone_860027521 = code_errone_860027521 + EFFICACE_860027521
		erreur_860027521 = i_PlvMessEmettre(8602,1,g_iartout,"",3,code_errone_860027521,C_KenobiTwha_860027521,C_ARTICLE_860027521)
		SAUT  DISTRI_ERR
	FINSI
	
	#G4R9 lot2
	#*** Suppression des champs d'entree non contenu dans KENOBI *** 
	erreur_860027521 = i_supprChamp(g_iartout5,"T3TypeOpServ")
	erreur_860027521 = i_supprChamp(g_iartout5,"T3Editeur")
	erreur_860027521 = i_supprChamp(g_iartout5,"T3CodeCSA")
	erreur_860027521 = i_supprChamp(g_iartout5,"T3trxType")
	erreur_860027521 = i_supprChamp(g_iartout5,"T3startPeriod")
	erreur_860027521 = i_supprChamp(g_iartout5,"T3endPeriod")
	erreur_860027521 = i_supprChamp(g_iartout5, "T3ace")	
	#\G4R9 lot2
	
	
	#*** Mise en structure KENOBI *** 
	erreur_860027521 = i_rename_art(g_iartout5, C_KenobiTwha_860027521)

	#*** Ajout Champs  *** 
	# TYPE_CLIENT
	erreur_860027521 = i_ajoutChampNum(g_iartout5, $TkenobiTwha::T4type_client,$TkenobiTwha::TYPE_CLIENT,0)
	erreur_860027521 = i_set_art_str(g_iartout5, $TkenobiTwha::TYPE_CLIENT, pt_TypeClient_860027521)
	erreur_860027521 = i_resize_tlv ( g_iartout5, "T4type_client","TYPE_CLIENT", i_strlen(pt_TypeClient_860027521) )

	# TYPE_ACCES
	erreur_860027521 = i_ajoutChampNum(g_iartout5, $TkenobiTwha::T4type_acces,$TkenobiTwha::TYPE_ACCES,0)
	erreur_860027521 = i_set_art_str(g_iartout5, $TkenobiTwha::TYPE_ACCES, pt_TypeAcces_860027521)
	erreur_860027521 = i_resize_tlv ( g_iartout5, "T4type_acces","TYPE_ACCES", i_strlen(pt_TypeAcces_860027521) )

	# SGTQS
#G4R9 lot2 (champ obligatoire pas d'ajout)
#	erreur = i_ajoutChampNum(g_iartout5, $TkenobiTwha::T4sgtqs,$TkenobiTwha::SGTQS,0)
	erreur_860027521=i_set_art_str(g_iartout5,$TkenobiTwha::SGTQS,pt_SGTQS_860027521)

	# CODE_PREST
	erreur_860027521 = i_ajoutChampNum(g_iartout5, $TkenobiTwha::T4cod_prest,$TkenobiTwha::CODE_PREST,0)
	taille_860027521 = i_get_art_field(g_iartout5, $TkenobiTwha::L4cod_prest)
	erreur_860027521=i_set_art_str(g_iartout5,$TkenobiTwha::CODE_PREST,pt_TPRESDIV_CodPrest_860027521)

	SI i_strlen(pt_TPRESDIV_CodPrest_860027521) < taille_860027521
	ALORS
		erreur_860027521 = i_resize_tlv ( g_iartout5, "T4cod_prest","CODE_PREST", i_strlen(pt_TPRESDIV_CodPrest_860027521) )
	FINSI

	# DATE_LOCALE
#G4R9 lot2 (champ obligatoire pas d'ajout)
#	erreur = i_ajoutChampNum(g_iartout5, $TkenobiTwha::T4date_locale,$TkenobiTwha::DATE_LOCALE,0)
	erreur_860027521=i_set_art_field(g_iartout5,$TkenobiTwha::DATE_LOCALE,ICAR_LOCAL_860027521)

#G4R9 lot2  T3ace supprime avant recopie)
#	# Suppression du champ interne "DATE" 
#	erreur = i_supprChamp(g_iartout5, "T4date")	
#\G4R9 lot2

FINSI

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

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


#G4R9 lot2
#----------------------------------------------------------------------------
# ALLEGRO_NEW
#----------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instALLEGRO_NEW_860027521) )
ALORS
	erreur_860027521=i_stocke_art_iecc(g_iartout2, instALLEGRO_NEW_860027521)
	trace("Emission vers ALLEGRO_NEW reussie")
FINSI
#\G4R9 lot2


#----------------------------------------------------------------------------
# KENOBI - G3R21
#----------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instKENOBI_860027521) )
ALORS
	erreur_860027521=i_stocke_art_iecc(g_iartout5, instKENOBI_860027521)
	trace("Emission vers KENOBI reussie")
FINSI

# G3R24
#----------------------------------------------------------------------------
# ENVOI EN ELIMINE
#----------------------------------------------------------------------------
# G3R24C4
#SI b_ELM > 0
#ALORS
#	SAUT DISTRI_ELM
#FINSI
# \G3R24

#----------------------------------------------------------------------------
# ENVOI EN REDISTRIBUTION
#----------------------------------------------------------------------------
SI b_REDIST_860027521 > 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_860027521,"" )
#ENDIF

erreur_860027521 = i_make_art_rej(g_iartin, g_iartout7, code_rejet_860027521)
erreur_860027521 = 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_860027521,"" )
#ENDIF
erreur_860027521 = i_stocke_art( g_iartin, 0, PT_ELIMINE, 0 )

RETOUR TRAIT_OK

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

POINT DISTRI_REDIST

SI (cpt_redist_860027521 == 0)
ALORS
	SI b_REDIST_860027521 == 1
	ALORS
		erreur_860027521 = i_PlvMessEmettre(8603,1,g_iartin,"",3,pt_LIBELREDIST_860027521,C_ARTICLE_860027521,pt_SGTQS_860027521)
	SINON
		erreur_860027521 = i_PlvMessEmettre(8604,1,g_iartin,"",3,pt_LIBELREDIST_860027521,C_ARTICLE_860027521,pt_SGTQS_860027521)
	FINSI
FINSI

#trace( "__FILE__:__LINE__ : Fin du Pcode de distribution : Stockage en REDISTRIBUTION" )
res_860027521 = i_stocke_art( g_iartin, 0, PT_REDIST|RD_TABLE9_860027521, 0 )

#trace2( "Fin du Pcode de distribution %s ",C_ARTICLE,"" )
RETOUR TRAIT_OK
