DEFINITION NUMTAB_860026602 1
DEFINITION ZONEMETRO_860026602 7
DEFINITION C_Article_860026602 "Tta6dea"
DEFINITION C_InstCENTDEA_860026602 "CENTAUREDEA"
DEFINITION C_InstSYMP_860026602 "SYMP"
DEFINITION C_Tcent_860026602 "TcentaureDEA"
DEFINITION C_InstCASPER_860026602 "CASPER"
DEFINITION C_Tcasper_860026602 "TcasperTta6dea"
DEFINITION IDUS_BNC_860026602 "**00"
DEFINITION TYPCTR_Fact_Loc_860026602 16
DEFINITION TYPCTR_Fact_RI_860026602 17
DEFINITION RES_TYPCTR_860026602 2
DEFINITION CODE_ARTICLE_860026602 3
DEFINITION CATEG_860026602 8
DEFINITION BASE_TELEPHONE_860026602 1
DEFINITION C_DATCPS_860026602 "DATCPS"
DEFINITION TD_SVA_860026602 9
DEFINITION C_INST_ALICE_860026602 "ALICE"
REGISTRE ENTIER gmt_date_860026602
REGISTRE ENTIER INF_860026602
REGISTRE ENTIER STY_860026602
REGISTRE ENTIER EFFICACE_860026602
REGISTRE ENTIER ICAR_REL_860026602
REGISTRE ENTIER ICAR_ABS_860026602
REGISTRE ENTIER TIDAV_860026602
REGISTRE ENTIER longueur_860026602
REGISTRE ENTIER instCENTDEA_860026602
REGISTRE ENTIER instSYMP_860026602
REGISTRE ENTIER DC_MAYOTTE_EXPE_860026602
REGISTRE ENTIER ddebut_860026602
REGISTRE ENTIER trait_ok_860026602
REGISTRE ENTIER dpivot_860026602
REGISTRE ENTIER dduree_860026602
REGISTRE ENTIER tax_860026602
REGISTRE ENTIER bREDIST_860026602
REGISTRE ENTIER MINE_860026602
REGISTRE ENTIER ART_860026602
REGISTRE ENTIER APPLI_860026602
REGISTRE ENTIER DC_CAA_860026602
REGISTRE ENTIER res_860026602
REGISTRE ENTIER erreur_860026602
REGISTRE ENTIER bCENT_860026602
REGISTRE ENTIER L_DEDE_NORM_860026602
REGISTRE ENTIER code_errone_860026602
REGISTRE ENTIER INEF_SPECIAUX_860026602
REGISTRE ENTIER val_INEF_860026602
REGISTRE ENTIER instCASPER_860026602
REGISTRE ENTIER b_Fact_CPS_Loc_860026602
REGISTRE ENTIER b_Fact_CPS_RI_860026602
REGISTRE ENTIER type_cpt_860026602
REGISTRE ENTIER Date_CPS_860026602
REGISTRE ENTIER instALICE_860026602
REGISTRE ENTIER val_860026602
REGISTRE ENTIER bREDISTALICE_860026602
REGISTRE POINTEUR pt_TEMP_860026602
REGISTRE POINTEUR pt_TEMP2_860026602
REGISTRE POINTEUR pt_DEDE_NORM_860026602
REGISTRE POINTEUR pt_NNOS_860026602
REGISTRE POINTEUR pt_DEDE_DIST_N_860026602
REGISTRE POINTEUR pt_IDAV_DIST_N_860026602
REGISTRE POINTEUR pt_LIBELREDIST_860026602
REGISTRE POINTEUR pt_TCOMMUT_860026602
REGISTRE POINTEUR pt_INEF_STD_860026602
REGISTRE POINTEUR pt_INEF_COMMUT_860026602
REGISTRE POINTEUR pt_NORM_860026602
REGISTRE POINTEUR pt_SGTQS_860026602
REGISTRE POINTEUR pt_BUF_860026602
REGISTRE POINTEUR pt_PREF_HERISSON_860026602
REGISTRE POINTEUR pt_NSUC_860026602
REGISTRE POINTEUR pt_MESSAGE_860026602
REGISTRE POINTEUR pt_CODE_TARIF_860026602
REGISTRE POINTEUR pt_TYPE_EDIT_860026602
REGISTRE POINTEUR pt_NDE_860026602
REGISTRE POINTEUR pt_DEDE_BNC_860026602
###########################################################################
#
# Fichier : Tta6dea.src
#
# Version : %version: 19 %
#
# Date    : %date_modified: 29/04/02 17:51 %
#
# Distribution :
#    Article DEA efficace et inefficace ANALOGIQUE
#
# En entree :
#    Article : Tta6dea
#
# En sortie :
#	CENTAUREDEA
#	ComptiDEA
#	NOFOR
#	ALLOFACT_LOTS
#	APACHE
#	SYMPHONIE
#	CASPER
#
# HISTORIQUE :
# FOEX594 - Prise en compte du parametre NOS en entree - 29/04/2002 - LRA.
#	17/06/2002 - PSA - FO1510  : Encapsulation pour le stockage en errone
#	25/09/2002 - MCH - V4.7    : IDAV_DIST_N DEDE_DIST_N = 3622 ou 083601
#				     ---> Elimines explicite
#	21/10/2002 - PSA - FO50 : traduction du B et C pour le demande
#	14/10/2002 - RBE : Ajout de l'envoi a APACHE
#	21/11/2002 - RBE : FO115 + Modif. alarme tables externes
#	02/12/2002 - NSA - envoi des DC en redist a une nouvelle instance
#			    du meme type que FOR
#	07/02/2003 - RBE - Envoi a SC si envoi vers une appli. de facturation
#			   Envoi en redistrib. si pb acces fichiers de distrib.
#	28/03/2003 - RBE - FO241 : envoi a symphonie si redist.
#	07/04/2003 - RBE : FO245 : recup. de MINE et APPLI si VN8(ART=4)
#	10/04/2003 - MCH - requete distri; date gmt
#	22/07/2003 - DRE - Modif calcul gmt_date
#	30/01/2004 - RBE - Ci:Modif.champs IDEDE NDEDE et NIDUS pour suiviConso
#	25/03/2004 - RBE - FO588 : traces erreurs a tort
#	01/062004  - MCH - G2R0Cl : Efficace si duree <> 0
# 	11/06/2004 - NSA - G2R0Cl: integration des codes d erreurs
#	13/06/2004 - PSA - FO869 : champ NIDUS pour suiviConso
#     	12/10/2004 - THE - Creation Centaure
#	24/01/2005 - RBE - G2R0Cnn : fusion Cn + Caa
#	22/02/2005 - RBE - FO1132 : correction mise au format symphonie
#	11/04/2005 - FAL - FO1232 evolution HERISSON
#	15/04/2005 - FAL - FO1248 HERISSON 996Q ou 0996Q avec Q 5 6 ou 7 et gestion alarme
#	02/05/2005 - FAL - G2R1Ck ajout COMPTISSIMO modification criteres distribution
#	09/05/2005 - FAL - FO1273 evol HERISSON avec Z = 6
#	12/05/2005 - FAL - FO1293 ECC_FACT contenu aleatoire NOFOR
#	10/06/2005 - THE - FO1331 TIDAV
#	07/07/2005 - FAL - G2R1Cj fusion G2R1Ca G2R1Ck  MAYOTTE et INEF speciaux APACHE
#	22/07/2005 - PSA - FO1390 : evolution HERISSON
# 	15/09/2005 - DRE - FO1406 Retour Fonction i_LireInfoECC (doit etre != et non >)
#	25/10/2005 - PSA - FO 1538
# 	25/11/2005 - PKH - G2R2Ca - Evolution Apache envoie des DC inefficaces des N0 URGENCE
#	05/01/2006 - DRE - FO1666 G2R2Ca Remplacement de i_retrait_tlv() par i_supprChamp()
#	05/01/2006 - FAL - FO1630 champ DEDE de COMPTISSIMO : partielle car 7860888080 NOK dans Norm_NDE_DEA
#	06/01/2006 - FAL - FO1673 evolution HERISSON modf FO1390
#	25/10/2006 - JLG - G2R2Cv modif pt_NORM car trop court
# 02/03/2009 - RHE - G3R12 suppression ECC
# 	15/06/2009 - BEA - G3R13Cx Ajout ECC CASPER TELEPHONE_DEA S10F0.doc
#	21/07/2011 - THE - G3R22 suppression envoi vers COMPTIDEA et ALLOFACT_LOTS
#	05/10/2011 - THE - G3R22 QC522 interrogation de la table externe TNSUC
#	13/10/2011 - THE - VerifPcode
#	28/05/2013 - THE - G4R3 suppression envoi vers APACHE
#	28/05/2013 - THE - G4R3 suppression envoi vers NOFOR
# 	02/04/2014 - PSA - G4R6 lot 2 : mise en place C+S appelant
#	04/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
#Constantes pour message d alarme
# G4R6 Lot2

# /G4R6 Lot2


#################################
# Variables entieres
# VerifPcode

# Variable(s) fonctionnelle(s)
# Instances
# variables pour les metachamps obligatoires
# autres
# G4R6 Lot2

# /G4R6 Lot2
#QC862


#################################
# Variables pointeurs
# VerifPcode


# G4R6 Lot2
# /G4R6 Lot2


# initialisations
instCENTDEA_860026602	 = 0
instSYMP_860026602	 = 0
#G4R3 instAPACHE	 = 0
#G4R3 instNOFOR	 = 0
instCASPER_860026602	 = 0
INEF_SPECIAUX_860026602	 = 0
val_INEF_860026602	 = 0
bREDIST_860026602		 = 0
ART_860026602		 = 0xFFFFFFFF
MINE_860026602		 = 0xFFFFFFFF
APPLI_860026602		 = 0xFFFFFFFF
DC_CAA_860026602		 = 0
EFFICACE_860026602	 = 2
TIDAV_860026602		 = 0
longueur_860026602	 = 0
# G3R22 instALLO	= 0
# G3R22 instCOMPTIDEA	= 0
# G4R6 Lot2
type_cpt_860026602 = -1
b_Fact_CPS_Loc_860026602 = 0
b_Fact_CPS_RI_860026602 = 0

Date_CPS_860026602 = 0
instALICE_860026602 = -1
val_860026602 = 0
# /G4R6 Lot2
#QC862
bREDISTALICE_860026602 = 0

# Allocation de memoire pour le buffeur
pt_TEMP_860026602		 = "1234567891234567891234567812345"
pt_TEMP2_860026602	 = "5743458789934567891234567812345"
pt_DEDE_NORM_860026602	 = "111111111111111111111111111111111111"
pt_DEDE_DIST_N_860026602	 = "1234567890123456789012345612345"
pt_IDAV_DIST_N_860026602	 = "12345678901234567890123412345"
pt_NNOS_860026602 	 = "09876543212345678900987654321012345"
#SGTQS 		 = "12345678901212345"
pt_SGTQS_860026602 	 = "54321054321054321"
pt_LIBELREDIST_860026602 	 = "pt_LIBELREDIST543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210"
pt_TCOMMUT_860026602	 = "20202020202020202020202020202012345"
pt_INEF_STD_860026602	 = "60606060606060606060606060606012345"
#G4R3 pt_CODE_APACHE	 = "70707070707070707070707070707012345"
#G4R3 pt_INEF_APACHE	 = "80808080808080808080808080808012345"
pt_INEF_COMMUT_860026602	 = "90909090909090909090909090909012345"
pt_BUF_860026602		 = "10101010101010101010101010101012345"
pt_PREF_HERISSON_860026602 = "4447852141444785214144478521414447852141"
#G4R3 pt_URGENCE_APACHE = "0569587521589478585865"
pt_NSUC_860026602		 = "pt_NSUC123456789012345678901234"
pt_NORM_860026602		 = "389389389389389389389389389389389389389389389389389389"
# G4R6 Lot2
pt_MESSAGE_860026602 = "pt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGEpt_MESSAGE"
pt_CODE_TARIF_860026602 	 = "pt_CODE_TARIFpt_CODE_TARIF"
pt_TYPE_EDIT_860026602	 = "pt_TYPE_EDIT"
pt_NDE_860026602		 = "pt_NDE3333333333333333333333333333333333333333"
pt_DEDE_BNC_860026602 = "pt_DEDE_BNC1234567890123456789012345678901234567890"
# /G4R6 Lot2


# Initialisation pointeurs
#G4R3 i_strcpy(pt_URGENCE_APACHE,"")
i_strcpy(pt_NORM_860026602,"")
i_strcpy(pt_NSUC_860026602,"")
i_strcpy(pt_SGTQS_860026602,"")
i_strcpy(pt_TEMP_860026602,"")
i_strcpy(pt_TEMP2_860026602,"")
i_strcpy(pt_DEDE_NORM_860026602,"")
i_strcpy(pt_NNOS_860026602,"")
i_strcpy(pt_DEDE_DIST_N_860026602,"")
i_strcpy(pt_IDAV_DIST_N_860026602,"")
i_strcpy(pt_LIBELREDIST_860026602,"")
i_strcpy(pt_TCOMMUT_860026602,"")
i_strcpy(pt_INEF_STD_860026602,"")
#G4R3 i_strcpy(pt_CODE_APACHE,"")
#G4R3 i_strcpy(pt_INEF_APACHE,"")
i_strcpy(pt_INEF_COMMUT_860026602,"")
i_strcpy(pt_BUF_860026602,"")
i_strcpy(pt_PREF_HERISSON_860026602,"")
# G4R6 Lot2
i_strcpy(pt_MESSAGE_860026602, "")
i_strcpy(pt_CODE_TARIF_860026602 , "    ")
i_strcpy(pt_TYPE_EDIT_860026602 , " ")
i_strcpy(pt_NDE_860026602,"")
i_strcpy(pt_DEDE_BNC_860026602,"")
# /G4R6 Lot2


# ******************

# ICAR_ABS et ICAR_REL
###############################
ICAR_ABS_860026602 = i_get_art_field(g_iartin,$DATE)
SI ( ICAR_ABS_860026602 == -1 )
	ALORS
	code_errone_860026602 = 0xA080
	code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
	erreur_860026602 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, "i_get_art_field/DATE" )
	SAUT DISTRI_ERR
FINSI

ICAR_REL_860026602 = i_date_locale(g_ieec,g_iartin,ICAR_ABS_860026602)
SI ( ICAR_REL_860026602 == -1 )
	ALORS
	code_errone_860026602 = 0xA080
	code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
	erreur_860026602 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, "i_date_locale/ICAR_ABS" )
	SAUT DISTRI_ERR
FINSI

# Initialisation des variables
###############################
ddebut_860026602=i_get_art_field(g_iartin,$Tta6dea::ddebut)

SI (ddebut_860026602 == -1)
	ALORS
	code_errone_860026602 = 0xA080
	code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
	erreur_860026602 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, "i_get_art_field/ddebut" )
	SAUT DISTRI_ERR
FINSI
gmt_date_860026602 = i_DHgetCe2gTime(NUMTAB_860026602,ZONEMETRO_860026602,ddebut_860026602)

dpivot_860026602=i_get_art_field(g_iartin,$Tta6dea::dpivot)
dduree_860026602=i_get_art_field(g_iartin,$Tta6dea::dduree)
tax_860026602=i_get_art_field(g_iartin,$Tta6dea::tax)

############################################################################
# identification de la provenance de l article
############################################################################

trait_ok_860026602=-1
# Nb de passage en redistribution a recuperer
trait_ok_860026602 = i_LireRedistCpt()

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

# article efficace si duree = 0

SI (dduree_860026602 != 0)
	ALORS
	EFFICACE_860026602=1
SINON
	EFFICACE_860026602=0
FINSI
#trace1("EFFICACE=<%d>",EFFICACE)

i_strcpy(pt_SGTQS_860026602,i_LireEECSGTQS( g_ieec ))
#trace2("SGTQS=<%s>",pt_SGTQS,"")

erreur_860026602 = i_get_art_str( g_iartin, $Tta6dea::INEF, pt_INEF_COMMUT_860026602 )

#INEFF et la com est assurree par un CAA
SI (!EFFICACE_860026602)
	ALORS
	#recuperation des champs APPLI MINE et ART de l'entete de bloc
	ART_860026602 = i_bloc_V1V2_recupererIdent(ART_BLOC_V1V2)
	SI (ART_860026602 == 4)
		ALORS
		MINE_860026602 = i_bloc_V1V2_recupererIdent(MINE_BLOC_V1V2)
		APPLI_860026602 = i_bloc_V1V2_recupererIdent(APPLI_BLOC_V1V2)
	FINSI

	#IFDEF trace_niv1 = 1
	trace1("champ ART : %x",ART_860026602)
	trace1("champ MINE : %x",MINE_860026602)
	trace1("champ APPLI : %x",APPLI_860026602)
	#ENDIF

	pt_TCOMMUT_860026602 = type_commut_860026233("APA1", pt_SGTQS_860026602, dpivot_860026602)

	SI (pt_TCOMMUT_860026602 == g_inull)
		ALORS
		erreur_860026602 = i_format_str2(pt_TEMP_860026602," %s",pt_SGTQS_860026602,0)
		erreur_860026602 = i_PlvMessEmettre(8505,2,g_iartin,"",3,"Tta6dea/type_commut",pt_TEMP_860026602,g_ieec)
	SINON
		pt_INEF_STD_860026602 = inef_std_860026233("APA2", pt_TCOMMUT_860026602, pt_INEF_COMMUT_860026602, dpivot_860026602)
		SI ( pt_INEF_STD_860026602 == g_inull)
			ALORS
			#trace("Code inef absent dans la table")
			erreur_860026602 = i_format_str2(pt_TEMP_860026602," %s",pt_INEF_COMMUT_860026602,0)
			erreur_860026602 = i_PlvMessEmettre(8505,2,g_iartin,"",3,"Tta6dea/inef_std",pt_TEMP_860026602,g_ieec)
		SINON
			DC_CAA_860026602=1
		FINSI
	FINSI

	#trace2(" Type de commutateur <%s>", pt_TCOMMUT, "")
	#trace2(" Code inefficace standard <%s>", pt_INEF_STD, "")
FINSI

INF_860026602 = i_get_art_field(g_iartin,$INF_DEDE)
STY_860026602 = i_get_art_field(g_iartin,$STY)

# TIDAV
SI ( i_valid_field_n(g_iartin, $Tta6dea::NUM_IDAV))
	ALORS
	longueur_860026602=i_get_art_fieldlength(g_iartin, $Tta6dea::NUM_IDAV)
	SI longueur_860026602 > 8
		ALORS
		TIDAV_860026602=1
	FINSI
FINSI

##############################################################
#	 Article Inef speciaux : variable INEF_SPECIAUX
#		- code INEF > 100 (decimal)
#		- DEDE_INF vaut 0
##############################################################
#trace1("G2R1Cj INEF_SPECIAUX : %d", INEF_SPECIAUX)
erreur_860026602 = i_get_art_str(g_iartin,$Tta6dea::NDE, pt_NORM_860026602)
val_INEF_860026602=i_get_art_field(g_iartin, $Tta6dea::INEF)

#G4R3 SI (EFFICACE == 0 && val_INEF >=100)
#G4R3 ALORS
#G4R3 	pt_URGENCE_APACHE = inef_apache ("URGE",pt_NORM,dpivot)
#G4R3 	SI (pt_URGENCE_APACHE != g_inull)
#G4R3 	ALORS
#G4R3 		INEF_SPECIAUX = 1
#G4R3 	FINSI
#G4R3 FINSI

#####################################################################
# Article Mayotte expe : - NDR commence par 269
#                        - NDE sur 6 digits et commence par 6
#####################################################################

SI i_valid_field_n(g_iartin,$Tta6dea::NDE)
	ALORS
	erreur_860026602 = i_get_art_str(g_iartin,$Tta6dea::NDE, pt_BUF_860026602)
	longueur_860026602 = i_strlen(pt_BUF_860026602)

	SI ((g_iartin.NDR[0] == 0x2) && (g_iartin.NDR[1] == 0x6) && (g_iartin.NDR[2] == 0x9)) &&
		(longueur_860026602 == 6) && (g_iartin.NDE[0] == 0x6)
		ALORS
		DC_MAYOTTE_EXPE_860026602 = 1
	FINSI
FINSI

#trace1("G2R1Cj DC_MAYOTTE_EXPE : %d", DC_MAYOTTE_EXPE)

SI (DC_MAYOTTE_EXPE_860026602 == 1 )
	ALORS
	SAUT DISTRI_DIV
FINSI

# DEDE_DIST_N
# 0996Q ou 996Q avec Q= 5 6 ou 7 si Q non 5 6 7 alors alarme avec DC en ERR
# si 0996Q6 (Q=5ou6ou7) ou si 996Q6 (Q=5ou6ou7) alors Herisson
res_860026602=i_get_art_str(g_iartin,$NDE,pt_DEDE_DIST_N_860026602)

trace2("Cbb DEDE_DIST_N avant norm <%s>", pt_DEDE_DIST_N_860026602, "")
i_get_sub_str(pt_DEDE_DIST_N_860026602,5,5,pt_TEMP2_860026602)

# on ne fait le test HERISSON que si l appel n est pas porte
SI ( i_valid_field_n(g_iartin, $Tta6dea::INF_IDAV))
	ALORS
	INF_860026602 = i_get_art_field(g_iartin,$INF_IDAV)
FINSI
#trace1("INF avant etude herisson <%x>", INF)
#trace1("INF avant etude herisson <%x> 0x04", INF & 0x04)

SI ( ( INF_860026602 & 0x04 ) != 0x04 )
	ALORS
	SI  ((i_strcmp(pt_TEMP2_860026602,"6")) == 0 )
		ALORS
		#trace ("Appel vers mobile Herisson possible cas 1")
		i_get_sub_str(pt_DEDE_DIST_N_860026602,0,3,pt_TEMP_860026602)

		SI  ((i_strcmp(pt_TEMP_860026602,"0996")) == 0 )
			ALORS
			#trace("Cbb Herisson 0996Q6 etude du Q")
			i_get_sub_str(pt_DEDE_DIST_N_860026602,4,4,pt_TEMP_860026602)

			SI ( ( (i_strcmp(pt_TEMP_860026602,"5") ) == 0) || ( (i_strcmp(pt_TEMP_860026602,"6") ) == 0 ) || ( (i_strcmp(pt_TEMP_860026602,"7") ) == 0 ) )
				ALORS
				i_get_sub_str(pt_DEDE_DIST_N_860026602,5,-1,pt_DEDE_DIST_N_860026602)
				#trace2("Cbb DEDE_DIST_N sans 0996Q <%s>", pt_DEDE_DIST_N,"")
			SINON
				i_get_sub_str(pt_DEDE_DIST_N_860026602,0,4,pt_PREF_HERISSON_860026602)
				#trace2(" Tta6dea NDE <%s> prefixe HERISSON 0996Q6 mais Q non autorise ",pt_DEDE_DIST_N, "")
				code_errone_860026602 = 0xA0B0
				code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
				erreur_860026602 = i_PlvMessEmettre( 6938, 2, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, pt_PREF_HERISSON_860026602 )
				SAUT DISTRI_ERR
			FINSI
		FINSI
	SINON
		i_get_sub_str(pt_DEDE_DIST_N_860026602,4,4,pt_TEMP2_860026602)
		SI ((i_strcmp(pt_TEMP2_860026602,"6")) == 0 )
			ALORS
			#trace ("Appel vers mobile Herisson possible cas 2")
			i_get_sub_str(pt_DEDE_DIST_N_860026602,0,2,pt_TEMP_860026602)

			SI ((i_strcmp(pt_TEMP_860026602,"996")) == 0)
				ALORS
				#trace("Cbb Herisson 996Q6 etude du Q")
				i_get_sub_str(pt_DEDE_DIST_N_860026602,3,3,pt_TEMP_860026602)

				SI  ( ((i_strcmp(pt_TEMP_860026602,"5")) == 0) ||((i_strcmp(pt_TEMP_860026602,"6")) == 0) ||((i_strcmp(pt_TEMP_860026602,"7")) == 0)  )
					ALORS
					i_get_sub_str(pt_DEDE_DIST_N_860026602,4,-1,pt_DEDE_DIST_N_860026602)
					#trace2("Cbb DEDE_DIST_N sans 996Q <%s>", pt_DEDE_DIST_N,"")
				SINON
					i_get_sub_str(pt_DEDE_DIST_N_860026602,0,3,pt_PREF_HERISSON_860026602)
					#trace2(" Tta6dea NDE <%s> prefixe HERISSON 996Q6 mais Q non autorise ",pt_DEDE_DIST_N, "")
					code_errone_860026602 = 0xA0B0
					code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
					erreur_860026602 = i_PlvMessEmettre( 6938, 2, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, pt_PREF_HERISSON_860026602 )
					SAUT DISTRI_ERR
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

pt_DEDE_DIST_N_860026602 = Norm_NDE_DEA_860026233(pt_DEDE_DIST_N_860026602,STY_860026602,INF_860026602)
trace2("Cbb DEDE_DIST_N apres norm <%s>", pt_DEDE_DIST_N_860026602, "")

# IDAV_DIST_N
SI (i_valid_field_n(g_iartin,$NUM_IDAV))
	ALORS
	INF_860026602 = i_get_art_field(g_iartin,$INF_IDAV)
	res_860026602 = i_get_art_str(g_iartin,$NUM_IDAV,pt_IDAV_DIST_N_860026602)
	pt_IDAV_DIST_N_860026602 = Norm_NDE_DEA_860026233(pt_IDAV_DIST_N_860026602,STY_860026602,INF_860026602)
FINSI

# Elimination explicite 3622 083601 :

# G4R6 Lot2
############################################################################
# Appel a la BNC pour recuperer le type de controle
############################################################################
# Si DEDE absent de l'article d'entree (cas possible pour les appels inefficaces), inutile d'appeler la BNC
SI i_valid_field_n(g_iartin,$Tta6dea::NDE)
	ALORS
	erreur_860026602 = i_memcpy_art_field_n(g_icopo, $Tcopo::NDR, IDUS_BNC_860026602, 5)

# A priori pt_DEDE_DIST_N contient ZABPQMCDU du DEDE : il faut lui ajouter 0 pour appeler la BNC
	SI (i_strlen(pt_DEDE_DIST_N_860026602) == 9)
		ALORS
		erreur_860026602 = i_format_str2(pt_DEDE_BNC_860026602, "%s%s", "0", pt_DEDE_DIST_N_860026602)
	SINON
		i_strcpy(pt_DEDE_BNC_860026602, pt_DEDE_DIST_N_860026602)
	FINSI

	erreur_860026602 = i_memcpy_art_field_n(g_icopo, $Tcopo::NDE, pt_DEDE_BNC_860026602, i_strlen(pt_DEDE_BNC_860026602)+1)

	g_icopo.TAXE   = 0
	g_icopo.CREDIT = 0
	erreur_860026602 = i_set_art_date(g_icopo, ICAR_REL_860026602)
	g_icopo.DUREE  = 0
	g_icopo.CODE   = CODE_ARTICLE_860026602
	g_icopo.CATEG  = CATEG_860026602
	g_icopo.SUP[0] = 0
	g_icopo.SUP[1] = 0
	g_icopo.SUP[RES_TYPCTR_860026602] = 0
	g_icopo.SUP[3] = 0
	g_icopo.SUP[4] = 0
	g_icopo.SUP[5] = 0xff
	erreur_860026602 = i_comptage(g_icopo, BASE_TELEPHONE_860026602, ICAR_REL_860026602)

	SI erreur_860026602 == 0
		ALORS
		type_cpt_860026602 = g_icopo.SUP[RES_TYPCTR_860026602]
	FINSI
FINSI

# Appel de type C+S ?

SI ( type_cpt_860026602 == TYPCTR_Fact_Loc_860026602)
	ALORS
	b_Fact_CPS_Loc_860026602 =1
FINSI

SI ( type_cpt_860026602 == TYPCTR_Fact_RI_860026602)
	ALORS
	b_Fact_CPS_RI_860026602 =1
FINSI


SI (b_Fact_CPS_Loc_860026602 == 1) || (b_Fact_CPS_RI_860026602 == 1)
	ALORS
	erreur_860026602=i_cree_art("Conversion",g_iartout10)
	i_strcpy(pt_TEMP_860026602, i_get_tab_field( "TDATCPS", gmt_date_860026602, C_DATCPS_860026602 ))

	erreur_860026602 = i_set_art_str (g_iartout10,$Conversion::DATE_STR,pt_TEMP_860026602)
	Date_CPS_860026602 = i_get_art_field(g_iartout10, $Conversion::DATE_ASC)

	SI ddebut_860026602 < Date_CPS_860026602
		ALORS
		erreur_860026602 = i_format_str2(pt_MESSAGE_860026602," AR <%s> avec date DC inferieure a la date d'activation <%s> de la facturation CPS",pt_DEDE_DIST_N_860026602,pt_TEMP_860026602)
		code_errone_860026602 = 0xA080
		code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
		erreur_860026602 = i_PlvMessEmettre( 8599, 1, g_iartin,"", 3,code_errone_860026602, C_Article_860026602, pt_MESSAGE_860026602 )
		SAUT DISTRI_DIV
	SINON
		#######################################
		#  Soumission de la requete de consultation d'une table de distribution ALICE
		#######################################
		i_strcpy(pt_NDE_860026602,pt_DEDE_DIST_N_860026602)
		SI i_strplcmp (pt_NDE_860026602,"0",0,1) == 0
			ALORS
			i_get_sub_str(pt_NDE_860026602,1,-1,pt_NDE_860026602)
		FINSI
		longueur_860026602 = i_conv_ascii_dcb (pt_NDE_860026602, pt_TEMP_860026602)
		SI (i_EnvoiReqConsTabDist( TD_SVA_860026602,gmt_date_860026602,pt_TEMP_860026602,longueur_860026602,0,1) != 0)
			ALORS
			#trace("Erreur i_EnvoiReqConsTabDist ALICE")
#QC862
#			bREDIST = 1
			bREDISTALICE_860026602 = 1
			i_strcpy(pt_LIBELREDIST_860026602,"Echec sur i_EnvoiReqConsTabDistDouble ALICE ")
		FINSI

		#######################################
		# Recherche de l'instance ECC ALICE
		#######################################
		instALICE_860026602 = i_LireInstanceECC(C_INST_ALICE_860026602)
		SI (!instALICE_860026602)
			ALORS
			#trace("Pas d'instance pour ALICE !")
			erreur_860026602 = i_PlvMessEmettre(8501,1,g_iartin,"",3,C_INST_ALICE_860026602,C_Article_860026602,g_ieec)
			SAUT DISTRI_ERR
		FINSI
		#trace1("instALICE  =<%d>",instALICE)

		#######################################
		# Lecture Resultat requete ALICE
		#######################################
		erreur_860026602 = i_LireReqConsTabDist()
		#trace1("RETOUR i_LireReqConsTabDist retour requette ALICE, erreur=<%d>",erreur)
		SI ( erreur_860026602 != 0 )
			ALORS
			#trace1( "Erreur i_LireReqConsTabDist ALICE: <%d>", erreur)
#QC862
#			bREDIST = 1
			bREDISTALICE_860026602 = 1
			i_strcpy(pt_LIBELREDIST_860026602,"Echec sur i_LireReqConsTabDistDouble ALICE ")
		FINSI
		val_860026602 = i_LireInfoECC( instALICE_860026602, 0 )

		SI (val_860026602 != 0)
			ALORS
			# AR present dans ALICE
			erreur_860026602 = i_LireChaineInfo( val_860026602, 0, 4, pt_BUF_860026602 )
			SI i_strcmp(pt_BUF_860026602,"") != 0
				ALORS
				i_strcpy(pt_CODE_TARIF_860026602,pt_BUF_860026602)
			SINON
				# info complementaire CODE_TARIF vide
#QC862
#				bREDIST = 1
				bREDISTALICE_860026602 = 1
				erreur_860026602 = i_format_str2(pt_LIBELREDIST_860026602," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NDE_860026602,0)
			FINSI

			erreur_860026602 = i_LireChaineInfo( val_860026602, 4, 1, pt_BUF_860026602 )
			SI i_strcmp(pt_BUF_860026602,"") != 0
				ALORS
				i_strcpy(pt_TYPE_EDIT_860026602,pt_BUF_860026602)
			SINON
				# info complementaire TYPE_EDIT vide
#QC862
#				bREDIST = 1
				bREDISTALICE_860026602 = 1
				erreur_860026602 = i_format_str2(pt_LIBELREDIST_860026602," AR <%s> trouve dans LAR ALICE mais aucune info complementaire valorisee",pt_NDE_860026602,0)
			FINSI
		SINON
#QC862
#				bREDIST = 1
				bREDISTALICE_860026602 = 1
			erreur_860026602 = i_format_str2(pt_LIBELREDIST_860026602," AR <%s> non trouve dans ALICE",pt_NDE_860026602,0)
		FINSI
	FINSI
FINSI

# /G4R6 Lot2

############################################################################
# Envoi requetes Table de Distribution (hors Alice)
############################################################################

bCENT_860026602   = 0
SI (EFFICACE_860026602)
	ALORS
	SI (i_valid_field_n(g_iartin,$NUM_IDAV)==1)
		ALORS
		L_DEDE_NORM_860026602 = i_conv_ascii_dcb(pt_IDAV_DIST_N_860026602, pt_DEDE_NORM_860026602)
	SINON
		L_DEDE_NORM_860026602 = i_conv_ascii_dcb(pt_DEDE_DIST_N_860026602, pt_DEDE_NORM_860026602)
	FINSI

	res_860026602 = i_EnvoiReqConsTabDist(TD_DEA, gmt_date_860026602, pt_DEDE_NORM_860026602, L_DEDE_NORM_860026602, 0, 1)

	SI ( res_860026602 !=0 )
		ALORS
		#trace1("Erreur i_EnvoiReqConsTabDistDouble %d", res)
		# VeriPcode
		#pLIBELREDIST = "Erreur i_EnvoiReqConsTabDistDouble"
		i_strcpy(pt_LIBELREDIST_860026602,"Erreur i_EnvoiReqConsTabDistDouble")
		bREDIST_860026602 = 1
	FINSI
FINSI

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

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

# COMPTIDEA *************

# CENTAURE*************
instCENTDEA_860026602 = i_LireInstanceECC(C_InstCENTDEA_860026602)

SI (!instCENTDEA_860026602)
	ALORS
	code_errone_860026602 = 0xA0B0
	code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
	erreur_860026602 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026602,C_InstCENTDEA_860026602,C_Article_860026602)
	SAUT DISTRI_ERR
FINSI


# CASPER *************
instCASPER_860026602 = i_LireInstanceECC(C_InstCASPER_860026602)

SI (!instCASPER_860026602)
	ALORS
	code_errone_860026602 = 0xA0B0
	code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
	erreur_860026602 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026602,C_InstCASPER_860026602,C_Article_860026602)
	trace("******************* __LINE__ Pas d'instance CASPER %***************************")
	SAUT DISTRI_ERR
FINSI

# si l article provient du traitement et non de la redistribution alors trait_ok=0, dans le cas contraire il ne faut pas renvoyer vers ALLOFACT_LOTS et SYMPHONIE
SI (trait_ok_860026602 == 0)
	ALORS
	# SYMP
	instSYMP_860026602 = i_LireInstanceECC(C_InstSYMP_860026602)

	SI (!instSYMP_860026602)
		ALORS
		code_errone_860026602 = 0xA0B0
		code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
		erreur_860026602 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026602,C_InstSYMP_860026602,C_Article_860026602)
		SAUT DISTRI_ERR
	SINON
		# Ajout de l'ECC SYMPHONIE a la liste courante des ECC:
		res_860026602 = i_AjouterCouranteECC(instSYMP_860026602)
	FINSI

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

	SI ( i_valid_field_n(g_iartin,$Tta6dea::T3ce) )
		ALORS
		erreur_860026602 = i_supprChamp(g_iartin,"T3ce")
	FINSI

	SI ( i_dup_art_id(g_iartin,g_iartout) )
		ALORS
		code_errone_860026602 = 0xA0D0
		code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
		erreur_860026602 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026602," pour Tsymptta6dea",C_Article_860026602)
		SAUT DISTRI_ERR
	FINSI
	res_860026602 = i_rename_art(g_iartout, "Tsymtta6dea")
FINSI

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

SI ((i_valid_field_n(g_iartin,$NUM_IDAV)==1) && !bREDIST_860026602)
	ALORS
	res_860026602 = i_LireReqConsTabDist()
	SI ( res_860026602 != 0 )
		ALORS
		#trace1( "Erreur i_LireReqConsTabDist: <%d>", res)
		# VerifPcode
		#pLIBELREDIST = "Erreur i_LireReqConsTabDist"
		i_strcpy(pt_LIBELREDIST_860026602,"Erreur i_LireReqConsTabDist")
		bREDIST_860026602 = 1
	FINSI

	# G3R22

	SI (i_LireInfoECC(instCENTDEA_860026602, 0) != 0)
		ALORS
		bCENT_860026602=3
	SINON
		L_DEDE_NORM_860026602 = i_conv_ascii_dcb(pt_DEDE_DIST_N_860026602,pt_DEDE_NORM_860026602)
		res_860026602 = i_EnvoiReqConsTabDist(TD_DEA, gmt_date_860026602, pt_DEDE_NORM_860026602, L_DEDE_NORM_860026602, 0, 1)
		SI ( res_860026602 !=0 )
			ALORS
			#trace("Erreur i_EnvoiReqConsTabDistDouble")
			# VerifPcode
			#pLIBELREDIST = "Erreur i_EnvoiReqConsTabDistDouble"
			i_strcpy(pt_LIBELREDIST_860026602,"Erreur i_EnvoiReqConsTabDistDouble")
			bREDIST_860026602 = 1
		FINSI
	FINSI
FINSI

SI (!(i_valid_field_n(g_iartin,$NUM_IDAV)==1) && !bREDIST_860026602)
	ALORS
	res_860026602 = i_LireReqConsTabDist()
	#trace1("RETOUR i_LireReqConsTabDist, erreur=<%d>",res)
	SI ( res_860026602 != 0 )
		ALORS
		# VeriPcode
		#pLIBELREDIST = "Erreur i_LireReqConsTabDist"
		i_strcpy(pt_LIBELREDIST_860026602,"Erreur i_LireReqConsTabDist")
		bREDIST_860026602 = 1
	FINSI

	# G3R22 bCOMPTI

	SI (i_LireInfoECC(instCENTDEA_860026602, 0) != 0)
		ALORS
		bCENT_860026602=3
	SINON
		bCENT_860026602=0
	FINSI
FINSI

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

#---------------------------------------------------------------------------
# COMPTIDEA depuis G2R1Ck
#---------------------------------------------------------------------------
#G3R12 suppression ECC

#-----------------------------------------------------------
# CENTAUREDEA
#-----------------------------------------------------------
SI (bCENT_860026602==3)
	ALORS
	# Ajout de l'ECC CENTAUREDEA a la liste courante des ECC:
	res_860026602 = i_AjouterCouranteECC(instCENTDEA_860026602)
FINSI
# G3R22 FINSI


#################################################################################
# Tests des criteres envoi a CASPER
#################################################################################

SI (trait_ok_860026602 == 0)
	ALORS
	SI (i_valid_field_n(g_iartin, $Tta6dea::NDE))
		ALORS
		# QC522 G3R22C3
		erreur_860026602 = i_get_art_str(g_iartin,$NDE,pt_TEMP2_860026602)
		i_strcpy(pt_NSUC_860026602, i_get_tab_field("TNSUC", gmt_date_860026602, pt_TEMP2_860026602))
		#i_strcpy(pt_NSUC, i_get_tab_field("TNSUC", gmt_date, pt_DEDE_DIST_N))
		SI (i_strcmp(pt_NSUC_860026602,"") != 0 )
			ALORS
			erreur_860026602=i_AjouterCouranteECC(instCASPER_860026602)
		FINSI
	FINSI
FINSI

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

erreur_860026602 = i_ValiderListeECC( 0, 0, 0, 0)

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

# G3R22 #---------------------------------------------------------------------------
# G3R22 # ComptiDEA creation G2R1Ck
# G3R22 #---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# CENTAUREDEA
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCENTDEA_860026602) && !bREDIST_860026602)
	ALORS
	#trace("Stockage vers CENTAUREDEA")
	# Duplication de l'article
	SI ( i_dup_art_dest(g_iartin,g_iartout2,C_Tcent_860026602) )
		ALORS
		code_errone_860026602 = 0xA0D0
		code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
		erreur_860026602 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026602,C_Tcent_860026602,C_Article_860026602)
		trace1("Erreur de i_dup_art_dest: <%d>",res_860026602)
		SAUT DISTRI_ERR
	FINSI

	# champs SCT
	#trace("initialisation des SCT")
	res_860026602 = i_transformer_bits(g_iartin,$SCT,"FV",pt_TEMP_860026602)
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::SCT,pt_TEMP_860026602)

	# champs STY
	#trace("initialisation des STY")
	res_860026602 = i_transformer_bits(g_iartin,$STY,"FV",pt_TEMP_860026602)
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::STY,pt_TEMP_860026602)

	# champ ICAR
	erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::DATE, ICAR_REL_860026602)

	# champ ILOCUS
	#trace("affecter valeur au champ ILOCUS")
	SI (i_valid_field_n(g_iartin, $Tta6dea::INFLOCUS)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $INFLOCUS)
		#trace1("Test de la valeur de INFLOCUS=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::ILOCUS, res_860026602)
	SINON
		#       erreur=i_set_art_field(g_iartout2, $TcentaureDEA::ILOCUS, 000)
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::ILOCUS, 0x30)
	FINSI

	# champ NLOCUS
	#trace("affecter valeur au champ NLOCUS")
	SI (i_valid_field_n(g_iartin, $Tta6dea::NUMLOCUS)==1)
		ALORS
		erreur_860026602=i_get_art_str(g_iartin, $NUMLOCUS, pt_TEMP_860026602)
		#trace2("NUMLOCUS=<%s>", pt_TEMP, "")
		erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NLOCUS, pt_TEMP_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::NLOCUS, 0x20)
	FINSI

	# IIDUS ( FOEX331 - LRA 21/01/2002 )
	# Gestion de T3idus avec L3idus nul:
	SI (i_valid_field_n(g_iartin,$INF_IDUS))
		ALORS
		res_860026602=i_get_art_field(g_iartin,$INF_IDUS)
		erreur_860026602=i_set_art_field(g_iartout2,$TcentaureDEA::IIDUS,res_860026602)
	FINSI

	# champ NIDUS
	SI (i_valid_field_n(g_iartin,$NDR))
		ALORS
		#trace("affecter valeur au champ NIDUS")
		erreur_860026602=i_get_art_str(g_iartin, $NDR, pt_TEMP_860026602)
		#trace2("NDR=<%s>", pt_TEMP, "")
		erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NIDUS, pt_TEMP_860026602)
	FINSI

	# champ IIPRV
	#trace("affecter valeur au champ IIPRV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::INFIPRV)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $INFIPRV)
		#trace1("Test de la valeur de INFIPRV=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::IIPRV, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::IIPRV, 0x30)
		#       erreur=i_set_art_field(g_iartout2, $TcentaureDEA::IIPRV, 000)
	FINSI

	# champ NIPRV
	#trace("affecter valeur au champ NIPRV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::NUMIPRV)==1)
		ALORS

		erreur_860026602=i_get_art_str(g_iartin, $NUMIPRV, pt_TEMP_860026602)
		#trace2("NUMIPRV=<%s>", pt_TEMP, "")
		erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NIPRV, pt_TEMP_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::NIPRV, 0x20)
		#       erreur=i_set_art_str(g_iartout2, $TcentaureDEA::NIPRV, "               ")
	FINSI

	# champ IIDRV
	#trace("affecter valeur au champ IIDRV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::INF_IDRV)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $INF_IDRV)
		#trace1("Test de la valeur de IIDRV=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::IIDRV, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::IIDRV, 0x30)
		#       erreur=i_set_art_field(g_iartout2, $TcentaureDEA::IIDRV, 000)
	FINSI

	# champ NIDRV
	#trace("affecter valeur au champ NIDRV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::NUM_IDRV)==1)
		ALORS

		erreur_860026602=i_get_art_str(g_iartin, $NUM_IDRV, pt_TEMP_860026602)
		#trace2("NUM_IDRV=<%s>", pt_TEMP, "")
		erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NIDRV, pt_TEMP_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::NIDRV, 0x20)
		#       erreur=i_set_art_str(g_iartout2, $TcentaureDEA::NIDRV, "               ")
	FINSI

	# champ NDEDE
	#trace("affecter DEDE/NUM au champ NDEDE")
	erreur_860026602=i_get_art_str(g_iartin, $NDE, pt_TEMP_860026602)
	#trace2("NDE=<%s>", pt_TEMP, "")

	#FOEX361 - EV164
	i_replace_str(pt_TEMP_860026602,"BCDE","AJSC",pt_TEMP_860026602)
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NDEDE, pt_TEMP_860026602)

	# champ IIDAV
	#trace("affecter valeur au champ IIDAV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::INF_IDAV)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $INF_IDAV)
		#trace1("Test de la valeur de INF_IDAV=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::IIDAV, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::IIDAV, 0x30)
	FINSI

	# champ NIDAV
	#trace("affecter valeur au champ NIDAV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::NUM_IDAV)==1)
		ALORS
		erreur_860026602=i_get_art_str(g_iartin, $NUM_IDAV, pt_TEMP_860026602)
		#trace2("NUM_IDAV=<%s>", pt_TEMP, "")
		erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::NIDAV, pt_TEMP_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::NIDAV, 0x20)
	FINSI

	# champ NBRV
	#trace("affecter valeur au champ NBRV")
	SI (i_valid_field_n(g_iartin, $Tta6dea::NRENV)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $NRENV)
		#trace1("Test de la valeur de NRENV=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::NBRV, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::NBRV, 0x30)
	FINSI

	# champ DUR
	res_860026602=i_get_art_field(g_iartin, $dduree)
	#trace1("Test de la valeur du metachamp dduree=<%d>" , res)
	erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::DUREE, res_860026602)


	# champ TAX
	#trace("affecter valeur au champ TAX")
	SI (i_valid_field_n(g_iartin, $Tta6dea::TAXE)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $tax)
		#trace1("Test de la valeur de TAXE=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::TAX, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::TAX, 0x30)
	FINSI

	# champ DUSEL
	#trace("affecter valeur au champ DUSEL")
	SI (i_valid_field_n(g_iartin, $Tta6dea::DUSEL)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $DUSEL)
		#trace1("Test de la valeur de DUSEL=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::DUSEL, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::DUSEL, 0x30)
	FINSI

	# champ DUSON
	#trace("affecter valeur au champ DUSON")
	SI (i_valid_field_n(g_iartin, $Tta6dea::DUSON)==1)
		ALORS
		res_860026602=i_get_art_field(g_iartin, $DUSON)
		#trace1("Test de la valeur de DUSON=<%d>" , res)
		erreur_860026602=i_set_art_field(g_iartout2, $TcentaureDEA::DUSON, res_860026602)
	SINON
		erreur_860026602=i_memset_field_n(g_iartout2, $TcentaureDEA::DUSON, 0x30)
	FINSI

	# champ COCA
	SI i_valid_field_n(g_iartin,$BETA)
		ALORS
		erreur_860026602=i_get_art_str(g_iartin,$BETA,pt_TEMP_860026602)
		erreur_860026602=i_set_art_str(g_iartout2,$TcentaureDEA::COCA,pt_TEMP_860026602)
	FINSI

	# champ COCAV
	SI i_valid_field_n(g_iartin,$BETAV)
		ALORS
		erreur_860026602=i_get_art_str(g_iartin,$BETAV,pt_TEMP_860026602)
		erreur_860026602=i_set_art_str(g_iartout2,$TcentaureDEA::COCAV,pt_TEMP_860026602)
	FINSI

	# champ CDSGTQS
	i_strcpy(pt_SGTQS_860026602,i_LireEECSGTQS(g_ieec))
	#trace2("SGTQS=<%s>",pt_SGTQS,"")
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::CDSGTQS, pt_SGTQS_860026602)

	# NOS - FOEX594
	SI ( i_valid_field_n( g_iartin, $INFNOS ) )
		ALORS
		erreur_860026602 = i_set_art_field( g_iartout2, $TcentaureDEA::INOS, i_get_art_field( g_iartin,$INFNOS ) )
	FINSI
	SI ( i_valid_field_n( g_iartin, $NUMNOS ) )
		ALORS
		erreur_860026602 = i_get_art_str( g_iartin, $NUMNOS, pt_NNOS_860026602 )
		erreur_860026602 = i_set_art_str( g_iartout2, $TcentaureDEA::NNOS, pt_NNOS_860026602 )
	FINSI

	# G4R6 Lot2
	# TYPE_EDIT
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::TYPE_EDIT, pt_TYPE_EDIT_860026602)

	# CODE_TARIF
	erreur_860026602=i_set_art_str(g_iartout2, $TcentaureDEA::CODE_TARIF, pt_CODE_TARIF_860026602)
# \G4R6 Lot2


	erreur_860026602 = i_set_art_field(g_iartout2, $TcentaureDEA::FIN, 0x0A )
FINSI


#-------------------------------------------------------------------------
# CASPER
#-----------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCASPER_860026602) )
	ALORS
	trace("Stockage vers CASPER")
	SI ( i_dup_art_id(g_iartin,g_iartout5) )
		ALORS
		code_errone_860026602 = 0xA0D0
		code_errone_860026602 = code_errone_860026602 + EFFICACE_860026602
		erreur_860026602 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026602,C_Tcasper_860026602,C_Article_860026602)
		SAUT DISTRI_ERR
	FINSI
	res_860026602 = i_rename_art(g_iartout5, C_Tcasper_860026602)

	# COMPLEMENTS CASPER (SGTQS NSUC)

	#champ SGTQS
	erreur_860026602 = i_ajoutChampNum(g_iartout5,$TcasperTta6dea::T4sgtqs,$TcasperTta6dea::SGTQS,0)
	i_strcpy(pt_SGTQS_860026602,i_LireEECSGTQS(g_ieec))
	#trace2("SGTQS=<%s>",pt_SGTQS,"")
	erreur_860026602 = i_set_art_str(g_iartout5, $TcasperTta6dea::SGTQS, pt_SGTQS_860026602)

	#champ NSUC
	erreur_860026602 = i_ajoutChampNum(g_iartout5,$TcasperTta6dea::T4nsuc,$TcasperTta6dea::NSUC,0)
	SI i_strcmp(pt_NSUC_860026602,"vide") == 0
		ALORS
		i_strcpy(pt_NSUC_860026602," ")
	FINSI
	erreur_860026602 = i_set_art_str(g_iartout5,$TcasperTta6dea::NSUC,pt_NSUC_860026602)
	res_860026602 = i_strlen(pt_NSUC_860026602)
	erreur_860026602 = i_resize_tlv(g_iartout5, "T4nsuc", "NSUC", res_860026602)
FINSI

#-----------------------------------------------------------------------

#------------------ Premier passage en distri --------------------------

SI (trait_ok_860026602 == 0)
	ALORS

	#---------------------------------------------------------------------------
	# Complements Symphonie (SGTQS + CCD)
	#---------------------------------------------------------------------------
	SI ( !i_ChercherCouranteECC(instSYMP_860026602) )
		ALORS
		#champ CCD
		erreur_860026602=i_ajoutChampNum(g_iartout,$Tsymtta6dea::T4ccd,$Tsymtta6dea::CCD,0)
		erreur_860026602=i_set_art_field(g_iartout,$Tsymtta6dea::CCD, 255)

		#champ SGTQS
		erreur_860026602 = i_ajoutChampNum(g_iartout,$Tsymtta6dea::T4sgtqs,$Tsymtta6dea::SGTQS,0)
		i_strcpy(pt_SGTQS_860026602,i_LireEECSGTQS(g_ieec))
		#trace2("SGTQS=<%s>",pt_SGTQS,"")
		erreur_860026602 = i_set_art_str(g_iartout, $Tsymtta6dea::SGTQS, pt_SGTQS_860026602)

		#champ ECC_FACT
		erreur_860026602=i_ajoutChampNum(g_iartout,$Tsymtta6dea::T4eccfact,$Tsymtta6dea::ECC_FACT,0)

		erreur_860026602 = i_set_art_str(g_iartout, $Tsymtta6dea::ECC_FACT, " ")

#QC862
#		SI EFFICACE 		
		SI EFFICACE_860026602 && bREDISTALICE_860026602 == 0
			ALORS
			# G3R22

			SI (bCENT_860026602 == 3)
				ALORS
				erreur_860026602 = i_set_art_str(g_iartout, $Tsymtta6dea::ECC_FACT, "CENTAURE")
			FINSI
		FINSI

# G4R6 Lot2
		# TYPE_EDIT
		SI i_strcmp(pt_TYPE_EDIT_860026602," ") != 0
			ALORS
			erreur_860026602 = i_ajoutChampNum(g_iartout,$Tsymtta6dea::T4type_edit,$Tsymtta6dea::TYPE_EDIT,0)
			erreur_860026602=i_set_art_str(g_iartout, $Tsymtta6dea::TYPE_EDIT, pt_TYPE_EDIT_860026602)
		FINSI

		# CODE_TARIF
		SI i_strcmp(pt_CODE_TARIF_860026602,"    ") != 0
			ALORS
			erreur_860026602 = i_ajoutChampNum(g_iartout,$Tsymtta6dea::T4code_tarif,$Tsymtta6dea::CODE_TARIF,0)
			erreur_860026602=i_set_art_str(g_iartout, $Tsymtta6dea::CODE_TARIF, pt_CODE_TARIF_860026602)
		FINSI
# \G4R6 Lot2

	FINSI

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

	#---------------------------------------------------------------------------
	# Symphonie
	#---------------------------------------------------------------------------
	SI ( !i_ChercherCouranteECC(instSYMP_860026602) )
		ALORS
		res_860026602=i_stocke_art_iecc(g_iartout, instSYMP_860026602)
		trace("Emission vers SYMPHONIE reussie")
	FINSI

	#G4R8 QC862 Paragraphe remonte pour envoi a casper au 1er tour de redistribution
	#-------------------------------------------------------------------------
	# CASPER
	#-------------------------------------------------------------------------
	SI ( !i_ChercherCouranteECC(instCASPER_860026602) )
		ALORS
		#trace( "Emission vers CASPER" )
		res_860026602 = i_stocke_art_iecc(g_iartout5, instCASPER_860026602)
	FINSI
	

FINSI

#QC862
#SI (bREDIST == 1 )
SI (bREDIST_860026602 == 1 || bREDISTALICE_860026602 == 1)
	ALORS
	SAUT DISTRI_RDT
FINSI

#--------------------Fin du premier passage---------------------------------

#---------------------------------------------------------------------------
# CENTAURE
#---------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instCENTDEA_860026602) )
	ALORS
	res_860026602=i_stocke_art_iecc(g_iartout2, instCENTDEA_860026602)
	trace("Emission vers CENTAUREDEA reussie")
FINSI


#G4R8 QC862 Paragraphe remonte pour envoi a casper au 1er tour de redistribution
##-------------------------------------------------------------------------
## CASPER
##-------------------------------------------------------------------------
#SI ( !i_ChercherCouranteECC(instCASPER) )
#	ALORS
#	#trace( "Emission vers CASPER" )
#	res = i_stocke_art_iecc(g_iartout5, instCASPER)
#FINSI
#
SAUT DISTRI_FIN

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

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

POINT DISTRI_ERR

#trace( "anomalie de distribution")
res_860026602 = i_make_art_rej(g_iartin, g_iartout, code_errone_860026602)
res_860026602 = i_stocke_art(g_iartout,0,PT_ERRONE,0)

RETOUR TRAIT_OK

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

POINT DISTRI_DIV

#IFDEF trace_niv1 = 1
trace( "__FILE__:__LINE__ : Fin du Pcode de distribution : Stockage en DIVERS" )
#ENDIF
res_860026602 = i_stocke_art( g_iartin, 0, PT_DIVERS, 0 )

RETOUR TRAIT_OK

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

POINT DISTRI_RDT

#trace( "envoi en redistribution")
SI (trait_ok_860026602 == 0)
	ALORS
	#---------------------
	#  Mise a jour de ENVELOPPE Optionelle:
	# Contient le nom de l'EEC necessaire au message d'erreur de la redistribution
	# Nom_EEC
	i_strcpy(pt_SGTQS_860026602, i_LireEECSGTQS(g_ieec))
#	res = i_set_attr_str_n( $E_SC_lot::Nom_EEC, pt_SGTQS)
#	res = i_get_attr_str_n($E_SC_lot::Nom_EEC, pt_SGTQS)
	erreur_860026602 = i_PlvMessEmettre(8503,2,g_iartin,"",3,pt_LIBELREDIST_860026602,"Tta6dea",pt_SGTQS_860026602)
FINSI

res_860026602 = i_stocke_art( g_iartin, 0, PT_REDIST|RD_TABLE2, 0)
RETOUR TRAIT_OK

POINT DISTRI_FIN

#trace("Fin du Pcode de distribution Tta6dea")

RETOUR TRAIT_OK
