[Allegro] win-alf: rückgabe mit verpäteten medien, die verlängert werden sollen

Bernhard Eversberg ev at biblio.tu-bs.de
Di Nov 3 10:38:48 CET 2009


Klaus Lehmann schrieb:
> 
> ich denke, ich bin im folgenden auf den korrekten sprungmarken
> gelandet: Zeile 238
> VORHER wurde geprüft, ob es eine vormerkung oder das buch in der
> "warteliste" [was ist das?] liegt.
> 
Damit ist gemeint, daß das Buch für den betr. Nutzer schon im
Wartezustand ist, also auf dem dafür vorgesehenen Regal stehen müßte.

> ich denke, hier fehlt was!
> er müsste in #9DI nachschauen, was im subfield R steht. (z.b. :
> R20091207
> er müsste das aktuelle tagesdatum nehmen, davon die schliesstage usw
> abziehen, 
Wie soll das gehen? Welche Schließtage wie von dem Datum "abziehen"?

Die Berechnung der Tage ist etwas problematisch, weil die Funktion
Wday nicht ermöglich, zwei Datumsangaben zu nehmen und die Differenz
in Arbeitstagen daraus zu errechnen.
Nehmen wir  20091103 und 20091005, dann liefert

var "20091103-20091005"
Day

die Zahl der Tage, aber mit Wday kriegt man nicht die Zahl der
Arbeitstage. Wday kennt nur Argumente +n und -n, nicht zwei
Datumsangaben mit Subtraktion.
Eine schnelle Lösung kann ich daher für diesen Fall nicht
anbieten. Sie könnten sich nur orientieren an der Methodik, die
in a-chkin.flx vorgezeichnet ist:

   Frist abgelaufen? Dann $r > $R in #9DI ($r = Rckgabetag = heute)
var #9DI$r "-" #9DI$R
Days
if <1 jump belast    // ok, kein Verzug
   Verzug, aber wieviele Oeffnungstage?
z=1

:vlo
var z
if >100 jump long
  var #dts(0,8) "-" z
var "-" z
WDay
ins #uaV
var #uaV "-" #9DI$R
Day
if >0 z+1;jump vlo

Denn da wird mit z=1 begonnen und dann mit
var "-" z
Wday
diese Zahl vom aktuellen Tag subtrahiert, der dann
sich ergebende Arbeitstag(!) verglichen mit dem vorge-
sehenen Rückgabetag in #9DI$R, und wenn beide gleich
sind (Differenz 0), dann hat man mit z die Zahl der Arbeitstage.

B.E.





Mehr Informationen über die Mailingliste Allegro