# Fonction PCODE ID = 860026233
REGISTRE ENTIER inf
REGISTRE ENTIER sty
REGISTRE POINTEUR Num
#
# Nom du fichier: Norm_NDE_DEA.src
#
# Fonction:
#    Normalise un NDE pour les DEA
#
# En entree :
#    NDE
#    champ sty
#    champ inf
#
# En sortie:
#    si OK      : NDE normalise
#    Erreur     : g_inull
#
############################################################################

REGISTRE ENTIER erreur
REGISTRE POINTEUR TEMP

inf = depilerENTIER()
sty = depilerENTIER()
Num = depilerPOINTEUR()
#
# Recuperation des arguments en entree
#

TEMP = "AZEATRTYETRGSGDGHJHRYUUGFHBCBGTHFJITIT"

erreur = i_cree_art("Conversion",g_iartout13)
erreur = i_set_art_str(g_iartout13,$Conversion::IDUS_NUM,Num)

SI ((sty & 0x40) == 0x40 )
ALORS
# Transgroupe
        SI ((g_iartout13.IDUS_NUM[0] == 0x30) && (g_iartout13.IDUS_NUM[1] == 0x42) && (g_iartout13.IDUS_NUM[2] == 0x33) && (g_iartout13.IDUS_NUM[3] == 0x31) && (g_iartout13.IDUS_NUM[4] == 0x42) && (g_iartout13.IDUS_NUM[5] == 0x30))
        ALORS
                i_get_sub_str(Num,6,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x30) && (g_iartout13.IDUS_NUM[1] == 0x33) && (g_iartout13.IDUS_NUM[2] == 0x36) && (g_iartout13.IDUS_NUM[3] == 0x35) && (g_iartout13.IDUS_NUM[4] == 0x31) && (g_iartout13.IDUS_NUM[5] == 0x30))
        ALORS
                i_get_sub_str(Num,6,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x42) && (g_iartout13.IDUS_NUM[1] == 0x33) && (g_iartout13.IDUS_NUM[2] == 0x31) && (g_iartout13.IDUS_NUM[3] == 0x42) && (g_iartout13.IDUS_NUM[4] == 0x30))
        ALORS
                i_get_sub_str(Num,5,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x33) && (g_iartout13.IDUS_NUM[1] == 0x36) && (g_iartout13.IDUS_NUM[2] == 0x35) && (g_iartout13.IDUS_NUM[3] == 0x31) && (g_iartout13.IDUS_NUM[4] == 0x30))
        ALORS
                i_get_sub_str(Num,5,-1,Num)
                SAUT SUITE
        FINSI
        SI (g_iartout13.IDUS_NUM[0] == 0x30)
        ALORS
                i_get_sub_str(Num,1,-1,Num)
                SAUT SUITE
        FINSI


SINON
# non Transgroupe
        SI ((g_iartout13.IDUS_NUM[0] == 0x30) && (g_iartout13.IDUS_NUM[1] == 0x42) && (g_iartout13.IDUS_NUM[2] == 0x33) && (g_iartout13.IDUS_NUM[3] == 0x31) && (g_iartout13.IDUS_NUM[4] == 0x42))
        ALORS
                i_get_sub_str(Num,5,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x30) && (g_iartout13.IDUS_NUM[1] == 0x33) && (g_iartout13.IDUS_NUM[2] == 0x36) && (g_iartout13.IDUS_NUM[3] == 0x35) && (g_iartout13.IDUS_NUM[4] == 0x31))
        ALORS
                i_get_sub_str(Num,5,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x42) && (g_iartout13.IDUS_NUM[1] == 0x33) && (g_iartout13.IDUS_NUM[2] == 0x31) && (g_iartout13.IDUS_NUM[3] == 0x42))
        ALORS
                i_get_sub_str(Num,4,-1,Num)
                SAUT SUITE
        FINSI
        SI ((g_iartout13.IDUS_NUM[0] == 0x33) && (g_iartout13.IDUS_NUM[1] == 0x36) && (g_iartout13.IDUS_NUM[2] == 0x35) && (g_iartout13.IDUS_NUM[3] == 0x31))
        ALORS
                i_get_sub_str(Num,4,-1,Num)
                SAUT SUITE
        FINSI
FINSI

POINT SUITE

erreur = i_set_art_str(g_iartout13,$Conversion::IDUS_NUM,Num)

# 16XY
SI ((g_iartout13.IDUS_NUM[0] == 0x31) && (g_iartout13.IDUS_NUM[1] == 0x36))
ALORS
        i_get_sub_str(Num,4,-1,Num)
	SAUT SUITE2
FINSI

# 840XY
SI ((g_iartout13.IDUS_NUM[0] == 0x38) && (g_iartout13.IDUS_NUM[1] == 0x34) && (g_iartout13.IDUS_NUM[2] == 0x30))
ALORS
        i_get_sub_str(Num,5,-1,Num)
FINSI

POINT SUITE2

erreur = i_set_art_str(g_iartout13,$Conversion::IDUS_NUM,Num)
# Retrait du zero eventuel en debut d article
SI (g_iartout13.IDUS_NUM[0] == 0x30)
ALORS
        i_get_sub_str(Num,1,-1,Num)
FINSI

i_get_sub_str(Num,0,8,Num)

RETOUR Num

