DEFINITION Multidistribution_Non_660004593 0
DEFINITION Multidistribution_Oui_660004593 1
DEFINITION DISTRIBUTION_INCONNU_660004593 1
DEFINITION C_Tdpv_660004593 "Tdpvgsm"
DEFINITION C_Article_660004593 "TtpecsV2"
DEFINITION NUMTAB_660004593 4
DEFINITION TRAI_OK_660004593 0
DEFINITION TRAI_KO_660004593 -1
DEFINITION Liste_TPE_660004593 "TYPE_TELSVC"
DEFINITION MontantNul_660004593 "000000000000"
DEFINITION ESPACE_660004593 " "
DEFINITION C_str_FFMv3_660004593 "FFMv3"
DEFINITION C_str_NetMobile_660004593 "NetMobile"
REGISTRE ENTIER erreur_660004593
REGISTRE ENTIER X_660004593
REGISTRE ENTIER nbcs_660004593
REGISTRE ENTIER EFFICACE_660004593
REGISTRE ENTIER code_errone_660004593
REGISTRE ENTIER res_660004593
REGISTRE ENTIER flag_660004593
REGISTRE ENTIER date_660004593
REGISTRE ENTIER ICAR_ABS_660004593
REGISTRE ENTIER date_audit_660004593
REGISTRE ENTIER date_fin_660004593
REGISTRE ENTIER date_plat_660004593
REGISTRE ENTIER longueur_660004593
REGISTRE ENTIER index_660004593
REGISTRE ENTIER duree_660004593
REGISTRE ENTIER TypeAppel_660004593
REGISTRE ENTIER TelSvc_660004593
REGISTRE ENTIER TYPE_QUANTITE_660004593
REGISTRE ENTIER QUANTITE_660004593
REGISTRE ENTIER index_DPV_CS_660004593
REGISTRE ENTIER MONTANT_660004593
REGISTRE ENTIER MntCS_660004593
REGISTRE ENTIER incrementation1502_660004593
REGISTRE ENTIER quantite_facturee_660004593
REGISTRE ENTIER NetMobile_660004593
REGISTRE ENTIER b_FFMv3_660004593
REGISTRE ENTIER b_CarSpec_660004593
REGISTRE ENTIER lg_service_660004593
REGISTRE ENTIER indice_660004593
REGISTRE ENTIER b_DTMF_660004593
REGISTRE ENTIER longueur2_660004593
REGISTRE POINTEUR pt_1_660004593
REGISTRE POINTEUR pt_2_660004593
REGISTRE POINTEUR pt_idemet_660004593
REGISTRE POINTEUR pt_TelSvc_660004593
REGISTRE POINTEUR pt_DEDENUM_660004593
REGISTRE POINTEUR pt_IDUSNUM_660004593
REGISTRE POINTEUR pt_CodCS_CodOP_660004593
REGISTRE POINTEUR pt_TypeAppel_TelSvc_660004593
REGISTRE POINTEUR pt_TypeAppel_660004593
REGISTRE POINTEUR pt_GASCII_660004593
REGISTRE POINTEUR pt_CodOff_660004593
REGISTRE POINTEUR pt_valeur_660004593
REGISTRE POINTEUR pt_service_660004593
REGISTRE POINTEUR pt_DebChamp1_660004593
REGISTRE POINTEUR pt_DebChamp2_660004593
REGISTRE POINTEUR pt_DebChamp3_660004593
REGISTRE POINTEUR pt_DTMF_660004593
REGISTRE POINTEUR pt_BUF2_660004593
REGISTRE ENTIER c_EEC_660004593
REGISTRE ENTIER datepremierpass_660004593
REGISTRE ENTIER datedernierpass_660004593
REGISTRE ENTIER formatdist_660004593
REGISTRE ENTIER numDC_660004593
REGISTRE ENTIER envoiredis_660004593
REGISTRE POINTEUR pt_TypEdit_660004593
REGISTRE POINTEUR pt_CTarifSVA_660004593
REGISTRE POINTEUR pt_ITagGP_660004593
############################################################################
# DISTRIBUTION TtpecsV2_dis.src
#	Article DC TtpecsV2 en entree de Platine
#	Pcode de distribution
#	Creation le 03/07/2006
#
#	g_iartout	Tdpvgsm
#	g_iartout3	Conv_URS avec suppression DTMF
#	g_iartout10	Conv_URS
#
# Historique
# Avec Normalisation
# 10/08/06 PKH Correction F0257 mettre le code octal \340 pour a accentue
# 10/08/06 PKH Correction FO256 Si Z=0 erreur de normalisation mettre le CRA en errone
# 01/09/06 JLG report FO CaME : 240, 242
# 05/09/06 PKH FO 256 Correction normalisation AJSC pour V3t2
# 06/10/06 PSA G3R0CdME : prise en compte de la spec S1F0
# 17/10/06 PSA G3R0CdME : prise en compte de la spec S1F1
# 13/11/06 PSA G3R0CdME : G3R0CdME : FO 337
# 23/11/06 PSA G3R0CdME : FO 345, 347, 348
# 24/11/06 DRE G3R0CdME : Correction V2: FO 360 DPV CS(i)et DPV Fin DC 
#					si erreur normalisation V3t2, envoi en errone (au lieu de 33999999999)
# 28/11/06 DRE G3R0CdME : Correction V2: FO 346 DPV CS(i)et DPV Fin DC (Normalisation des Numeros courts)
# 12/12/06 DRE G3R0CdME	: Correction FO 380
# 07/02/07 PSA G3R0CdME	: FO 421
# 05/03/07 PSA G3R0CdME	: FO 440 : prise en compte de la spec TPE V2 S0F3
#		          Modif incrementation compteur (1502/1510 au 1er passage, 1510 ensuite)
# 20/03/07 PSA G3R0CdME	: FO 444 : alimentation du V4t44.2 en alphanumerique
#			  FO 445 : stockage en errone si caractere special dans DEMANDE
#			  FO 463 : bourrage incorrect pour V4t39.6 (AMOUNT)
# 30/03/07 DRE G3R0CdME	: FO 462 : Ttpecsv2: Evolution du champ duree V3t1.6
# 03/04/07 PSA G3R0CdME	: FO 465 : valeur incorrecte pour V4t16 (TrSortant)
#          DRE            FO 466 : retaillage T3t58 GASCII
# 10/04/07 DRE G3R0CdME	: FO 474 : retaillage ? 3 octets de T4t39.4 balanceAmount
# 23/05/07 PKH G3R0CwME : G3R0CwME offre NetMobile
# 22/06/07 PSA G1R4 : FO 539 evolution du calcul du V3t1.1 du DC final
# 26/06/07 PSA G1R4 : FO 540 (+ complement prise en compte Net et Mobile)
# 07/08/07 PKH G1R5 : FFM V2 et N&M(effet de bord I2G)-Suppression des ctls de generation DPV_CS et DPV_final
# 01/10/07 RHE G1R5 : TT32 - Alimentation de V4t35.1 par DC-9 au lieu de DC-8
# 22/10/07 RHE G1R5 : modif TT32 SI (( TYPE_QUANTITE == 1 ) && (NetMobile == 1))
# 24/10/07 RHE G1R5 : TT 45 : reprise de la FO TT32  
# 29/02/08 PKH G1R6 lot3 Filtrage et normalisation des CRAS Voip avec caracteres DTMF
# 07/03/08 PKH G1R6 lot3 FO658:correction champ idpart dans dpvgsm final 
# 13/03/08 PKH G1R6 lot3 FO660 Evolution gestion des caracteres DTMF pour les types 0xAE
# 20/05/2008 - FAL - G1R8 FFMv3
# 26/06/2008 - JLG - G1R8 FFMV3 evol spec
# 30/06/2008 - JLG - G1R8 QC116 dc final ajout type 0F et 0E
# 30/06/2008 - JLG - G1R8 QC115 echec de norm si idpart court avec # ou * et type <> 0x48 ou AF
# 02/07/2008 - JLG - G1R8 QC115 (QC116,129,130,131) complements
# 23/07/2008 - JLG - G1R8 QC154, 157
# 23/09/2010 - JLG - G3R1 QC566 generation de CRA toutes les heures
# 16/12/2010 - BEA - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 14/03/2011 - JLG - G3R2C4 fusion G3R2C3 avec G3R1C600 (suppression envelloppe E_Redistri)
# 09/05/2011 - PKH - QC857 detection du caractere livre_sterling dans le champ NumDde et remplacement de ce caractere par C
# 29/02/2012 - JLG -G3R6 QC1005 modif alarme retour aiguillage
# 07/04/2014 - RHE - G5R1 lot 2 C+S
# 02/07/2014 - JLG -G5R1 QC1405, champ eec du DPV si g_ieec > 500
# 09/07/2014 - RHE - G5R2 lot1 : retrait detection ancien/nouveau format du cas d'article
############################################################################

#G1R8


#G3R0CwME
#G1R8
# QC115
#G1R5
#G1R6 lot3
#G1R6 lot3 fin

#G3R0CwME
#G1R5
#G1R6 lot3

#G1R3 lot4 QC566

#G5R1

EFFICACE_660004593=2
##############################################################################
# ALLOCATION DES POINTEURS
##############################################################################

pt_TypeAppel_TelSvc_660004593 = "000000000000000000000000000000000000000000"
pt_1_660004593		= "1111111111111111111111111111111111111111111111111111111111111111111111111"
pt_DEDENUM_660004593 = "3333333333333333333333333333333333333333333333333333333333333333"
i_strcpy(pt_DEDENUM_660004593,"")
pt_idemet_660004593	= "4444444444444444444444444444444444444444444444444444444444444444444444444"
pt_IDUSNUM_660004593 = "5555555555555555555555555555555555555555555555555555555555555555"
i_strcpy(pt_IDUSNUM_660004593,"")
pt_CodCS_CodOP_660004593 = "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666"
pt_TypeAppel_660004593 = "777777777"
i_strcpy(pt_TypeAppel_660004593,"")
pt_TelSvc_660004593 = "99999"
i_strcpy(pt_TelSvc_660004593,"")
pt_GASCII_660004593 = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
pt_2_660004593      = "789012345678901234567890123456789012345678901234567890123456789012345678901"
pt_CodOff_660004593 = "979797979797979797979797979797979797979797997979797987979797"
i_strcpy(pt_CodOff_660004593,"")
pt_valeur_660004593 = "32323232323232323232323232323232323232323232323232323232323232"
pt_service_660004593 ="73973973973797397397397397777397397397397397397397397397397397397397937937937793739379739379334739"
pt_DebChamp1_660004593="pt_DebChamp1387639832143123"
i_strcpy(pt_DebChamp1_660004593,"")
pt_DebChamp2_660004593="3513513513513513513513531351351351"
i_strcpy(pt_DebChamp2_660004593,"")
pt_DebChamp3_660004593="617617617617617617617617617617617617617167"
i_strcpy(pt_DebChamp3_660004593,"")
pt_DTMF_660004593="1951951951951234567890"
pt_BUF2_660004593 ="pt_BUF28156414567890123456789012345678"
i_strcpy(pt_BUF2_660004593,"")
pt_TypEdit_660004593 ="pt_TypeEdit"
i_strcpy(pt_TypEdit_660004593,"")
pt_CTarifSVA_660004593 ="pt_CTarifSVA"
i_strcpy(pt_CTarifSVA_660004593,"")
pt_ITagGP_660004593 = "pt_ITagGP"
i_strcpy(pt_ITagGP_660004593, "")

trace("[TtpecsV2_dis] Debut Pcode TtpecsV2 distribution")
#erreur = i_fdump_art(g_iartin)

#G5R1 Ancien format d'article
#G5R2 lot1
#bancien = 0
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOff, pt_CodOff_660004593)
trace2("[TtpecsV2_dis] CodOff lu =%s",pt_CodOff_660004593,"")
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CTarifSVA, pt_CTarifSVA_660004593)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::TypEdit, pt_TypEdit_660004593)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::ITagGP, pt_ITagGP_660004593)
		
#G5R2 lot1
#SI (i_strplcmp(pt_CodOff, "      ", 0, 6) == 0)
#ALORS
#	trace("[TtpecsV2_dis] Ancien format d'article detecte")
#	bancien = 1
#	# 	Ancien cas d'article -> pt_CodOff = ITagGP	+ CTarifSVA + TypEdit
#	erreur = i_format_str2(pt_BUF2, "%s%s", pt_ITagGP, pt_CTarifSVA)
#	erreur = i_format_str2(pt_CodOff, "%s%s", pt_BUF2, pt_TypEdit)
#	trace2("[TtpecsV2_dis] Ancien CodOff =%s",pt_CodOff,"")
#FINSI


#G5R1 CRA Elimine (DIVERS) si le quatrieme octet de CTarifSVA = 'C'
#G5R2 lot1
#SI (bancien == 0)
#ALORS
#	# erreur = i_get_art_str(g_iartin, $TtpecsV2::CTarifSVA, pt_CTarifSVA)
#	SI (i_strplcmp(pt_CTarifSVA, "C", 3, 1) == 0)
#	ALORS
#		trace("[<<<__LINE__<<<__FILE__<<< TtpecsV2_dis] Quatrieme octet de CTaricSVA = 'C' -> ELIMINE ")
#		SAUT STOCKE_ELIMINE
#	FINSI
#FINSI
SI (i_strplcmp(pt_CTarifSVA_660004593, "C", 3, 1) == 0)
ALORS
	trace("[<<<__LINE__<<<__FILE__<<< TtpecsV2_dis] Quatrieme octet de CTaricSVA = 'C' -> ELIMINE ")
	SAUT STOCKE_ELIMINE
FINSI


numDC_660004593 = 1
MONTANT_660004593 = 0
longueur_660004593 = 0
b_DTMF_660004593 = 0
indice_660004593 = 0
longueur2_660004593 = 0

erreur_660004593 = i_cree_art("Conv_URS",g_iartout10)
duree_660004593 = i_get_art_field(g_iartin, $TtpecsV2::DUREE)

#G1R5 TT32
quantite_facturee_660004593 = i_get_art_field(g_iartin, $TtpecsV2::QteDUREE)

incrementation1502_660004593 = 0
# Debut G1R4 : FO 539
flag_660004593 = 0
# Fin G1R4 : FO 539
# QC566
SI (i_LireRedistCpt() == 0)
ALORS
	erreur_660004593 = i_add_opt( "E_RedisTPE" )
	erreur_660004593 = i_set_attr_val_n( $E_RedisTPE::DCdistribue, 0)

FINSI

erreur_660004593 = i_set_attr_val_n( $E_RedisTPE::EnvoiRedis, 0)
#/QC566

##############################################################################
# Variables fonctionnelles
##############################################################################
#################### Date_Audit et date_plat (date_audit ramenee a heure platine)
date_audit_660004593=i_date_audit()
trace1("[TtpecsV2_dist] date_audit=%x",date_audit_660004593)

date_plat_660004593 = i_DHgetLocalTime(NUMTAB_660004593, 7, date_audit_660004593)

#################### ICAR_ABS
date_660004593 =i_get_art_field(g_iartin,$TtpecsV2::DATE)
ICAR_ABS_660004593 =i_date_platine(g_ieec,g_iartin,date_660004593)

#################### TYPE_QUANTITE
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::TypQte, pt_1_660004593)
TYPE_QUANTITE_660004593 = CONV_ASCIINUMHEX_INT_660004265(pt_1_660004593)

#G3R6 lot3 debut pk=========================================
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::NumDde, pt_DEDENUM_660004593)

longueur_660004593 = i_strlen(pt_DEDENUM_660004593)
i_get_sub_str (pt_DEDENUM_660004593,0,0,pt_DebChamp1_660004593)
i_get_sub_str (pt_DEDENUM_660004593,0,1,pt_DebChamp2_660004593)
i_get_sub_str (pt_DEDENUM_660004593,0,3,pt_DebChamp3_660004593)

SI (i_strcmp("*#",pt_DebChamp2_660004593) == 0 || i_strcmp("*\243",pt_DebChamp2_660004593) == 0 )
ALORS 
      indice_660004593 = 1
    #trace("========detection de *# ou *\243==========") 
SINON
     SI (i_strcmp("*",pt_DebChamp1_660004593)==0 || i_strcmp("#",pt_DebChamp1_660004593)==0 || i_strcmp("\243",pt_DebChamp1_660004593)==0)
     ALORS
         indice_660004593 = 0
        #trace("=========detection de * ou # ou \243=================") 
     SINON
          SI ( i_strcmp("3651",pt_DebChamp3_660004593)== 0)
          ALORS
               b_DTMF_660004593 = 1
              trace ("=============detection de 3651=========") 
               SAUT DTMF_3651
          SINON
               b_DTMF_660004593 = 0
               indice_660004593 = -1
          FINSI
      FINSI
FINSI                        
#trace("=====1=========")
SI (indice_660004593 != -1)
ALORS
     POINT DEB_BOUCLE3
     indice_660004593 = indice_660004593 + 1
     SI (indice_660004593 < longueur_660004593)
     ALORS
          i_get_sub_str(pt_DEDENUM_660004593,indice_660004593,indice_660004593,pt_BUF2_660004593)
          SI (i_strcmp(pt_BUF2_660004593,"*")==0 || i_strcmp(pt_BUF2_660004593,"#") == 0 || i_strcmp(pt_BUF2_660004593,"\243") == 0)
          ALORS
                indice_660004593 = indice_660004593 + 1
                b_DTMF_660004593 = 1
                i_get_sub_str(pt_DEDENUM_660004593,indice_660004593,indice_660004593,pt_BUF2_660004593)
                SI (i_strcmp(pt_BUF2_660004593,"*")==0 || i_strcmp(pt_BUF2_660004593,"#") == 0 || i_strcmp(pt_BUF2_660004593,"\243") == 0)  
                ALORS
                     indice_660004593 = indice_660004593 + 1
                     b_DTMF_660004593 = 1
                FINSI   
                SAUT FIN_BOUCLE3
          SINON
               SAUT DEB_BOUCLE3
          FINSI
     FINSI          
FINSI

POINT FIN_BOUCLE3
i_get_sub_str(pt_DEDENUM_660004593,0,indice_660004593 - 1,pt_DTMF_660004593)
trace2("---------pt_DTMMF=%s--------",pt_DTMF_660004593,"")

POINT DTMF_3651
SI (i_strcmp("3651", pt_DebChamp3_660004593)== 0)
ALORS
     i_strcpy(pt_DTMF_660004593,pt_DebChamp3_660004593)
FINSI
trace("========FIN==========")
trace2("-------------pt_DTMF=%s--------",pt_DTMF_660004593,"")

#G1R6 lot3 fin pk=========================================


#################### DEDENUM normalise
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::NumDde, pt_DEDENUM_660004593)
#QC857
i_replace_str(pt_DEDENUM_660004593,"*#AJSC\243","BCBCDEC",pt_DEDENUM_660004593)
longueur_660004593 = i_strlen(pt_DEDENUM_660004593)

index_660004593 = -1

erreur_660004593 = i_dup_art_id(g_iartout10,g_iartout3)
POINT FORMAT_DEDE
SI (index_660004593 < longueur_660004593)
ALORS
	index_660004593 = index_660004593 + 1
	i_get_sub_str(pt_DEDENUM_660004593, index_660004593, index_660004593, pt_1_660004593)
	SI ( CONV_ASCIINUMHEX_INT_660004265(pt_1_660004593) != -1 )
	ALORS
		g_iartout10.idpart[index_660004593] = CONV_ASCIINUMHEX_INT_660004265(pt_1_660004593)
		SAUT FORMAT_DEDE
	SINON
# FO 445 : stockage en errone si caractere special dans DEMANDE (sauf caractere ESPACE vu comme une fin de chaine)
		SI i_strcmp(pt_1_660004593, " ") != 0
		ALORS
			i_strcpy(pt_1_660004593," NumDde (presence d'un caractere non hexadecimal)")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
		SAUT FIN_FORMAT_DEDE
	FINSI
FINSI
POINT FIN_FORMAT_DEDE
erreur_660004593 = i_resize_tlv(g_iartout10, "T2_Idpart", "idpart", (index_660004593*4))
erreur_660004593 = i_get_art_str(g_iartout10,$Conv_URS::idpart,pt_BUF2_660004593)
trace2("-------------pt_BUF=%s-----------",pt_BUF2_660004593,"")

#G1R6 lot3 debut=======================================
longueur_660004593 = RECHERCHE_CARACTERE_660004265 (pt_DEDENUM_660004593, " ")
SI (longueur_660004593 < 0)
ALORS
   longueur_660004593 = longueur_660004593 * -1
FINSI
trace1("---------longueur = %d--------",longueur_660004593)
erreur_660004593 = i_dup_chp_1val(g_iartout10,g_iartout3,$Conv_URS::idpart,$Conv_URS::idpart)

#erreur=i_fdump_art(g_iartout3)
#--
SI (b_DTMF_660004593 == 1)
ALORS
    longueur2_660004593 =i_strlen(pt_DTMF_660004593)
#trace1("---------longueur2 = %d--------",longueur2)
    indice_660004593 = -1
    POINT SUPP_DTMF
    indice_660004593 = indice_660004593 + 1 
    SI (indice_660004593 < longueur2_660004593)
    ALORS
        erreur_660004593 = i_set_art_fieldtab(g_iartout3,$Conv_URS::idpart,0,0x0f)  
        erreur_660004593 = i_skip_f_in_field_n(g_iartout3,$Conv_URS::idpart) 

        SAUT SUPP_DTMF
    FINSI 
FINSI
#-- 
#erreur=i_fdump_art(g_iartout3)
erreur_660004593 = i_resize_tlv(g_iartout3, "T2_Idpart", "idpart", ((longueur_660004593 - longueur2_660004593)*4))

#erreur=i_fdump_art(g_iartout3)


#G1R6 lot3 fin=========================================
#################### IDUSNUM normalise
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::NumDdr, pt_IDUSNUM_660004593)
i_replace_str(pt_IDUSNUM_660004593,"AJSC","BCDE",pt_IDUSNUM_660004593)
longueur_660004593 = i_strlen(pt_IDUSNUM_660004593)

index_660004593 = -1

POINT FORMAT_IDUS
SI (index_660004593 < longueur_660004593)
ALORS
	index_660004593 = index_660004593 + 1
	i_get_sub_str(pt_IDUSNUM_660004593, index_660004593, index_660004593, pt_1_660004593)
	SI ( CONV_ASCIINUMHEX_INT_660004265(pt_1_660004593) != -1 )
	ALORS
		g_iartout10.MSISDN[index_660004593] = CONV_ASCIINUMHEX_INT_660004265(pt_1_660004593)
		SAUT FORMAT_IDUS
	SINON
		SAUT FIN_FORMAT_IDUS
	FINSI
FINSI
POINT FIN_FORMAT_IDUS
erreur_660004593 = i_resize_tlv(g_iartout10, "T2_MSISDN", "MSISDN", (index_660004593*4))


erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::MntDC, pt_1_660004593)

#debut G3R0CwME puis G1R8
NetMobile_660004593 = 0
b_FFMv3_660004593 = 0

i_strcpy(pt_valeur_660004593,i_get_tab_field("VariableContexte", date_plat_660004593, pt_CodOff_660004593))

#G1R8 SI (i_strcmp(pt_valeur,g_inull) != 0)
SI (i_strcmp(pt_valeur_660004593,C_str_NetMobile_660004593) == 0)
ALORS
	NetMobile_660004593 = 1
SINON
	SI (i_strcmp(pt_valeur_660004593,C_str_FFMv3_660004593) == 0)
	ALORS
		b_FFMv3_660004593 = 1
	FINSI
FINSI
#Fin G3R0CwME puis G1R8

#################### nbcs
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::NbCS, pt_1_660004593)
nbcs_660004593 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004593)


##############################################################################
# Cpt applicatif CPT_RDT=1509 (REDISTRIBUTION)
##############################################################################
# FE_0028 comptabilisation des CRAs issus de la redistribution
date_fin_660004593=i_get_art_field(g_iartin,$TtpecsV2::dfin)
erreur_660004593= i_incr_redist_dist_660004265(date_fin_660004593)



##############################################################################
#  Boucle de generation des DC DPV_CS[i]
#  Rq : on n'a pas besoin de test sur Nb_DPV_CS car 
#       quand on a CREER_DPV_CS[i] vrai alors on incremente Nb_DPV_CS
# 
##############################################################################

index_DPV_CS_660004593 = -1

#
# Test CREER_DPV_CS[i]
# 
POINT BOUCLE_Creation_DPV_CS
index_DPV_CS_660004593 = index_DPV_CS_660004593 + 1

SI (index_DPV_CS_660004593 < 9)
ALORS
# On verifie en premier que le CS est present
	i_strcpy(pt_1_660004593, " ")
	erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1 + 4*index_DPV_CS_660004593, pt_1_660004593)
	i_get_sub_str(pt_1_660004593, 0, 2, pt_1_660004593)
	longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_1_660004593, ESPACE_660004593)
	SI longueur_660004593 == 0
	ALORS
		SAUT BOUCLE_Creation_DPV_CS
	FINSI


	i_strcpy(pt_1_660004593, " ")
	erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1 + 4*index_DPV_CS_660004593, pt_1_660004593)	
	
	i_strcpy(pt_1_660004593, " ")
	erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::MntCS1+ 4*index_DPV_CS_660004593, pt_1_660004593)
	SI ( i_strcmp(pt_1_660004593, MontantNul_660004593) != 0 )
	ALORS
# On incremente MONTANT qui servira pour la mise au format du DPV DC Final
# Comme le processing travaille en entier court signe, on est oblige d ignorer les premiers digits 
# (a priori non significatifs) de MntCS[i]
		erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::MntCS1+ 4*index_DPV_CS_660004593, pt_1_660004593)
		i_get_sub_str(pt_1_660004593, -9, -1, pt_1_660004593)
		MntCS_660004593 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004593)
		MONTANT_660004593 = MONTANT_660004593 + MntCS_660004593
	FINSI
	
		SAUT Generation_DPV_CS
	SAUT BOUCLE_Creation_DPV_CS

FINSI

SAUT Fin_Generation_DPV_CS

#
# Generation DPV_CS[i]
# 
POINT Generation_DPV_CS


SI (i_dup_art_tab( g_iartin, g_iartout, C_Tdpv_660004593))
ALORS
	#trace("[TtpecsV2_dis] ERREUR de duplication")
	code_errone_660004593 = 0xA0D0
	code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
	erreur_660004593 = i_PlvMessEmettre(6550,2,g_iartin,"",2,code_errone_660004593,C_Article_660004593,0)
	SAUT DISTRI_ERR
FINSI


#################### V3t1.1 type :-	:-	:MSET :0E
i_strcpy(pt_1_660004593, " ")
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1 + 4*index_DPV_CS_660004593, pt_1_660004593)
i_get_sub_str(pt_1_660004593, 0, 2, pt_1_660004593)
longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_1_660004593, ESPACE_660004593)
SI longueur_660004593 >= 0
ALORS
	i_get_sub_str(pt_1_660004593, 0, longueur_660004593-1, pt_1_660004593)
FINSI

i_strcpy(pt_2_660004593, " ")
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1 + 4*index_DPV_CS_660004593, pt_2_660004593)
i_get_sub_str(pt_2_660004593, 0, 1, pt_2_660004593)
longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_2_660004593, ESPACE_660004593)
SI longueur_660004593 > 0
ALORS
	i_get_sub_str(pt_2_660004593, 0, longueur_660004593-1, pt_2_660004593)
FINSI

#erreur = i_format_str2(pt_CodCS_CodOP,"%s_%s",pt_1,pt_2)

#debut G3R0CwME
SI (NetMobile_660004593 == 1)
ALORS 
     erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"NM_%s_%s",pt_1_660004593,pt_2_660004593)
SINON
	#G1R8 avec condition FFMv3
	SI (b_FFMv3_660004593 == 1)
	ALORS 
		erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"FFM3_%s_%s",pt_1_660004593,pt_2_660004593)
	SINON
		erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"%s_%s",pt_1_660004593,pt_2_660004593)
	FINSI
FINSI
#Fin G3R0CwME

i_strcpy(pt_TypeAppel_TelSvc_660004593,i_get_tab_field(Liste_TPE_660004593,date_plat_660004593,pt_CodCS_CodOP_660004593))

i_get_sub_str(pt_TypeAppel_TelSvc_660004593, 0, 1, pt_TypeAppel_660004593)

TypeAppel_660004593 = CONV_ASCIINUMHEX_INT_660004265(pt_TypeAppel_660004593)
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::type, TypeAppel_660004593)

#################### V3t1.2 tentite :-	:-	:MSET:16

#################### V3t1.3 idemet :-	:-	:MSET :FF
i_strcpy(pt_idemet_660004593, " ")
i_strcpy(pt_idemet_660004593, i_get_tab_field("VariableContexte", ICAR_ABS_660004593, "AX_IDEMET_TPE"))
trace2("[TtpecsV2_dis] AX_IDEMET =%s",pt_idemet_660004593,"")

# AX_IDEMET resultat fonction recherchevaleurcleftable T3t1/V3t1.3
SI (i_strcmp(pt_idemet_660004593,g_inull)) != 0
ALORS
	#trace2("[TtpecsV2_dis] AX_IDEMET != 0 =%s",pt_idemet,"")
	longueur_660004593= 0
	longueur_660004593=i_strlen(pt_idemet_660004593)
	erreur_660004593 = i_set_art_str(g_iartout10,$Conv_URS::RepTab, pt_idemet_660004593)
	#erreur = i_get_art_str(g_iartout10,$Conv_URS::RepTab, pt_1)
	#trace2("[TtpecsV2_dis] *****RepTab***=%s",pt_1,"")
	index_660004593=0
	POINT BOUCLE_7
	SI (index_660004593 < longueur_660004593)
	ALORS
		g_iartout10.ax_idemet[index_660004593]=g_iartout10.RepTab[index_660004593] - 0x30
		SI (g_iartout10.RepTab[index_660004593] > 0x40)
		ALORS
			g_iartout10.ax_idemet[index_660004593]=g_iartout10.RepTab[index_660004593] - 0x37
		FINSI
		#trace1("[TtpecsV2_dis] index=%d",index)
		#trace1("[TtpecsV2_dis] g_iartout10.ax_idemet=%x",g_iartout10.RepTab[index] - 0x30)
		index_660004593=index_660004593+1
		SAUT BOUCLE_7
	FINSI
	erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::ax_idemet, $Tdpvgsm::idemet)
SINON
	#pt_idemet : "33037000000FFFFFFF"
	#longueur = g_iartout.idemet!NELEM
	g_iartout.idemet[0]= 0x3
	g_iartout.idemet[1]= 0x3
	g_iartout.idemet[2]= 0x0
	g_iartout.idemet[3]= 0x3
	g_iartout.idemet[4]= 0x7
	index_660004593 = 5
	POINT BOUCLE_8
	SI index_660004593 < 11
	ALORS
		g_iartout.idemet[index_660004593]= 0x0
		index_660004593 = index_660004593 + 1
		SAUT BOUCLE_8
	FINSI
FINSI


#################### V3t1.4 IMSI :-	:-	:MSET :44
SI (NetMobile_660004593 == 1)
ALORS
	erreur_660004593 = i_memset_field_n(g_iartout,$Tdpvgsm::IMSI,0x99)
FINSI	
g_iartout.IMSI[15]=0xF

#################### V3t1.5 DATE :-	:-	:1VAL :DATE

#################### V3t1.6 DUREE :-	:-	:MSET :00
# FO 462
SI ( (i_strplcmp(pt_TypeAppel_TelSvc_660004593,"AF_7",0,4)==0) || (i_strplcmp(pt_TypeAppel_TelSvc_660004593, "48_7",0,4)==0) )
ALORS
	erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,0x01)
SINON
	SI (( TypeAppel_660004593 == 0x0E ) || ( TypeAppel_660004593 == 0x0F ) || ( TypeAppel_660004593 == 0xA0 ) || ( TypeAppel_660004593 == 0xAE ) || ( TypeAppel_660004593 == 0x47 ) || ( TypeAppel_660004593 == 0xA7))
	ALORS
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,duree_660004593)
	SINON
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,0x01)
	FINSI
FINSI

#################### V3t1.7 svcsup :-	:-	:MSET :FF

#################### V3t1.8 tlserv :-	:-	:MSET :90
i_get_sub_str(pt_TypeAppel_TelSvc_660004593, -2, -1, pt_TelSvc_660004593)
TelSvc_660004593 = CONV_ASCIINUMHEX_INT_660004265(pt_TelSvc_660004593)
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::tlserv, TelSvc_660004593)

#################### V3t1.9 support1 :-	:-	:MSET :FF

#################### T3t1.10 systype :-	:-	:MSET :02

#################### T3t1.11 reserve2 :- :-	:MSET :FF

#################### T3t1.12 origine :-	:-	:MSET :FF

#################### T3t1.13 indeff :-	:-	:MSET :00

#################### T3t1.14 tterm :-	:-	:MSET :FF

#################### T3t1.15 indtax :-	:-	:MSET :FF

#################### T3t1.16 nbUT :-	:-	:MSET :FF
SI ( TYPE_QUANTITE_660004593 == 2 )
ALORS
	QUANTITE_660004593 = ((g_iartin.QteUT[0] - 0x30) * 100000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[1] - 0x30) * 10000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[2] - 0x30) * 1000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[3] - 0x30) * 100)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[4] - 0x30) * 10)
	QUANTITE_660004593 = QUANTITE_660004593 + (g_iartin.QteUT[5] - 0x30) 	
	erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::nbUT, QUANTITE_660004593)
FINSI

#################### T3t1.17 chgcar :-	:-	:MSET :FF

#################### T3t1.18 couleur :-	:-	:MSET :03

#################### V3t2 idpart :-	:-	:MSET :FF
#G3R6 lot3 pk debut----------------
SI  ( b_DTMF_660004593 == 1 && ( (TypeAppel_660004593 == 0xA7) || (TypeAppel_660004593 == 0xAE) || (TypeAppel_660004593 == 0x0E) || (TypeAppel_660004593 == 0x47) ) )
ALORS
	#trace1("--------DTMF----idpart dans DPV CS TypeAppel=%x------------",TypeAppel) 
	erreur_660004593 = i_get_art_str(g_iartout3,$Conv_URS::idpart,pt_1_660004593)
	
	SI i_strlen(pt_1_660004593) > 6
	ALORS
		erreur_660004593 = i_dup_chp_rnisGSM(g_iartout3, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:TPE_idpart,0)
		SI ( erreur_660004593 != 0)
		ALORS
			i_strcpy(pt_1_660004593," CS_idpart_1 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
	SINON

		# QC115
		b_CarSpec_660004593 = -1
		b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "C")
		SI (b_CarSpec_660004593 !=0)
		ALORS
			b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "B")
		FINSI
		SI (b_CarSpec_660004593 != 0)
		ALORS
			erreur_660004593= i_format_str2(pt_2_660004593,"%s%s","33",pt_1_660004593)
			longueur_660004593 = i_conv_ascii_dcb(pt_2_660004593, pt_1_660004593)
			erreur_660004593 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::idpart,pt_1_660004593, longueur_660004593)
			erreur_660004593 = i_resize_tlv( g_iartout, "T3t2", "idpart", longueur_660004593 * 8 )
		SINON
			i_strcpy(pt_1_660004593," CS_idpart_2 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
		#\QC115

	FINSI
SINON
#G3R6 lot3 pk fin---------------
	erreur_660004593 = i_get_art_str(g_iartout10,$Conv_URS::idpart,pt_1_660004593)
	
	#FO 360 DRE
	#FO 346 DRE
	SI i_strlen(pt_1_660004593) > 6
	ALORS
		erreur_660004593 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:TPE_idpart,0)
		#Correction V2
		SI ( erreur_660004593 != 0)
		ALORS
			i_strcpy(pt_1_660004593," CS_idpart_3 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
	SINON
	
			# QC115
			b_CarSpec_660004593 = -1
			b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "C")
			SI (b_CarSpec_660004593 !=0)
			ALORS
				b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "B")
			FINSI
			SI (b_CarSpec_660004593 != 0)
			ALORS
				erreur_660004593= i_format_str2(pt_2_660004593,"%s%s","33",pt_1_660004593)
				longueur_660004593 = i_conv_ascii_dcb(pt_2_660004593, pt_1_660004593)
				erreur_660004593 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::idpart,pt_1_660004593, longueur_660004593)
				erreur_660004593 = i_resize_tlv( g_iartout, "T3t2", "idpart", longueur_660004593 * 8 )
			SINON
				i_strcpy(pt_1_660004593," CS_idpart_4 ")
				code_errone_660004593 = 0xA010
				code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
				erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
				SAUT DISTRI_ERR
			FINSI
			#\QC115
	
	FINSI
FINSI

#################### V3t4 MSISDN :-	:-	:MSET :FF
erreur_660004593 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::MSISDN, $Tdpvgsm::MSISDN,-$NORM:TPE_MSISDN,0)
SI ( erreur_660004593 != 0)
ALORS
	i_strcpy(pt_1_660004593," CS_MSISDN ")
	code_errone_660004593 = 0xA010
	code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
	erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
	SAUT DISTRI_ERR
FINSI

#################### V3t16 TrSortant		:-	:-	:MSET :00
#FO 380
#erreur = i_resize_tlv(g_iartout, "T3t16", "TrSortant", 3)
#erreur = i_get_art_str(g_iartin, $TtpecsV2::CodOpeF, pt_1)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeT, pt_1_660004593)
#longueur = i_strlen(pt_1)

longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_1_660004593, ESPACE_660004593)
SI longueur_660004593 < 0
ALORS 
	longueur_660004593 = longueur_660004593 * -1
FINSI

erreur_660004593 = i_set_art_str(g_iartout10,$Conv_URS::GKname, pt_1_660004593) 
erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::GKnameH, $Tdpvgsm::TrSortant)
erreur_660004593 = i_resize_tlv(g_iartout, "T3t16", "TrSortant", longueur_660004593)


#################### T3t30
#################### T4t30.1 timeInCE :1VAL :DATE
#################### date_plat
trace1("[Ttpecs_dis] ======== date_plat = 0x%x ========",date_plat_660004593)
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::timeInCE,date_plat_660004593)

#################### T4t30.2 eec :MSET :00:1
# QC1405
SI (g_ieec > 500)
ALORS
  erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec - 500)
SINON
  erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec)
FINSI
#/QC1405

#################### V3t35.1 duration (absent du fichier de duplication)
# G1R5 TT45/TT32 : modif du 24/10/07
SI (TYPE_QUANTITE_660004593 == 1)
ALORS
	erreur_660004593 = i_ajoutChamp(g_iartout, "T4t35.1","duration",0)
	#G1R8 SI (NetMobile == 1)
	SI ( (NetMobile_660004593 == 1) || (b_FFMv3_660004593 == 1) )
	ALORS
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::duration, quantite_facturee_660004593)
	SINON
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::duration, duree_660004593)
	FINSI
FINSI

#################### V4t39.6 Amount :-	:-	:MSET :FF
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::MntCS1+ 4*index_DPV_CS_660004593, pt_1_660004593)
i_get_sub_str(pt_1_660004593, -9, -1, pt_1_660004593)
MntCS_660004593 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004593)/10
erreur_660004593 = i_set_art_field(g_iartout10, $Conv_URS::Amount,MntCS_660004593)
erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::AmountH, $Tdpvgsm::Amount)

#################### V4t41.5 serviceID (absent du fichier de duplication)

#G1R5 debut pk Concatenation de CodCS[i] et CodOpeCS1[i] sans separateur
erreur_660004593 = i_ajoutChamp(g_iartout, "T4t41.5","serviceID",0)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1+ 4*index_DPV_CS_660004593, pt_1_660004593)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1+ 4*index_DPV_CS_660004593, pt_2_660004593)
erreur_660004593 = i_format_str2(pt_service_660004593,"%s%s",pt_1_660004593,pt_2_660004593)
lg_service_660004593=i_strlen(pt_service_660004593)

#i_get_sub_str(pt_1, 0, longueur_CodCS - 1, pt_1)
#erreur = i_resize_tlv(g_iartout, "T4t41.5", "serviceID", longueur_CodCS)
erreur_660004593 = i_resize_tlv(g_iartout, "T4t41.5", "serviceID",lg_service_660004593)
erreur_660004593 = i_set_art_str(g_iartout, $Tdpvgsm::serviceID, pt_service_660004593)

#################### V4t45.2 kitProviderID		:-	:-	:1VAL :CodOff

########################################################################################
# Appel fonction distribution (aiguillage2) pour le(s) DPV_CS[i], BOUCLE_Creation_DPV_CS
########################################################################################
# trace("[TtpecsV2_dis] envoi a l aiguillage")
# QC566
# On marque dans l'enveloppe (champ DCdistribue) le numero du dpv cree selon l'ordre de creation
# du 1er dpv CS cree jusqu'au dpv FINAL. Cette information, grace a l'enveloppe, suivra le g_iartin
# dans la fonction aiguillage2 puis dans le module redistribution si il y a lieu.
# Au retour de redistribution, seul le dpv ayant provoque la redistribution sera traite par aiguillage2

SI ( i_LireRedistCpt() == 0 || i_get_attr_val_n($E_RedisTPE::DCdistribue) == numDC_660004593 )
ALORS
	erreur_660004593 = i_set_attr_val_n($E_RedisTPE::DCdistribue, numDC_660004593)
	SI (incrementation1502_660004593 == 0)
	ALORS
		erreur_660004593 = aiguillage2_660004590(g_iartin, g_iartout, DISTRIBUTION_INCONNU_660004593, Multidistribution_Non_660004593)
		incrementation1502_660004593 = 1
	SINON
		erreur_660004593 = aiguillage2_660004590(g_iartin, g_iartout, DISTRIBUTION_INCONNU_660004593, Multidistribution_Oui_660004593)
	FINSI
	
	SI (erreur_660004593 == TRAI_KO_660004593)
	ALORS
#		QC1005
		trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
#		code_errone = 0xA0B0
#		code_errone = code_errone + EFFICACE
#		erreur = i_PlvMessEmettre(7500,2,g_iartin,"",3,code_errone,C_Article, TypeAppel)
		SAUT DISTRI_ERR
	FINSI
	
	SI (erreur_660004593 == TRAI_OK_660004593)
	ALORS
		erreur_660004593 = i_set_attr_val_n($E_RedisTPE::DCdistribue, 0)
	FINSI
	
FINSI

numDC_660004593 = numDC_660004593 + 1
#/QC566

SAUT BOUCLE_Creation_DPV_CS

POINT Fin_Generation_DPV_CS


##############################################################################
#  Generation du DPV DC Final
##############################################################################

##############################################################################
# Duplication Tdpv33 (g_iartout)
##############################################################################
#Duplication article d entree vers DPV TLV

SI (i_dup_art_tab( g_iartin, g_iartout, C_Tdpv_660004593))
	ALORS
	#trace("[TtpecsV2_dis] ERREUR de duplication")
	code_errone_660004593 = 0xA0D0
	code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
	erreur_660004593 = i_PlvMessEmettre(6550,2,g_iartin,"",2,code_errone_660004593,C_Article_660004593,0)
	SAUT DISTRI_ERR
FINSI

#################### V3t1.1 type :-	:-	:MSET :0E
X_660004593=0x0F
#nbcs = i_get_art_field(g_iartin, $TtpecsV2::NbCS)

#trace1("[TtpecsV2_trt] NbCS=%d",nbcs)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1, pt_GASCII_660004593)
i_get_sub_str(pt_GASCII_660004593, 0, 2, pt_GASCII_660004593)
index_660004593 = -1
POINT BOUCLE_1
index_660004593 = index_660004593 + 1
SI index_660004593 < 9
ALORS
	i_strcpy(pt_1_660004593, " ")
	erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCS1 + 4*index_660004593, pt_1_660004593)
	i_get_sub_str(pt_1_660004593, 0, 2, pt_1_660004593)
	
	i_strcpy(pt_2_660004593, " ")
	erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeCS1 + 4*index_660004593, pt_2_660004593)
	i_get_sub_str(pt_2_660004593, 0, 1, pt_2_660004593)
	
# Gestion de pt_GASCII qui servira pour la mise au format du DPV DC Final
# On l initalise avec les parametres du CS[1] puis on concatene sans condition avec les autres CS[i]
	SI ( index_660004593 > 0 )
	ALORS
		erreur_660004593 = i_format_str2(pt_GASCII_660004593,"%s%s",pt_GASCII_660004593,pt_1_660004593)
	FINSI
	erreur_660004593 = i_format_str2(pt_GASCII_660004593,"%s%s",pt_GASCII_660004593,pt_2_660004593)
	
# Debut G1R4 : FO 539	
	longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_1_660004593, ESPACE_660004593)
	SI longueur_660004593 == 0
	ALORS
		SAUT BOUCLE_1
	SINON
		SI longueur_660004593 > 0
		ALORS
			i_get_sub_str(pt_1_660004593, 0, longueur_660004593-1, pt_1_660004593)
		FINSI
	FINSI
	

	longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_2_660004593, ESPACE_660004593)
	SI longueur_660004593 == 0
	ALORS
		SAUT BOUCLE_1
	SINON
		SI longueur_660004593 > 0
		ALORS
			i_get_sub_str(pt_2_660004593, 0, longueur_660004593-1, pt_2_660004593)
		FINSI
	FINSI


	#G1R8
	SI (NetMobile_660004593 == 1)
	ALORS
		erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"NM_%s_%s",pt_1_660004593,pt_2_660004593)
	SINON
		SI (b_FFMv3_660004593 == 1)
		ALORS
			erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"FFM3_%s_%s",pt_1_660004593,pt_2_660004593)
		SINON
			#deja comme ceci en G1R7
			erreur_660004593 = i_format_str2(pt_CodCS_CodOP_660004593,"%s_%s",pt_1_660004593,pt_2_660004593)
		FINSI
	FINSI
	
	i_strcpy(pt_TypeAppel_TelSvc_660004593,i_get_tab_field(Liste_TPE_660004593,date_plat_660004593,pt_CodCS_CodOP_660004593))
	i_get_sub_str(pt_TypeAppel_TelSvc_660004593, 0, 1, pt_TypeAppel_660004593)
	
	SI ( (NetMobile_660004593 == 1) ||(b_FFMv3_660004593 == 1) )
	ALORS
		SI (i_strcmp(pt_TypeAppel_660004593,"AE") == 0)
		ALORS
			flag_660004593 = 1
		FINSI
	SINON
		SI (i_strcmp(pt_TypeAppel_660004593,"0E") == 0)
		ALORS
			flag_660004593 = 1
		FINSI
	FINSI
	
	SAUT BOUCLE_1
FINSI


#G1R8 SI (NetMobile == 1)
SI ( (NetMobile_660004593 == 1) || (b_FFMv3_660004593 == 1) )
ALORS
	SI (nbcs_660004593 != 0) && (flag_660004593 == 1)
	ALORS
		X_660004593=0xAE
	SINON
		X_660004593=0xA0
	FINSI
SINON
	SI (nbcs_660004593 != 0) && (flag_660004593 == 1)	
	ALORS
		X_660004593=0x0E
	SINON
		X_660004593=0x0F
	FINSI
FINSI

	
# Fin G1R4 : FO 539
erreur_660004593 = i_set_art_field(g_iartout,$Tdpvgsm::type,X_660004593)

#################### V3t1.2 tentite :-	:-	:MSET:16

#################### V3t1.3 idemet :-	:-	:MSET :FF
i_strcpy(pt_idemet_660004593, " ")
i_strcpy(pt_idemet_660004593, i_get_tab_field("VariableContexte", ICAR_ABS_660004593, "AX_IDEMET_TPE"))
trace2("[TtpecsV2_dis] AX_IDEMET =%s",pt_idemet_660004593,"")

# AX_IDEMET resultat fonction recherchevaleurcleftable T3t1/V3t1.3
SI (i_strcmp(pt_idemet_660004593,g_inull)) != 0
	ALORS
	#trace2("[TtpecsV2_dis] AX_IDEMET != 0 =%s",pt_idemet,"")
	longueur_660004593= 0
	longueur_660004593=i_strlen(pt_idemet_660004593)
	erreur_660004593 = i_set_art_str(g_iartout10,$Conv_URS::RepTab, pt_idemet_660004593)
	#trace2("[TtpecsV2_dis] *****RepTab***=%s",pt_1,"")
	index_660004593=0
	POINT BOUCLE_2
	SI (index_660004593 < longueur_660004593)
		ALORS
		g_iartout10.ax_idemet[index_660004593]=g_iartout10.RepTab[index_660004593] - 0x30
		SI (g_iartout10.RepTab[index_660004593] > 0x40)
			ALORS
			g_iartout10.ax_idemet[index_660004593]=g_iartout10.RepTab[index_660004593] - 0x37
		FINSI
		#trace1("[TtpecsV2_dis] index=%d",index)
		#trace1("[TtpecsV2_dis] g_iartout10.ax_idemet=%x",g_iartout10.RepTab[index] - 0x30)
		index_660004593=index_660004593+1
		SAUT BOUCLE_2
	FINSI
	erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::ax_idemet, $Tdpvgsm::idemet)
	SINON
	#pt_idemet : "33037000000FFFFFFF"
	#longueur = g_iartout.idemet!NELEM
	g_iartout.idemet[0]= 0x3
	g_iartout.idemet[1]= 0x3
	g_iartout.idemet[2]= 0x0
	g_iartout.idemet[3]= 0x3
	g_iartout.idemet[4]= 0x7
	index_660004593 = 5
	POINT BOUCLE_3
	SI index_660004593 < 11
		ALORS
		g_iartout.idemet[index_660004593]= 0x0
		index_660004593 = index_660004593 + 1
		SAUT BOUCLE_3
	FINSI
FINSI

#################### V3t1.4 IMSI :-	:-	:MSET :44
#g_iartout.IMSI[15]=0xF
SI (NetMobile_660004593==1)
ALORS
	erreur_660004593 = i_memset_field_n(g_iartout,$Tdpvgsm::IMSI,0x99)
FINSI
g_iartout.IMSI[15]=0xF

#################### V3t1.5 DATE :-	:-	:1VAL :DATE

#################### V3t1.6 DUREE :-	:-	:MSET :00
duree_660004593 = i_get_art_field(g_iartin, $TtpecsV2::DUREE)
# FO 462
SI duree_660004593 == 0
ALORS
     duree_660004593 = 1
FINSI
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,duree_660004593)

#################### V3t1.7 svcsup :-	:-	:MSET :FF

#################### V3t1.8 tlserv :-	:-	:MSET :90

#################### V3t1.9 support1 :-	:-	:MSET :FF

#################### T3t1.10 systype :-	:-	:MSET :02

#################### T3t1.11 reserve2 :- :-	:MSET :FF

#################### T3t1.12 origine :-	:-	:MSET :FF

#################### T3t1.13 indeff :-	:-	:MSET :00

#################### T3t1.14 tterm :-	:-	:MSET :FF

#################### T3t1.15 indtax :-	:-	:MSET :FF

#################### T3t1.16 nbUT :-	:-	:MSET :FF
SI ( TYPE_QUANTITE_660004593 == 2 )
ALORS
	QUANTITE_660004593 = ((g_iartin.QteUT[0] - 0x30) * 100000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[1] - 0x30) * 10000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[2] - 0x30) * 1000)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[3] - 0x30) * 100)
	QUANTITE_660004593 = QUANTITE_660004593 + ((g_iartin.QteUT[4] - 0x30) * 10)
	QUANTITE_660004593 = QUANTITE_660004593 + (g_iartin.QteUT[5] - 0x30) 	
	erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::nbUT, QUANTITE_660004593)
FINSI

#################### T3t1.17 chgcar :-	:-	:MSET :FF

#################### T3t1.18 couleur :-	:-	:MSET :03

#################### V3t2 idpart :-	:-	:MSET :FF
#G1R6 lot3 debut pk=============================================
#trace ("---------DPV FINAL---------")
#trace1("----DPV FINAL b_DTMF=%d-----",b_DTMF)
#trace1("-------DPV FINALb TypeAppel=%x------",TypeAppel)
# QC116
SI (b_DTMF_660004593 == 1 && (X_660004593 == 0xA0 || X_660004593 == 0xAE || X_660004593 == 0x0F || X_660004593 == 0x0E))
ALORS   
	#trace1("------DTMF idpar dans DPV FINAL TypAppel = %d-------",TypeAppel) 
	erreur_660004593 = i_get_art_str(g_iartout3,$Conv_URS::idpart,pt_1_660004593)

	SI i_strlen(pt_1_660004593) > 6
	ALORS
		erreur_660004593 = i_dup_chp_rnisGSM(g_iartout3, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:TPE_idpart,0)	
		SI ( erreur_660004593 != 0)
		ALORS
			i_strcpy(pt_1_660004593," F_idpart_1 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
		SAUT DISTRI_ERR
		FINSI
	SINON

		# QC115
		b_CarSpec_660004593 = -1
		b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "C")
		SI (b_CarSpec_660004593 !=0)
		ALORS
			b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "B")
		FINSI
		SI (b_CarSpec_660004593 != 0)
		ALORS
			erreur_660004593= i_format_str2(pt_2_660004593,"%s%s","33",pt_1_660004593)
			longueur_660004593 = i_conv_ascii_dcb(pt_2_660004593, pt_1_660004593)
			erreur_660004593 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::idpart,pt_1_660004593, longueur_660004593)
			erreur_660004593 = i_resize_tlv( g_iartout, "T3t2", "idpart", longueur_660004593 * 8 )
		SINON
			i_strcpy(pt_1_660004593," F_idpart_2 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
		#\QC115

	FINSI
SINON
	trace1("---------Non DTMF----idpar dans DPV FINAL TypAppel = %d-------",TypeAppel_660004593) 
	erreur_660004593 = i_get_art_str(g_iartout10,$Conv_URS::idpart,pt_1_660004593)
	
	SI i_strlen(pt_1_660004593) > 6
	ALORS
		erreur_660004593 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:TPE_idpart,0)
		#Correction V2
		SI ( erreur_660004593 != 0)
		ALORS
			i_strcpy(pt_1_660004593," F_idpart_3 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
	SINON
	
		# QC115
		b_CarSpec_660004593 = -1
		b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "C")
		SI (b_CarSpec_660004593 !=0)
		ALORS
			b_CarSpec_660004593 = i_adequation_chaine_expreg (pt_1_660004593, "B")
		FINSI
		SI (b_CarSpec_660004593 != 0)
		ALORS
			erreur_660004593= i_format_str2(pt_2_660004593,"%s%s","33",pt_1_660004593)
			longueur_660004593 = i_conv_ascii_dcb(pt_2_660004593, pt_1_660004593)
			erreur_660004593 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::idpart,pt_1_660004593, longueur_660004593)
			erreur_660004593 = i_resize_tlv( g_iartout, "T3t2", "idpart", longueur_660004593 * 8 )
		SINON
			i_strcpy(pt_1_660004593," F_idpart_4 ")
			code_errone_660004593 = 0xA010
			code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
			erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
			SAUT DISTRI_ERR
		FINSI
		#\QC115

	FINSI
FINSI

	
#################### V3t4 MSISDN :-	:-	:MSET :FF
erreur_660004593 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::MSISDN, $Tdpvgsm::MSISDN,-$NORM:TPE_MSISDN,0)
SI ( erreur_660004593 != 0)
ALORS
	i_strcpy(pt_1_660004593," F_MSISDN ")
	code_errone_660004593 = 0xA010
	code_errone_660004593 = code_errone_660004593 + EFFICACE_660004593
	erreur_660004593 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004593,C_Article_660004593,pt_1_660004593)
	SAUT DISTRI_ERR
FINSI

#################### V3t16 TrSortant		:-	:-	:MSET :00
#FO 380
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodOpeT, pt_1_660004593)

longueur_660004593 = RECHERCHE_CARACTERE_660004265(pt_1_660004593, ESPACE_660004593)
SI longueur_660004593 < 0
ALORS 
	longueur_660004593 = longueur_660004593 * -1
FINSI

erreur_660004593 = i_set_art_str(g_iartout10,$Conv_URS::GKname, pt_1_660004593) 
erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::GKnameH, $Tdpvgsm::TrSortant)
erreur_660004593 = i_resize_tlv(g_iartout, "T3t16", "TrSortant", longueur_660004593)


# G1R8 QC154, 157
#################### T3t30
#################### T4t30.1 timeInCE :1VAL :DATE
#################### date_plat
trace1("[Ttpecs_dis] ======== date_plat = 0x%x ========",date_plat_660004593)
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::timeInCE,date_plat_660004593)

#################### T4t30.2 eec :MSET :00:1
# QC1405
SI (g_ieec > 500)
ALORS
  erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec - 500)
SINON
  erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec)
FINSI
#/QC1405
#\QC154, 157

#################### V3t35.1 duration (absent du fichier de duplication)
# G1R5 TT45/TT32 : modif du 24/10/07
SI (TYPE_QUANTITE_660004593 == 1)
ALORS
	erreur_660004593 = i_ajoutChamp(g_iartout, "T4t35.1","duration",0)
	#G1R8 SI (NetMobile == 1)
	SI ( (NetMobile_660004593 == 1) || (b_FFMv3_660004593 == 1) )
	ALORS
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::duration, quantite_facturee_660004593)
	SINON
		erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::duration, duree_660004593)
	FINSI
FINSI

#################### V3t35.2 occurenceNb (absent du fichier de duplication)
erreur_660004593 = i_ajoutChamp(g_iartout, "T4t35.2","occurenceNb",0)
erreur_660004593 = i_set_art_field(g_iartout, $Tdpvgsm::occurenceNb,nbcs_660004593)

#################### V3t39.4 balanceAmount (absent du fichier de duplication)
erreur_660004593 = i_ajoutChamp(g_iartout, "T4t39.4","balanceAmount",0)
erreur_660004593 = i_set_art_field(g_iartout10, $Conv_URS::Amount,MONTANT_660004593/10)
g_iartout.balanceAmount[0] = g_iartout10.AmountH[3]
g_iartout.balanceAmount[1] = g_iartout10.AmountH[4]
g_iartout.balanceAmount[2] = g_iartout10.AmountH[5]
# FO 474
erreur_660004593 = i_resize_tlv( g_iartout, "T4t39.4", "balanceAmount", 3)

#################### V4t39.6 Amount :-	:-	:MSET :FF
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::MntDC, pt_1_660004593)
i_get_sub_str(pt_1_660004593, -9, -1, pt_1_660004593)
MntCS_660004593 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004593)/10
erreur_660004593 = i_set_art_field(g_iartout10, $Conv_URS::Amount,MntCS_660004593)
erreur_660004593 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::AmountH, $Tdpvgsm::Amount)

#################### V4t44.2 transactionType (absent du fichier de duplication)
# FO 444 : Code Classe Relation peut etre alphanumerique
# exemple: transformer "CA" en 4341 (ne prendre que les 2 premiers caracteres)
erreur_660004593 = i_ajoutChamp(g_iartout, "T4t44.2","transactionType",0)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodCls, pt_1_660004593)
i_get_sub_str( pt_1_660004593,0,1,pt_2_660004593)
longueur_660004593 = i_strlen(pt_2_660004593)
erreur_660004593 = i_resize_tlv( g_iartout10, "T2idpart2", "idpartASCII", longueur_660004593)
erreur_660004593 = i_set_art_str(g_iartout10,$Conv_URS::idpartASCII, pt_2_660004593)
erreur_660004593 = i_dup_chp_tab(g_iartout10, g_iartout, $Conv_URS::idpartDCB, $Tdpvgsm::transactionType,0)

#################### V4t45.2 kitProviderID		:-	:-	:1VAL :CodOff
#G5R1
#G5R2 lot1
#SI (bancien == 1)
#ALORS
#	erreur = i_set_art_str(g_iartout, $Tdpvgsm::kitProviderID, pt_CodOff)
#FINSI	

#################### V4t47.2 serviceClass		:-	:-	:1VAL :CodOff
erreur_660004593 = i_ajoutChamp(g_iartout, "T4t47.2","serviceClass",0)
erreur_660004593 = i_get_art_str(g_iartin, $TtpecsV2::CodDest, pt_1_660004593)
erreur_660004593 = i_set_art_str(g_iartout, $Tdpvgsm::serviceClass, pt_1_660004593)

###########################V3t56 Gvalue:-	:-	:MSET :FF
g_iartout.GValue[3]=0xF

#################### V3t58 GASCII	(absent du fichier de duplication)
erreur_660004593 = i_ajoutChamp(g_iartout, "T3t58","GASCII",0)
erreur_660004593 = i_set_art_str(g_iartout,$Tdpvgsm::GASCII, pt_GASCII_660004593)
longueur_660004593 = i_strlen(pt_GASCII_660004593)
erreur_660004593 = i_resize_tlv( g_iartout, "T3t58", "GASCII", longueur_660004593)

#G5R1
#G5R2 lot1
#SI (bancien == 0)
#	ALORS
	#################### V3t72 TypeEditeurSVA	(absent du fichier de duplication)
	# erreur = i_get_art_str(g_iartin, $TtpecsV2::TypEdit, pt_TypEdit)
	SI (i_strplcmp(pt_TypEdit_660004593, " ", 0, 1) != 0)
	ALORS
		erreur_660004593 = i_ajoutChamp(g_iartout, "T3t72","TypeEditeurSVA",0)
		erreur_660004593 = i_set_art_str(g_iartout,$Tdpvgsm::TypeEditeurSVA, pt_TypEdit_660004593)
	FINSI
	
	#################### V3t73 CodeTarifSVA	(absent du fichier de duplication)
	# erreur = i_get_art_str(g_iartin, $TtpecsV2::CTarifSVA, pt_CTarifSVA)
	SI (i_strplcmp(pt_CTarifSVA_660004593, "    ", 0, 4) != 0)
	ALORS
		erreur_660004593 = i_ajoutChamp(g_iartout, "T3t73","CodeTarifSVA",0)
		erreur_660004593 = i_set_art_str(g_iartout,$Tdpvgsm::CodeTarifSVA, pt_CTarifSVA_660004593)
	FINSI
#FINSI

##############################################################################
# Cpt applicatifs distribution
##############################################################################
# realise dans la fonction aiguillage

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

##############################################################################
# Envoi vers IECC
##############################################################################
#erreur = i_fdump_art(g_iartout)

##############################################################################
# Appel fonction distribution (aiguillage2) pour le dpv FINAL
##############################################################################
# trace("[TtpecsV2_dis] envoi a l aiguillage")
# QC566
# Tdpvgsm final, un seul passage, numDC est deja incremente
SI ( i_LireRedistCpt() == 0 || i_get_attr_val_n($E_RedisTPE::DCdistribue)  == numDC_660004593 )
ALORS
	erreur_660004593 = i_set_attr_val_n($E_RedisTPE::DCdistribue, numDC_660004593)
	SI (incrementation1502_660004593 == 0)
	ALORS
		erreur_660004593 = aiguillage2_660004590(g_iartin, g_iartout, DISTRIBUTION_INCONNU_660004593, Multidistribution_Non_660004593)
		incrementation1502_660004593 = 1
	SINON
		erreur_660004593 = aiguillage2_660004590(g_iartin, g_iartout, DISTRIBUTION_INCONNU_660004593, Multidistribution_Oui_660004593)
	FINSI
	
	SI (erreur_660004593 == TRAI_KO_660004593)
	ALORS
#		QC1005
		trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
#		code_errone = 0xA0B0
#		code_errone = code_errone + EFFICACE
#		erreur = i_PlvMessEmettre(7500,2,g_iartin,"",3,code_errone,C_Article, X)
		SAUT DISTRI_ERR
	FINSI
	
	SI (erreur_660004593 == TRAI_OK_660004593)
	ALORS
		erreur_660004593 = i_set_attr_val_n($E_RedisTPE::DCdistribue, 0)
	FINSI
	
FINSI
#/QC566
RETOUR TRAIT_OK


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

POINT DISTRI_ERR

trace( "[TtpecsV2_dis] Stockage en errone de distribution")
res_660004593 = i_make_art_rej(g_iartin, g_iartout8, 0)
res_660004593 = i_stocke_art( g_iartout8, 0, PT_ERRONE, 0)

RETOUR TRAIT_OK

########################################################
#       Stockage en ELIMINE
########################################################

POINT STOCKE_ELIMINE
erreur_660004593 = i_stocke_art(g_iartin, 0, PT_ELIMINE, 0)
trace( "[TtpecsV2_dis] Stockage en Elimines de distribution")
RETOUR TRAIT_OK

#___________________________ FIN TtpecsV2_dis.src_________________________________
