DEFINITION C_Article_860026613 "Tfe6dc"
DEFINITION C_InstSYMP_860026613 "SYMP"
DEFINITION C_InstCENTAUREDC_860026613 "CENTAUREDC"
DEFINITION C_TcentaureDC_860026613 "TcentaureDC"
DEFINITION NUMTAB_860026613 1
DEFINITION ZONEMETRO_860026613 7
DEFINITION C_InstCASPER_860026613 "CASPER"
DEFINITION C_Tcasper_860026613 "TcasperTfe6dc"
DEFINITION CCD_Internat_860026613 6
DEFINITION CPT_CPS_Loc_860026613 16
DEFINITION CPT_CPS_RI_860026613 17
DEFINITION C_DATCPS_860026613 "DATCPS" 
DEFINITION TD_SVA_860026613 9
DEFINITION C_INST_ALICE_860026613 "ALICE"
REGISTRE ENTIER module_corr_ok_860026613
REGISTRE ENTIER ddebut_860026613
REGISTRE ENTIER gmt_date_860026613
REGISTRE ENTIER instSYMPH_860026613
REGISTRE ENTIER instCENTAURE_860026613
REGISTRE ENTIER EFFICACE_860026613
REGISTRE ENTIER erreur_860026613
REGISTRE ENTIER info_860026613
REGISTRE ENTIER res_860026613
REGISTRE ENTIER ICAR_REL_860026613
REGISTRE ENTIER ICAR_ABS_860026613
REGISTRE ENTIER dduree_860026613
REGISTRE ENTIER tax_860026613
REGISTRE ENTIER dpivot_860026613
REGISTRE ENTIER EPORTABILITE_860026613
REGISTRE ENTIER SPORTABILITE_860026613
REGISTRE ENTIER CCD_860026613
REGISTRE ENTIER CCD_REEL_860026613
REGISTRE ENTIER MINE_860026613
REGISTRE ENTIER ART_860026613
REGISTRE ENTIER APPLI_860026613
REGISTRE ENTIER DC_CAA_860026613
REGISTRE ENTIER CORR_OK_860026613
REGISTRE ENTIER id_corr_860026613
REGISTRE ENTIER valA_860026613
REGISTRE ENTIER valB_860026613
REGISTRE ENTIER valC_860026613
REGISTRE ENTIER valD_860026613
REGISTRE ENTIER valE_860026613
REGISTRE ENTIER valF_860026613
REGISTRE ENTIER valG_860026613
REGISTRE ENTIER valH_860026613
REGISTRE ENTIER valI_860026613
REGISTRE ENTIER lgr_860026613
REGISTRE ENTIER REJET_860026613
REGISTRE ENTIER code_errone_860026613
REGISTRE ENTIER INF_DEDE_860026613
REGISTRE ENTIER val_INEF_860026613
REGISTRE ENTIER instCASPER_860026613
REGISTRE ENTIER b_NSUC_860026613
REGISTRE ENTIER Date_CPS_860026613
REGISTRE ENTIER instALICE_860026613 
REGISTRE ENTIER longueur_860026613 
REGISTRE ENTIER trait_ok_860026613
REGISTRE ENTIER bREDIST_860026613
REGISTRE ENTIER b_Fact_CPS_Loc_860026613
REGISTRE ENTIER b_Fact_CPS_RI_860026613
REGISTRE ENTIER bREDISTALICE_860026613
REGISTRE POINTEUR pt_NORM_860026613
REGISTRE POINTEUR pt_IDUS_N_860026613
REGISTRE POINTEUR pt_DEDE_N_860026613
REGISTRE POINTEUR pt_COCA_860026613
REGISTRE POINTEUR pt_COCAV_860026613
REGISTRE POINTEUR pt_buffer_860026613
REGISTRE POINTEUR pt_temp_860026613
REGISTRE POINTEUR pt_SGTQS_860026613
REGISTRE POINTEUR pt_BUF_860026613
REGISTRE POINTEUR pt_CodeOp_860026613
REGISTRE POINTEUR pt_TEMP_860026613
REGISTRE POINTEUR pt_TCOMMUT_860026613
REGISTRE POINTEUR pt_INEF_STD_860026613
REGISTRE POINTEUR pt_INEF_COMMUT_860026613
REGISTRE POINTEUR pt_DEDE_DIST_N_860026613
REGISTRE POINTEUR pt_DEDE_860026613
REGISTRE POINTEUR pt_cas_corr_860026613
REGISTRE POINTEUR pt_NSUC_860026613
REGISTRE POINTEUR pt_MESSAGE_860026613
REGISTRE POINTEUR pt_CODE_TARIF_860026613 
REGISTRE POINTEUR pt_TYPE_EDIT_860026613 
REGISTRE POINTEUR pt_LIBELREDIST_860026613
############################################################################
# Pcode de DISTRIBUTION Tfe6dc
# Fichier : Tfe6dc.src
#
# Version : %version: 1.19 %
#
# Date    : %date_modified: 03/04/02 11:05 %
#            le 30/04/02 par URS (NSA)
#
# Distribution :
#    DC sur faisceau entrant non GSM efficace et inefficace
#
# En entree :
#    Article : Tfe6dc  (domaine Dvndc)
#    Header: Txx8he
#
# En sortie:
#    CENTAURE
#    Symphonie
#
# HISTORIQUE :
#	17/06/2002 - PSA - FO1510  : Encapsulation pour le stockage en errone
#	16/07/2002 - RBE : Ajout variables EPORTABILITE et SPORTABILITE
#		           et Modif. mise au format NDEDE
#	02/10.2002 - MCH - FO 20235 : SUP sur FOR
#	07/10/2002 - MCH - FO 20260 : format IDUS_NUM
#	21/10/2002 - PSA - FO50 : traduction du B et C pour le demande
#	28/10/2002 - RBE : specif.4.8 : Modif. CCD en fonction de la portabilite
#	14/10/2002 - RBE : Ajout de l'envoie a APACHE
#	21/11/2002 - RBE : FO115 + Modif. alarme tables externes
#	21/01/2003 - MCH : GIR2C9 : FOR --> FORDC
#	07/04/2003 - RBE : FO245 : recup. de MINE et APPLI si VN8(ART=4)
#	22/07/2003 - DRE - Modif calcul codeoperateur
#	30/07/2003 - MCH - G2R0CJ SCP Correlation
# 	02/09/2003 - RBE - FO392 : Initialisation des variables Pcode
#	22/10/2003 - MCH - FO424 : palliatif pour bug de lireChpCdc
#	18/12/2003 - RBE : FO528 : Modif. initialisation de pointeurs
#	06/01/2004 - PSA - FO529 : inhibition envoi en correlation (Cg)
# 	02/06/2004 - NSA - G2R0Cl: integration des codes d erreurs
#	04/10/2004 - JLG - G2R0Caa : FORDC --> CENTAUREDC
#	24/01/2005 - RBE - G2R0Cnn : fusion Cn + Caa
#	09/05/2005 - JLG : G2R1Ch REJET2
#	09/05/2005 - JLG - FO1276
#	30/05/2005 - JLG - Fusion G2R1Ca
#	21/07/2005 - PSA - Cj : inef speciaux
#				DC_MAYOTTE_EXPE : le DC est stocke en divers au traitement. Les criteres de distri ne sont donc pas impactes.
#	25/10/2005 - PSA - G2R2Co : FO 1538
# 	25/11/2005 - PKH - G2R2Ca : Modification Apache alimente par les dc inefficaces des DC N0 URGENTS
#	05/01/2006 - DRE - FO1666 G2R2Ca Remplacement de i_retrait_tlv() par i_supprChamp()
#	27/09/2006 - JLG : G2R2Cv REJET3 (119 enfance maltraitee)
#	25/10/2006 - JLG - G2R2Cv modif pt_NORM car trop court
# 	06/11/2007 - PKH - G3R3Cv ajout REJET = 14 dans le cadre des appels 118 PTD & kiosque
#	25/03/2008 - JLG - ParamFTSA-G3R6 FO2359 evol spec S3F1
# 	08/11/2011 - RHE - G3R23 DC SU en deprt pour CASPER
# 	01/12/2011 - RHE - G3R23 QC553 DC SU en deprt pour CASPER avec DEDENSUC
#	11/02/2013 - DRE - G4R02 : QC677, rechercher SCP-SRP uniquement si Dde non international
#	28/05/2013 - THE - G4R3 suppression envoi vers APACHE
#	25/03/2014 - DRE - G4R6 : Lot2 prise en compte des nouveaux Type Control envoy?s par la base (C+S )
#	24/04/2014 - DRE - G4R6 QC807
#	13/05/2014 - DRE - G4R6 QC817
#	24/06/2014 - DRE - G4R7 QC829
#	10/12/2014 - DRE - G4R8 QC862 : pb d'affichage du champ ECC_FACT sur l'ECC SYMPHONIE + envoi a CASPER au 1er tour de Redistribution 
#
############################################################################

############################################################################
# Declarations
############################################################################
#Constantes pour message d alarme


# G3R23
#DRE QC677
#DRE G4R6 lot2
#\DRE G4R6 lot2


# VerifPcode
# G3R23
#DRE G4R6 lot2
#DRE - G4R7 QC829
#QC862


# VerifPcode
# G3R23
# DRE G4R6 lot2


# Initialisation
val_INEF_860026613 = 0
#G4R3 instAPACHE	= 0
instSYMPH_860026613 	= 0
instCENTAURE_860026613  	= 0
EPORTABILITE_860026613 	= 0
SPORTABILITE_860026613 	= 0
CCD_860026613 		= 255
CCD_REEL_860026613	= 255
ART_860026613		= 0xFFFFFFFF
MINE_860026613		= 0xFFFFFFFF
APPLI_860026613		= 0xFFFFFFFF
DC_CAA_860026613		= 0
CORR_OK_860026613 	= 0

module_corr_ok_860026613	= 0
REJET_860026613		= 0
INF_DEDE_860026613	= 0
#DRE G4R6 lot2
Date_CPS_860026613 = 0
instALICE_860026613 = -1
tax_860026613 = 0
longueur_860026613 = 0
bREDIST_860026613 = 0
#DRE - G4R7 QC829
b_Fact_CPS_Loc_860026613 = 0
b_Fact_CPS_RI_860026613 = 0
#QC862
bREDISTALICE_860026613 = 0


# Allocation de memoire
# Buffeur de 16 octets + 1 (pour le /0 final)
#G4R3 pt_URGENCE_APACHE	 = "0569587521589478585865"
#modif pt_NORM car trop court
pt_NORM_860026613			 = "389389389389389389389389389389389389389389389389389389"

pt_IDUS_N_860026613 		 = "44444444444444444444444444444444444"
pt_DEDE_N_860026613 		 = "555555555555555555555555555555555555555"
pt_COCA_860026613			 = "432112345"
pt_COCAV_860026613		 = "234512345"
pt_buffer_860026613 		 = "123456789012345612345 "
pt_temp_860026613 		 = "pt_temp99999999999123456789"
pt_SGTQS_860026613		 = "3030303030303030303030303030303030"
pt_BUF_860026613 			 = "12345678912345678912345612345"
pt_CodeOp_860026613 		 = "04567890123456789012345678912312345"
pt_TEMP_860026613 		 = "23456765489043556764546890875612345"
#pt_TEMP2 		 = "65675672342342346765436890875612345"
pt_TCOMMUT_860026613		 = "20202020202020202020202020202012345"
pt_INEF_STD_860026613		 = "60606060606060606060606060606012345"
#G4R3 pt_CODE_APACHE		 = "70707070707070707070707070707012345"
#G4R3 pt_INEF_APACHE		 = "80808080808080808080808080808012345"
pt_INEF_COMMUT_860026613		 = "90909090909090909090909090909012345"
#pt_XY			 = "089876"
pt_DEDE_DIST_N_860026613		 = "86456778567876789675"
pt_DEDE_860026613			 = "46564786674576789675"
pt_cas_corr_860026613		 = "66666666666666666666"

pt_NSUC_860026613 = "pt_NSUC1234567890123456789012345"
# DRE G4R6 lot2
pt_MESSAGE_860026613 = "pt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGE"
pt_LIBELREDIST_860026613	 = "pt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDISTpt_LIBELREDIST"
pt_CODE_TARIF_860026613 	 = "pt_CODE_TARIFpt_CODE_TARIF"
pt_TYPE_EDIT_860026613	 = "pt_TYPE_EDIT"


# initialisation
# VerifPcode
#G4R3 i_strcpy(pt_URGENCE_APACHE,"")
i_strcpy(pt_NORM_860026613,"")
i_strcpy(pt_IDUS_N_860026613,"")
i_strcpy(pt_DEDE_N_860026613,"")
i_strcpy(pt_COCA_860026613,"")
i_strcpy(pt_COCAV_860026613,"")
i_strcpy(pt_buffer_860026613,"")
i_strcpy(pt_temp_860026613,"")
i_strcpy(pt_SGTQS_860026613,"")
i_strcpy(pt_BUF_860026613,"")
i_strcpy(pt_CodeOp_860026613,"")
i_strcpy(pt_TEMP_860026613,"")
i_strcpy(pt_TCOMMUT_860026613,"")
i_strcpy(pt_INEF_STD_860026613,"")
#G4R3 i_strcpy(pt_CODE_APACHE,"")
#G4R3 i_strcpy(pt_INEF_APACHE,"")
i_strcpy(pt_INEF_COMMUT_860026613,"")
i_strcpy(pt_DEDE_DIST_N_860026613,"")
i_strcpy(pt_DEDE_860026613,"")
i_strcpy(pt_cas_corr_860026613,"")

i_strcpy(pt_NSUC_860026613,"")
i_strcpy(pt_SGTQS_860026613,"")
# DRE G4R6 lot2
i_strcpy(pt_MESSAGE_860026613, "")
i_strcpy(pt_LIBELREDIST_860026613, "")
i_strcpy(pt_CODE_TARIF_860026613 , "    ")
i_strcpy(pt_TYPE_EDIT_860026613 , " ")



# DRE G4R6 Lot3
###################################################################################
################    trait_ok : nb de passage en redistribution   ##################
###################################################################################
trait_ok_860026613 = -1
trait_ok_860026613 = i_LireRedistCpt()
#\DRE G4R6 Lot3


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

# Variable fonctionnelle EFFICACE
trace("[Tfe6dc_dis] Calcul de EFFICACE")

#Initialisation de EFFICACE:
EFFICACE_860026613 = 0

SI ( (i_valid_field_n(g_iartin,$Tfe6dc::T3cab))||(i_valid_field_n(g_iartin,$Tfe6dc::T3cap2)) )
ALORS
	trace("[Tfe6dc_dis]Champ TAP present ")

	#Recuperation du bit B de TAP:
	info_860026613 = i_get_bit_val( i_get_field_val(g_iartin,"TAP"),7)
	trace1("[Tfe6dc_dis]BitB=<%d>",info_860026613)

	#SI le bit B de TAP vaut 0
	SI(!info_860026613)
	ALORS
		EFFICACE_860026613 = 1
	SINON
		EFFICACE_860026613 = 0
	FINSI
SINON
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + 2
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "TAP non valide" )
	SAUT DISTRI_ERR
FINSI
#trace1("[Tfe6dc_dis]EFFICACE=%d", EFFICACE)

#--------------------------
# REJET
#--------------------------

SI (i_valid_field_n(g_iartin,$T4rejet))
ALORS
	REJET_860026613 = i_get_art_field(g_iartin,$REJET)
FINSI

#DRE - G4R7 QC829
SI REJET_860026613 == CPT_CPS_Loc_860026613
ALORS
	b_Fact_CPS_Loc_860026613 = 1
FINSI
SI REJET_860026613 == CPT_CPS_RI_860026613
ALORS
	b_Fact_CPS_RI_860026613 = 1
FINSI
#\DRE - G4R7 QC829


#trace1("[Tfe6dc_dis]REJET = %d",REJET)

#--------------------------
# CCD
#--------------------------

# Le CCD est rajoute dans le pcode de traitement
SI ( i_valid_field_n( g_iartin, $CCD ) )
ALORS
	CCD_860026613 = i_get_art_field( g_iartin, $CCD )
	#trace1( "[Tfe6dc_dis] Tta6dc - CCD = <%d>", CCD )
FINSI

dpivot_860026613 = i_get_art_field( g_iartin, $Tfe6dc::dpivot)


INF_DEDE_860026613=i_get_art_field(g_iartin, $Tfe6dc::INF_DEDE)

#DRE G4R6 Lot2
#erreur = i_get_art_str( g_iartin, $Tfe6dc::NDE, pt_NORM )
#trace2( "[Tfe6dc_dis] initialisation de NDEDE a <%s>", pt_NORM, "" )
#i_replace_str(pt_NORM,"BCDE","AJSC",pt_NORM)

i_strcpy(pt_SGTQS_860026613,i_LireEECSGTQS(g_ieec))
#trace2("[Tfe6dc_dis]Apres LireEECSGTQS=%s", pt_SGTQS, "")

#\DRE G4R6 Lot2
val_INEF_860026613=i_get_art_field(g_iartin, $Tfe6dc::INEF)

############################################################################
# Envoi en Correlation
############################################################################

erreur_860026613=i_get_art_str(g_iartin, $NDE, pt_DEDE_860026613)

res_860026613 = i_set_art_str(g_iartin,$CORR_NDE,pt_DEDE_860026613)
res_860026613 = i_strlen(pt_DEDE_860026613)
res_860026613 = res_860026613 - 9
i_get_sub_str(pt_DEDE_860026613,res_860026613,-1,pt_DEDE_DIST_N_860026613)

# Inhibition de la correlation
SI ((module_corr_ok_860026613) && (g_ipt == PT_OK) && EFFICACE_860026613 && (!i_strplcmp(pt_DEDE_860026613,"84008",0,5) || !i_strplcmp(pt_DEDE_DIST_N_860026613,"81",0,2) || !i_strplcmp(pt_DEDE_DIST_N_860026613,"82",0,2)))
ALORS
	trace("[Tfe6dc_dis]===== DIST: Article mis en CORRELE =====")
	# Initialisation de la table des couples de correlation
	erreur_860026613 = i_initialiserPrmCorr(g_iartin)
	trace1("[Tfe6dc_dis]CORR_DIST - code retour i_initialiserPrmCorr %d", erreur_860026613)

	# Ajouter le couplet NXXxxx, yyyy a la table de couplets
	trace("[Tfe6dc_dis]CORR_DIST - Ajout cas correlation")
	i_strcpy(pt_cas_corr_860026613,"SCP_1")

	# Calcul de id_corr : NDR
	lgr_860026613 = i_get_art_fieldlength(g_iartin,$NDR)

	SI (lgr_860026613 >= 1)
	ALORS
		valI_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-1)
	SINON
		valI_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 2)
	ALORS
		valH_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-2)
	SINON
		valH_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 3)
	ALORS
		valG_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-3)
	SINON
		valG_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 4)
	ALORS
		valF_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-4)
	SINON
		valF_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 5)
	ALORS
		valE_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-5)
	SINON
		valE_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 6)
	ALORS
		valD_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-6)
	SINON
		valD_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 7)
	ALORS
		valC_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-7)
	SINON
		valC_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 8)
	ALORS
		valB_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-8)
	SINON
		valB_860026613 = 0
	FINSI

	SI (lgr_860026613 >= 9)
	ALORS
		valA_860026613 = i_get_art_fieldtab(g_iartin,$NDR,lgr_860026613-9)
	SINON
		valA_860026613 = 0
	FINSI

	SI ( (valA_860026613 < 0) || (valA_860026613 > 9))
	ALORS
		valA_860026613 = 0
	FINSI

	SI ( (valB_860026613 < 0) || (valB_860026613 > 9))
	ALORS
		valB_860026613 = 0
	FINSI

	SI ( (valC_860026613 < 0) || (valC_860026613 > 9))
	ALORS
		valC_860026613 = 0
	FINSI

	SI ( (valD_860026613 < 0) || (valD_860026613 > 9))
	ALORS
		valD_860026613 = 0
	FINSI

	SI ( (valE_860026613 < 0) || (valE_860026613 > 9))
	ALORS
		valE_860026613 = 0
	FINSI

	SI ( (valF_860026613 < 0) || (valF_860026613 > 9))
	ALORS
		valF_860026613 = 0
	FINSI

	SI ( (valG_860026613 < 0) || (valG_860026613 > 9))
	ALORS
		valG_860026613 = 0
	FINSI

	SI ( (valH_860026613 < 0) || (valH_860026613 > 9))
	ALORS
		valH_860026613 = 0
	FINSI

	SI ( (valI_860026613 < 0) || (valI_860026613 > 9))
	ALORS
		valI_860026613 = 0
	FINSI
	id_corr_860026613 = (valA_860026613*100000000) + (valB_860026613*10000000) + (valC_860026613*1000000) + (valD_860026613*100000) + (valE_860026613*10000) + (valF_860026613*1000) + (valG_860026613*100) + (valH_860026613*10) + valI_860026613

	trace2("[Tfe6dc_dis]CORR_DIST - cas: %s", pt_cas_corr_860026613, "")
	trace1("[Tfe6dc_dis]CORR_DIST - id: %d", id_corr_860026613)
	erreur_860026613 = i_ajouterPrmCorr(g_iartin, pt_cas_corr_860026613, id_corr_860026613)
	trace1("[Tfe6dc_dis]CORR_DIST - code retour i_ajouterPrmCorr %d", erreur_860026613)

	erreur_860026613 = i_stocke_art(g_iartin, 0, PT_CORRELE, 0)
FINSI

SI ( g_ipt == PT_CORRELE )
ALORS
	CORR_OK_860026613 = 1
	#type_corr = i_get_art_field(g_iartin,$CORR_OK)
	# VerifPcode
	#erreur = i_get_art_str(g_iartin,$XY,pt_XY)
FINSI

# ICAR_REL et ICAR_ABS
ICAR_ABS_860026613 = i_get_art_field(g_iartin,$DATE)
SI (ICAR_ABS_860026613 == -1)
ALORS
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "i_get_art_field/DATE" )
	SAUT DISTRI_ERR
FINSI
ICAR_REL_860026613 = i_date_locale(g_ieec,g_iartin,ICAR_ABS_860026613)

SI ( ICAR_REL_860026613 == -1 )
ALORS
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "i_date_locale/ICAR_ABS" )
	SAUT DISTRI_ERR
FINSI

# controle des metachamps

SI (i_get_art_field(g_iartin,$ddebut) == -1)
ALORS
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "i_get_art_field/ddebut" )
	SAUT DISTRI_ERR
FINSI

SI (i_get_art_field(g_iartin,$dfin) == -1)
ALORS
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "i_get_art_field/dfin" )
	SAUT DISTRI_ERR
FINSI

dduree_860026613 = i_get_art_field( g_iartin, $Tfe6dc::dduree )
tax_860026613    = i_get_art_field( g_iartin, $Tfe6dc::tax )
#dpivot = i_get_art_field( g_iartin, $Tfe6dc::dpivot)

ddebut_860026613 = i_get_art_field(g_iartin,$ddebut)

SI (ddebut_860026613 == -1)
ALORS
	code_errone_860026613 = 0xA080
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, "i_get_art_field/ddebut" )
	SAUT DISTRI_ERR
FINSI

gmt_date_860026613 = i_DHgetCe2gTime(NUMTAB_860026613,ZONEMETRO_860026613,ddebut_860026613)

erreur_860026613 = i_get_art_str( g_iartin, $Tfe6dc::INEF, pt_INEF_COMMUT_860026613 )


#G3R23
# NSUC
#DRE G4R6 lot2  remplace pt_BUF par pt_NORM
#erreur = i_get_art_str( g_iartin, $NDE, pt_BUF )
#erreur = i_get_art_str( g_iartin, $NDE, pt_NORM )
SI ( i_valid_field_n(g_iartin, $NORMAL ) )
ALORS
	erreur_860026613 = i_get_art_str(g_iartin, $NORMAL, pt_NORM_860026613 )
SINON
	SI ( i_valid_field_n(g_iartin, $NDE ) )
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin, $NDE, pt_NORM_860026613)
	FINSI
FINSI
#\DRE G4R6 lot2  remplace pt_BUF par pt_NORM
		

#G3R23 QC553
res_860026613 = i_strlen(pt_NORM_860026613)
SI (res_860026613 > 9)
ALORS
	i_get_sub_str(pt_NORM_860026613,-9,-1,pt_NORM_860026613)
FINSI

i_strcpy(pt_NSUC_860026613, i_get_tab_field("TNSUC", gmt_date_860026613, pt_NORM_860026613))
SI (i_strcmp(pt_NSUC_860026613,"") != 0 )
ALORS
	b_NSUC_860026613 = 1
	SI (i_strcmp(LCASE_860026233(pt_NSUC_860026613),"vide") == 0 )
	ALORS
		i_strcpy(pt_NSUC_860026613," ")
	FINSI
FINSI

trace2("Recherche NSUC - NDE   : <%s>", pt_NORM_860026613, "")
trace1("Recherche NSUC - b_NSUC : %x",b_NSUC_860026613)
#\DRE G4R6 lot2  remplace pt_BUF par pt_NORM

#DRE G4R6 lot2 
#####################################################################
# 	              Traitement C+S (CPS)

erreur_860026613 = i_cree_art("Conversion",g_iartout10)


#DRE - G4R7 QC829
#SI (REJET==CPT_CPS_Loc)
SI b_Fact_CPS_Loc_860026613 || b_Fact_CPS_RI_860026613
ALORS

	i_strcpy(pt_TEMP_860026613, i_get_tab_field( "TDATCPS", gmt_date_860026613, C_DATCPS_860026613 ))

	erreur_860026613 = i_set_art_str (g_iartout10,$Conversion::DATE_STR,pt_TEMP_860026613)
	Date_CPS_860026613 = i_get_art_field(g_iartout10, $Conversion::DATE_ASC)
			
	SI ddebut_860026613 < Date_CPS_860026613
	ALORS
		erreur_860026613 = i_format_str2(pt_MESSAGE_860026613," AR <%s> avec date DC inferieure a la date d'activation <%s> de la facturation CPS",pt_NORM_860026613,pt_TEMP_860026613)
		code_errone_860026613 = 0xA080
		code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
		erreur_860026613 = i_PlvMessEmettre( 8599, 1, g_iartin,"", 3,code_errone_860026613, C_Article_860026613, pt_MESSAGE_860026613 )
		SAUT DISTRI_DIV
	SINON
		#######################################
		#  Soumission de la requete de consultation d'une table de distribution ALICE
		#######################################
#DRE G4R6 QC807 pt_NDE remplace par pt_NORM
#		i_strcpy(pt_NDE,pt_NORM)
		SI i_strplcmp (pt_NORM_860026613,"0",0,1) == 0
		ALORS
			i_get_sub_str(pt_NORM_860026613,1,-1,pt_NORM_860026613) 	
		FINSI
		longueur_860026613 = i_conv_ascii_dcb (pt_NORM_860026613, pt_TEMP_860026613)
		SI (i_EnvoiReqConsTabDist( TD_SVA_860026613,gmt_date_860026613,pt_TEMP_860026613,longueur_860026613,0,1) != 0)
		ALORS
			#trace("Erreur i_EnvoiReqConsTabDist ALICE")
#QC862
#			bREDIST = 1
			bREDISTALICE_860026613 = 1
			i_strcpy(pt_LIBELREDIST_860026613,"Echec sur i_EnvoiReqConsTabDistDouble ALICE ")
		FINSI
		
		#######################################
		# Recherche de l'instance ECC ALICE
		#######################################
		instALICE_860026613 = i_LireInstanceECC(C_INST_ALICE_860026613)
		SI (!instALICE_860026613)
		ALORS
			#trace("Pas d'instance pour ALICE !")
			erreur_860026613 = i_PlvMessEmettre(8501,1,g_iartin,"",3,C_INST_ALICE_860026613,C_Article_860026613,g_ieec)
			SAUT DISTRI_ERR
		FINSI
		#trace1("instALICE  =<%d>",instALICE)	

		#######################################
		# Lecture Resultat requete ALICE
		#######################################
		erreur_860026613 = i_LireReqConsTabDist()
		#trace1("RETOUR i_LireReqConsTabDist retour requette ALICE, erreur=<%d>",erreur)
		SI ( erreur_860026613 != 0 )
		ALORS
			#trace1( "Erreur i_LireReqConsTabDist ALICE: <%d>", erreur)
#QC862
#			bREDIST = 1
			bREDISTALICE_860026613 = 1
			i_strcpy(pt_LIBELREDIST_860026613,"Echec sur i_LireReqConsTabDistDouble ALICE ")
		FINSI
		res_860026613 = i_LireInfoECC( instALICE_860026613, 0 )
		
		SI (res_860026613 != 0)
		ALORS
			# AR present dans ALICE
			erreur_860026613 = i_LireChaineInfo( res_860026613, 0, 4, pt_BUF_860026613 )
			SI i_strcmp(pt_BUF_860026613,"") != 0
			ALORS
				i_strcpy(pt_CODE_TARIF_860026613,pt_BUF_860026613)
			SINON
				# info complementaire CODE_TARIF vide
#QC862
#				bREDIST = 1
				bREDISTALICE_860026613 = 1
				erreur_860026613 = i_format_str2(pt_LIBELREDIST_860026613," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM_860026613,0)
			FINSI
			
			erreur_860026613 = i_LireChaineInfo( res_860026613, 4, 1, pt_BUF_860026613 )
			SI i_strcmp(pt_BUF_860026613,"") != 0
			ALORS
				i_strcpy(pt_TYPE_EDIT_860026613,pt_BUF_860026613)
			SINON
				# info complementaire TYPE_EDIT vide
#QC862
#				bREDIST = 1
				bREDISTALICE_860026613 = 1
				erreur_860026613 = i_format_str2(pt_LIBELREDIST_860026613," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NORM_860026613,0)
			FINSI
		SINON
#QC862
#			bREDIST = 1
			bREDISTALICE_860026613 = 1
			erreur_860026613 = i_format_str2(pt_LIBELREDIST_860026613," AR <%s> non trouve dans ALICE",pt_NORM_860026613,0)
		FINSI
	FINSI
FINSI
#\DRE G4R6 lot2



#DRE QC677
SI CCD_860026613 != CCD_Internat_860026613
ALORS
	# Portabilite
	erreur_860026613=i_get_art_str(g_iartin,$NDE,pt_BUF_860026613)
	pt_CodeOp_860026613 = CodeOperateur_860026233(gmt_date_860026613, pt_BUF_860026613)
	SI (!i_strcmp(pt_CodeOp_860026613, "84208"))
	ALORS
		EPORTABILITE_860026613 = 1
	SINON
		SI ( pt_CodeOp_860026613 != g_inull )
		ALORS
			SPORTABILITE_860026613 = 1
		FINSI
	FINSI
FINSI
#---------------------------------------------------------------------------
# Variable fonctionnelle CCD_REEL
#---------------------------------------------------------------------------

SI (EPORTABILITE_860026613 == 1)
ALORS
	CCD_REEL_860026613 = 212
SINON
	SI (SPORTABILITE_860026613 == 1)
	ALORS
		CCD_REEL_860026613 = 213
	SINON
		CCD_REEL_860026613 = CCD_860026613
	FINSI
FINSI
#FIN DRE QC677
trace1("[Tfe6dc_dis]PORTABILITE ENTRANTE=<%d>", EPORTABILITE_860026613)
trace1("[Tfe6dc_dis]PORTABILITE SORTANTE=<%d>", SPORTABILITE_860026613)
trace1("[Tfe6dc_dis]CCD REEL = <%d>", CCD_REEL_860026613)


#INEFF et la com est assurree par un CAA
SI (!EFFICACE_860026613)
ALORS
	# recuperation des champs APPLI MINE et ART de l'entete de bloc
	ART_860026613 = i_bloc_V1V2_recupererIdent(ART_BLOC_V1V2)

	SI (ART_860026613 == 4)
	ALORS
		MINE_860026613 = i_bloc_V1V2_recupererIdent(MINE_BLOC_V1V2)
		APPLI_860026613 = i_bloc_V1V2_recupererIdent(APPLI_BLOC_V1V2)
	FINSI

	trace1("[Tfe6dc_dis]champ ART : %x",ART_860026613)
	trace1("[Tfe6dc_dis]champ MINE : %x",MINE_860026613)
	trace1("[Tfe6dc_dis]champ APPLI : %x",APPLI_860026613)

	pt_TCOMMUT_860026613 = type_commut_860026233("APA1", pt_SGTQS_860026613, dpivot_860026613)

	SI (pt_TCOMMUT_860026613 == g_inull)
	ALORS
		erreur_860026613 = i_format_str2(pt_TEMP_860026613," %s",pt_SGTQS_860026613,0)
		erreur_860026613 = i_PlvMessEmettre(8505,2,g_iartin,"",3,"Tfe6dc/type_commut",pt_TEMP_860026613,g_ieec)
	SINON
		pt_INEF_STD_860026613 = inef_std_860026233("APA2", pt_TCOMMUT_860026613, pt_INEF_COMMUT_860026613, dpivot_860026613)

		SI ( pt_INEF_STD_860026613 == g_inull)
		ALORS
			trace("[Tfe6dc_dis]Code inef absent dans la table")
			erreur_860026613 = i_format_str2(pt_TEMP_860026613," %s",pt_INEF_COMMUT_860026613,0)
			erreur_860026613 = i_PlvMessEmettre(8505,2,g_iartin,"",3,"Tfe6dc/inef_std",pt_TEMP_860026613,g_ieec)
		SINON
			DC_CAA_860026613=1
		FINSI
	FINSI

	trace2("[Tfe6dc_dis] Type de commutateur <%s>", pt_TCOMMUT_860026613, "")
	trace2("[Tfe6dc_dis] Code inefficace standard <%s>", pt_INEF_STD_860026613, "")
FINSI

############################################################################
# Envoi requetes Table de Distribution
############################################################################

# Sans objet

############################################################################
# Controles
############################################################################

# Sans objet

############################################################################
# Recherche Instances des ECC
############################################################################

#---------------------------------------------------------------------------
# SYMP
#---------------------------------------------------------------------------
instSYMPH_860026613=i_LireInstanceECC(C_InstSYMP_860026613)
trace1("[Tfe6dc_dis]instSYMPH=<%d>",instSYMPH_860026613)

SI (!instSYMPH_860026613)
ALORS
	code_errone_860026613 = 0xA0B0
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026613,C_InstSYMP_860026613,C_Article_860026613)
	SAUT DISTRI_ERR
SINON
#DRE G4R6 lot2 
#	SI ( !CORR_OK )
	SI ( !CORR_OK_860026613 ) && trait_ok_860026613 == 0
	ALORS
		# Ajout de l'ECC SYMPHONIE a la liste courante des ECC:
		res_860026613 = i_AjouterCouranteECC(instSYMPH_860026613)
		trace1("[Tfe6dc_dis]instSYMP=<%d>",instSYMPH_860026613)
	FINSI
FINSI

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------

instCENTAURE_860026613 = i_LireInstanceECC(C_InstCENTAUREDC_860026613)
trace1("[Tfe6dc_dis]instCENTAURE=<%d>",instCENTAURE_860026613)
SI ( ! instCENTAURE_860026613 )
ALORS
	code_errone_860026613 = 0xA0B0
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026613,C_InstCENTAUREDC_860026613,C_Article_860026613)
	SAUT DISTRI_ERR
FINSI

#---------------------------------------------------------------------------
# #G4R3 APACHE_DC
#---------------------------------------------------------------------------

#G4R3 instAPACHE = i_LireInstanceECC(C_InstAPACHE_DC)
#G4R3 SI (!instAPACHE)
#G4R3 ALORS
#G4R3 	trace("[Tfe6dc_dis]Pas d'instance pour APACHE_DC !")
#G4R3 	code_errone = 0xA0B0
#G4R3 	code_errone = code_errone + EFFICACE
#G4R3 	erreur = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone,C_InstAPACHE_DC,C_Article)
#G4R3 	SAUT DISTRI_ERR
#G4R3 FINSI
#G4R3 trace1("[Tfe6dc_dis]instAPACHE=<%d>",instAPACHE)

#G3R23
# CASPER
instCASPER_860026613 = i_LireInstanceECC(C_InstCASPER_860026613)
SI (!instCASPER_860026613)
ALORS
	trace("[Tfe6dc_dis]Pas d'instance pour CASPER !")
	code_errone_860026613 = 0xA0B0
	code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
	erreur_860026613 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026613,C_InstCASPER_860026613,C_Article_860026613)
	SAUT DISTRI_ERR
FINSI

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

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

SI ( !i_ChercherCouranteECC(instSYMPH_860026613) )
ALORS
	# Duplication article en entree
	trace("[Tfe6dc_dis]Stockage vers SYMPHONIE")
	SI (i_dup_art_id(g_iartin,g_iartout))
	ALORS
		code_errone_860026613 = 0xA0D0
		code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
		erreur_860026613 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026613,"pour Symphonie",C_Article_860026613)
		SAUT DISTRI_ERR
	FINSI

	# Renommage en Tsymtfe6dc si EFFICACE ou
	# en Tsymtfe6In si non EFFICACE :

	SI ( i_valid_field_n(g_iartin,$Tfe6dc::T3ce) )
	ALORS
		#trace("[Tfe6dc_dis]Avant i_retrait_tlv T3ce")
		erreur_860026613 = i_supprChamp(g_iartout,"T3ce")
	FINSI

	SI (EFFICACE_860026613)
	ALORS
		trace("[Tfe6dc_dis] Renommage Tsymtfe6dc")
		erreur_860026613=i_rename_art(g_iartout,"Tsymtfe6dc")

		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6dc::T4ccd,$Tsymtfe6dc::CCD, 0)
		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6dc::T4sgtqs,$Tsymtfe6dc::SGTQS, 0)
		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6dc::T4eccfact,$Tsymtfe6dc::ECC_FACT, 0)

		erreur_860026613=i_set_art_field(g_iartout,$Tsymtfe6dc::DATE,i_get_art_field(g_iartin,$DATE))
	SINON
		trace("[Tfe6dc_dis] Renommage Tsymtfe6In")

		erreur_860026613=i_rename_art(g_iartout,"Tsymtfe6In")

		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6In::T4ccd,$Tsymtfe6In::CCD, 0)
		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6In::T4sgtqs,$Tsymtfe6In::SGTQS, 0)
		erreur_860026613 = i_ajoutChampNum( g_iartout, $Tsymtfe6In::T4eccfact,$Tsymtfe6In::ECC_FACT, 0)

		erreur_860026613=i_set_art_field(g_iartout,$Tsymtfe6In::DATE,i_get_art_field(g_iartin,$DATE))
	FINSI
FINSI

# Retrait de l'enveloppe optionnelle E_Tfe6dc:
#erreur=i_del_opt()

############################################################################
# Attente requetes Table de Distribution
############################################################################

# Recuperation bloquante des resultats de la derniere requete asynchrone
# Remarque: placer le plus de code possible avant ce point, pour optimiser le temps CPU

# Sans objet

############################################################################
# Critere de distribution
############################################################################

#---------------------------------------------------------------------------
# Criteres communs
#---------------------------------------------------------------------------

# Sans objet

trace1("[Tfe6dc_dis] instCENTAURE=%d", instCENTAURE_860026613)

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------
# modif G2R1Ch rejet2 : si efficace et CENTAUREDC et !REJET2 sont vrais
# Inhibition de la correlation

#DRE G4R6 lot2 (CPT_CPS_RI = 17)
#SI ( (instCENTAURE>0) && ( EFFICACE ) && (REJET!=2) && (REJET!=3) && (REJET != 14))
#QC862
#SI bREDIST == 0
SI bREDIST_860026613 == 0 && bREDISTALICE_860026613 == 0
ALORS
#DRE G4R6 QC817
#	SI (EFFICACE && (REJET!=CPT_CPS_RI) && (REJET!=2) && (REJET!=3) && (REJET != 14))
	SI (EFFICACE_860026613 && (REJET_860026613!=2) && (REJET_860026613!=3) && (REJET_860026613 != 14))
	ALORS
		# Ajout ECC a la liste courante des destinataires
		res_860026613 = i_AjouterCouranteECC(instCENTAURE_860026613)
		trace1("[Tfe6dc_dis] CENTAUREDC ajoute a la liste des ECC: %d",res_860026613)
	FINSI
FINSI

#################################################################################
# #G4R3 Tests des criteres envoi a APACHE_DC
#################################################################################
#Supprime G4R3

#G3R23
#################################################################################
# Tests des criteres envoi a CASPER
#################################################################################
#DRE G4R6 lot2
SI trait_ok_860026613 == 0
ALORS
	SI (b_NSUC_860026613 == 1)
	ALORS
		erreur_860026613=i_AjouterCouranteECC(instCASPER_860026613)
	FINSI
FINSI

############################################################################
# Validation de la liste des ECCs destinatrices
############################################################################

erreur_860026613 = i_ValiderListeECC( 0, 0, 0, 0)

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

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

# Sans objet

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

SI (!i_ChercherCouranteECC(instSYMPH_860026613))
ALORS
	#pt_SGTQS=i_LireEECSGTQS( g_ieec )

#QC862
#	SI (EFFICACE)
	SI (EFFICACE_860026613 && bREDISTALICE_860026613 == 0)
	ALORS
		#champ SGTQS
		erreur_860026613 = i_set_art_str(g_iartout, $Tsymtfe6dc::SGTQS, pt_SGTQS_860026613)

		#ECC_FACT
		SI (REJET_860026613 != 2 && REJET_860026613 != 3)
		ALORS
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6dc::ECC_FACT, "CENTAURE")
		SINON
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6dc::ECC_FACT, " ")
		FINSI

		# CCD
		erreur_860026613=i_set_art_field(g_iartout, $Tsymtfe6dc::CCD, CCD_REEL_860026613 )
# DRE G4R6 Lot2
		# TYPE_EDIT
		SI i_strcmp(pt_TYPE_EDIT_860026613," ") != 0
		ALORS
			erreur_860026613 = i_ajoutChampNum(g_iartout,$Tsymtfe6dc::T4type_edit,$Tsymtfe6dc::TYPE_EDIT,0)
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6dc::TYPE_EDIT, pt_TYPE_EDIT_860026613)
		FINSI
	
		# CODE_TARIF
		SI i_strcmp(pt_CODE_TARIF_860026613,"    ") != 0
		ALORS
			erreur_860026613 = i_ajoutChampNum(g_iartout,$Tsymtfe6dc::T4code_tarif,$Tsymtfe6dc::CODE_TARIF,0)
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6dc::CODE_TARIF, pt_CODE_TARIF_860026613)
		FINSI
# \DRE G4R6 Lot2

	SINON
		#champ SGTQS
		erreur_860026613 = i_set_art_str(g_iartout, $Tsymtfe6In::SGTQS, pt_SGTQS_860026613)

		#ECC_FACT
		erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6In::ECC_FACT, "")

		# CCD
		erreur_860026613=i_set_art_field(g_iartout, $Tsymtfe6In::CCD, CCD_REEL_860026613 )
# DRE G4R6 Lot2
		# TYPE_EDIT
		SI i_strcmp(pt_TYPE_EDIT_860026613," ") != 0
		ALORS
			erreur_860026613 = i_ajoutChampNum(g_iartout,$Tsymtfe6In::T4type_edit,$Tsymtfe6In::TYPE_EDIT,0)
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6In::TYPE_EDIT, pt_TYPE_EDIT_860026613)
		FINSI
	
		# CODE_TARIF
		SI i_strcmp(pt_CODE_TARIF_860026613,"    ") != 0
		ALORS
			erreur_860026613 = i_ajoutChampNum(g_iartout,$Tsymtfe6In::T4code_tarif,$Tsymtfe6In::CODE_TARIF,0)
			erreur_860026613=i_set_art_str(g_iartout, $Tsymtfe6In::CODE_TARIF, pt_CODE_TARIF_860026613)
		FINSI
# \DRE G4R6 Lot2
	FINSI
FINSI

#---------------------------------------------------------------------------
# CENTAUREDC
#---------------------------------------------------------------------------

SI(!i_ChercherCouranteECC(instCENTAURE_860026613))
ALORS
	trace("[Tfe6dc_dis]Stockage vers CENTAUREDC")

	# Duplication article en entree
	SI ( i_dup_art_dest( g_iartin, g_iartout2, C_TcentaureDC_860026613 ))
	ALORS
		code_errone_860026613 = 0xA0D0
		code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
		erreur_860026613 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026613,C_TcentaureDC_860026613,C_Article_860026613)
		SAUT DISTRI_ERR
	FINSI

	# T1
	trace( "[Tfe6dc_dis]initialisation de T1 a 14" )
	erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::T1, 14 )

	# T2
	trace( "[Tfe6dc_dis]initialisation de T2 a 2" )
	erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::T2, 2 )

	# champs SCT
	trace("[Tfe6dc_dis] Conversion bit a bit du champ G4/SCT")

	erreur_860026613=i_transformer_bits(g_iartin,$SCT,"FV",pt_buffer_860026613)

	erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::SCT,pt_buffer_860026613)

	#CAX (numerique-->numerique)
	SI (i_valid_field_n(g_iartin,$Tfe6dc::T3cab))
	ALORS
		erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::CAX,i_get_art_field(g_iartin,$Tfe6dc::CAX:1))
	FINSI

	SI (i_valid_field_n(g_iartin,$Tfe6dc::T3cap2))
	ALORS
		erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::CAX,i_get_art_field(g_iartin,$Tfe6dc::CAX:0))
	FINSI

	# champs TAP
	trace("[Tfe6dc_dis] Conversion bit a bit du champ G4/TAP")

	SI ( (!i_valid_field_n(g_iartin,$Tfe6dc::T3cab))&&(!i_valid_field_n(g_iartin,$Tfe6dc::T3cap2)) )
	ALORS
		trace("[Tfe6dc_dis] Champ TAP absent en entree !")
		SAUT DISTRI_ERR
	FINSI

	SI (i_valid_field_n(g_iartin,$Tfe6dc::T3cab))
	ALORS
		erreur_860026613=i_transformer_bits(g_iartin,$Tfe6dc::TAP:1,"FV",pt_buffer_860026613)

		erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::TAP,pt_buffer_860026613)
	SINON
		SI (i_valid_field_n(g_iartin,$Tfe6dc::T3cap2))
		ALORS
			erreur_860026613=i_transformer_bits(g_iartin,$Tfe6dc::TAP:0,"FV",pt_buffer_860026613)
			erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::TAP,pt_buffer_860026613)
		FINSI
	FINSI
	erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::TAP,pt_buffer_860026613)

	# champs STY
	trace("[Tfe6dc_dis] initialisation des STYi")

	erreur_860026613=i_transformer_bits(g_iartin,$STY,"FV",pt_buffer_860026613)
	erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::STY,pt_buffer_860026613)

	# INDEX
	trace( "[Tfe6dc_dis] initialisation de INDEX a 0" )
	erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::INDEX, 0 )

	# DATE
	erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::DATE,ICAR_REL_860026613)

	#ALINK (numerique/alphanumerique) (champ ALINK <=> champ APPEL)
	SI( i_valid_field_n(g_iartin, $Tfe6dc::APPEL) )
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::APPEL,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::ALINK,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::ALINK,"00000000")
	FINSI

	#NLINK (numerique/alphanumerique) (champ NLINK <=> champ NOEUD)
	SI( i_valid_field_n(g_iartin, $Tfe6dc::NOEUD) )
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::NOEUD,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NLINK,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NLINK,"00000")
	FINSI

	#ILOCUS (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::INFLOCUS))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::ILOCUS, i_get_art_field(g_iartin,$Tfe6dc::INFLOCUS) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::ILOCUS,0)
	FINSI

	#NLOCUS (numerique/alphanumerique)
	SI  (i_valid_field_n(g_iartin, $Tfe6dc::NUMLOCUS))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::NUMLOCUS,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NLOCUS,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NLOCUS,"        ")
	FINSI

	# champ IIDUS optionnel / bourrage avec la table de duplication:
	SI (i_valid_field_n(g_iartin,$INF_IDUS))
	ALORS
		erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::IIDUS,i_get_art_field(g_iartin,$INF_IDUS))
	FINSI

	#NIDUS (tableau de num-->tableau de num)
	#Remarque: initialisation de la variable fonctionnele pt_IDUS_N
	#NDR optionnel => initialisation par defaut dans table de duplication
	#et verification de la presence du champ dans pcode:
	SI (i_valid_field_n(g_iartin,$Tfe6dc::NDR))
	ALORS
		erreur_860026613 = i_get_art_str( g_iartin, $Tfe6dc::NDR, pt_IDUS_N_860026613 )
		trace2( "[Tfe6dc_dis] initialisation de NIDUS a <%s>", pt_IDUS_N_860026613, "" )
		#	i_replace_str(pt_IDUS_N,"BCDE","AJSC",pt_IDUS_N)
		erreur_860026613 = i_set_art_str( g_iartout2, $TcentaureDC::NIDUS, pt_IDUS_N_860026613 )
	FINSI

	#IIPRV (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::INFIPRV))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIPRV,i_get_art_field(g_iartin,$Tfe6dc::INFIPRV ))
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIPRV,0)
	FINSI

	#NIPRV (tableau de numeriques/alphanumerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::NUMIPRV))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::NUMIPRV,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIPRV,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIPRV,"    ")
	FINSI

	#IIDRV (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::INF_IDRV))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIDRV,i_get_art_field(g_iartin,$Tfe6dc::INF_IDRV ))
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIDRV,0)
	FINSI

	#NIDRV (tableau de numeriques/alphanumerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::NUM_IDRV))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::NUM_IDRV,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIDRV,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIDRV," ")
	FINSI

	#NDEDE (tableau de num-->tableau de num)
	#Remarque: initialisation de la variable fonctionnele pt_DEDE_N
	erreur_860026613 = i_get_art_str( g_iartin, $Tfe6dc::NDE, pt_DEDE_N_860026613 )
	#trace2( "[Tfe6dc_dis] initialisation de NDEDE a <%s>", pt_DEDE_N, "" )
	i_replace_str(pt_DEDE_N_860026613,"BCDE","AJSC",pt_DEDE_N_860026613)

	erreur_860026613 = i_set_art_str( g_iartout2, $TcentaureDC::NDEDE, pt_DEDE_N_860026613 )

	#IIDAV (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::INF_IDAV))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIDAV, i_get_art_field(g_iartin,$Tfe6dc::INF_IDAV) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::IIDAV,0)
	FINSI

	#NIDAV (numerique/alphanumerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::NUM_IDAV))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::NUM_IDAV,pt_temp_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIDAV,pt_temp_860026613 )
	SINON
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::NIDAV," ")
	FINSI

	#NICOM (tableau de num-->tableau de num)
	erreur_860026613 = i_get_art_str( g_iartin, $Tfe6dc::NUM_ICOM, pt_buffer_860026613 )
	#trace2( "[Tfe6dc_dis]initialisation de NICOM a <%s>", pt_buffer, "" )
	erreur_860026613 = i_set_art_str( g_iartout2, $TcentaureDC::NICOM, pt_buffer_860026613 )

	#REF (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::REF))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::REF, i_get_art_field(g_iartin,$Tfe6dc::REF) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::REF,0)
	FINSI

	#NBRV (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::NRENV))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::NBRV, i_get_art_field(g_iartin,$Tfe6dc::NRENV) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::NBRV,0)
	FINSI

	# TAX ( numerique/numerique )
	erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::TAX,i_get_art_field( g_iartin, $TAXE ) )

	# DUREE ( numerique/numerique )
	# Si Duree de T3cab2 renseigne
	SI ( i_valid_field_n(g_iartin,$DUREE:0))
	ALORS
		erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::DUREE,i_get_art_field( g_iartin, $DUREE:0 ) )
	SINON
		# Duree de T3cap renseigne
		erreur_860026613=i_set_art_field( g_iartout2, $TcentaureDC::DUREE,i_get_art_field( g_iartin, $DUREE:1 ) )
	FINSI

	# SGTQS
	#pt_SGTQS = i_LireEECSGTQS( g_ieec )
	#trace2( "[Tfe6dc_dis] pt_SGTQS=<%s>", pt_SGTQS, "" )
	erreur_860026613=i_set_art_str( g_iartout2, $TcentaureDC::CDSGTQS, pt_SGTQS_860026613)

	# DUSEL ( numerique/numerique )
	SI (i_valid_field_n(g_iartin, $Tfe6dc::DUSEL))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::DUSEL, i_get_art_field(g_iartin,$Tfe6dc::DUSEL) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::DUSEL,0)
	FINSI

	# DUSON ( numerique/numerique )
	SI (i_valid_field_n(g_iartin, $Tfe6dc::DUSON))
	ALORS
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::DUSON, i_get_art_field(g_iartin,$Tfe6dc::DUSON) )
	SINON
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::DUSON,0)
	FINSI

	#CLE1 (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::CLE1))
	ALORS
		info_860026613 = i_get_art_field(g_iartin,$Tfe6dc::CLE1)
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::CLE1,info_860026613 )
	FINSI

	#CLE2 (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::CLE2))
	ALORS
		info_860026613 = i_get_art_field(g_iartin,$Tfe6dc::CLE2)
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::CLE2,info_860026613 )
	FINSI

	#CLE3 (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::CLE3))
	ALORS
		info_860026613 = i_get_art_field(g_iartin,$Tfe6dc::CLE3)
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::CLE3,info_860026613 )
	FINSI

	#CLE4 (numerique/numerique)
	SI  (i_valid_field_n(g_iartin, $Tfe6dc::CLE4))
	ALORS
		info_860026613 = i_get_art_field(g_iartin,$Tfe6dc::CLE4)
		erreur_860026613 = i_set_art_field(g_iartout2,$TcentaureDC::CLE4,info_860026613 )
	FINSI

	#COCA (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::BETA))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::BETA,pt_COCA_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::COCA,pt_COCA_860026613 )
	FINSI

	#COCAV (numerique/numerique)
	SI (i_valid_field_n(g_iartin, $Tfe6dc::BETAV))
	ALORS
		erreur_860026613 = i_get_art_str(g_iartin,$Tfe6dc::BETAV,pt_COCAV_860026613)
		erreur_860026613 = i_set_art_str(g_iartout2,$TcentaureDC::COCAV,pt_COCAV_860026613 )
	FINSI

	#SUP (numerique/numerique)
	# FO 20235 MCH
	SI (i_valid_field_n(g_iartin, $Tfe6dc::T3cap2))
	ALORS
		res_860026613=i_get_art_field(g_iartin,$Tfe6dc::SUP:0)
		trace1("[Tfe6dc_dis] Test de la valeur de SUP=<%d>" , res_860026613)
		erreur_860026613=i_set_art_field(g_iartout2, $TcentaureDC::SUP, res_860026613)
	SINON
		SI (i_valid_field_n(g_iartin, $Tfe6dc::T3cab))
		ALORS
			res_860026613=i_get_art_field(g_iartin, $Tfe6dc::SUP:1)
			erreur_860026613=i_set_art_field(g_iartout2, $TcentaureDC::SUP, res_860026613)
		SINON
			erreur_860026613=i_set_art_field(g_iartout2, $TcentaureDC::SUP, 0)
		FINSI
	FINSI

	#champ MES1 et MES2
	SI ( i_valid_field_n(g_iartin, $Tfe6dc::MES1) )
	ALORS
		res_860026613=i_get_art_field(g_iartin, $MES1)
		erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::MES1,res_860026613)
	FINSI

	SI ( i_valid_field_n(g_iartin, $Tfe6dc::MES2) )
	ALORS
		res_860026613=i_get_art_field(g_iartin, $MES2)
		erreur_860026613=i_set_art_field(g_iartout2,$TcentaureDC::MES2,res_860026613)
	FINSI

# DRE G4R6 Lot2
	# TYPE_EDIT
	erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::TYPE_EDIT, pt_TYPE_EDIT_860026613)
	
	# CODE_TARIF
	erreur_860026613=i_set_art_str(g_iartout2, $TcentaureDC::CODE_TARIF, pt_CODE_TARIF_860026613)
# \DRE G4R6 Lot2

	#FIN
	erreur_860026613=i_set_art_field(g_iartout2, $TcentaureDC::FIN, 0x0A )
FINSI

#-------------------------------------------------------------------------
# #G4R3 APACHE_DC
#-----------------------------------------------------------------------
#Supprime en G4R3

#-----------------------------------------------------------------------
#G3R23
#-----------------------------------------------------------------------
# CASPER
#-----------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCASPER_860026613) )
ALORS
	trace("[Tfe6dc_dis] Mise au format CASPER")
	SI ( i_dup_art_id(g_iartin,g_iartout5) )
	ALORS
		code_errone_860026613 = 0xA0D0
		code_errone_860026613 = code_errone_860026613 + EFFICACE_860026613
		erreur_860026613 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026613,C_Tcasper_860026613,C_Article_860026613)
		SAUT DISTRI_ERR
	FINSI

	SI ( i_valid_field_n(g_iartout5,$Tfe6dc::T3ce) )
	ALORS
		erreur_860026613 = i_supprChamp(g_iartout5,"T3ce")
	FINSI

	res_860026613 = i_rename_art(g_iartout5, C_Tcasper_860026613)

	# COMPLEMENTS CASPER (SGTQS NSUC)

	#champ SGTQS
	erreur_860026613 = i_ajoutChampNum(g_iartout5,$TcasperTfe6dc::T4sgtqs,$TcasperTfe6dc::SGTQS,0)
	erreur_860026613 = i_set_art_str(g_iartout5, $TcasperTfe6dc::SGTQS, pt_SGTQS_860026613)

	#champ NSUC
	erreur_860026613 = i_ajoutChampNum(g_iartout5,$TcasperTfe6dc::T4nsuc,$TcasperTfe6dc::NSUC,0)
	erreur_860026613 = i_set_art_str(g_iartout5,$TcasperTfe6dc::NSUC,pt_NSUC_860026613)
	res_860026613 = i_strlen(pt_NSUC_860026613)
	erreur_860026613 = i_resize_tlv(g_iartout5, "T4nsuc", "NSUC", res_860026613)
FINSI

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

#--------- CENTAUREDC ------------
SI(!i_ChercherCouranteECC(instCENTAURE_860026613))
ALORS
	res_860026613 = i_stocke_art_iecc( g_iartout2, instCENTAURE_860026613 )
FINSI

#------- SYMPHONIE ----------
SI( !i_ChercherCouranteECC(instSYMPH_860026613) )
ALORS
	res_860026613 = i_stocke_art_iecc(g_iartout, instSYMPH_860026613)
FINSI

#G3R23
#------- CASPER --------------
SI ( !i_ChercherCouranteECC(instCASPER_860026613) )
ALORS
	trace( "[Tfe6dc_dis] Emission vers CASPER" )
	res_860026613 = i_stocke_art_iecc(g_iartout5, instCASPER_860026613)
FINSI

# DRE G4R6 Lot2
#QC862
#SI (bREDIST == 1 )
SI (bREDIST_860026613 == 1 || bREDISTALICE_860026613 == 1)
ALORS
	SAUT DISTRI_REDIST
FINSI
# \DRE G4R6 Lot2


trace("[Tfe6dc_dis] Fin du Pcode de distribution Tfe6dc")

RETOUR TRAIT_OK

############################################################################
# Envoi vers Recyclage
############################################################################

# Sans objet

############################################################################
# Stockage en Errone
############################################################################

POINT DISTRI_ERR

trace( "[Tfe6dc_dis] Anomalie de distribution")
res_860026613=i_make_art_rej(g_iartin, g_iartout, code_errone_860026613)
res_860026613 = i_stocke_art( g_iartout, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

# DRE G4R6 Lot2
###########################################################################
# Stockage pour redistribution
###########################################################################

POINT DISTRI_REDIST

trace("Stockage pour redistribution")

SI (trait_ok_860026613 == 0)
ALORS
	erreur_860026613 = i_PlvMessEmettre(8503,2,g_iartin,"",3,pt_LIBELREDIST_860026613,C_Article_860026613,pt_SGTQS_860026613)
FINSI

res_860026613 = i_stocke_art(g_iartin, 0, PT_REDIST|RD_TABLE5, 0)
RETOUR TRAIT_OK

############################################################################
# Stockage en elimine
############################################################################

POINT DISTRI_DIV

trace( "Stockage en divers")

res_860026613 = i_stocke_art( g_iartin, 0, PT_DIVERS, 0)

RETOUR TRAIT_OK
# \DRE G4R6 Lot2

# ---------------------- fin pcode Tfe6dc_dis ---------------------------------
