1. Weg:
1.1. Lege für jeden MA ein "Stammblatt" an.
Dieses Stammblatt identifizierst Du über dessen Personalnummer oder Name+Vorname+Geburtsdatum oder oder....
1.2. Dann legst Du einen weiteren Doctypus an, der als Response zum Stammblatt erstellt wird. In der Responsemaske kommt Dein Produkt 1-2-oder 3 und die ZE hinein
1.3. beim Speichern des Response-Docs zwingend über den Aktions-Button "Speichern" wird über
@SetDocField( Dokument-ID ; Feldname ; neuerWert )
und
@GetDocField( DokumentUNID ; Feldname )
gearbeitet.
GetDoc holt sich die Info aus dem Stammdoc des MA, SetDoc schreibt etwas rein. Und zwar was?
1. Info: aktl. Datum (damit die ZE nur zu einem Tag verrechnet werden)
2. Info: ZE
beide Infos kommen in 2 separate Felder.
also
_checktag:=@GetDocField( DokumentUNID des Stammdocs ; "Datum" );
_ZE:=@GetDocField( DokumentUNID des Stammdocs ; "ZE" );
und nun Check, ob die Infos von heute oder nicht von heute sind:
_weiche=@if(@today<>@texttotime(_checktag);"yes";"no");
wenn die neue ZE nicht auf den gleichen Tag fällt, wie die bisherigen Einträge im Stammdoc, dann...sonst...
_ZEAdd:=@if(_weiche:="yes";<FeldausaktuellemProduktDoc>;_ZE+<FeldausaktuellemProduktDoc>);
Kontrolle, ob ZE nun 6 Einheiten überschritten hat:
@if(_ZEAdd>6;@return(@prompt([ok];"ACHTUNG";"DU KAPITALISTENAUSBEUTER!!!!));@success);
wenn Test bestanden, nun neue ZE im Stammdoc setzen und ggbfl. neues Datum:
@if(_weiche="yes";@do(@SetDocField( Dokument-ID des Stammdocs ; Datum ; @today );@SetDocField( Dokument-ID des Stammdocs ; ZE ; _ZEAdd ));@SetDocField(Dokument-ID des Stammdocs ; ZE ; _ZEAdd ));
FileSave noch
und
FileCloseWindow
soweit einigermaßen klar, was ich meine?
Einzigstes Problem ist, wie Du an die DocID des Stammds rankommst. Nun, das lät sich regeln, entweder Du erstellt ein echtes Response zum MA Stammdoc, wenn Du eine neue ZE meldest (@SetDocField($Ref;"Field on Parent Doc";"Value") = $REF enthält die ID des Parents). Oder, Du liest über einen dblookup die ID des MA Docs aus.
Soweit das in Kurzform. Auch wenn die Produkte mit unterschiedlichen Laufzeiten nicht drin sind, ist das ja letztlich fast egal, da Du die Regel hast, nicht mehr als 6 ZE. Man muß vorher nur einen kleinen Zwischenstep einlegen, da man nicht mehr das ZE Feld direkt auslesen kann. Einfach einen Multiplikator setzen...am besten als Schlüsselwortfeld mit Alias
Produkt 1 | 1
Produkt 2 | 2
Produkt 3 | 3
und da Notes den Alias liefert, diesen einfach per texttonumber in eine Zahl umwandeln, dann haste Deine effektive ZE für diesen gegebenen Auftrag.
also leicht variierte Formel zu oben:
_ZEAdd:=@if(_weiche="yes";@texttonumber(<FeldausaktuellemProduktDoc>);_ZE+@texttonumber(<FeldausaktuellemProduktDoc>));