DEFINITION NUMTAB_860026272 1
DEFINITION NUMTABSEL_860026272 1
REGISTRE ENTIER res_860026272
REGISTRE ENTIER erreur_860026272
REGISTRE ENTIER instFERPV_860026272
REGISTRE ENTIER instARAVIS_860026272
REGISTRE POINTEUR SGTQS_860026272
REGISTRE POINTEUR EccFact_860026272
REGISTRE ENTIER EFFICACE_860026272
REGISTRE ENTIER E_TELEPHONY_860026272
REGISTRE POINTEUR SOURCE_860026272
REGISTRE POINTEUR TYPCOM_860026272
REGISTRE POINTEUR TYPACCRI_860026272
REGISTRE ENTIER SUPPORT_860026272
REGISTRE POINTEUR NATAPPRI_860026272
REGISTRE ENTIER STY_860026272
REGISTRE ENTIER TAP_860026272
REGISTRE ENTIER INF_DETR_860026272
REGISTRE ENTIER INF_DEST_860026272
REGISTRE ENTIER INF_DECO_860026272
REGISTRE ENTIER SUP_860026272
REGISTRE POINTEUR pt1_860026272
REGISTRE POINTEUR pt2_860026272
REGISTRE ENTIER CCD_860026272
REGISTRE ENTIER CODCIRDR_860026272
REGISTRE ENTIER CODCIR_860026272
REGISTRE ENTIER VC_860026272
REGISTRE ENTIER UNITE_860026272
REGISTRE ENTIER HLAHM1_860026272
REGISTRE ENTIER VCDR2_860026272
REGISTRE ENTIER ARAVIS_860026272
REGISTRE POINTEUR DETR_NUM_860026272
REGISTRE POINTEUR IDUS_DIST_N_860026272
REGISTRE POINTEUR p_marque_audit_860026272
REGISTRE ENTIER comid_num_860026272
REGISTRE ENTIER EEC_audit_860026272
REGISTRE ENTIER bloc_audit_860026272
REGISTRE ENTIER DC_audit_860026272
REGISTRE ENTIER numzone_860026272
REGISTRE ENTIER gmt_date_860026272
REGISTRE ENTIER L_NDR_860026272
REGISTRE ENTIER ddebut_860026272
REGISTRE ENTIER dpivot_860026272
REGISTRE POINTEUR valeur_860026272
############################################################################
#
# Fichier : Ttgdcsssym.src  (Ttgdce)
#
# Version : %version: 7.4 %
#
# Date    : %date_modified: 14/08/02 11:29 %
#
# Distribution :
#    Article : Tfe_rpv
#
# En entree :
#    Article : Ttgdce
#
# En sortie :
#    		FERPV
#
# HISTORIQUE :
#       14/05/2003 - MCH - Creation
#	24/07/2003 - RBE - FO337 : modif de Eccfact en FE au lieu de FERPV
#	25/07/2003 - NSA - AJOUT ARAVIS
#	19/08/2003 - RBE - FO366 : modif. de SOURCE
#	25/08/2003 - RBE - FO365:Suppression de l'alimentation de symphonie(TTrpvsanssymp)
#	23/09/2003 - RBE - FO401 404 414 418 et 416 reprises
#	02/10/2003 - RBE - FO430 : Stockage a tort de DC en erronis
#	03/10/2003 - RBE - FO432 : TYPACCRI errone
# 	15/09/2005 - DRE - FO1406 Retour Fonction i_LireInfoECC (doit etre != et non >)
############################################################################

#trace("distribution - Ttgdce")
############################################################################
# Declarations
############################################################################


#Allocation memoire pour buffer:
SGTQS_860026272 = "234565656"
EccFact_860026272="6767676767676767"
pt1_860026272 = "12343765678906454533656456456"
pt2_860026272 = "98678567456342357786789456456"
SOURCE_860026272 = "234234234"
TYPCOM_860026272 = "567567567"
TYPACCRI_860026272 = "78978987"
NATAPPRI_860026272 = "89789343"
DETR_NUM_860026272 = "78567453786873357786789456456"
IDUS_DIST_N_860026272 = "34245787856756425386789456456"
p_marque_audit_860026272 = "9876543210123456712345"
valeur_860026272 = "11223344556677889900"

instFERPV_860026272 = 0
instARAVIS_860026272=0
EFFICACE_860026272 = 0
ARAVIS_860026272=0
numzone_860026272=0

UNITE_860026272 = 0xFF
CODCIRDR_860026272 = 0xFF
CODCIR_860026272 = 0xFF
VCDR2_860026272 = 0


#Initialisation
i_strcpy(EccFact_860026272,"")

############################################################################
#       Envoi en Recyclage
############################################################################
SI (g_ipt==PT_RECYCLE)
ALORS
        trace("==== Envoi en recyclage ====")
        erreur_860026272 = i_stocke_art( g_iartin, 0, PT_RECYCLE, 0 )
        RETOUR TRAIT_OK
FINSI


############################################################################
# VARIABLES A IMPORTER DU TRAITEMENT
############################################################################
# CCD
CCD_860026272 = i_get_art_field(g_iartin,$Ttgdce::CCD)

# TAX1, UNITE1
SI (i_valid_field_n(g_iartin,$Ttgdce::UNITE1))
ALORS
        VC_860026272 = i_get_art_field(g_iartin,$Ttgdce::TAX1)
        UNITE_860026272 = i_get_art_field(g_iartin,$Ttgdce::UNITE1)
FINSI
# CODCIRDR
SI (i_valid_field_n(g_iartin,$Ttgdce::CODCIRDR))
ALORS
        CODCIRDR_860026272 = i_get_art_field(g_iartin,$Ttgdce::CODCIRDR)
FINSI
# CODCIR
SI (i_valid_field_n(g_iartin,$Ttgdce::CODCIR))
ALORS
        CODCIR_860026272 = i_get_art_field(g_iartin,$Ttgdce::CODCIR)
FINSI
# VCDR2
SI (i_valid_field_n(g_iartin,$Ttgdce::VCDR2))
ALORS
	VCDR2_860026272 = i_get_art_field(g_iartin,$Ttgdce::VCDR2)
FINSI
# HLAHM1
HLAHM1_860026272 = i_get_art_field(g_iartin,$Ttgdce::HLAHM1)

	

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

# E_TELEPHONY
E_TELEPHONY_860026272 = 0
SGTQS_860026272=i_LireEECSGTQS( g_ieec )
dpivot_860026272 = i_get_art_field( g_iartin, $dpivot )
SI ( dpivot_860026272 == -1 )
ALORS
        erreur_860026272 = i_PlvMessEmettre(8500,2,g_iartin,"",3,"Ttgdce","dpivot",g_ieec)
        SAUT DISTRI_ERR
FINSI
erreur_860026272 = i_format_str2(pt1_860026272,"%s%s","ADE",SGTQS_860026272)
valeur_860026272 = i_get_tab_field("code_apache",dpivot_860026272,pt1_860026272)
SI ( valeur_860026272 == g_inull )
ALORS
       trace2( "ERREUR: Code_SGTQS <%s> non trouve dans la table externe code_apache",pt1_860026272, "" )
SINON
        trace2("Valeur trouvee: <%s> : %s", valeur_860026272, "")
        E_TELEPHONY_860026272 = 1
FINSI


# SOURCE
STY_860026272 = i_get_art_field(g_iartin,$STY)
TAP_860026272 = i_get_art_field(g_iartin,$TAP)

# TYPCOM
SI ( E_TELEPHONY_860026272 )
ALORS
	SI ((TAP_860026272 & 0x80) == 0x80)
	ALORS
		i_strcpy(TYPCOM_860026272," ")
	SINON
		i_strcpy(TYPCOM_860026272,"4")
	FINSI
SINON
	SI ( !(i_valid_field_n(g_iartin,$DEST)) || !(i_valid_field_n(g_iartin,$DECO)) )
	ALORS
		i_strcpy(TYPCOM_860026272,"1")
	SINON
		INF_DEST_860026272 = i_get_art_field(g_iartin,$INF_DES)
		INF_DECO_860026272 = i_get_art_field(g_iartin,$INF_DECO)
		SI ( (INF_DEST_860026272 & 0x80) == 0x80 )
		ALORS
			i_strcpy(TYPCOM_860026272,"4")
		SINON
			SI ( (INF_DECO_860026272 & 0x80) == 0x00 )
			ALORS
				i_strcpy(TYPCOM_860026272,"1")
			SINON
				i_strcpy(TYPCOM_860026272,"2")
			FINSI
		FINSI
		
	FINSI
FINSI

# TYPACCRI
i_strcpy(TYPACCRI_860026272, " ")

SI ( (STY_860026272 & 0x2A00) == 0x0000 )
ALORS
	i_strcpy(TYPACCRI_860026272,"1")
FINSI
SI ( (STY_860026272 & 0x2A00) == 0x2000 )
ALORS
	i_strcpy(TYPACCRI_860026272,"2")
FINSI
SI ( (STY_860026272 & 0x2A00) == 0x800 )
ALORS
	i_strcpy(TYPACCRI_860026272,"3")
FINSI
SI ( (STY_860026272 & 0x2A00) == 0x200 )
ALORS
	i_strcpy(TYPACCRI_860026272,"4")
FINSI
SI ( (STY_860026272 & 0x80) == 0x80 )
ALORS
	i_strcpy(TYPACCRI_860026272,"5")
FINSI

# SUPPORT
SUP_860026272 = i_get_art_field(g_iartin,$SUP)
SI ( (SUP_860026272 & 0xF0) == 0x40 )
ALORS
	SUPPORT_860026272 = 2
FINSI
SI ( (SUP_860026272 & 0xF0) == 0x80 )
ALORS
	SUPPORT_860026272 = 0
FINSI
SI ( (SUP_860026272 & 0xF0) == 0xC0 )
ALORS
	SUPPORT_860026272 = 4
FINSI
SI ( E_TELEPHONY_860026272 && ((TAP_860026272 & 0x80) == 0x80) )
ALORS
	SUPPORT_860026272 = 6
FINSI

# NATAPPRI
res_860026272 = (((TAP_860026272 << 1) & 0xC0) | (STY_860026272 & 0x3F))

SI ( res_860026272 == 0)
ALORS
	i_strcpy(NATAPPRI_860026272,"1")
SINON 
	SI ( res_860026272 == 0x40 )
	ALORS
		i_strcpy(NATAPPRI_860026272,"2")
	SINON 
		SI ( res_860026272 == 0x20 )
		ALORS
			i_strcpy(NATAPPRI_860026272,"4")
		SINON
			SI ( res_860026272 == 0x10 )
			ALORS
			i_strcpy(NATAPPRI_860026272,"5")
			SINON 
				SI ( res_860026272 == 0x28 )
				ALORS
					i_strcpy(NATAPPRI_860026272,"6")
				SINON
					SI ( res_860026272 == 0x18 )
					ALORS
						i_strcpy(NATAPPRI_860026272,"7")
					SINON
						SI ( res_860026272 == 0x80 )
						ALORS
							i_strcpy(NATAPPRI_860026272,"8")
						SINON
							SI ( res_860026272 == 0x24)
							ALORS
								i_strcpy(NATAPPRI_860026272,"9")
							SINON
								SI ( res_860026272 == 0x14 )
								ALORS
									i_strcpy(NATAPPRI_860026272,"A")
								SINON
									SI ( res_860026272 == 0x17 )
									ALORS
										i_strcpy(NATAPPRI_860026272,"A")
									SINON
										SI ( res_860026272 == 0x03 )
										ALORS
											i_strcpy(NATAPPRI_860026272,"B")
										SINON
											SI ( res_860026272 == 0x26 )
											ALORS
												i_strcpy(NATAPPRI_860026272,"C")
											SINON
												SI ( res_860026272 == 0x16 )
												ALORS
													i_strcpy(NATAPPRI_860026272,"D")
												SINON
													SI ( res_860026272 == 0x27 )
													ALORS
														i_strcpy(NATAPPRI_860026272,"E")
													SINON
														i_strcpy(NATAPPRI_860026272,"0")
													FINSI
												FINSI
											FINSI
										FINSI
									FINSI
								FINSI
							FINSI
						FINSI
					FINSI
				FINSI
			FINSI
		FINSI
	FINSI
FINSI

# SOURCE
SI ( E_TELEPHONY_860026272 )
ALORS
	i_strcpy(SOURCE_860026272,"08")
SINON 
		SI (((STY_860026272 & 0x2000) == 0x2000) || ((STY_860026272 & 0x800) == 0x800) || ((STY_860026272 & 0x200) == 0x200))
		ALORS
			i_strcpy(SOURCE_860026272,"07")
		SINON 
                        SI ( ((TAP_860026272 & 0x10) == 0x10) ||
                 ( !i_strcmp(NATAPPRI_860026272,"9") || !i_strcmp(NATAPPRI_860026272,"A") || !i_strcmp(NATAPPRI_860026272,"B")
                || !i_strcmp(NATAPPRI_860026272,"C") || !i_strcmp(NATAPPRI_860026272,"D") || !i_strcmp(NATAPPRI_860026272,"E")) )

			ALORS
				i_strcpy(SOURCE_860026272,"06")
			SINON
				i_strcpy(SOURCE_860026272,"05")
			FINSI
		FINSI
FINSI

# DETR_NUM
INF_DETR_860026272 = i_get_art_field(g_iartin,$INF_DETR)
erreur_860026272 = i_get_art_str(g_iartin,$NUM_DETR, DETR_NUM_860026272)
SI ( (INF_DETR_860026272 & 0x80) == 0x80 )
ALORS
        erreur_860026272 = i_format_str2(pt1_860026272,"0%s",DETR_NUM_860026272,0)
        i_strcpy(DETR_NUM_860026272,pt1_860026272)
FINSI
SI ( (INF_DETR_860026272 & 0xC0) == 0xC0 )
ALORS
        erreur_860026272 = i_format_str2(DETR_NUM_860026272,"0%s",pt1_860026272,0)
FINSI

# IDUS_DIST_N
SI (((STY_860026272 & 0x2000) == 0x2000) || ((STY_860026272 & 0x800) == 0x800) || ((STY_860026272 & 0x200) == 0x200))
ALORS
        erreur_860026272 = i_get_art_str(g_iartin,$NUM_NOS,IDUS_DIST_N_860026272)
SINON
        erreur_860026272 = i_get_art_str(g_iartin,$IDUS_NUM,IDUS_DIST_N_860026272)
FINSI

# ---------------------------------------------------
# Initialisation des variables issues         
# des metachamps ddebut 
# ---------------------------------------------------

ddebut_860026272 = i_get_art_field( g_iartin, $ddebut )
SI ( ddebut_860026272 == -1 )
ALORS
	erreur_860026272 = i_PlvMessEmettre(8500,2,g_iartin,"",3,"Tta6dc","ddebut",g_ieec)
	SAUT DISTRI_ERR
FINSI
##############################################################################
# RECHERCHE DE L EFFICACITE
##############################################################################
# article efficace si champ IDSV absent
#

SI ( !i_valid_field_n(g_iartin,$IDSV) )
ALORS
       EFFICACE_860026272=1
SINON
       EFFICACE_860026272=0
FINSI
trace1("EFFICACE=<%d>",EFFICACE_860026272)


##############################################################################
# Envoi Requetes Table de Distribution
##############################################################################
SI (EFFICACE_860026272 && !E_TELEPHONY_860026272)
ALORS
	#DATE_GMT
	# Utilisation de Conversion car il faut un champ NDR pour les fichiers de decalage horaire
	erreur_860026272 = i_cree_art("Conversion",g_iartout5)
	SI (((STY_860026272 & 0x2000) == 0x2000) || ((STY_860026272 & 0x800) == 0x800) || ((STY_860026272 & 0x200) == 0x200))
	ALORS
		erreur_860026272 = i_dup_chp_1val(g_iartin, g_iartout5, $Ttgdce::NUM_NOS, $Conversion::NDR)
	SINON
		erreur_860026272 = i_dup_chp_1val(g_iartin, g_iartout5, $Ttgdce::IDUS_NUM, $Conversion::NDR)
	FINSI
	numzone_860026272 = 7
	gmt_date_860026272 = i_DHgetCe2gTime(NUMTAB_860026272,numzone_860026272,ddebut_860026272)

	#Envoi requete table distri
	L_NDR_860026272 = (i_get_art_fieldlength(g_iartout5, $Conversion::NDR) + 1) / 2
	erreur_860026272 = i_EnvoiReqConsTabDistDouble( TD_Fixe, TD_Fixe, gmt_date_860026272,i_get_art_fieldptr(g_iartout5,$Conversion::NDR), L_NDR_860026272, L_NDR_860026272, 1, 0, 1)

	SI ( erreur_860026272 !=0 )
	ALORS
		trace1("Erreur i_EnvoiReqConsTabDistDouble : %d", erreur_860026272)
	FINSI
FINSI
############################################################################
# Controles
############################################################################

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

#---------FERPV---------

instFERPV_860026272 = i_LireInstanceECC("FERPV")
#trace1("instFERPV=<%d>",instFERPV)
SI (!instFERPV_860026272)
ALORS
        erreur_860026272 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"FERPV","Ttgdce",g_ieec)
        SAUT DISTRI_ERR
FINSI
#trace1("instFERPV=<%d>",instFERPV)

#--------- ARAVIS ---------
instARAVIS_860026272 = i_LireInstanceECC("ARAVIS")
#trace1("instARAVIS=<%d>",instARAVIS)
SI (!instARAVIS_860026272)
ALORS
        erreur_860026272 = i_PlvMessEmettre(8501,2,g_iartin,"",3,"ARAVIS","Ttgdce",g_ieec)
        SAUT DISTRI_ERR
FINSI
#trace1("instARAVIS=<%d>",instARAVIS)

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

erreur_860026272=i_dup_art_id(g_iartin,g_iartout2)
trace("duplication vers sym")
SI (erreur_860026272)
ALORS
      trace1("ERREUR de duplication vers SYMPHONIE, erreur=<%d>",erreur_860026272)
      erreur_860026272 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"TsymphTtgdce","Ttgdce",g_ieec)
      SAUT DISTRI_ERR
FINSI

SI ( i_valid_field_n(g_iartout2,$Ttgdce::T3ace))
ALORS
	erreur_860026272 = i_supprChamp(g_iartout2,"T3ace")
FINSI

erreur_860026272=i_rename_art(g_iartout2, "TsymphTtgdce")
SI (erreur_860026272)
ALORS
     trace1("Erreur de renommage, erreur=<%d>", erreur_860026272)
     SAUT DISTRI_ERR
FINSI

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

############################################################################
# Retour requetes Table de Distribution
############################################################################
erreur_860026272 = i_LireReqConsTabDist()
#trace1("RETOUR i_LireReqConsTabDist, erreur=<%d>",erreur)
#SI ( erreur != 0 )
#ALORS

#	pLIBELREDIST = "Echec sur i_LireReqConsTabDist"
#FINSI

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


## ARAVIS
SI ( instARAVIS_860026272 && EFFICACE_860026272 && (INF_DETR_860026272 == 0xC0))
ALORS
        res_860026272 = i_LireInfoECC(instARAVIS_860026272, 0)
#	trace1("Retour de i_LireInfoECC -  ARAVIS: <%d>",res)
#G2R1Cj  FO1406	SI (res > 0)
	SI (res_860026272 != 0)
	ALORS
 	#   	trace( "ARAVIS appartient a la table DISTRI")
		res_860026272=i_AjouterCouranteECC(instARAVIS_860026272)
		i_strcpy(EccFact_860026272,"ARAVIS")
		ARAVIS_860026272=1
	FINSI
FINSI





#---------------------------------------------------------------------------
# FERPV
#---------------------------------------------------------------------------

#
#

SI ( EFFICACE_860026272 && !ARAVIS_860026272)
ALORS
	res_860026272=i_AjouterCouranteECC(instFERPV_860026272)
	i_strcpy(EccFact_860026272,"FE")

FINSI


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

#---------------------------------------------------------------------------
# Valeurs communes
#---------------------------------------------------------------------------
# Sans objet
#---------------------------------------------------------------------------
# ARAVIS
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instARAVIS_860026272))
ALORS
        #trace("Stockage vers ARAVIS")

        # Creation article Taravis
        SI (i_dup_art_dest( g_iartin, g_iartout8, "Taravis" ))
        ALORS
                erreur_860026272 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"Taravis","Ttgdce",g_ieec)
                SAUT DISTRI_ERR
        FINSI


	#NDDR

	erreur_860026272 = i_format_str2(pt1_860026272,"0%s",IDUS_DIST_N_860026272,0)
	i_strcpy(IDUS_DIST_N_860026272,pt1_860026272)
	erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::NDDR,IDUS_DIST_N_860026272)

	#DEBCUM
	erreur_860026272 = i_set_art_field(g_iartout8,$Taravis::DEBCUM,HLAHM1_860026272)




	#SUPPORT
	SI ( i_valid_field_n(g_iartin,$IPAS) )
	ALORS
		i_strcpy(pt2_860026272,"2")
		erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::SUPPORT,pt2_860026272)
	SINON
		erreur_860026272 = i_get_art_str(g_iartin,$IDUS_NUM, pt1_860026272)
		i_get_sub_str(pt1_860026272, 0,0,pt1_860026272)
		res_860026272= i_strcmp(pt1_860026272,"6")
		SI (res_860026272 == 0)
		ALORS
			i_strcpy(pt2_860026272,"3")
			erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::SUPPORT,pt2_860026272)
		SINON
			i_strcpy(pt2_860026272,"1")
			erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::SUPPORT,pt2_860026272)

		FINSI
	FINSI

	#DEDE
	SI ( i_valid_field_n(g_iartin,$NUM_DECO) )
	ALORS
		erreur_860026272 = i_get_art_str(g_iartin,$NUM_DECO, pt1_860026272)
	
		erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::DEDE,pt1_860026272)
	SINON
		erreur_860026272 = i_get_art_str(g_iartin,$NUM_DETR, pt1_860026272)
		erreur_860026272 = i_set_art_str(g_iartout8,$Taravis::DEDE,pt1_860026272)
	FINSI


        #COMID_ID

        erreur_860026272 = i_set_art_field(g_iartout8, $Taravis::COMID_ID,1 )


	#COMID_NUM
	#
	# Remarque : etant donne que le processing travaille en entier signe, on ne peut travailler 
	# que sur des valeurs numeriques codees sur 31 bits. En consequence, on se limite a 15 bits
	# (soit 32767 max) pour le codage du numero de bloc

	# Recuperation de l identifiant d audit (voir ME_PCODE pour le detail de sa structure)
	p_marque_audit_860026272=i_LireMarqueAudit()

	# Recuperation identifiant EEC (6eme octet) EEC
	# Masquage des 6 bits de poids faible 
	EEC_audit_860026272 = i_strtab(p_marque_audit_860026272, 5) & 0x3f
	#trace1("EEC_audit : %d", EEC_audit)

	# Recuperation identifiant de bloc (7 et 8eme octet)
	# Masquage des 15 bits de poids faible 
	bloc_audit_860026272 =  ( ( i_strtab(p_marque_audit_860026272, 6) * 256 ) + i_strtab(p_marque_audit_860026272, 7) ) & 0x7fff
	# trace1("bloc_audit : %d", bloc_audit)

	# Recuperation identifiant du DC (11 et 12eme octet)
	# Masquage des 10 bits de poids faible
	DC_audit_860026272 = ( ( i_strtab(p_marque_audit_860026272, 10) * 256 ) + i_strtab(p_marque_audit_860026272, 11) ) & 0x3ff
	#trace1("DC_audit : %d", DC_audit)

	# Mise en forme pour ARAVIS COMID_NUM
	# On realise les masquages/concatenation par multiplication
	# Coefficients : 00000010000000000000000000000000 soit 2e25 soit 33554432
	#                00000000000000000000010000000000 soit 2e10 soit 1024
	comid_num_860026272 = (EEC_audit_860026272 * 33554432) + (bloc_audit_860026272 * 1024) + DC_audit_860026272
	trace1("comid_num : %u", comid_num_860026272)

	erreur_860026272 = i_set_art_field(g_iartout8, $Taravis::COMID_NUM, comid_num_860026272 )

FINSI
#---------------------------------------------------------------------------
# FERPV
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instFERPV_860026272))
ALORS
        #trace("Stockage vers FERPV")

        # Duplication article en entree
        SI (i_dup_art_dest( g_iartin, g_iartout, "Tfe_rpv" ))
        ALORS
                erreur_860026272 = i_PlvMessEmettre(8502,2,g_iartin,"",3,"Tfe_rpv","Ttgdce",g_ieec)
                SAUT DISTRI_ERR
        FINSI



	# SERVICE
	SI ( E_TELEPHONY_860026272 )
	ALORS
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::SERVICE,"3")
	SINON
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::SERVICE,"1")
	FINSI
	
	# SOURCE
	erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::SOURCE,SOURCE_860026272)

	# TYPCOM
	erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::TYPCOM,TYPCOM_860026272)

	# NUMDDR
	SI ( i_valid_field_n(g_iartin,$IPAS) )
	ALORS
		erreur_860026272 = i_get_art_str(g_iartin,$NUM_IPAS, pt1_860026272)
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDR,pt1_860026272)
	SINON
		erreur_860026272 = i_get_art_str(g_iartin,$IDUS_NUM, pt1_860026272)
		erreur_860026272 = i_format_str2(pt2_860026272,"%s%s","0",pt1_860026272)
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDR,pt2_860026272)
	FINSI

	# NUMDDE
	SI ( !i_strcmp(NATAPPRI_860026272,"9") || !i_strcmp(NATAPPRI_860026272,"A") || !i_strcmp(NATAPPRI_860026272,"C") || !i_strcmp(NATAPPRI_860026272,"D") || !i_strcmp(NATAPPRI_860026272,"E") )
	ALORS
	        erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDE,"0099933301")
	SINON
	        erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NUMDDE,DETR_NUM_860026272)
	FINSI

	# DEBUT
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::DEBUT,HLAHM1_860026272)

	# DUREE
	res_860026272 = i_get_art_field(g_iartin,$DUREE)
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::DUREE,res_860026272)

	# NBUT
	res_860026272 = i_get_art_field(g_iartin,$TAXE)
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::NBUT,res_860026272)

	# MTHSTD
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::MTHSTD,VCDR2_860026272)

	# CANAL
	res_860026272 = i_get_art_field(g_iartin,$REF)
	res_860026272 = res_860026272 & 0x000000FF
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::CANAL,res_860026272)

	# TYPACCRI
	erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::TYPACCRI,TYPACCRI_860026272)

	# SUPPORT
	erreur_860026272 = i_set_art_field(g_iartout,$Tfe_rpv::SUPPORT,SUPPORT_860026272)

	# NOCOMP
	SI ( i_valid_field_n(g_iartin,$DECO) )
	ALORS
		erreur_860026272 = i_get_art_str(g_iartin,$NUM_DECO, pt1_860026272)
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NOCOMP,pt1_860026272)
	FINSI

	# NOORIG
	SI ( i_valid_field_n(g_iartin,$NOS) )
	ALORS
		erreur_860026272 = i_get_art_str(g_iartin,$NUM_NOS, pt1_860026272)
		erreur_860026272 = i_format_str2(pt2_860026272,"0%s",pt1_860026272,0)
		erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NOORIG,pt2_860026272)
	FINSI

	# NATAPPRI
	erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::NATAPPRI,NATAPPRI_860026272)

        # CCD
        SI (CCD_860026272 != 0xFF)
        ALORS
		CCD_860026272 = 1000 + CCD_860026272
	        erreur_860026272 = i_cree_art("Conversion",g_iartout10)
        	erreur_860026272 = i_set_art_field(g_iartout10,$Conversion::CCD, CCD_860026272)
        	erreur_860026272 = i_conv_field("CCD",g_iartout10, 2, g_iartout, 4,0)

                erreur_860026272 = i_get_art_str(g_iartout,$Tfe_rpv::CCD,pt1_860026272)
                i_get_sub_str(pt1_860026272,1,3,pt2_860026272)
                erreur_860026272 = i_set_art_str(g_iartout,$Tfe_rpv::CCD,pt2_860026272)

        SINON
                erreur_860026272=i_memset_field_n(g_iartout, $Tfe_rpv::CCD, 0x40)
        FINSI

FINSI


############################################################################
# Envoi vers IECC
############################################################################
#---------------------------------------------------------------------------
# ARAVIS
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instARAVIS_860026272) )
ALORS

        res_860026272 = i_stocke_art_iecc( g_iartout8, instARAVIS_860026272 )
        trace( "Emission vers ARAVIS" )

FINSI


#---------------------------------------------------------------------------
# FERPV
#---------------------------------------------------------------------------
SI (!i_ChercherCouranteECC(instFERPV_860026272) )
ALORS

        res_860026272 = i_stocke_art_iecc( g_iartout, instFERPV_860026272 )
        trace( "Emission vers FERPV" )

FINSI
RETOUR TRAIT_OK

############################################################################
# Envoi vers Recyclage
############################################################################
# Sans objet

############################################################################
# Stockage en Errone
############################################################################
POINT DISTRI_ERR

        #trace( "Stockage en errone de distribution")
        res_860026272 = i_make_art_rej(g_iartin, g_iartout6, 0)
        res_860026272 = i_stocke_art( g_iartout6, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK










