# Fonction PCODE ID = 660003942
REGISTRE POINTEUR pt_Entier
REGISTRE ENTIER ichamp
REGISTRE ARTOBJ iartin

REGISTRE ENTIER  resulat
REGISTRE ENTIER  byte0
REGISTRE ENTIER  byte1
REGISTRE ENTIER  byte2
REGISTRE ENTIER  byte3
REGISTRE ENTIER  byte4
REGISTRE ENTIER  erreur
REGISTRE ENTIER  longInteger1_L
REGISTRE ENTIER  longInteger2_L
REGISTRE ENTIER  longInteger3_L

REGISTRE  POINTEUR  pt_longInteger1
REGISTRE  POINTEUR  pt_longInteger2
REGISTRE  POINTEUR  pt_longInteger3

pt_Entier = depilerPOINTEUR()
ichamp = depilerENTIER()
iartin = depilerARTOBJ()

# Initialisation
longInteger1_L=64
longInteger2_L=64
longInteger3_L=64
pt_longInteger1 = "0123456701234567012345670123456701234567012345670123456701234567"
pt_longInteger2 = "1234567012345670123456701234567012345670123456701234567012345670"
pt_longInteger3 = "4234567012345670123456701234567012345670123456701234567012345670"

byte0 = i_get_art_fieldtab(g_iartin, ichamp, 0)
byte1 = i_get_art_fieldtab(g_iartin, ichamp, 1)
byte2 = i_get_art_fieldtab(g_iartin, ichamp, 2)
byte3 = i_get_art_fieldtab(g_iartin, ichamp, 3)
byte4 = i_get_art_fieldtab(g_iartin, ichamp, 4)

byte4 = byte4 & 0x80

trace1("Entier8Bytes - poid fort du byte4 : %x", byte4)

SI((byte3 ==0)&&(byte2 ==0)&&(byte1==0)&&(byte0==0) && (byte4==0))
ALORS
	resulat = (i_get_art_fieldtab(iartin, ichamp, 7)+
	(i_get_art_fieldtab(iartin, ichamp, 6)*(16*16))+
	(i_get_art_fieldtab(iartin, ichamp, 5)*(16*16*16*16))+
	(i_get_art_fieldtab(iartin, ichamp, 4)*(16*16*16*16*16*16)) )
	trace1("Entier8Bytes - i_get_art_fieldtab : %x", resulat)
	erreur = i_EntierToString(resulat, pt_Entier, 10)
	trace2("Pointeur Entier sur 4 octets : %s",pt_Entier,0)
	RETOUR 0

SINON
	pt_longInteger1="LongInteger1__________________________________________________64+"
	longInteger1_L=64

	pt_longInteger2="LongInteger2__________________________________________________64+"
	longInteger2_L=64

	erreur = i_EntierToString(0,pt_longInteger1,longInteger1_L)
	erreur = erreur + i_EntierToString(256,pt_longInteger3,longInteger3_L)

	# premier octet
	erreur = erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,0),pt_longInteger2,longInteger2_L)
	erreur = erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# second octet
	erreur = erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur = erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,1),pt_longInteger2,longInteger2_L)
	erreur = erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# troisieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,2),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# quatrieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,3),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# cinquieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,4),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# sixieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,5),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# septieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,6),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	# huitieme octet
	erreur =  erreur + i_largeIntegersMultiply(pt_longInteger1,longInteger1_L,pt_longInteger3,longInteger3_L)
	erreur =  erreur + i_EntierToString(i_get_art_fieldtab(iartin,ichamp,7),pt_longInteger2,longInteger2_L)
	erreur =  erreur + i_largeIntegersAdd(pt_longInteger1,longInteger1_L,pt_longInteger2,longInteger2_L)

	SI (erreur == 0)
	ALORS
		trace2("pt_longInteger1 : <%s>", pt_longInteger1, 0)
		i_strcpy(pt_Entier, pt_longInteger1)
		RETOUR 0
	FINSI
	RETOUR 1
FINSI

