DEFINITION C_Article_660004685 "TtpepresV2"
DEFINITION C_Tdpv_660004685 "Tdpvgsm"
DEFINITION C_str_FFMv3_660004685 "FFMv3"
DEFINITION C_str_NetMobile_660004685 "NetMobile"
DEFINITION NUMTAB_660004685 4
DEFINITION Multidistribution_Non_660004685 0
DEFINITION DISTRIBUTION_INCONNU_660004685 1
DEFINITION TRAI_KO_660004685 -1
DEFINITION ESPACE_660004685 " "
REGISTRE ENTIER date_660004685
REGISTRE ENTIER type_cra_660004685
REGISTRE ENTIER erreur_660004685
REGISTRE ENTIER EFFICACE_660004685
REGISTRE ENTIER longueur_660004685
REGISTRE ENTIER index_660004685
REGISTRE ENTIER code_errone_660004685
REGISTRE ENTIER res_660004685
REGISTRE ENTIER date_audit_660004685
REGISTRE ENTIER date_plat_660004685
REGISTRE ENTIER date_fin_660004685
REGISTRE ENTIER ICAR_ABS_660004685
REGISTRE ENTIER Duree_Prest_660004685
REGISTRE ENTIER NetMobile_660004685
REGISTRE ENTIER b_FFMv3_660004685
REGISTRE POINTEUR pt_1_660004685
REGISTRE POINTEUR pt_2_660004685
REGISTRE POINTEUR pt_idemet_660004685
REGISTRE POINTEUR pt_NumDdr_660004685
REGISTRE POINTEUR pt_TypPrest_660004685
REGISTRE POINTEUR pt_Z1_660004685
REGISTRE POINTEUR pt_Z2_660004685
REGISTRE POINTEUR pt_Z3_660004685
REGISTRE POINTEUR pt_Z4_660004685
REGISTRE POINTEUR pt_Z5_660004685
REGISTRE POINTEUR pt_Z6_660004685
REGISTRE POINTEUR pt_CodOff_660004685
REGISTRE POINTEUR pt_valeur_660004685
############################################################################
# DISTRIBUTION TtpepresV2_dis.src
# Article DC TtpepresV2 en entree de Platine
# Pcode de distribution
# Creation le 06/10/2006
# Historique
# 06/10/2006 - DRE - Creation G3R0CdME
# 10/11/2006 - DRE - Correction FO 338
# 13/11/2006 - DRE - Correction suite mail Issam du 10/11/2006 16:50
# 24/11/2006 - DRE - Correction FO 350
# 05/12/2006 - DRE - Correction FO 372
# 12/12/2006 - DRE - Correction FO 380
# 05/04/2007 - DRE - Correction FO 465
# 23/05/2007 - PKH - CwME Offre NetMobile
# 09/08/07 Creation enveloppe optionnelle E_Redist2
# 20/05/2008 - FAL - G1R8 FFMv3
# 26/06/2008 - JLG - G1R8 FFMV3 evol correction spec
# 01/07/2008 - JLG - G1R8 QC129
# 23/07/2008 - JLG - G1R8 QC154, 157
# 16/12/2010 - BEA - G3R1 lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 29/02/2012 - JLG -G3R6 QC1005 modif alarme retour aiguillage
# 02/07/2014 - JLG -G5R1 QC1405, champ eec du DPV si g_ieec > 500
# 05/02/2015 - RHE - G5R4 lot1
# 06/03/2015 - RHE - G5R4 QC1533 alimentation de V4t43.3 transactionDesc
# 13/03/2015 - JLG - G5R4 QC1532
############################################################################

#G1R8


#debut G3R0CwME
#G1R8
#Fin G3R0CwME
#QC1533
#debut G3R0CwME
#debut G3R0CwME
EFFICACE_660004685=2
##############################################################################
# ALLOCATION DES POINTEURS
##############################################################################

pt_1_660004685      = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
i_strcpy(pt_1_660004685,"")
pt_2_660004685      = "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
i_strcpy(pt_2_660004685,"")
pt_idemet_660004685   = "4444444444444444444444444444444444444444444444444444444444444444444444444"
pt_NumDdr_660004685   = "2222222222222222222222222222222222222222222222222222222222222222222222222"
i_strcpy(pt_NumDdr_660004685,"")
pt_TypPrest_660004685   = "3333333333333333333333333333333333333333333333333333333333333333333333333"
i_strcpy(pt_TypPrest_660004685,"")
pt_Z1_660004685   = "4444444444444444"
i_strcpy(pt_Z1_660004685,"")
pt_Z2_660004685   = "5555555555555555"
i_strcpy(pt_Z2_660004685,"")
pt_Z3_660004685   = "666666666666666666666666666666666666666666"
i_strcpy(pt_Z3_660004685,"")
pt_Z4_660004685   = "777777777777777777777777777777777777777777777777777777777777"
i_strcpy(pt_Z4_660004685,"")
#QC1533
pt_Z5_660004685   = "pt_Z512345678912345678912345678"
i_strcpy(pt_Z5_660004685,"")
pt_Z6_660004685   = "pt_Z6123456789123456789123456789123467891234567891234567891234567891234"
i_strcpy(pt_Z6_660004685,"")

pt_CodOff_660004685 = "323232323232323232323232323232323232323232323232323232323232"
i_strcpy(pt_CodOff_660004685,"")
pt_valeur_660004685 = "214214214214214214214214214214214214214214214214214214124124"

trace("[TtpepresV2_dis] Debut Pcode TtpepresV2 distribution")
#erreur = i_fdump_art(g_iartin)

erreur_660004685 = i_cree_art("Conv_URS",g_iartout10)

SI (i_LireRedistCpt() == 0)
ALORS
  erreur_660004685 = i_add_opt( "E_Redistri2" )
FINSI
erreur_660004685 = i_set_attr_val_n( $E_Redistri2::EnvoiRedis, 0)


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

date_plat_660004685 = i_DHgetLocalTime(NUMTAB_660004685, 7, date_audit_660004685)

# ICAR_ABS
date_660004685 =i_get_art_field(g_iartin,$TtpepresV2::DATE)
ICAR_ABS_660004685 =i_date_platine(g_ieec,g_iartin,date_660004685)

#NumDdr
erreur_660004685 = i_get_art_str (g_iartin, $TtpepresV2::NumDdr, pt_NumDdr_660004685)

#TypPrest
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::TypPrest, pt_TypPrest_660004685)

#pt_Z1
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z1, pt_Z1_660004685)
#pt_Z2
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z2, pt_Z2_660004685)
#pt_Z3
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z3, pt_Z3_660004685)
#pt_Z4
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z4, pt_Z4_660004685)
#QC1533
#pt_Z5
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z5, pt_Z5_660004685)
#pt_Z6
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::Z6, pt_Z6_660004685)

# Duree_Prestation
Duree_Prest_660004685 = 0x01
SI ( i_strplcmp (pt_TypPrest_660004685,"CA",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"CD",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"LI",0,2) == 0 )
ALORS
# Z1 traduit en seconde
  i_get_sub_str(pt_Z1_660004685, 0, 5, pt_1_660004685)
  erreur_660004685 = i_set_art_str(g_iartout10,$Conv_URS::HEUREA, pt_1_660004685)
  Duree_Prest_660004685 = i_get_art_field(g_iartout10, $Conv_URS::HEURE)
FINSI

SI ( i_strplcmp (pt_TypPrest_660004685,"CT",0,2) == 0 )
ALORS
# Z1
  res_660004685 = RECHERCHE_CARACTERE_660004265(pt_Z1_660004685, " ")
  i_get_sub_str(pt_Z1_660004685, 0, res_660004685 - 1, pt_1_660004685)
  Duree_Prest_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)
FINSI

#G5R4 lot1
# QC1532
SI ( i_strplcmp (pt_TypPrest_660004685,"UP",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"UR",0,2) == 0 )
ALORS
  erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::DureeSess, pt_1_660004685)
  res_660004685 = RECHERCHE_CARACTERE_660004265(pt_1_660004685, " ")
  SI res_660004685 > 0
  ALORS
    i_get_sub_str(pt_1_660004685, 0, res_660004685 - 1, pt_1_660004685)
  FINSI
  Duree_Prest_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)
  SI Duree_Prest_660004685 <= 0
  ALORS
    Duree_Prest_660004685 = 1
  FINSI
FINSI

#debut G3R0CwME puis G1R8
NetMobile_660004685 = 0
b_FFMv3_660004685 = 0
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::CodOff,pt_CodOff_660004685)
i_strcpy(pt_valeur_660004685,i_get_tab_field("VariableContexte",date_plat_660004685,pt_CodOff_660004685))

#G1R8 SI (i_strcmp(pt_valeur,g_inull) != 0)
SI (i_strcmp(pt_valeur_660004685,C_str_NetMobile_660004685) == 0)
ALORS
  NetMobile_660004685 = 1
SINON
  SI (i_strcmp(pt_valeur_660004685,C_str_FFMv3_660004685) == 0)
  ALORS
    b_FFMv3_660004685 = 1
  FINSI
FINSI

#Fin G3R0CwME puis G1R8

##############################################################################
# Cpt applicatif CPT_RDT=1509 (REDISTRIBUTION)
##############################################################################
date_fin_660004685=i_get_art_field(g_iartin,$TtpepresV2::dfin)
erreur_660004685= i_incr_redist_dist_660004265(date_fin_660004685)


##############################################################################
# NORMALISATION et TRONCATURE
##############################################################################

##############################################################################
# VALORISATION
##############################################################################

##############################################################################
# Conversion DPV3.3
##############################################################################

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

SI (i_dup_art_tab( g_iartin, g_iartout, C_Tdpv_660004685))
ALORS
  #trace("[TtpepresV2_dis] ERREUR de duplication")
  code_errone_660004685 = 0xA0D0
  code_errone_660004685 = code_errone_660004685 + EFFICACE_660004685
  erreur_660004685 = i_PlvMessEmettre(6550,2,g_iartin,"",2,code_errone_660004685,C_Article_660004685,0)
  SAUT DISTRI_ERR
FINSI

#################### V3t1.1 type :- :-  :MSET :46
#debut G3R0CwME
#G1R8 QC129
SI ( (NetMobile_660004685 == 1) || (b_FFMv3_660004685 == 1) )
ALORS
  erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::type,0xA6)
FINSI

#Fin G3R0CwME

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

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

# AX_IDEMET resultat fonction recherchevaleurcleftable T3t1/V3t1.3
SI (i_strcmp(pt_idemet_660004685,g_inull)) != 0
ALORS
  #trace2("[TtpepresV2_dis] AX_IDEMET != 0 =%s",pt_idemet,"")
  longueur_660004685= 0
  longueur_660004685=i_strlen(pt_idemet_660004685)
  erreur_660004685 = i_set_art_str(g_iartout10,$Conv_URS::RepTab, pt_idemet_660004685)
  index_660004685=0
  POINT BOUCLE_2
  SI (index_660004685 < longueur_660004685)
  ALORS
    g_iartout10.ax_idemet[index_660004685]=g_iartout10.RepTab[index_660004685] - 0x30
    SI (g_iartout10.RepTab[index_660004685] > 0x40)
    ALORS
      g_iartout10.ax_idemet[index_660004685]=g_iartout10.RepTab[index_660004685] - 0x37
    FINSI
    #trace1("[Ttpecs_dis] index=%d",index)
    #trace1("[Ttpecs_dis] g_iartout10.ax_idemet=%x",g_iartout10.RepTab[index] - 0x30)
    index_660004685 = index_660004685 + 1
    SAUT BOUCLE_2
  FINSI
  erreur_660004685 = 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_660004685 = 5
  POINT BOUCLE_3
  SI index_660004685 < 11
  ALORS
    g_iartout.idemet[index_660004685]= 0x0
    index_660004685 = index_660004685 + 1
    SAUT BOUCLE_3
  FINSI
FINSI

#################### V3t1.4 IMSI :- :-  :MSET :44

#debut G3R0CwME
#G1R8 SI (NetMobile == 1)
#G1R8 evol spec SI ( (NetMobile == 1) || (b_FFMv3 == 1) )
SI (NetMobile_660004685 == 1)
ALORS
  erreur_660004685 = i_memset_field_n(g_iartout,$Tdpvgsm::IMSI,0x99)
FINSI
g_iartout.IMSI[15]=0xF

#Fin G3R0CwME

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

#################### V3t1.6 DUREE :-  :-  :MSET :01
# Duree_Prestation
erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::DUREE,Duree_Prest_660004685)

#################### 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
#################### T3t1.17 chgcar :-  :-  :MSET :FF
#################### T3t1.18 couleur :- :-  :MSET :9F

#################### V3t2 idpart :- :-  :MSET :FF
#erreur = i_get_art_str(g_iartin, $TtpepresV2::Z4, pt_1)
SI ( (i_strplcmp (pt_TypPrest_660004685,"CA",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"CD",0,2) == 0 ) ) && ( RECHERCHE_CARACTERE_660004265(pt_Z4_660004685, " ")  == 9 )
ALORS
# Z4
  erreur_660004685 = i_format_str2( pt_1_660004685, "%s%s", "0", pt_Z4_660004685 )
  longueur_660004685 = 5
  res_660004685 = i_conv_ascii_dcb(pt_1_660004685, pt_2_660004685)
  erreur_660004685 = i_resize_tlv( g_iartout10, "T2_Idpart", "idpart", longueur_660004685 * 8 )
  erreur_660004685 = i_memcpy_art_field_n(g_iartout10,$Conv_URS::idpart,pt_2_660004685, longueur_660004685)
  erreur_660004685 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::idpart, $Tdpvgsm::idpart,-$NORM:TPE_idpart,0)

SINON
# 33999999999
  longueur_660004685 = i_conv_ascii_dcb("33999999999", pt_2_660004685)
  erreur_660004685 = i_memcpy_art_field_n(g_iartout,$Tdpvgsm::idpart,pt_2_660004685, longueur_660004685)
  erreur_660004685 = i_resize_tlv( g_iartout, "T3t2", "idpart", longueur_660004685 * 8 )

FINSI

#################### V3t4 MSISDN      :-  :-  :MSET :FF
i_replace_str(pt_NumDdr_660004685,"AJSC","BCDE",pt_NumDdr_660004685)
longueur_660004685 = i_strlen(pt_NumDdr_660004685)

index_660004685 = 0
POINT BOUCLE_NumDdr
SI (index_660004685 < longueur_660004685)
ALORS
  i_get_sub_str(pt_NumDdr_660004685, index_660004685, index_660004685, pt_1_660004685)
  SI CONV_ASCIINUMHEX_INT_660004265(pt_1_660004685) != -1
  ALORS
    g_iartout10.local[index_660004685] = CONV_ASCIINUMHEX_INT_660004265(pt_1_660004685)
    index_660004685 = index_660004685 + 1
    SAUT BOUCLE_NumDdr
  SINON
    SAUT FIN_BOUCLE_NumDdr
  FINSI
FINSI
POINT FIN_BOUCLE_NumDdr
erreur_660004685 = i_resize_tlv( g_iartout10, "T2_Local", "local", ( index_660004685 * 4 ) )
erreur_660004685 = i_dup_chp_rnisGSM(g_iartout10, g_iartout, $Conv_URS::local, $Tdpvgsm::MSISDN,-$NORM:TPE_MSISDN,0)
# DRE FO 350
SI ( erreur_660004685 != 0)
ALORS
  i_strcpy(pt_1_660004685," pour MSISDN ")
  code_errone_660004685 = 0xA010
  code_errone_660004685 = code_errone_660004685 + EFFICACE_660004685
  erreur_660004685 = i_PlvMessEmettre(7503,2,g_iartin,"",3,code_errone_660004685,C_Article_660004685,pt_1_660004685)
  SAUT DISTRI_ERR
FINSI

#################### V3t16 TrSortant            :-      :-      :MSET :00
#FO 380
#erreur = i_get_art_str(g_iartin, $TtpepresV2::CodOpeF, pt_1)
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::CodOpeT, pt_1_660004685)
#FO 465
#longueur = i_strlen(pt_1)
longueur_660004685 = RECHERCHE_CARACTERE_660004265(pt_1_660004685, ESPACE_660004685)
SI longueur_660004685 < 0
ALORS
  longueur_660004685 = longueur_660004685 * -1
FINSI

erreur_660004685 = i_set_art_str(g_iartout10,$Conv_URS::GKname, pt_1_660004685)
erreur_660004685 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::GKnameH, $Tdpvgsm::TrSortant)
erreur_660004685 = i_resize_tlv(g_iartout, "T3t16", "TrSortant", longueur_660004685)

#FIN FO 465


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

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


#################### V4t35.1 duration absent
SI ( i_strplcmp (pt_TypPrest_660004685,"CA",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"CD",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"LI",0,2) == 0 )
ALORS
# Z1 traduit en seconde
  i_get_sub_str(pt_Z1_660004685, 0, 5, pt_1_660004685)
  erreur_660004685 = i_set_art_str(g_iartout10,$Conv_URS::HEUREA, pt_1_660004685)
  res_660004685 = i_get_art_field(g_iartout10, $Conv_URS::HEURE)

  erreur_660004685 = i_ajoutChamp(g_iartout, "T4t35.1","duration",0)
  erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::duration, res_660004685)
FINSI

SI ( i_strplcmp (pt_TypPrest_660004685,"CT",0,2) == 0 )
ALORS
# Z1
  res_660004685 = RECHERCHE_CARACTERE_660004265(pt_Z1_660004685, " ")
  i_get_sub_str(pt_Z1_660004685, 0, res_660004685 - 1, pt_1_660004685)
  res_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)
  erreur_660004685 = i_ajoutChamp(g_iartout, "T4t35.1","duration",0)
  erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::duration, res_660004685)
FINSI

#################### V4t35.2 occurenceNB absent
SI ( i_strplcmp (pt_TypPrest_660004685,"RE",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"CT",0,2) == 0 )
ALORS
# Z2
  res_660004685 = RECHERCHE_CARACTERE_660004265(pt_Z2_660004685, " ")
  i_get_sub_str(pt_Z2_660004685, 0, res_660004685 - 1, pt_1_660004685)
  res_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)
  SI res_660004685 != -1
  ALORS
    erreur_660004685 = i_ajoutChamp(g_iartout, "T4t35.2","occurenceNb",0)
    erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::occurenceNb,res_660004685)
  FINSI
FINSI
SI ( i_strplcmp (pt_TypPrest_660004685,"RM",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"TG",0,2) == 0 )
ALORS
# Z1
  res_660004685 = RECHERCHE_CARACTERE_660004265(pt_Z1_660004685, " ")
  i_get_sub_str(pt_Z1_660004685, 0, res_660004685 - 1, pt_1_660004685)
  res_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)
  SI res_660004685 != -1
  ALORS
    erreur_660004685 = i_ajoutChamp(g_iartout, "T4t35.2","occurenceNb",0)
    erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::occurenceNb,res_660004685)
  FINSI
FINSI

#################### V4t39.3 refundFlag absent

erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::DebCre, pt_2_660004685)

res_660004685 = RECHERCHE_CARACTERE_660004265(pt_2_660004685, " ")
SI res_660004685 > 0
ALORS
  i_get_sub_str(pt_2_660004685, 0, res_660004685 - 1, pt_1_660004685)

  res_660004685 = CONV_ASCIINUMHEX_INT_660004265(pt_1_660004685)
  SI res_660004685 == 1
  ALORS
    erreur_660004685 = i_ajoutChamp(g_iartout, "T4t39.3","refundFlag",0)
    erreur_660004685 = i_set_art_field(g_iartout, $Tdpvgsm::refundFlag,0x01)
  FINSI
FINSI

#################### V4t39.6 Amount :-  :-  :MSET :FF
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::MntDC, pt_1_660004685)
i_get_sub_str(pt_1_660004685, -9, -1, pt_1_660004685)
res_660004685 = CONV_ASCIINUMDEC_INT_660004265(pt_1_660004685)/10
erreur_660004685 = i_set_art_field(g_iartout10, $Conv_URS::Amount,res_660004685)
erreur_660004685 = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::AmountH, $Tdpvgsm::Amount)

#################### V4t43.2 refServID  :-  :-  :1VAL :CodPrest

#################### V4t43.3 transactionDesc  :-  :-  :MSET :20
#QC1533
SI ( i_strplcmp (pt_TypPrest_660004685,"UP",0,2) == 0 ) || ( i_strplcmp (pt_TypPrest_660004685,"UR",0,2) == 0 )
ALORS
  erreur_660004685 = i_format_str2( pt_2_660004685, "%s|%s", pt_Z1_660004685, pt_Z2_660004685 )
  erreur_660004685 = i_format_str2( pt_1_660004685, "%s|%s", pt_2_660004685, pt_Z6_660004685 )
  longueur_660004685 = i_strlen(pt_1_660004685)
  erreur_660004685 = i_resize_tlv( g_iartout, "T4t43.3", "transactionDesc", longueur_660004685 )
SINON
  erreur_660004685 = i_format_str2( pt_1_660004685, "%s|%s", pt_Z1_660004685, pt_Z2_660004685 )
  erreur_660004685 = i_format_str2( pt_2_660004685, "%s|%s", pt_1_660004685, pt_Z3_660004685 )
  erreur_660004685 = i_format_str2( pt_1_660004685, "%s|%s", pt_2_660004685, pt_Z4_660004685 )
  longueur_660004685 = i_strlen(pt_1_660004685)
  erreur_660004685 = i_resize_tlv( g_iartout, "T4t43.3", "transactionDesc", longueur_660004685 )
FINSI
erreur_660004685=i_set_art_str(g_iartout, $Tdpvgsm::transactionDesc, pt_1_660004685)

#################### V4t44.2 transactionType  :-  :-  :MSET :FF
# exemple: transformer "CA" en 4341 (ne prendre que les 2 premiers caracteres)

i_get_sub_str( pt_TypPrest_660004685,0,1,pt_2_660004685)
longueur_660004685 = i_strlen(pt_2_660004685)
erreur_660004685 = i_resize_tlv( g_iartout10, "T2idpart2", "idpartASCII", longueur_660004685)
erreur_660004685 = i_set_art_str(g_iartout10,$Conv_URS::idpartASCII, pt_2_660004685)
#erreur = i_dup_chp_1val(g_iartout10, g_iartout, $Conv_URS::idpartDCB, $Tdpvgsm::transactionType)
erreur_660004685 = i_dup_chp_tab(g_iartout10, g_iartout, $Conv_URS::idpartDCB, $Tdpvgsm::transactionType,0)


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

#G5R4
#################### V3t.72 TypeEditeurSVA
erreur_660004685 = i_get_art_str(g_iartin, $TtpepresV2::TypeEditeur, pt_1_660004685)
SI i_strcmp(pt_1_660004685, " ") != 0
ALORS
  erreur_660004685 = i_ajoutChamp(g_iartout, "T3t72","TypeEditeurSVA",0)
  erreur_660004685=i_set_art_str(g_iartout, $Tdpvgsm::TypeEditeurSVA, pt_1_660004685)
FINSI

#G5R4
#################### V4t.74.1 ProviderName
SI i_strcmp(pt_Z5_660004685, "                              ") != 0
ALORS
  erreur_660004685 = i_ajoutChamp(g_iartout, "T4t74.1","ProviderName",0)
  erreur_660004685=i_set_art_str(g_iartout, $Tdpvgsm::ProviderName, pt_Z5_660004685)
FINSI


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

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

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

##############################################################################
# Appel fonction distribution
##############################################################################


erreur_660004685 = aiguillage2_660004590 (g_iartin, g_iartout, DISTRIBUTION_INCONNU_660004685, Multidistribution_Non_660004685)
SI (erreur_660004685 == TRAI_KO_660004685)
ALORS
# QC1005
  trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
# code_errone = 0xA0B0
# code_errone = code_errone + EFFICACE
# type_cra=i_get_art_field(g_iartout,$Tdpvgsm::type)
# erreur = i_PlvMessEmettre(7500,2,g_iartin,"",3,code_errone,C_Article,type_cra)
  SAUT DISTRI_ERR
FINSI

RETOUR TRAIT_OK


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

POINT DISTRI_ERR

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

RETOUR TRAIT_OK

#___________________________ FIN TtpepresV2_dis.src_________________________________
