Title: Max. journaliseerbaar bedrag 999999999.99 in database valuta Post by: Heart Informatisering B.V. on January 09, 2017, 12:22:31 pm Ooit is bij Goederen Ontvangst een poging ondernomen om een foutmelding "Numeric Overflow" te voorkomen. Zo'n melding kon ontstaan indien er teveel produkt werd binnengeboekt.
Om een voorbeeld te geven: Stel dat we een bulklevering hebben, en we een tankwagen met 23000 Kg inkopen met een prijs van EUR 650,- per 1000 Kg, dan moet dat geen probleem zijn. Maar, wat nu als we in plaats van een volledige levering, waarbij we de inhoud overschrijven met 25000 Kg, een Deellevering boeken, en abusievelijk aangeven dat we 25000 tankwagens hebben ontvangen (ieder met een inhoud van 23000 Kg). Fout natuurlijk, en de meldingen vliegen je om de oren, maar, Profit gaat wel verder. 25000 Verschijningen met een inhoud van 23000 Kg levert een totaal aantal eenheden op van 575.000.000 Kg. De (te journaliseren) waarde hiervan zou dan 373.750.000 bedragen. Op zich nog geen probleem. Toch geldt dat het bedrag bij het bereiken van een waarde > 999999999.99 op die waarde werd afgekapt, waar er in zo'n geval eigenlijk gewoon niet op F1 mag worden gedrukt. Waar 373.750.000 nog niet te groot is voor 1 mutatie, geldt dat als dit bedrag nog eens verhoogd wordt met DKK tarieven, en de DatabaseValuta in NLG was, het bedrag al snel boven 1 miljard uit kon komen, en derhalve op 1 miljard werd afgekapt (1 miljard, maar wel "in de database valuta, dus guldens"). Bij het verwijderen van een Goederen Ontvangst werd vervolgens een heel ander bedrag geboekt. Tsja... dat is wel fout. Overigens was daar ook de kontrole opgenomen op > 999999999.99 maar die vlieger ging daar nooit op, omdat het bedrag (a.g.v. het verwijderen) juist altijd negatief was. Nb: In theorie zou het logischer zijn om het maximum bedrag op EUR 999.999.999,99 te zetten, maar, daarmee past e.e.a. niet ineens alsnog in de database. E.e.a. blijft derhalve zoals het was. Het enige wat nu is opgelost, is dat het Verwijderen van een Ontvangst de boeking op eenzelfde manier tegenboeken als de Goederen ontvangst' zelf.
|