DEFINITION C_Article_860026722 "Trm6dc"
DEFINITION BASE_TELEPHONE_860026722 1
DEFINITION AUT_BIDON_860026722 "BIDON"
DEFINITION CODE_NUMERIS_860026722 3
DEFINITION RES_CLDEST_860026722 1
DEFINITION RES_TYPCPT_860026722 2
DEFINITION CPT_REJET2_860026722 10
DEFINITION CPT_REJET3_860026722 12
DEFINITION CPT_REJET6_860026722 14
DEFINITION S1_860026722 109225
DEFINITION AUT_NDE_860026722 "ATL_ZN_NDE2+"
DEFINITION RES_TTRAFIC_860026722 1
DEFINITION CPT_CPS_Loc_860026722 16
DEFINITION CPT_CPS_RI_860026722 17
REGISTRE ENTIER stocke_date_860026722
REGISTRE ENTIER type_cpt_860026722
REGISTRE ENTIER ta_860026722
REGISTRE ENTIER sdate_860026722
REGISTRE ENTIER duree_860026722
REGISTRE ENTIER code_rejet_860026722
REGISTRE ENTIER val_REJET_860026722
REGISTRE ENTIER erreur_860026722
REGISTRE ENTIER cr_860026722
REGISTRE ENTIER SUP_860026722
REGISTRE ENTIER CAX_860026722
REGISTRE ENTIER SCT_860026722
REGISTRE ENTIER TAP_860026722
REGISTRE ENTIER T3cap2_860026722
REGISTRE ENTIER T3cab_860026722
REGISTRE ENTIER T3cle_860026722
REGISTRE ENTIER T3cha_860026722
REGISTRE ENTIER MES1_860026722
REGISTRE ENTIER MES2_860026722
REGISTRE ENTIER categ_860026722
REGISTRE ENTIER code_dest_860026722
REGISTRE ENTIER nocodedest_860026722
REGISTRE ENTIER secretndr_860026722
REGISTRE ENTIER seltrans_860026722
REGISTRE ENTIER modif_article_860026722
REGISTRE ENTIER pos_deb_860026722
REGISTRE ENTIER flag_stat_860026722
REGISTRE ENTIER nde_860026722
REGISTRE ENTIER indice_860026722
REGISTRE ENTIER beta_860026722
REGISTRE ENTIER betav_860026722
REGISTRE ENTIER type_traf_860026722
REGISTRE ENTIER res_860026722
REGISTRE ENTIER Appel_BNC_860026722
REGISTRE POINTEUR pt_memo_860026722
REGISTRE POINTEUR pt_DEDE_860026722
####################################################################
# Pcode TRAITEMENT
#	article DC RADIOMOBILE VN6
#
# En entree:
#       Article Trm6dc (domaine ILA=Lrmobile)
#       Domaine article: Dvn6dc
#
# En sortie:
#       Article OK:
#               Article Trm6dc (domaine ILA=Lrmobile)
#
# 21/10/2002 - PSA : FO61 : Modif des indices pour ajout CE
# 03/01/2003 - RBE : Modif. DOM sur i_normal
# 29/04/2003 - RBE : C14 : Utilisation de i_get_art_field au lieu
#  		     de i_get_artobj_attr
# 04/11/2003 - MCH : FO466 : remplacement ajou_tlv par ajoutchampNum
# 02/01/2004 - RBE : Mise a jour des codes erreur pour envoi en errone (code rejet)
# 25/03/2004 - RBE : Inversion dans le code_rejet de efficace et inefficace
# 01/10/2004 - PSA : FO714 - Suppression gestion ANO
# 09/05/2005 - JLG : G2R1Ch REJET2
# 09/05/2005 - JLG - FO1276
# 30/05/2005 - JLG THE - Fusion G2R1Ca + FO 1319
# 19/07/2005 - PSA - FO 1387 : normalisation demande
# 22/09/2005 - PSA - FO1478
# 25/11/2005 - PKH - G2R2Ca Deplacement du test d'inefficacite apres la normalisation
# 17/03/2006 - FAL - G2R2Cd Z9
# 27/09/2006 - JLG : G2R2Cv REJET3 (119 appels enfance maltraitee)
# 09/01/2007 - FAL - FO2086 core lors appel BNC cas duree trop longue 18h en commut et 19h pour PLATINE
# 06/11/2007 - PKH - G3R3Cv ajout REJET6 dans le cadre des appels 118 PTD & kiosque
# 08/08/2011 - THE - G3R22 QC 488
# 05/10/2011 - RHE - VerifPcode
# 23/05/2013 - DRE - G4R3 lot2 : Masquage de numero appelant (PNIJ) (Suppression filtrage en traitement car fait en distribution pour envoi a symphonie avec DDeur masque)
# 26/03/2014 - DRE - G4R6 : Lot2 prise en compte des nouveaux Type Control envoyes par la base (C+S )
# 26/02/2015 - DRE - G4R9 QC875 Pb de normalisation du DEDE si pas d'appel a la BNC
#
####################################################################

#FO2086

#////////////////////////////////////////////////////////////
# Codes de consultation des parametres de proc_copo
#////////////////////////////////////////////////////////////
#
# Indice interne de la base de comptage pour le telephone
#
#
# Indice de la loi de calcul de taxation pour le telephone
#
#
# Definition des resultats supplementaires retournes par le calcul de taxation.
#
#
# Valeur des codes d'action (collecte temps reel, collecte BM ou recyclage)
#
#
# valeurs des seuils utilises dans le controle de taxation
#
# a diviser par 100
# a diviser par 100

#############################################
# Declaration des variables pour la fonction
# de normalisation.
#############################################
#
# Codes de retour de la fonction i_normal
#
#
# Nom de l'automate du numero demandeur et demande
#

# indexe dans g_icopo.SUP[] du 'code classe de destination'
#DRE G4R6 lot2
#\DRE G4R6 lot2






# Ajout pour module CNET statistiques
# fin ajout CNET

# Test presence NDE (EV576)
#DRE G4R6 Lot2


#############################################
# Declaration des variables pour selection
# du transporteur
#############################################
# 0 : le champ n'existe pas, 1 le champ est present.

# code 'classe de destination'
# drapeau, si calcul du trafic est valid

# PROC_COPO PML+LI 10/08/95 et LI 18/09/95
#DRE G4R9 QC875


# VerifPcode - RHE # pt_DEDE_DIST_N 	= "99999999999999999999999999999999999"
pt_DEDE_860026722 		= "88888888888888888888888888888888888"
# VerifPcode - RHE # pt_NDR		= "77777777777777777777777777777777777"
# VerifPcode - RHE # pt_memo 		= "111111111111111111111111111111111"

i_strcpy(pt_DEDE_860026722,"")

#####################################################################
# DEBUT DES TRAITEMENTS
#####################################################################
#
trace("[Trm6dc_trt]Article DC faisceau entrant GSM VN6 ou VN7")
#
# par defaut, il n'y a pas de code transporteur dans l'article.
# Toujours vrai pour types d'article VN3 et VN5.
#
beta_860026722 = 0
betav_860026722 = 0
type_cpt_860026722 = 0

# Ajout pour module CNET statistiques
flag_stat_860026722 = 0
# fin ajout

# Initialisation des parametres pour code classe destination
nocodedest_860026722 = 0
# fin de l'initialisation

# Initialisation des parametres pour les CS
MES1_860026722 = 0xFF
MES2_860026722 = 0xFF
# fin de l'initialisation

# Initialisation du parametre pour palliatif du NDE
#palliatif = 1
# fin de l'initialisation

# Initialisation pour le secret du demandeur
secretndr_860026722 = 0

# Detection de la modification g_iartin en g_iartout7
modif_article_860026722 = 0

# par defaut il n'y a pas de selection du transporteur
seltrans_860026722 = 0

# Initialisation du parametre de position du 16XY ou du E
pos_deb_860026722 = 0
indice_860026722 = 0
#DRE G4R9 QC875
Appel_BNC_860026722 = 0

#DRE - G4R3 lot2 : suppression filtrage, masquage de num?ro appelant (PNIJ) en distribution
######################################################################
## G3R22 QC488 "Filtrage DC faisceau entrant TRM6DC" 
## pour appel num?ro mobile vers un num?ro fixe technique.
######################################################################
#
#erreur=i_get_art_str(g_iartin,$Trm6dc::NDE, pt_DEDE)
#SI ( i_adequation_chaine_expreg ( pt_DEDE,"145505051" ) == 0 )
#ALORS
#	SAUT STOCKE_DIV
#FINSI
#\DRE - G4R3 lot2  

#####################################################################
# Recuperation valeur de la taxe:
#	Soit le niveau T3cap2 est present:
#	dans ce cas on recupere la taxe indiquee dans ce niveau
#
#	Soit le niveau T3cab est present:
#	dans ce cas on recupere la taxe indiquee dans ce niveau
#
# On verifie qu'un seul de ces niveaux est present a la fois
#
# On en profite pour recuperer le champ CAX (categorie de taxation),
# le champ TAP (type d'appel) et la duree.
#####################################################################

T3cap2_860026722 = i_valid_field_n(g_iartin,$Trm6dc::T3cap2)
T3cab_860026722 = i_valid_field_n(g_iartin,$Trm6dc::T3cab)

SI T3cap2_860026722 > 0
ALORS
	trace("[Trm6dc_trt]T3cap2 present")
#####################################################################
#	Test 175 : champs T3cap2 et T3cab presents
#####################################################################
	SI T3cab_860026722 > 0
	ALORS
		trace("[Trm6dc_trt]T3cab present")
		code_rejet_860026722 = 0x50F2
		erreur_860026722 = i_PlvMessEmettre(6810,2,g_iartin,"",1,code_rejet_860026722,0,0)
		SAUT STOCKE_ERRONE
	FINSI

	#trace("[Trm6dc_trt]T3cab absent")
	ta_860026722 = i_get_art_field(g_iartin,$Trm6dc::TAXE:0)
	CAX_860026722 = i_get_art_field(g_iartin,$Trm6dc::CAX:0)
	SUP_860026722 = i_get_art_field(g_iartin,$Trm6dc::SUP:0)
	TAP_860026722 = i_get_art_field(g_iartin,$Trm6dc::TAP:0)
	duree_860026722 = i_get_art_field(g_iartin,$Trm6dc::DUREE:0)
SINON
	#trace("[Trm6dc_trt]T3cap2 absent")
#####################################################################
#	Test 176 : champs T3cap2 et T3cab absents
#####################################################################
	SI T3cab_860026722 <= 0
	ALORS
		#trace("[Trm6dc_trt]T3cab absent")
		code_rejet_860026722 = 0x50F2
		erreur_860026722 = i_PlvMessEmettre(6811,2,g_iartin,"",1,code_rejet_860026722,0,0)
		SAUT STOCKE_ERRONE
	FINSI

	#trace("[Trm6dc_trt]T3cab present")
	ta_860026722 = i_get_art_field(g_iartin,$Trm6dc::TAXE:1)
	CAX_860026722 = i_get_art_field(g_iartin,$Trm6dc::CAX:1)
	SUP_860026722 = i_get_art_field(g_iartin,$Trm6dc::SUP:1)
	TAP_860026722 = i_get_art_field(g_iartin,$Trm6dc::TAP:1)
	duree_860026722 = i_get_art_field(g_iartin,$Trm6dc::DUREE:1)
FINSI

#FO2086
#trace1(" FO2086 duree %d ",duree)
SI (duree_860026722 > 0x10B30)
ALORS
	#trace("[Trm6dc_trt] Duree trop longue")
	code_rejet_860026722 = 0x5022
	erreur_860026722 = i_PlvMessEmettre(6927,2,g_iartin,"",2,code_rejet_860026722,C_Article_860026722,0)
	SAUT STOCKE_ERRONE
FINSI

SI (SUP_860026722 == 0xFF)
ALORS
	SUP_860026722 = 0
FINSI

###########################################################################
# Determination type de date et conversion fin de comm -> debut de comm
# Si SCT : bits BC = 00: heure fin de comm
# Si SCT : bits BC = 01: heure debut de comm
#
###########################################################################

sdate_860026722 = i_get_art_field(g_iartin, $Trm6dc::DATE)

SCT_860026722 = g_iartin.SCT
#
#==== Affectation du champ "DATE" (seulement s'il y a changement d'ICAR)
#==== Et modification du champ SCT si changement d'ICAR
#
SI ((SCT_860026722 & 0x60) == 0x00)
ALORS
	#trace("[Trm6dc_trt]DATE = heure de fin de comm : conversion en debut de comm")
	sdate_860026722 = sdate_860026722 - duree_860026722
	erreur_860026722 = i_set_art_date(g_iartin,sdate_860026722)
	g_iartin.SCT = SCT_860026722 | 0x20
	SAUT FIN_SCT
FINSI

SI ((SCT_860026722 & 0x60) == 0x20)
ALORS
	#trace("[Trm6dc_trt]DATE = heure de debut de comm")
	SAUT FIN_SCT
FINSI

#####################################################################
#	Test 178 : bits BC champ SCT != 00, 01
#####################################################################

SI TAP_860026722 & 0x40
ALORS
	code_rejet_860026722   = 0x5040
SINON
	code_rejet_860026722   = 0x5041
FINSI

erreur_860026722 = i_PlvMessEmettre(6813,2,g_iartin,"",2,code_rejet_860026722,SCT_860026722,0)
SAUT STOCKE_ERRONE

POINT FIN_SCT

#####################################################################
#	Determination de la date de stockage
#####################################################################

stocke_date_860026722 = i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE)
#
###########################################################################
# Controle du champ "type d'appel"
#==== Si bit b = 1 => article inefficace
#==== Si bits a = 1 et c = 1  => erreur
###########################################################################

#####################################################################
#	Test 180 : bit B champ TAP == 1 (inefficace)
#  -G2R2Ca- 02/12/05 MODIFICATION :deplacement du test inefficace apres la normalisation
#	de DEDE pour evolution APACHE
#####################################################################
#####################################################################

SI TAP_860026722 & 0x40
ALORS
	SI duree_860026722 == 0
	ALORS
		T3cha_860026722 = i_valid_field_n(g_iartin,$Trm6dc::T3cha)
		T3cle_860026722 = i_valid_field_n(g_iartin,$Trm6dc::T3cle)

		SI T3cha_860026722 > 0
		ALORS
			MES1_860026722 = i_get_art_field(g_iartin,$Trm6dc::MES1)
			MES2_860026722 = i_get_art_field(g_iartin,$Trm6dc::MES2)
		FINSI

		SI ((MES1_860026722 != 0xFF) || (MES2_860026722 != 0xFF))
		ALORS
			#trace("[Trm6dc_trt]Article inefficace avec duree=0 et avec CS=CHA: stockage en PRT")
			SAUT STOCKE_NODATA
		SINON
			SI T3cle_860026722 > 0
			ALORS
#				Test : champs NDE absent si non ineff (EV576)
				nde_860026722 = i_valid_field_n(g_iartin, $Trm6dc::NDE)
				SI (nde_860026722 == 0)
				ALORS
					code_rejet_860026722 = 0x5041
					erreur_860026722 = i_PlvMessEmettre(6930,2,g_iartin,"",1,code_rejet_860026722,0,0)
					SAUT STOCKE_ERRONE
				FINSI
			FINSI
		FINSI
	FINSI
	#trace("[Trm6dc_trt]Article inefficace : stockage en PRT")
	#SAUT STOCKE_OK_PRT
FINSI

#####################################################################
#	Test : champs NDE absent si non ineff (EV576)
#####################################################################

nde_860026722 = i_valid_field_n(g_iartin, $Trm6dc::NDE)
SI (nde_860026722 == 0)
ALORS
	code_rejet_860026722 = 0x5041
	erreur_860026722 = i_PlvMessEmettre(6930,2,g_iartin,"",1,code_rejet_860026722,0,0)
	SAUT STOCKE_ERRONE
FINSI

#####################################################################
#	Test 181 : bits AC champ TAP == 11
#####################################################################
# test des bits a et c uniquement

SI ((TAP_860026722 & 0xa0)  == 0xa0)
ALORS
	code_rejet_860026722   = 0x5041
	erreur_860026722 = i_PlvMessEmettre(6814,2,g_iartin,"",1,code_rejet_860026722,0,0)
	SAUT STOCKE_ERRONE
FINSI
#
#==================================================================
#=====================	 	TRAITEMENT	===================
#==================================================================
#

#####################################################################
#	test 4 : TA > S1
#####################################################################

SI ta_860026722 > S1_860026722
ALORS
	code_rejet_860026722 = 0x5031
	erreur_860026722 = i_PlvMessEmettre(6815,2,g_iartin,"",2,code_rejet_860026722,ta_860026722,0)
	SAUT STOCKE_ERRONE
FINSI

#####################################################################
#   SECRET DU DEMANDEUR
#####################################################################
# Detection 3651 ou *31*

SI ( ( ( g_iartin.NDE[0] == 0x3 ) && ( g_iartin.NDE[1] == 0x6 ) 
    && ( g_iartin.NDE[2] == 0x5 ) && ( g_iartin.NDE[3] == 0x1 ) )
  || ( ( g_iartin.NDE[0] == 0xB ) && ( g_iartin.NDE[1] == 0x3 ) 
    && ( g_iartin.NDE[2] == 0x1 ) && ( g_iartin.NDE[3] == 0xB ) ) )
ALORS
	#trace("[Trm6dc_trt]Secret du demandeur : suppression de '3651' ou de '*31*'")
	secretndr_860026722 = 1
	#Enlever 3651 (ou *31*) pour appel a i_comptage
	pos_deb_860026722 = i_supp_quart_name("NDE",0,4,15,g_iartin,g_iartout7)
	modif_article_860026722 = 1
FINSI

#####################################################################
#   SELECTION DU TRANSPORTEUR
# La plupart des traitements concernants la selection du
# transporteur et la numerotation courte des DOM, a ete deporte dans
# les nouveaux automates de normalisation
#####################################################################

# Test de la presence du champ BETA et BETAV dans l'article (present si beta > 0)
beta_860026722 = i_valid_field_n(g_iartin,$Trm6dc::BETA)
betav_860026722 = i_valid_field_n(g_iartin,$Trm6dc::BETAV)
#trace("[Trm6dc_trt]traitement du numero demande")

#####################################################################
#	SELECTION DU TRANSPORTEUR
#####################################################################

SI ( modif_article_860026722 == 1)
ALORS
	#trace("[Trm6dc_trt]Traitement COCA avec utilisation g_iartout7")

	# Ajout de 16XY devant le NDE :
	# Si le code du transporteur (COCA ou COCAV) est present dans l'article
	# et si le NDE debute par 0, on effectue l'ajout (beta ou betav si beta absent)
	#
	SI ( (betav_860026722>0) && (g_iartout7.NDE[0] == 0x0) )
	ALORS
		# Ajout de 16XY devant le NDE
		#trace("[Trm6dc_trt]champ betav present et NDE commence par '0' : ajout de 16XY")
		erreur_860026722 = i_add_quart_name("NDE",0,15,"1600",g_iartout7,g_iartout7)
		g_iartout7.NDE[2] = g_iartout7.BETAV[0]
		g_iartout7.NDE[3] = g_iartout7.BETAV[1]
	FINSI
SINON
	#trace("[Trm6dc_trt]Traitement COCA avec utilisation g_iartin")

	# Ajout de 16XY devant le NDE :
	# Si le code du transporteur (COCA ou COCAV) est present dans l'article
	# et si le NDE debute par 0, on effectue l'ajout (beta ou betav si beta absent)
	#
	SI ( (betav_860026722>0) && (g_iartin.NDE[0] == 0x0) )
	ALORS
		# Ajout de 16XY devant le NDE
		#trace("[Trm6dc_trt]champ betav present et NDE commence par '0' : ajout de 16XY")
		erreur_860026722 = i_add_quart_name("NDE",0,15,"1600",g_iartin,g_iartout7)
		g_iartout7.NDE[2] = g_iartout7.BETAV[0]
		g_iartout7.NDE[3] = g_iartout7.BETAV[1]
		modif_article_860026722 = 1
	FINSI
FINSI

# Ajout PSA 19/07/05
#  Traitement specifique pour les cas ETSI national et internationnal
#####################################################################

SI ( modif_article_860026722 == 1)
ALORS
	# Cas ETSI National
	SI ( (g_iartout7.INF_DEDE & 0xC0) == 0x80)
	ALORS
		#trace("Cas ETSI National : ajout de '0' au debut de NDE")
		erreur_860026722 = i_add_quart_name("NDE",0,15,"0",g_iartout7,g_iartout7)
	SINON
		#Cas ETSI International
		SI ( (g_iartout7.INF_DEDE & 0xC0) == 0xC0)
		ALORS
			#trace("Cas ETSI International : ajout de '00' au debut de NDE")
			erreur_860026722 = i_add_quart_name("NDE",0,15,"00",g_iartout7,g_iartout7)
		FINSI
	FINSI
SINON
	# Cas ETSI National
	SI ( (g_iartin.INF_DEDE & 0xC0) == 0x80)
	ALORS
		#trace("Cas ETSI National : ajout de '0' au debut de NDE")
		erreur_860026722 = i_add_quart_name("NDE",0,15,"0",g_iartin,g_iartout7)
		modif_article_860026722 = 1
	SINON
		# Cas ETSI International
		SI ( (g_iartin.INF_DEDE & 0xC0) == 0xC0)
		ALORS
			#trace("Cas ETSI International : ajout de '00' au debut de NDE")
			erreur_860026722 = i_add_quart_name("NDE",0,15,"00",g_iartin,g_iartout7)
			modif_article_860026722 = 1
		FINSI
	FINSI
FINSI
# Fin ajout PSA 19/07/05

#####################################################################
#   Normalisation des numeros APPELANT et APPELE
#
# erreur = Valeur de retour de la normalisation :
#
# RET_SELTRANS : l'automate de normalisation du numero APPELE detecte
# une selection du transporteur en '16XY' ou en 'EZAB' avec E!=8 (FT);
# on ne fait pas de calcul de valorisation et CCD=0xFE et CTT=0x00FE.
#
# RET_SELTRANS_FT : le transporteur est France Telecom (par 'E=8'),
# l'automate normalise en remplacant le '8' par '0'; on effectue un
# calcul de valorisation.
#
# RET_NO_SELTRANS : Pas de selection du transporteur; on effectue un
# calcul de valorisation.
#
# En cas d'erreur de normalisation, on n'effectue pas de calcul de
# valorisation et CCD=0xFF et CTT=0x00FF (valeur par defaut)
#
# L'automate normalise un numero demande des DOM en numerotation
# abregee en lui ajoutant le '0ZAB' du numero APPELANT.
#
#####################################################################

#erreur=i_get_art_str(g_iartin, $NDE, DEDE)
#22/10/2003 - MCH - FO424 : paliatif pour bug de lireChpCdc dans la correlation
#res = i_strlen(pt_DEDE)
#res = res - 9
#i_get_sub_str(DEDE,res,-1,pt_DEDE_DIST_N)
#erreur=i_get_art_str(g_iartin, $NDR, pt_NDR)
#erreur=i_memcpy_art_field_n(g_icopo,$Tcopo::NDR,pt_NDR,11)
#erreur=i_memcpy_art_field_n(g_icopo,$Tcopo::NDE,pt_DEDE_DIST_N,11)

SI (modif_article_860026722 == 1)
ALORS
	#trace("Normalisation des NDEUR/NDE avec g_iartout7")
	#fonction BNC_TYPCTR (NomBase,Code_article,CATEG,'**00',pt_DEDE_DIST_N,Date_Locale(ddebut,IDUS_N),dduree)
	erreur_860026722 = i_memcpy_art_field_n(g_icopo, $Tcopo::NDR,"**00", 5)
	erreur_860026722 = i_normal(g_iartout7,$Trm6dc::NDE , $Trm6dc::NDE, g_icopo, $Tcopo::NDE, $Tcopo::NDE,3, AUT_BIDON_860026722 , AUT_NDE_860026722)
SINON
	#trace("Normalisation des NDEUR/NDE avec g_iartin")
	erreur_860026722 = i_memcpy_art_field_n(g_icopo, $Tcopo::NDR,"**00", 5)
	erreur_860026722 = i_normal(g_iartin,$Trm6dc::NDE , $Trm6dc::NDE, g_icopo, $Tcopo::NDE, $Tcopo::NDE,3, AUT_BIDON_860026722 , AUT_NDE_860026722)
FINSI

#####################################################################
#   Test 112 : normalisation NDR ou NDE impossible
#####################################################################

SI erreur_860026722 < 0
ALORS
	nocodedest_860026722 = 1
	SAUT STOCKE_OK
FINSI

##################################################################################
# G2R2Ca - PKH - deplacement du test d inefficacite apres la normalisatio
##################################################################################

SI TAP_860026722 & 0x40
ALORS
	SAUT STOCKE_OK_PRT
FINSI

#####################################################################
#	Initialisation de l'interface "proc_copo" et calcul taxation
#####################################################################

categ_860026722 = (8 * CAX_860026722) + SUP_860026722

g_icopo.TAXE   = 0
g_icopo.CREDIT = 0
erreur_860026722 = i_set_art_date(g_icopo,sdate_860026722)
g_icopo.DUREE  = duree_860026722
g_icopo.CODE   = CODE_NUMERIS_860026722
g_icopo.CATEG  = categ_860026722
# g_icopo.CAX    = CAX
# g_icopo.SUPPORT = SUP
g_icopo.SUP[0] = 0
g_icopo.SUP[1] = 0
g_icopo.SUP[2] = 0
g_icopo.SUP[3] = 0
g_icopo.SUP[4] = 0

# PROC_COPO PML+LI 10/08/95 et LI 18/09/95
# Memorisation des parametres de PROC_COPO
pt_memo_860026722 = i_init_tax_param()

cr_860026722 = i_comptage(g_icopo,BASE_TELEPHONE_860026722,sdate_860026722)

SI cr_860026722 != 0
ALORS
	#SI ((g_ierrno == 1100) && (seltrans == 1))
	#ALORS
	nocodedest_860026722 = 1
	SAUT STOCKE_OK
	#FINSI

	#code_rejet = 0x5021
	#erreur = i_PlvMessEmettre(6818,2,g_iartin,"",2,code_rejet,g_ierrno,0)
	#SAUT STOCKE_ERRONE
FINSI

#DRE G4R9 QC875
Appel_BNC_860026722 = 1

# G2R1Ch : REJET2

type_cpt_860026722 = g_icopo.SUP[RES_TYPCPT_860026722]
trace1("[Trm6dc_trt] type_cpt retour de BNC : g_icopo.SUP[RES_TYPCPT]=%d",type_cpt_860026722)
#
#On conserve le type de trafic
code_dest_860026722 = g_icopo.SUP[RES_CLDEST_860026722]
trace1("[Trm6dc_trt] code_dest retour de BNC : g_icopo.SUP[RES_CLDEST]=%d",code_dest_860026722)

# Ajout pour module CNET statistiques
flag_stat_860026722 = 1
# fin ajout

#trace("[Trm6dc_trt]Controle de la valorisation")

SAUT STOCKE_OK
#
#====================================================================
#==================== BRANCHEMENTS POUR STOCKAGE ====================
#====================================================================
#

#####################################################################
# POINT de branchement : stockage STOCKE_NODATA
#
#####################################################################
# EV316 point 2
POINT STOCKE_NODATA

stocke_date_860026722 = i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE)

SAUT STOCKE_OK_PRT

POINT STOCKE_OK

#trace("[Trm6dc_trt]Stockage de l'article")
#trace("[Trm6dc_trt]Ajout du T3=0x7E avec CCD = 0xFF et CTT = 0xFFFF")

# FO466 : remplacement ajou_tlv par ajoutchampNum
erreur_860026722 = i_ajoutChampNum(g_iartin,$Trm6dc::T4ccd,$Trm6dc::CCD,0)
erreur_860026722 = i_ajoutChampNum(g_iartin,$Trm6dc::T4typtra,$Trm6dc::CTT,0)

# G2R1Ch : REJET2
val_REJET_860026722 = 0
SI (type_cpt_860026722==CPT_REJET2_860026722)
ALORS
	#trace("[Trm6dc_trt]Ajout du champ REJET=2")
	val_REJET_860026722=2
	erreur_860026722=i_ajoutChampNum(g_iartin,$Trm6dc::T4rejet,$Trm6dc::REJET,0)
	erreur_860026722=i_set_art_field(g_iartin,$Trm6dc::REJET,val_REJET_860026722)
FINSI
# G2R2Cv : REJET3
SI (type_cpt_860026722==CPT_REJET3_860026722)
ALORS
	#trace("[Trm6dc_trt]Ajout du champ REJET=3")
	val_REJET_860026722=3
	erreur_860026722=i_ajoutChampNum(g_iartin,$Trm6dc::T4rejet,$Trm6dc::REJET,0)
	erreur_860026722=i_set_art_field(g_iartin,$Trm6dc::REJET,val_REJET_860026722)
FINSI

# G3R3Cv : REJET6

SI (type_cpt_860026722==CPT_REJET6_860026722)
ALORS
	#trace("[Trm6dc_trt]Ajout du champ REJET=14 pour REJET6")
	val_REJET_860026722=14
	erreur_860026722=i_ajoutChampNum(g_iartin,$Trm6dc::T4rejet,$Trm6dc::REJET,0)
	erreur_860026722=i_set_art_field(g_iartin,$Trm6dc::REJET,val_REJET_860026722)
FINSI


#DRE G4R9 QC875
SI Appel_BNC_860026722 == 1
ALORS
	
	#DRE G4R6 lot2
	SI ( (type_cpt_860026722==CPT_CPS_Loc_860026722) || (type_cpt_860026722==CPT_CPS_RI_860026722) )
	ALORS
		#trace("Ajout du champ REJET = CPS_Loc ou CPS_RI")
		val_REJET_860026722=type_cpt_860026722
		erreur_860026722=i_ajoutChampNum(g_iartin,$Trm6dc::T4rejet,$Trm6dc::REJET,0)
		erreur_860026722=i_set_art_field(g_iartin,$Trm6dc::REJET,val_REJET_860026722)
	FINSI
	erreur_860026722=i_ajoutChampNum(g_iartin,$Trm6dc::T4normal,$Trm6dc::NORMAL,0)
	indice_860026722 = 0
	POINT BOUCLE_NDE
	res_860026722 = i_get_art_fieldtab(g_icopo, $Tcopo::NDE, indice_860026722)
	#trace1(" element : %x",res)
	
	SI (res_860026722 != 00)
	ALORS
		# Cas particuliers : * (2A en ASCII) et # (23 en ASCII)
	
		SI (res_860026722 == 0x2a)
		ALORS
			erreur_860026722 = i_set_art_fieldtab(g_iartin, $Trm6dc::NORMAL, indice_860026722, 0xB)
			indice_860026722 = indice_860026722 + 1
			SAUT BOUCLE_NDE
		FINSI
	
		SI (res_860026722 == 0x23)
		ALORS
			erreur_860026722 = i_set_art_fieldtab(g_iartin, $Trm6dc::NORMAL, indice_860026722, 0xC)
			indice_860026722 = indice_860026722 + 1
			SAUT BOUCLE_NDE
		FINSI
	
		# Cas generique
		erreur_860026722 = i_set_art_fieldtab(g_iartin, $Trm6dc::NORMAL, indice_860026722, res_860026722-0x30)
		indice_860026722 = indice_860026722 + 1
		SAUT BOUCLE_NDE
	SINON
		erreur_860026722 = i_set_art_fieldtab(g_iartin, $Trm6dc::NORMAL, indice_860026722, 0xFF)
	FINSI
	
	#\DRE G4R6 lot2
	
FINSI

# si nocodedest est reste a 0, cela veut dire que l appel a i_comptage a ete
# realise et valide
# Dans le cas contraire, on laisse l ajout CE CCD a la valeur par defaut (FF)
SI (nocodedest_860026722 == 0)
ALORS
	#trace("[Trm6dc_trt]Appel a i_comptage realise et valide : maj CCD")
	erreur_860026722 = i_set_art_field(g_iartin, $Trm6dc::CCD, code_dest_860026722)
FINSI

SI (flag_stat_860026722 == 1) && (nocodedest_860026722 == 0)
ALORS
	type_traf_860026722 = g_icopo.SUP[RES_TTRAFIC_860026722]
	erreur_860026722 = i_set_art_field(g_iartin,$Trm6dc::CTT,type_traf_860026722)
	trace1("[Trm6dc_trt]Appel a i_comptage realise et valide : maj CTT type_traf=%d",type_traf_860026722)
FINSI
# XYZ trafic fin

# Ajout 0x00FE dans le cas de seltrans=1 et flag_stat=1
SI ((flag_stat_860026722 == 1) && (seltrans_860026722 == 1))
ALORS
	#trace("[Trm6dc_trt]Selection transporteur non FT : maj CTT = 0x00FE et CCD = 0xFE")
	erreur_860026722 = i_set_art_field(g_iartin,$Trm6dc::CTT,code_dest_860026722)
	g_iartin.CCD = code_dest_860026722
	#trace1("[Trm6dc_trt]Ajout du T3=0x7E avec CTT = %d",type_traf)
	#trace1("[Trm6dc_trt]Ajout du T3=0x7E avec CCD = %d",code_dest)
FINSI

POINT STOCKE_OK_PRT

erreur_860026722 = i_ajoutChampNum(g_iartin,$Trm6dc::T4_CORR,$Trm6dc::CORR_OK,0)
#trace("[Trm6dc_trt]Stockage de l'article en OK")
erreur_860026722 = i_stocke_art(g_iartin, stocke_date_860026722, PT_OK, 0)

#trace("[Trm6dc_trt]Fin traitement Article DC VN6 ou VN7")
RETOUR TRAIT_OK

#####################################################################
# POINT de branchement : stockage PT_ERRONE
#		correspond au cas d'erreur syntaxiques et semantiques
#####################################################################

POINT STOCKE_ERRONE

trace("[Trm6dc_trt]Stockage de l'article en ERRONE")

stocke_date_860026722 = i_get_art_stocke_date(g_iartin,DATE_PLUS_DUREE)

erreur_860026722 = i_make_art_rej(g_iartin, g_iartout, code_rejet_860026722)
erreur_860026722 = i_stocke_art(g_iartout, stocke_date_860026722, PT_ERRONE, 0)

trace("[Trm6dc_trt]Fin traitement Article DC VN6 ou VN7")
RETOUR TRAIT_OK


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

POINT STOCKE_DIV

#IFDEF trace_niv1 = 1
trace( "__FILE__:__LINE__ : Fin du Pcode de distribution : Stockage en DIVERS" )
#ENDIF

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

RETOUR TRAIT_OK


POINT STOCKE_ELM

trace( "[Trm6dc_trt] Fin du Pcode de traitement : Stockage en ELIMINE" )

erreur_860026722 = i_stocke_art( g_iartin, 0, PT_ELIMINE, 0 )

RETOUR TRAIT_OK


#----------------------------- FIN PCODE Trm6dc_trt ------------------------------
