DEFINITION TD_VGA1_860026312 7
DEFINITION TD_VGA2_860026312 2
DEFINITION INST_VGA_860026312 "VGA"  
DEFINITION NUMTAB_860026312 1
DEFINITION ZONEMETRO_860026312 7
DEFINITION C_Article_860026312 "Ttnna7dc"
DEFINITION C_InstTRAFIC_860026312 "TRAFIC"
DEFINITION C_InstFE_860026312 "FE"
DEFINITION C_InstSYMP_860026312 "SYMP"
DEFINITION C_InstCENTVG_860026312 "CENTAUREVG"
DEFINITION C_Tsymphnodedc_860026312 "Tsymphnodedc"
DEFINITION C_Ttrafic_860026312 "Ttrafic"
DEFINITION C_Tfe_860026312 "Tfe"
DEFINITION C_Tdelta_minute_860026312 "Tdelta_minute"
DEFINITION C_TcentaureVG_860026312 "TcentaureVG"
REGISTRE ENTIER gmt_date_860026312
REGISTRE ENTIER L_NDR_860026312
REGISTRE ENTIER EFFICACE_860026312
REGISTRE ENTIER bTRAFIC_860026312
REGISTRE ENTIER bFE_860026312
REGISTRE ENTIER bDELMIN_860026312
REGISTRE ENTIER bSYMPH_860026312
REGISTRE ENTIER VGA_860026312
REGISTRE ENTIER bCENTVG_860026312
REGISTRE ENTIER instTRAFIC_860026312
REGISTRE ENTIER instFE_860026312
REGISTRE ENTIER instDELMIN_860026312
REGISTRE ENTIER instSYMPH_860026312
REGISTRE ENTIER instCENTAUREVG_860026312
REGISTRE ENTIER instVGA_860026312
REGISTRE POINTEUR pt_NDR_860026312
REGISTRE POINTEUR pt_NDE_860026312
REGISTRE POINTEUR pt_BUF_860026312
REGISTRE POINTEUR pt_SGTQS_860026312
REGISTRE ENTIER erreur_860026312
REGISTRE ENTIER info_860026312
REGISTRE ENTIER res_860026312
REGISTRE ENTIER longueur_860026312 
REGISTRE ENTIER FE_distri_860026312 
REGISTRE POINTEUR pt_ecc_860026312
REGISTRE ENTIER f3BPQ_OK_860026312
REGISTRE POINTEUR pt_buffer_860026312
REGISTRE ENTIER code_errone_860026312
REGISTRE ENTIER val_860026312
REGISTRE ENTIER dizaine_860026312
REGISTRE ENTIER unite_860026312
REGISTRE ENTIER cfr_860026312
REGISTRE ENTIER ENVELOPPE_NOK_860026312
REGISTRE ENTIER dede_num1_860026312
REGISTRE ENTIER INF_IDUS_860026312
REGISTRE ENTIER INF_DEDE_860026312
REGISTRE ENTIER CAX_860026312 
REGISTRE ENTIER DUREE_860026312  
REGISTRE ENTIER TAXE_860026312   
REGISTRE ENTIER date_locale_860026312 
REGISTRE ENTIER E_860026312        
REGISTRE ENTIER ddebut_860026312
REGISTRE POINTEUR pt_InfoCompl_860026312
REGISTRE POINTEUR pt_inst_860026312
REGISTRE ENTIER trait_ok_860026312
REGISTRE POINTEUR pt_LIBELREDIST_860026312
REGISTRE ENTIER bREDIST_860026312
REGISTRE POINTEUR pt_nomECC_FACT_860026312
REGISTRE POINTEUR pt_OFFRE_860026312
REGISTRE POINTEUR pt_OPERA_860026312
REGISTRE POINTEUR pt_VGA_OP_860026312
REGISTRE POINTEUR pt_VGA_OF_860026312
REGISTRE POINTEUR pt_RES1_860026312
############################################################################
#
# Fichier : Ttnna7dc.src
#
# Version : %version: 11 %
#
# Date    : %date_modified: 06/12/01 17:21 %
#
# Distribution : CE NODES : SERVICE TNN 
#
# En entree :
#    Article : Ttnna7dc.art
#
# En sortie :
#    TRAFIC
#    FE
#    Delta Minute
#    Symphonie
#
# HISTORIQUE :
#	17/06/2002 - PSA - FO1510  : Encapsulation pour le stockage en errone
#	17/07/2002 - NSA -  : Enrichissement des alarmes; ajout alarmes redist
#	13/11/2002 - MCH: FO109 - DEDE_DIST_N pour FE et DM
#	10/02/2003 - RBE - Envoi en redistri. si pb acces fichiers de distrib.
#	28/03/2003 - RBE - FO240 : envoi a symphonie si redist.
#	17/04/2003 - RBE - FO272 : sortie symphonie sans ajout si redist
#	22/04/2003 - RBE - FO279 : champ ECC_FACT pour Symphonie mal alimente
#	10/04/2003 - MCH - requete distri; date gmt + calcul longueur cle
#	22/07/2003 - DRE - Modif calcul gmt_date
# 	03/09/2003 - DRE - FO392 : Initialisation des variables Pcode
# 	12/12/2003 - MCH - G2R0Ca : modif enveloppe - recup cfr pour c_libre de FE
# 	02/06/2004 - NSA - G2R0Cl: integration des codes d erreurs
#	18/07/2005 - PKH - G2R0Cq: facturation du trafic hors preselection par l'opirateur VGA
#	06/08/2005 - PKH - G2R1CQ : MODIFICATION de spec Creation des 2 tables de distributions VGA1->table8 (VGA_OFF), VGA3->table3(VGA_OPE)
#       20/09/2005 - PKH - G2R1Cq : Modification de l'appel des tables VGA1->table 8 et VGA2->table3
#	28/09/2005 - PSA - G2R1Co : fusion Cj sur Cq (prise en compte de la FO1406 sur la Cq)
#	21/10/2005 - PSA - G2R2Co : FO 1530
#	02/12/2005 - PSA - G2R2Co : FO 1610 (eligibilite VGA)
#	29/12/2005 - PKH - G2R2Ca : FO1628 Evolution eligibilite VGA
#       13/12/2006 - PKH - G2R2Ca : FO1681 si AR FE et VGA pas de distribution pour FE 
# 	31/12/2008 - RHE - G3R11  : Z=7 pour offre VGA                                                                                                                                                                                                                                     
# 	13/10/2011 - DRE - VerifPcode
############################################################################


############################################################################
# Declarations
#############################################################################

#---------------------------------------------------------------------------
# VARIABLES LOCALES
# 
#---------------------------------------------------------------------------



# Variables fonctionnelles

# Booleens

# Variables d instance
  

# Divers
# ICI G2R0CA
# ETLA G2R0CA

#FO 1610


#---------------------------------------------------------------------------
# CHAMPS DE L ARTICLE EN ENTREE
#--------------------------------------------------------------------------- 

#---------------------------------------------------------------------------
# CHAMPS DE L ARTICLE DE SORTIE
#--------------------------------------------------------------------------- 



# Libelle contenant la cause de l'envoi en redistribution
#Registre pour VGA
#Constantes pour message d alarme

#VerifPcode
#pt_SGTQS = "999999999999"


#---------------------------------------------------------------------------
# INITIALISATION
#---------------------------------------------------------------------------

bTRAFIC_860026312 = 0
bFE_860026312 = 0
bDELMIN_860026312 = 0
bSYMPH_860026312 = 0
VGA_860026312 = 0
bCENTVG_860026312 = 0
pt_NDR_860026312="123456789012345"
pt_NDE_860026312="012345678912345"
pt_BUF_860026312 = "12345678912345678912345612345" 
pt_ecc_860026312 = "596702568210398589"
pt_InfoCompl_860026312="12312345"
pt_inst_860026312="987654321012345"
instTRAFIC_860026312=0
instFE_860026312=0
instDELMIN_860026312=0
instSYMPH_860026312=0
instCENTAUREVG_860026312=0
dede_num1_860026312 = 0
pt_LIBELREDIST_860026312="78901234567890123456789012345612345"
pt_SGTQS_860026312="12345678901212345"
pt_buffer_860026312 = "123456789123456712345"
f3BPQ_OK_860026312=0
bREDIST_860026312=0
pt_nomECC_FACT_860026312="67676767676767"
pt_OFFRE_860026312 = "1919191919191919191919"
pt_VGA_OF_860026312 = "50350350350350350350389"
pt_OPERA_860026312 = "403403403403403403403403"
pt_VGA_OP_860026312 = "306306306306306306306306"
pt_RES1_860026312 = "2980258956897499200144674982398"
# Initialisation
i_strcpy(pt_nomECC_FACT_860026312,"")
i_strcpy(pt_ecc_860026312,"")
i_strcpy(pt_OFFRE_860026312,"")
i_strcpy(pt_VGA_OF_860026312,"")
i_strcpy(pt_OPERA_860026312,"")
i_strcpy(pt_VGA_OP_860026312,"")
i_strcpy(pt_RES1_860026312,"")


#VerifPcode
i_strcpy(pt_NDR_860026312,"")
i_strcpy(pt_NDE_860026312,"")
i_strcpy(pt_BUF_860026312,"")
i_strcpy(pt_SGTQS_860026312,"")
i_strcpy(pt_buffer_860026312,"")
i_strcpy(pt_InfoCompl_860026312,"")
i_strcpy(pt_inst_860026312,"")
i_strcpy(pt_LIBELREDIST_860026312,"")


#\VerifPcode


# ICI G2R0CA
ENVELOPPE_NOK_860026312 = -1
# ETLA G2R0CA

trace("DISTRIBUTION - Ttnna7dc - Service TNN CE Nodes")
############################################################################
# Variables Fonctionnelles Globales
############################################################################

#---------------------------------------------------------------------------
# Variable fonctionnelle EFFICACE
#---------------------------------------------------------------------------

EFFICACE_860026312 = 0
SI (i_valid_field(g_iartin,"TAP")==1)
ALORS
        res_860026312=i_get_field_val(g_iartin,"TAP")
        trace1("Valeur du champ TAP:%d", res_860026312)
        SI ( res_860026312 == 0x00 )
        ALORS
                EFFICACE_860026312 = 1
        SINON
                EFFICACE_860026312 = 0
        FINSI
FINSI

SI (i_valid_field_n(g_iartin,$Ttnna7dc::T3cap1)==1) 
ALORS
        trace("Parametre cap1 present !")
        CAX_860026312=i_get_art_field(g_iartin,$Ttnna7dc::CAX:0)
        SI (CAX_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " pas de CAX" )
              SAUT DISTRI_ERR
        FINSI

        DUREE_860026312=i_get_art_field(g_iartin,$Ttnna7dc::DUREE:0)
        SI (DUREE_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " pas de DUREE" )
              SAUT DISTRI_ERR
        FINSI
        
        TAXE_860026312=i_get_art_field(g_iartin,$Ttnna7dc::TAXE:0)
        SI (TAXE_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, "pas de TAXE" )
              SAUT DISTRI_ERR
        FINSI
FINSI
SI (i_valid_field_n(g_iartin,$Ttnna7dc::T3cab)==1) 
ALORS
#       trace("Parametre cab present !")
        CAX_860026312=i_get_art_field(g_iartin,$Ttnna7dc::CAX:1)
        SI (CAX_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, "pas de CAX" )
              SAUT DISTRI_ERR
        FINSI

        DUREE_860026312=i_get_art_field(g_iartin,$Ttnna7dc::DUREE:1)
        SI (DUREE_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " pas de DUREE" )
              SAUT DISTRI_ERR
        FINSI

        TAXE_860026312=i_get_art_field(g_iartin,$Ttnna7dc::TAXE:1)
        SI (TAXE_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " pas de TAXE" )
              SAUT DISTRI_ERR
        FINSI
FINSI

SI ((i_get_art_fieldtab(g_iartin,$NDE,0) == 3 ) && (i_strlen(pt_NDE_860026312) == 4))
ALORS
	f3BPQ_OK_860026312=1
FINSI



# ---------------------------------------------------
# Identification de la provenance de l'article        
# ---------------------------------------------------
trait_ok_860026312 = -1
# trait_ok : nb de passage en redistribution
trait_ok_860026312 = i_LireRedistCpt()
# ICI G2R0CA
SI ( trait_ok_860026312 > 0 )
ALORS
	ENVELOPPE_NOK_860026312 = 0
FINSI
# ETLA G2R0CA

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

ddebut_860026312=i_get_art_field(g_iartin,$Ttnna7dc::ddebut)
trace1("ddebut= %d",ddebut_860026312)

SI (ddebut_860026312==-1)
ALORS
	code_errone_860026312 = 0xA080
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/ddebut" )
        SAUT DISTRI_ERR
FINSI

gmt_date_860026312 = i_DHgetCe2gTime(NUMTAB_860026312,ZONEMETRO_860026312,ddebut_860026312)

#-----------------------------------------Modification pour La version G2R1Cq (VGA)--------------------------------------------------------
#-----------------------------------------Debut recherche infos dans table VGA-------------------------------------------------------------  



instVGA_860026312 = i_LireInstanceECC(INST_VGA_860026312)

SI (!instVGA_860026312)
ALORS
        trace("Pas d'instance pour VGA!")
	erreur_860026312 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"VGA",C_Article_860026312,g_ieec)
	SAUT DISTRI_ERR
FINSI

trace1("instVGA=<%d>",instVGA_860026312)



L_NDR_860026312 = i_get_art_fieldlength(g_iartin,$NDR)
SI ( L_NDR_860026312 % 2 == 0 )
ALORS
        L_NDR_860026312 = L_NDR_860026312 / 2
SINON
        L_NDR_860026312 = L_NDR_860026312 / 2 + 1
FINSI
 
##############################################################################
# Envoi Requetes aux tables de distribution VGA1 et VGA3
##############################################################################
#erreur = i_EnvoiReqConsTabDistDouble(TD_VGA8,TD_VGA3,gmt_date,i_get_art_fieldptr(g_iartin, $NDR),L_NDR,L_NDR,1,0,1) 
# FO 1610 : VGA reste nul si appel en preselection c-a-d
# - 1er digit de DEDE_NUM entre 1 et 6

SI (i_valid_field_n(g_iartin, $Ttnna7dc::NDE))
ALORS
	dede_num1_860026312 = g_iartin.NDE[0]
FINSI

# G3R11 Z=7 pour offre VGA                                                                                                                                                                                                                                     
#SI  (dede_num1 < 7) 
SI  (dede_num1_860026312 < 8) 
ALORS
	SAUT FIN_VGA
FINSI


erreur_860026312 = i_EnvoiReqConsTabDist( TD_VGA1_860026312,gmt_date_860026312,i_get_art_fieldptr(g_iartin,$NDR),L_NDR_860026312,0,1)
SI (erreur_860026312 != 0)
ALORS
	trace1("*********ERREUR i_EnvoiReqConsTabDistDouble VGA1 = %d ***************", erreur_860026312)
#VerifPcode
#	pLIBELREDIST = "i_EnvoiReqConsTabDist pour VGA"
	i_strcpy(pt_LIBELREDIST_860026312,"i_EnvoiReqConsTabDist pour VGA")
	bREDIST_860026312 = 1
FINSI

SI !bREDIST_860026312
ALORS
	trace (" Lecture du retour de la requette pour les tables VGA1")
	erreur_860026312 = i_LireReqConsTabDist()
	    SI ( erreur_860026312 != 0 )
	    ALORS
	    	trace1( "Erreur i_LireReqConsTabDist VGA1=<%d>", erreur_860026312)
#VerifPcode
#		pLIBELREDIST = "i_LireReqConsTabDist VGA"
		i_strcpy(pt_LIBELREDIST_860026312,"i_LireReqConsTabDist VGA")
		bREDIST_860026312 = 1
	    FINSI
FINSI




val_860026312 = i_LireInfoECC( instVGA_860026312, 0 )

# test redist OK apres 1ER passage SI ( res > 0 && trait_ok !=0 )
SI ( val_860026312 != 0)
ALORS
	erreur_860026312 = i_LireChaineInfo( val_860026312, 0, 6, pt_OFFRE_860026312 )
	i_get_sub_str(pt_OFFRE_860026312,0,2,pt_RES1_860026312)
	SI(i_strcmp(pt_RES1_860026312,"VGT"))
	ALORS
		VGA_860026312 = 1
	FINSI
FINSI	
	
	
SI (VGA_860026312 == 1)
ALORS
        SI (i_strcmp(pt_OFFRE_860026312,g_inull))
	ALORS
		i_strcpy(pt_VGA_OF_860026312,pt_OFFRE_860026312)
	SINON
		i_strcpy(pt_VGA_OF_860026312," ")
		        
	FINSI

trace2(" Resultat de i_LireChaineInfo pour la table VGA1 (table 8): <%s>", pt_OFFRE_860026312, "")		

 erreur_860026312 = i_EnvoiReqConsTabDist( TD_VGA2_860026312,gmt_date_860026312,i_get_art_fieldptr(g_iartin,$NDR),L_NDR_860026312,0,1)

SI (erreur_860026312 != 0)
ALORS
	trace1("*********ERREUR i_EnvoiReqConsTabDistDouble VGA2 = %d ***************", erreur_860026312)

#VerifPcode
#	pLIBELREDIST = "i_EnvoiReqConsTabDist pour VGA2"
	i_strcpy(pt_LIBELREDIST_860026312,"i_EnvoiReqConsTabDist pour VGA2")
	bREDIST_860026312 = 1
FINSI

SI !bREDIST_860026312
ALORS
	trace (" Lecture du retour de la requette pour les tables VGA2")
	erreur_860026312 = i_LireReqConsTabDist()
	    SI ( erreur_860026312 != 0 )
	    ALORS
		trace1( "Erreur i_LireReqConsTabDist VGA2=<%d>", erreur_860026312)
#VerifPcode
#		pLIBELREDIST = "i_LireReqConsTabDist VGA2"
		i_strcpy(pt_LIBELREDIST_860026312,"i_LireReqConsTabDist VGA2")
		bREDIST_860026312 = 1
	    FINSI
FINSI


val_860026312= 0
val_860026312 = i_LireInfoECC( instVGA_860026312, 0 )

SI (val_860026312 != 0)
ALORS
erreur_860026312 = i_LireChaineInfo( val_860026312, 0, 6, pt_OPERA_860026312)

	SI (i_strcmp(pt_OPERA_860026312,g_inull))
	ALORS
		i_strcpy(pt_VGA_OP_860026312,pt_OPERA_860026312)
	SINON
				i_strcpy(pt_VGA_OP_860026312,"")
	FINSI
FINSI	
FINSI
trace2(" Resultat de i_LireChaineInfo pour la table VGA2 (table 3): <%s>", pt_OPERA_860026312, "")		

POINT FIN_VGA

#*************fin interrogation table VGA

erreur_860026312 = i_EnvoiReqConsTabDistDouble( TD_Fixe, TD_Inter, gmt_date_860026312, i_get_art_fieldptr(g_iartin, $NDR), L_NDR_860026312, L_NDR_860026312, 1, 0, 1)
SI ( erreur_860026312 != TRAIT_OK )
ALORS
#	trace1("Erreur i_EnvoiReqConsTabDistDouble: %d", erreur)
#VerifPcode
#	pLIBELREDIST = "i_EnvoiReqConsTabDistDouble"
	i_strcpy(pt_LIBELREDIST_860026312,"i_EnvoiReqConsTabDistDouble")
	bREDIST_860026312 = 1
FINSI


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

SI ( i_valid_field_n(g_iartin, $T3idus)!=1 )
ALORS
	trace("Champ Numero Demandeur absent !")
	code_errone_860026312 = 0xA080
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/T3idus" )

	SAUT DISTRI_ERR
FINSI

INF_IDUS_860026312 = g_iartin.INF_IDUS
        trace1("INF_IDUS%d", INF_IDUS_860026312)
SI (INF_IDUS_860026312 != 0x80)
ALORS
        trace1("codage du champs FD/IDUS/INF incorrect (INF_IDUS %d)", INF_IDUS_860026312)
        SAUT DISTRI_ERR
SINON
	#
	# Codage hexadecimal par quartet avec quartet de droite a 0xF
	#
	longueur_860026312 = i_get_art_field(g_iartin, $L3idus)
        SI (longueur_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/L3IDUS" )
              SAUT DISTRI_ERR
        FINSI
        # longueur relle du champ IDUS_NUM
        longueur_860026312 = longueur_860026312 - 1
       	trace1("LONGUEUR %d", longueur_860026312)

	## LRA - 26/07/2001 : IDUS_NUM est un faux DCB.

FINSI


SI ( i_valid_field_n(g_iartin, $T3dede)!=1 )
ALORS
	trace("Champ Numero Demande absent !")
	SAUT DISTRI_ERR
FINSI

INF_DEDE_860026312 = g_iartin.INF_DEDE
        trace1("INF_DEDE %d", INF_DEDE_860026312)
SI (INF_DEDE_860026312 != 0x82)
ALORS
	code_errone_860026312 = 0xA080
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/INF_DEDE" )
        trace1("codage du champs FD/DEDE/INF incorrect (INF_DEDE %d)", INF_DEDE_860026312)
        SAUT DISTRI_ERR
SINON
	#
	# Codage hexadecimal par quartet avec quartet de droite a 0xF
	#
	longueur_860026312 = i_get_art_field(g_iartin, $L3dede)
        SI (longueur_860026312==-1)
        ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/L3DEDE" )
              SAUT DISTRI_ERR
        FINSI
        # longueur relle du champ DEDE_NUM
        longueur_860026312 = longueur_860026312 - 1
       	trace1("LONGUEUR %d", longueur_860026312)

	## LRA - 26/07/2001 : DEDE_NUM est un faux DCB.

FINSI



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

#---------------------------------------------------------------------------
# TRAFIC
#---------------------------------------------------------------------------

instTRAFIC_860026312 = i_LireInstanceECC(C_InstTRAFIC_860026312)
SI (!instTRAFIC_860026312)
ALORS
        trace("Pas d'instance pour TRAFIC !")
        bTRAFIC_860026312=0
        bDELMIN_860026312=0
	code_errone_860026312 = 0xA0B0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,C_InstTRAFIC_860026312,C_Article_860026312)
        SAUT DISTRI_ERR
SINON
        bTRAFIC_860026312=1
	bDELMIN_860026312=1	
FINSI


#---------------------------------------------------------------------------
# FE
#--------------------------------------------------------------------------- 

instFE_860026312 = i_LireInstanceECC(C_InstFE_860026312)
SI (!instFE_860026312)
ALORS
        trace("Pas d'instance pour FE!")
        bFE_860026312=0
	code_errone_860026312 = 0xA0B0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,C_InstFE_860026312,C_Article_860026312)
        SAUT DISTRI_ERR
SINON
	bFE_860026312=1
FINSI


#---------------------------------------------------------------------------
# DELTA MINUTE
#--------------------------------------------------------------------------- 
## meme instance que pour TRAFIC pour interroger la table de distribution


#---------------------------------------------------------------------------
#CENTAUREVG
#---------------------------------------------------------------------------
instCENTAUREVG_860026312= i_LireInstanceECC(C_InstCENTVG_860026312)
trace1("instCENTAUREVG=<%d>",instCENTAUREVG_860026312)
SI (!instCENTAUREVG_860026312)
ALORS
	trace("Pas d'instance pour CENTAUREVG!")
	bCENTVG_860026312=0
	code_errone_860026312 = 0xA0B0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,C_InstCENTVG_860026312,C_Article_860026312)
        SAUT DISTRI_ERR
SINON
	bCENTVG_860026312=1
FINSI


#---------------------------------------------------------------------------
# SYMPHONIE
#--------------------------------------------------------------------------- 

instSYMPH_860026312=i_LireInstanceECC(C_InstSYMP_860026312)
trace1("instSYMPH=<%d>",instSYMPH_860026312)
SI (!instSYMPH_860026312)
ALORS
	trace("instSYMPH nul !")
	bSYMPH_860026312=0
	code_errone_860026312 = 0xA0B0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,C_InstSYMP_860026312,C_Article_860026312)
       SAUT DISTRI_ERR
SINON
	trace("instSYMPH nul !")
	bSYMPH_860026312=1
FINSI



# Ajout de SYMPHONIE a la liste des ECC
SI (bSYMPH_860026312==1)
ALORS	
	# Ajout de l ECC SYMPHONIE a la liste courante des ECC
        SI( i_AjouterCouranteECC(instSYMPH_860026312)>=0 )
        ALORS
                trace("SYMPHONIE ajoute a la liste courante des ECC")   
        SINON
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_AjouterCouranteECC" )
                trace("Retour de i_AjouterCouranteECC en erreur")
                SAUT DISTRI_ERR         
        FINSI
FINSI



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

trace("Duplication vers SYMPHONIE")	
SI ( i_dup_art_id(g_iartin, g_iartout4) )
ALORS
    trace("ERREUR de duplication vers SYMPHONIE")
	code_errone_860026312 = 0xA0D0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026312,C_Tsymphnodedc_860026312,C_Article_860026312)
    SAUT DISTRI_ERR	
FINSI
	
SI ( i_rename_art(g_iartout4, C_Tsymphnodedc_860026312) )
ALORS
    trace1("ERREUR de renommage, erreur=<%d>",erreur_860026312)

	code_errone_860026312 = 0xA0D0
	code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
	erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, "i_rename_art" )
   SAUT DISTRI_ERR
FINSI



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

SI !bREDIST_860026312
ALORS
	erreur_860026312 = i_LireReqConsTabDist()
	SI ( erreur_860026312 != TRAIT_OK )
	ALORS
#		trace1( "Erreur i_LireReqConsTabDist: %d", erreur)
#VerifPcode
#		pLIBELREDIST = "i_LireReqConsTabDist"
		i_strcpy(pt_LIBELREDIST_860026312,"i_LireReqConsTabDist")
		bREDIST_860026312 = 1
	FINSI
FINSI


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

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


#---------------------------------------------------------------------------
# FE appartient a la table de distribution ?
#---------------------------------------------------------------------------

SI( bFE_860026312 == 1 && !bREDIST_860026312 )
ALORS
        info_860026312= i_LireInfoECC( instFE_860026312, 0 )
        trace1("Retour de i_LireInfoECC -  FE: <%d>",info_860026312)
#G2R1Cj  FO1406        SI( info > 0 )
        SI( info_860026312 != 0 )
        ALORS
                trace( "FE appartient a la table DISTRI")
		FE_distri_860026312 = 1
	SINON
		trace( "FE n'appartient pas a la table DISTRI")
		FE_distri_860026312 = 0
	FINSI
FINSI



#---------------------------------------------------------------------------
# Ajout de TRAFIC a la liste
#--------------------------------------------------------------------------- 

SI ( (bTRAFIC_860026312 == 1) && (EFFICACE_860026312 == 1) && ((FE_distri_860026312 == 0) || (FE_distri_860026312 == 1 && VGA_860026312)) && !bREDIST_860026312 )
ALORS
	#Traitement du code CFR:
	res_860026312=i_LireInfoECC(instTRAFIC_860026312, 0)
	trace1("Retour i_LireInfoECC(instTRAFIC, 0)= <%d>",res_860026312) 
#G2R1Cj  FO1406	SI ( res > 0)
	SI ( res_860026312 != 0)
	ALORS
          	 erreur_860026312 = i_LireChaineInfo( res_860026312, 0, 3, pt_InfoCompl_860026312)
                 trace2(" Resultat de i_LireChaineInfo : <%s>", pt_InfoCompl_860026312, "")
                
		 erreur_860026312 = i_format_str2(pt_inst_860026312, "TRAF%s", pt_InfoCompl_860026312,0)
                 trace2("Concatenation de TRAF avec info.compl: <%s>", pt_inst_860026312, "")
                
		instTRAFIC_860026312 = i_LireInstanceECC(pt_inst_860026312)
 		trace1("Instance de TRAFIC: instTRAFIC=<%d>",instTRAFIC_860026312)
		
		SI (!instTRAFIC_860026312)
                ALORS
			code_errone_860026312 = 0xA0B0
			code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
			erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,pt_inst_860026312,C_Article_860026312)
                        SAUT DISTRI_ERR
                FINSI	
		erreur_860026312=i_AjouterCouranteECC(instTRAFIC_860026312)
	SINON
		bTRAFIC_860026312=0
		bREDIST_860026312=1
#VerifPcode
#                pLIBELREDIST = "Indicatif inconnu de MAJ2G"
		i_strcpy(pt_LIBELREDIST_860026312,"Indicatif inconnu de MAJ2G")
		SAUT AVANT_REDIST
		
       	FINSI
SINON
	bTRAFIC_860026312=0
FINSI


#---------------------------------------------------------------------------
# Ajout de FE et DELTA MINUTE 
#---------------------------------------------------------------------------

SI ( (bFE_860026312 == 1) && (EFFICACE_860026312 == 1) && (FE_distri_860026312 == 1) && !bREDIST_860026312 && !VGA_860026312)
ALORS
	SI (i_AjouterCouranteECC(instFE_860026312)<0)
	ALORS
		trace("Retour de i_AjouterCouranteECC en erreur pour Fe!")
		SAUT DISTRI_ERR
	SINON	
		# FE destinataire donc DELTA MINUTE doit etre ajoute
		SI (bDELMIN_860026312 == 1)
		ALORS
			#Traitement du code CFR / Utilisation de instTRAFIC :
			res_860026312=i_LireInfoECC(instTRAFIC_860026312, 0)
			trace1("Retour pour DM de i_LireInfoECC(instTRAFIC, 0)= <%d>",res_860026312) 
#G2R1Cj  FO1406		SI ( res > 0)
			SI ( res_860026312 != 0)
			ALORS
          	 		erreur_860026312 = i_LireChaineInfo( res_860026312, 0, 3, pt_InfoCompl_860026312)
                 		trace2(" Resultat de i_LireChaineInfo : <%s>", pt_InfoCompl_860026312, "")
                
		 		erreur_860026312 = i_format_str2(pt_inst_860026312, "DM%s", pt_InfoCompl_860026312,0)
                 		trace2("Concatenation de DM avec info.compl: <%s>", pt_inst_860026312, "")
                
				instDELMIN_860026312 = i_LireInstanceECC(pt_inst_860026312)
 				trace1("Instance de DM: instDELMIN=<%d>",instDELMIN_860026312)
		
				SI (!instDELMIN_860026312)
                		ALORS
					code_errone_860026312 = 0xA0B0
					code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
					erreur_860026312 = i_PlvMessEmettre(8601,2,g_iartin,"",3,code_errone_860026312,pt_inst_860026312,C_Article_860026312)
                        		SAUT DISTRI_ERR
                		FINSI	
				erreur_860026312=i_AjouterCouranteECC(instDELMIN_860026312)
# ICI G2R0CA
# G2R0Ca Recuperation du code CFR pour meta c_libre de FE
				dizaine_860026312 = i_LireEntierInfo(res_860026312,0,1)
				unite_860026312 = i_LireEntierInfo(res_860026312,1,1)
				cfr_860026312 = (dizaine_860026312 & 0x0F) * 10 + (unite_860026312 & 0x0F)
				SI ( ENVELOPPE_NOK_860026312 )
				ALORS
#IFDEF trace_niv1 = 1
trace("__FILE__:__LINE__ ======> Creation enveloppe CFR/FE")
#ENDIF
					ENVELOPPE_NOK_860026312 = i_add_opt("E_Ttnna7dc")
#VerifPcode
#					erreur = i_set_attr_val_n($E_Ttnna7dc::T1,0x23)
#					erreur = i_set_attr_val_n($E_Ttnna7dc::L1,0x07)
				FINSI
				erreur_860026312 = i_set_attr_val_n($E_Ttnna7dc::CFR,cfr_860026312)
#IFDEF trace_niv1 = 1
trace1("__FILE__:__LINE__ ======> code CFR : <%d> ", cfr_860026312)
trace1("__FILE__:__LINE__ ======> ENVELOPPE_NOK : <%d> ", ENVELOPPE_NOK_860026312)
#ENDIF
# ETLA G2R0CA
			SINON
				bDELMIN_860026312=0
				bREDIST_860026312=1
#VerifPcode
#                               pLIBELREDIST = "Indicatif inconnu de MAJ2G"
				i_strcpy(pt_LIBELREDIST_860026312,"Indicatif inconnu de MAJ2G")
				SAUT AVANT_REDIST
				
       			FINSI

		FINSI	
	FINSI
FINSI

#--------------------------------------
#	AJOUT DE CENTAUREVG
#--------------------------------------

SI ((VGA_860026312 == 1) && (bTRAFIC_860026312 == 1))
ALORS
	SI (i_AjouterCouranteECC(instCENTAUREVG_860026312)<0)
 	ALORS
		trace("Retour de i_AjouterCouranteECC en erreur pour CENTAUREVG!")
		SAUT DISTRI_ERR
	FINSI
FINSI		




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

erreur_860026312 = i_ValiderListeECC( 0, 0, 0, 0)

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

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

SI (EFFICACE_860026312 == 1 && !bREDIST_860026312)
ALORS
        # Recuperation du num demandeur							
	erreur_860026312=i_get_art_str(g_iartin, $NDR, pt_NDR_860026312)
	SI (erreur_860026312 != 0)
	ALORS
		trace("ERREUR de i_get_field_str !")
		SAUT DISTRI_ERR
	FINSI
	i_replace_str(pt_NDR_860026312,"BCDE","AJSC",pt_NDR_860026312)

	# Recuperation du num demande							
	erreur_860026312=i_get_art_str(g_iartin, $NDE, pt_NDE_860026312)
	SI (erreur_860026312 != 0)
	ALORS
		trace("ERREUR de i_get_field_str !")
		SAUT DISTRI_ERR
	FINSI
	i_replace_str(pt_NDE_860026312,"BC","*#",pt_NDE_860026312)
	SI ((i_get_art_fieldtab(g_iartin,$NDE,0) == 3 ) && (i_strlen(pt_NDE_860026312) == 4))
	ALORS
		f3BPQ_OK_860026312=1
	FINSI
        SI ( i_strlen(pt_NDE_860026312) == 10 )
        ALORS
                i_get_sub_str( pt_NDE_860026312,1,-1,pt_NDE_860026312)
        FINSI

FINSI


#---------------------------------------------------------------------------
# Trafic
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instTRAFIC_860026312) && !bREDIST_860026312)
ALORS

	trace("Stockage vers TRAFIC")	

	# Duplication de l article
	#---------------------------
	trace("Duplication vers TRAFIC")	
	SI ( i_dup_art_dest(g_iartin,g_iartout,C_Ttrafic_860026312) )
	ALORS
		trace("Erreur de i_dup_art_dest")
		code_errone_860026312 = 0xA0D0
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026312,C_Ttrafic_860026312,C_Article_860026312)
               SAUT  DISTRI_ERR	
	FINSI

	# Trafic est l'ECC de facturation
#VerifPcode
#	nomECC_FACT= pt_inst
	i_strcpy(pt_nomECC_FACT_860026312,pt_inst_860026312)
	
	# Mise au format
	#------------------------------	
	trace("initialisation de DOMAINE et SERVICE")
	# DOMAINE
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::DOMAINE, "05")
	
	# SERVICE
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::SERVICE, "28")


	# champ C_CSV1
        erreur_860026312 = i_set_art_str(g_iartout, $Ttrafic::C_CSV1, "E")
        	

	# champ OP_CSV1
       	erreur_860026312 = i_set_art_str(g_iartout, $Ttrafic::OP_CSV1, "U")


	# champ SGTQS
	pt_SGTQS_860026312=i_LireEECSGTQS( g_ieec )
	trace2("SGTQS=<%s>",pt_SGTQS_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::SGTQS, pt_SGTQS_860026312)
		

	# DATE
	trace("initialisation de DATE")
	date_locale_860026312 = i_date_locale(g_ieec,g_iartin,ddebut_860026312)
        SI( date_locale_860026312 == -1 )
	ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_date_locale/ddebut" )
	     SAUT DISTRI_ERR
	FINSI	
	erreur_860026312 = i_set_art_field( g_iartout, $Ttrafic::DATE, date_locale_860026312 )


	#champ SUP 
	SI  (i_valid_field_n(g_iartin, $Ttnna7dc::T3cab)==1)
	ALORS
		res_860026312=i_get_art_field(g_iartin, $SUP)
                SI (res_860026312==-1)
                ALORS
			code_errone_860026312 = 0xA080
			code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
			erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/SUP" )
                    SAUT DISTRI_ERR
                FINSI
		trace1("SUP=<%d>",res_860026312)
		erreur_860026312=i_set_art_field(g_iartout, $Ttrafic::SUP, res_860026312)
	FINSI


	#champ IDUS_NUM
	trace2("NDR= <%s>",pt_NDR_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::IDUS_NUM, pt_NDR_860026312)
	
		
        #champ DEDE_NUM
	trace2("NDE= <%s>",pt_NDE_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::DEDE_NUM, pt_NDE_860026312)


	#champ STY
	trace("Initialisation STY")
        SI (i_valid_field_n(g_iartin,$STY)!=1)
        ALORS
                trace("Champs STY absent en entree !")
                SAUT DISTRI_ERR
        FINSI

        trace("Appel de i_transformer_bits")
        SI (i_transformer_bits(g_iartin,$STY,"FV",pt_BUF_860026312)!=0)
        ALORS
                trace("Retour en erreur de i_transformer_bits")
                SAUT DISTRI_ERR
        FINSI
        erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::STY,pt_BUF_860026312)


        #champ DUREE, TAXE et CAX        
        erreur_860026312=i_set_art_field(g_iartout,$Ttrafic::DUREE,DUREE_860026312)
                
        erreur_860026312=i_set_art_field(g_iartout,$Ttrafic::TAX,TAXE_860026312)

        erreur_860026312=i_set_art_field(g_iartout,$Ttrafic::CAX,CAX_860026312)

	# champ OFFRE
	
	trace2("OFFRE=<%s>",pt_VGA_OF_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::OFFRE, pt_VGA_OF_860026312)

	# champ OPERATEUR
	
	trace2("OPERATEUR=<%s>",pt_VGA_OP_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout, $Ttrafic::OPERATEUR, pt_VGA_OP_860026312)


FINSI



#---------------------------------------------------------------------------
# Fe
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instFE_860026312) && !bREDIST_860026312)
ALORS

	trace("Stockage vers FE")	

	# Duplication de l article
	#------------------------------
	trace("Duplication vers FE")	
	SI ( i_dup_art_dest(g_iartin,g_iartout2,C_Tfe_860026312) )
	ALORS
		trace("Erreur de i_dup_art_dest")
		code_errone_860026312 = 0xA0D0
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026312,C_Tfe_860026312,C_Article_860026312)
                SAUT  DISTRI_ERR	
	FINSI
		
	# FE est l'ECC de facturation
#VerifPcode
#	nomECC_FACT= "FE"
	i_strcpy(pt_nomECC_FACT_860026312,"FE")

	# Mise au format
	#------------------------------
	# SERVICE
	trace("initialisation de SERVICE")
	erreur_860026312=i_set_art_str(g_iartout2, $Tfe::SERVICE, "28")


        # champ C_CSV1
        erreur_860026312 = i_set_art_str(g_iartout2, $Tfe::C_CSV1, "E")
        	

	# champ OP_CSV1
        erreur_860026312 = i_set_art_str(g_iartout2, $Tfe::OP_CSV1, "U")


	# DATE
	trace("initialisation de DATE")
	date_locale_860026312 = i_date_locale(g_ieec,g_iartin,ddebut_860026312)
        SI( date_locale_860026312 == -1 )
	ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_date_locale/ddebut" )
	     SAUT DISTRI_ERR
	FINSI	
	erreur_860026312 = i_set_art_field( g_iartout2, $Tfe::DATE, date_locale_860026312 )


	 # champ SUP 
	 SI  (i_valid_field_n(g_iartin, $Ttnna7dc::T3cab)==1)
	 ALORS
	     res_860026312=i_get_art_field(g_iartin, $SUP)
             SI (res_860026312==-1)
             ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/SUP" )
                 SAUT DISTRI_ERR
             FINSI
	     trace1("SUP=<%d>",res_860026312)
	     erreur_860026312=i_set_art_field(g_iartout2, $Tfe::SUP, res_860026312)
	 FINSI


	 #champ IDUS_NUM
	 trace2("NDR= <%s>",pt_NDR_860026312,"")
	 erreur_860026312=i_set_art_str(g_iartout2, $Tfe::IDUS_NUM, pt_NDR_860026312)
			
							
	 #champ DEDE_NUM
	 trace2("NDE= <%s>",pt_NDE_860026312,"")
	SI ( f3BPQ_OK_860026312 == 1)
	ALORS
		res_860026312=i_set_art_str(g_iartout2,$Tfe::DEDE_NUM,pt_NDE_860026312)
	SINON
		res_860026312=i_format_str2(pt_buffer_860026312,"0%s",pt_NDE_860026312,0)
		res_860026312=i_set_art_str(g_iartout2,$Tfe::DEDE_NUM, pt_buffer_860026312)
	FINSI


        #champ DUREE, TAXE et CAX        
        erreur_860026312=i_set_art_field(g_iartout2,$Tfe::DUREE,DUREE_860026312)
                
        erreur_860026312=i_set_art_field(g_iartout2,$Tfe::TAX,TAXE_860026312)

        erreur_860026312=i_set_art_field(g_iartout2,$Tfe::CAX,CAX_860026312)
FINSI


#---------------------------------------------------------------------------
# Delta Minute
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instDELMIN_860026312) && !bREDIST_860026312)
ALORS
	trace("Stockage vers DELTA MINUTE")	

	# Duplication de l article
	#-----------------------------
	trace("Duplication vers DELTA MINUTE")
	SI ( i_dup_art_dest(g_iartin,g_iartout3,C_Tdelta_minute_860026312) )
	ALORS
	        trace("Erreur de i_dup_art_dest")
		code_errone_860026312 = 0xA0D0
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026312,C_Tdelta_minute_860026312,C_Article_860026312)
                SAUT  DISTRI_ERR	
	FINSI

	
	# Mise au format
	#------------------------------	
	trace("initialisation de DOMAINE et SERVICE")
	# DOMAINE
	erreur_860026312=i_set_art_str(g_iartout3, $Tdelta_minute::DOMAINE, "05")
	

	# SERVICE
	erreur_860026312=i_set_art_str(g_iartout3, $Tdelta_minute::SERVICE, "28")


	# champ C_CSV1
        erreur_860026312 = i_set_art_str(g_iartout3, $Tdelta_minute::C_CSV1, "E")
        	

	# champ OP_CSV1
        erreur_860026312 = i_set_art_str(g_iartout3, $Tdelta_minute::OP_CSV1, "U")

		
	# champ SGTQS
	pt_SGTQS_860026312=i_LireEECSGTQS( g_ieec )
	trace2("SGTQS=<%s>",pt_SGTQS_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout3, $Tdelta_minute::SGTQS, pt_SGTQS_860026312)
		

	# DATE
	trace("initialisation de DATE")
	date_locale_860026312 = i_date_locale(g_ieec,g_iartin,ddebut_860026312)
        SI( date_locale_860026312 == -1 )
	ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_date_locale/ddebut" )
	     SAUT DISTRI_ERR
	FINSI	
	erreur_860026312 = i_set_art_field( g_iartout3, $Tdelta_minute::DATE, date_locale_860026312 )


	#champ SUP 
	SI  (i_valid_field_n(g_iartin, $Ttnna7dc::T3cab)==1)
	ALORS
		res_860026312=i_get_art_field(g_iartin, $SUP)
                SI (res_860026312==-1)
                ALORS
			code_errone_860026312 = 0xA080
			code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
			erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/SUP" )
                     SAUT DISTRI_ERR
                FINSI
		trace1("SUP=<%d>",res_860026312)
		erreur_860026312=i_set_art_field(g_iartout3, $Tdelta_minute::SUP, res_860026312)
	FINSI


	#champ IDUS_NUM
	trace2("NDR= <%s>",pt_NDR_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout3, $Tdelta_minute::IDUS_NUM, pt_NDR_860026312)
			

	#champ DEDE_NUM
	trace2("NDE= <%s>",pt_NDE_860026312,"")
	SI ( f3BPQ_OK_860026312 == 1)
	ALORS
		res_860026312=i_set_art_str(g_iartout3,$Tdelta_minute::DEDE_NUM,pt_NDE_860026312)
	SINON
		res_860026312=i_format_str2(pt_buffer_860026312,"0%s",pt_NDE_860026312,0)
		res_860026312=i_set_art_str(g_iartout3,$Tdelta_minute::DEDE_NUM, pt_buffer_860026312)
	FINSI
	

	#champ STY
	trace("Initialisation STY")
        SI (i_valid_field_n(g_iartin,$STY)!=1)
        ALORS
                trace("Champs STY absent en entree !")
                SAUT DISTRI_ERR
        FINSI

        trace("Appel de i_transformer_bits")
        SI (i_transformer_bits(g_iartin,$STY,"FV",pt_BUF_860026312)!=0)
        ALORS
                trace("Retour en erreur de i_transformer_bits")
                SAUT DISTRI_ERR
        FINSI
        erreur_860026312=i_set_art_str(g_iartout3, $Tdelta_minute::STY,pt_BUF_860026312)


        #champ DUREE, TAXE et CAX        
        erreur_860026312=i_set_art_field(g_iartout3,$Tdelta_minute::DUREE,DUREE_860026312)
                
        erreur_860026312=i_set_art_field(g_iartout3,$Tdelta_minute::TAX,TAXE_860026312)

        erreur_860026312=i_set_art_field(g_iartout3,$Tdelta_minute::CAX,CAX_860026312)  

FINSI


#---------------------------------------------------------------------------
# CENTAUREVG
#---------------------------------------------------------------------------

SI ( !i_ChercherCouranteECC(instCENTAUREVG_860026312) )
ALORS
	trace("Stockage vers CENTAUREVG")	

	# Duplication de l article
	#-----------------------------
	trace("Duplication vers CENTAUREVG")
	SI ( i_dup_art_dest(g_iartin,g_iartout5,C_TcentaureVG_860026312) )
	ALORS
	        trace("Erreur de i_dup_art_dest")
		code_errone_860026312 = 0xA0D0
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre(8602,2,g_iartin,"",3,code_errone_860026312,C_TcentaureVG_860026312,C_Article_860026312)
                SAUT  DISTRI_ERR	
	FINSI
	# Mise au format
	#------------------------------	
	trace("initialisation de DOMAINE et SERVICE")
	
	# DOMAINE
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::DOMAINE, "05")
	
	# SERVICE
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::SERVICE, "28")

	# champ C_CSV1
        erreur_860026312 = i_set_art_str(g_iartout5, $TcentaureVG::C_CSV1, "E")
        	

	# champ OP_CSV1
        erreur_860026312 = i_set_art_str(g_iartout5, $TcentaureVG::OP_CSV1, "U")

		
	# champ SGTQS
	pt_SGTQS_860026312=i_LireEECSGTQS( g_ieec )
	trace2("SGTQS=<%s>",pt_SGTQS_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::SGTQS, pt_SGTQS_860026312)

	# Champ ICAR 
	trace("initialisation de DATE")
	date_locale_860026312 = i_date_locale(g_ieec,g_iartin,ddebut_860026312)
        SI( date_locale_860026312 == -1 )
	ALORS
		code_errone_860026312 = 0xA080
		code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
		erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_date_locale/ddebut" )
	     SAUT DISTRI_ERR
	FINSI	
	erreur_860026312 = i_set_art_field( g_iartout5, $TcentaureVG::ICAR, date_locale_860026312 )
	
	#champ SUP 
	SI  (i_valid_field_n(g_iartin, $Ttnna7dc::T3cab)==1)
	ALORS
		res_860026312=i_get_art_field(g_iartin, $SUP)
                SI (res_860026312==-1)
                ALORS
			code_errone_860026312 = 0xA080
			code_errone_860026312 = code_errone_860026312 + EFFICACE_860026312
			erreur_860026312 = i_PlvMessEmettre( 8600, 2, g_iartin,"", 3,code_errone_860026312, C_Article_860026312, " i_get_art_field/SUP" )
                     SAUT DISTRI_ERR
                FINSI
		trace1("SUP=<%d>",res_860026312)
		erreur_860026312=i_set_art_field(g_iartout5, $TcentaureVG::SUP, res_860026312)
	FINSI
	
	#champ IDUS_NUM
	trace2("NDR= <%s>",pt_NDR_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::IDUS_NUM, pt_NDR_860026312)
			

	#champ DEDE_NUM
	trace2("NDE= <%s>",pt_NDE_860026312,"")
	res_860026312=i_set_art_str(g_iartout5,$TcentaureVG::DEDE_NUM,pt_NDE_860026312)
	
	

	#champ STY
	trace("Initialisation STY")
        SI (i_valid_field_n(g_iartin,$STY)!=1)
        ALORS
                trace("Champs STY absent en entree !")
                SAUT DISTRI_ERR
        FINSI

        trace("Appel de i_transformer_bits")
        SI (i_transformer_bits(g_iartin,$STY,"FV",pt_BUF_860026312)!=0)
        ALORS
                trace("Retour en erreur de i_transformer_bits")
                SAUT DISTRI_ERR
        FINSI
        erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::STY,pt_BUF_860026312)

	# champ OFFRE
	
	trace2("OFFRE=<%s>",pt_VGA_OF_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::OFFRE, pt_VGA_OF_860026312)

	# champ OPERATEUR
	
	trace2("OPERATEUR=<%s>",pt_VGA_OP_860026312,"")
	erreur_860026312=i_set_art_str(g_iartout5, $TcentaureVG::OPERATEUR, pt_VGA_OP_860026312)
        
        
        
        #champ DUREE, TAXE et CAX        
        erreur_860026312=i_set_art_field(g_iartout5,$TcentaureVG::DUR,DUREE_860026312)
                
        erreur_860026312=i_set_art_field(g_iartout5,$TcentaureVG::TAX,TAXE_860026312)

        erreur_860026312=i_set_art_field(g_iartout5,$TcentaureVG::CAX,CAX_860026312)  




FINSI

POINT AVANT_REDIST
SI (trait_ok_860026312 == 0)
ALORS

	#---------------------------------------------------------------------------
	# Complements Symphonie (CCD, SGTQS, ECC_FACT et IEZLT, OPE_VGA et OFF_VGA)
	#---------------------------------------------------------------------------

	# Champ CCD
	erreur_860026312 = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4ccd,$Tsymphnodedc::CCD,0)
	erreur_860026312 = i_set_art_field(g_iartout4,$Tsymphnodedc::CCD,206)

	# Champ SGTQS
	erreur_860026312 = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4sgtqs,$Tsymphnodedc::SGTQS,0)
	pt_SGTQS_860026312=i_LireEECSGTQS(g_ieec)
	#trace2("SGTQS=<%s>",pt_SGTQS,"")
	erreur_860026312 = i_set_art_str(g_iartout4, $Tsymphnodedc::SGTQS, pt_SGTQS_860026312)

	# Champ ECC_FACT
	erreur_860026312 = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4eccfact,$Tsymphnodedc::ECC_FACT,0)
	erreur_860026312 = i_set_art_str(g_iartout4,$Tsymphnodedc::ECC_FACT,pt_nomECC_FACT_860026312)
		
	#Champs optionnels OPE_VGA et OFF_VGA
	SI (VGA_860026312)
		ALORS
		# Champ OPE_VGA
		erreur_860026312 = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4OPEVGA,$Tsymphnodedc::OPE_VGA,0)
		erreur_860026312 = i_set_art_str(g_iartout4,$Tsymphnodedc::OPE_VGA,pt_VGA_OP_860026312)
	
		# Champ OFF_VGA
		erreur_860026312 = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4OFFVGA,$Tsymphnodedc::OFF_VGA,0)
		erreur_860026312 = i_set_art_str(g_iartout4,$Tsymphnodedc::OFF_VGA,pt_VGA_OF_860026312)
	
	FINSI
	
	
	
	
	
	
	# EV114 : specs 4.0 : ajout IEZLT
	# Champ IEZLT
	# FO1161 : Suppression de l'ajout si sans objet
	#erreur = i_ajoutChampNum(g_iartout4,$Tsymphnodedc::T4iezlt,$Tsymphnodedc::IEZLT,0)

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

	SI !(i_ChercherCouranteECC(instSYMPH_860026312))
	ALORS
		res_860026312=i_stocke_art_iecc(g_iartout4,instSYMPH_860026312)
	FINSI
FINSI


SI (bREDIST_860026312 == 1)
ALORS
	SAUT DISTRI_RDT
FINSI

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

#---------------------------------------------------------------------------
# Envoie sur TRAFIC
#---------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instTRAFIC_860026312) )
ALORS
#VerifPcode
#        ecc = pt_inst
	i_strcpy(pt_ecc_860026312,pt_inst_860026312)
        res_860026312 = i_stocke_art_iecc(g_iartout, instTRAFIC_860026312)
        trace("Emission vers TRAFIC")

FINSI


#---------------------------------------------------------------------------
# Envoie sur FE
#---------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instFE_860026312) ) 
ALORS
#VerifPcode
#        ecc = "FE"
	i_strcpy(pt_ecc_860026312,"FE")
        res_860026312 = i_stocke_art_iecc(g_iartout2, instFE_860026312)
       	trace("Emission vers FE")

FINSI


#---------------------------------------------------------------------------
# Envoie sur DELTA MINUTE
#---------------------------------------------------------------------------
SI ( !i_ChercherCouranteECC(instDELMIN_860026312) ) 
ALORS
        res_860026312 = i_stocke_art_iecc(g_iartout3, instDELMIN_860026312)
        trace("Emission vers DELTA MINUTE")

FINSI


#--------------------------------------------------------
# Envoi sur CENTAUREVG
#-------------------------------------------------------

SI (!i_ChercherCouranteECC(instCENTAUREVG_860026312) )
ALORS
	res_860026312 = i_stocke_art_iecc(g_iartout5, instCENTAUREVG_860026312)
	trace ("Emission vers CENTAUREVG")
FINSI

SAUT DISTRI_FIN


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


############################################################################
# Stockage en Errone
############################################################################
POINT DISTRI_ERR
 	trace("Stockage de l article en ERRONE")
	
	erreur_860026312 = i_make_art_rej(g_iartin, g_iartout, code_errone_860026312)
	erreur_860026312 = i_stocke_art(g_iartout,0,PT_ERRONE,0)

	 trace("Fin traitement Article TNN Nodes")
SAUT DISTRI_FIN

###########################################################################
# Stockage pour redistribution
###########################################################################
POINT DISTRI_RDT
SI (trait_ok_860026312 == 0)
ALORS
	#---------------------
	#  Creation de l'ENVELOPPE Optionelle:
	# Contient le nom de l'EEC necessaire au message d'erreur de la redistribution
	# Nom_EEC
	# Creation de l'enveloppe
# ICI G2R0CA
	SI ( ENVELOPPE_NOK_860026312 )
	ALORS
#IFDEF trace_niv1 = 1
trace("__FILE__:__LINE__ =====> Creation enveloppe REDISTRI")
#ENDIF
		ENVELOPPE_NOK_860026312 = i_add_opt( "E_Ttnna7dc" )
        	# champ T1 (=>  0x23 pour la reconnaissance de l'enveloppe,
       		# par l'arbre de reconnaissance Dopt )
#VerifPcode
#       	res = i_set_attr_val_n( $E_Ttnna7dc::T1, 0x23 )
#       	res = i_set_attr_val_n( $E_Ttnna7dc::L1, 0x07 )
	FINSI
       
	pt_SGTQS_860026312 = i_LireEECSGTQS(g_ieec)
	res_860026312 = i_set_attr_str_n( $E_Ttnna7dc::Nom_EEC, pt_SGTQS_860026312)
#VerifPcode
#	res = i_get_attr_str_n($E_Ttnna7dc::Nom_EEC, pt_SGTQS)
# ETLA G2R0CA
	erreur_860026312 = i_PlvMessEmettre(8503,2,g_iartin,"",3,pt_LIBELREDIST_860026312,"Tns6dc",pt_SGTQS_860026312)
FINSI
#trace("Stockage pour redistribution")

res_860026312 = i_stocke_art(g_iartin,0,PT_REDIST|RD_TABLE5,0)


POINT DISTRI_FIN
RETOUR TRAIT_OK



