| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /*------------------------------------------------------------------------
- File : LotLagerAufRuestlagerUmlagern.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Fri Jul 09 07:08:57 CEST 2021
- Notes :
- ----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEFINE BUFFER bHoReLager FOR HoReLager.
- DEFINE BUFFER bLotLager FOR LotLager.
- /* ******************** Preprocessor Definitions ******************** */
- /* *************************** Main Block *************************** */
- DISABLE TRIGGERS FOR LOAD OF HoReLager.
- DISABLE TRIGGERS FOR LOAD OF LotLager .
- MESSAGE 'Phase 1'
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- FOR EACH HoReLager NO-LOCK
- WHERE HoReLager.Firma = '1000'
- AND HoReLager.Lager = 0
- AND HoReLager.Art = 2
- AND HoReLager.Artnr = 0:
-
- FOR EACH LotLager
- WHERE LotLager.Firma = HoReLager.Firma
- AND LotLager.HoReLager_Id = HoReLager.HoReLager_Id:
-
- IF LotLager.Bestand = 0 THEN
- DO:
- DELETE LotLager.
- NEXT.
- END.
-
- FIND FIRST bHoReLager
- WHERE bHoReLager.Firma = HoReLager.Firma
- AND bHoReLager.Lager = HoReLager.Lager
- AND bHoReLager.Art = 1
- AND bHoReLager.Artnr = LotLager.Artnr
- AND bHoReLager.Inhalt = LotLager.Inhalt
- AND bHoReLager.Jahr = LotLager.Jahr NO-ERROR.
- IF NOT AVAILABLE bHoReLager THEN
- DO:
- FIND FIRST bHoReLager
- WHERE bHoReLager.Firma = HoReLager.Firma
- AND bHoReLager.Lager = HoReLager.Lager
- AND bHoReLager.Art = 1
- AND bHoReLager.Artnr = LotLager.Artnr
- AND bHoReLager.Inhalt = LotLager.Inhalt NO-ERROR.
- END.
- IF NOT AVAILABLE bHoReLager THEN
- DO:
- DELETE LotLager.
- NEXT.
- END.
-
- FIND FIRST bLotLager
- WHERE bLotLager.Firma = bHoReLager.Firma
- AND bLotLager.Lager = bHoReLager.Lager
- AND bLotLager.HoReLager_Id = bHoReLager.HoReLager_Id
- AND bLotLager.Artnr = LotLager.Artnr
- AND bLotLager.Inhalt = LotLager.Inhalt
- AND bLotLager.Jahr = LotLager.Jahr
- AND bLotLager.Verfall = LotLager.Verfall NO-ERROR.
- IF AVAILABLE bLotLager THEN
- DO:
- ASSIGN
- bLotLager.Bestand = bLotLager.Bestand + LotLager.Bestand.
- DELETE LotLager.
- NEXT.
- END.
- CREATE bLotLager.
- BUFFER-COPY LotLager
- EXCEPT LotLager.HoReLager_Id
- TO bLotLager
- ASSIGN
- bLotLager.HoReLager_Id = bHoReLager.HoReLager_Id.
- DELETE LotLager.
- END.
- END.
- DEFINE VARIABLE iBestand AS INTEGER NO-UNDO.
- MESSAGE 'Phase 2'
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- FOR EACH HoReLager NO-LOCK
- WHERE HoReLager.Firma = '1000'
- AND HoReLager.Lager = 0
- AND HoReLager.Art = 1
- AND HoReLager.Artnr > 0:
-
- FIND bHoReLager EXCLUSIVE-LOCK
- WHERE RECID(bHoReLager) = RECID(HoReLager) NO-WAIT NO-ERROR.
- IF NOT AVAILABLE bHoReLager THEN NEXT.
- bHoReLager.Bestand = 0.
- END.
- MESSAGE 'Phase 3'
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- FOR EACH ArtLager NO-LOCK
- WHERE ArtLager.Firma = '1000'
- AND ArtLager.Lager = 0:
-
- iBestand = ArtLager.Bestand.
- FOR EACH Artbw NO-LOCK
- WHERE Artbw.Firma = ArtLager.Firma
- AND Artbw.Artnr = ArtLager.Artnr
- AND Artbw.Inhalt = ArtLager.Inhalt
- AND Artbw.Jahr = ArtLager.Jahr
- AND Artbw.Tr_Art = 01
- AND Artbw.Datum >= TODAY + 1:
-
- iBestand = iBestand + Artbw.Menge.
- END.
-
- FIND FIRST bHoReLager NO-LOCK
- WHERE bHoReLager.Firma = ArtLager.Firma
- AND bHoReLager.Lager = ArtLager.Lager
- AND bHoReLager.Art = 1
- AND bHoReLager.Artnr = ArtLager.Artnr
- AND bHoReLager.Inhalt = ArtLager.Inhalt
- AND bHoReLager.Jahr = ArtLager.Jahr NO-ERROR.
- IF NOT AVAILABLE bHoReLager THEN
- DO:
- FIND FIRST bHoReLager NO-LOCK
- WHERE bHoReLager.Firma = ArtLager.Firma
- AND bHoReLager.Lager = ArtLager.Lager
- AND bHoReLager.Art = 1
- AND bHoReLager.Artnr = ArtLager.Artnr
- AND bHoReLager.Inhalt = ArtLager.Inhalt NO-ERROR.
- END.
- IF NOT AVAILABLE bHoReLager THEN NEXT.
- FIND HoReLager EXCLUSIVE-LOCK
- WHERE RECID(HoReLager) = RECID(bHoReLager) NO-WAIT NO-ERROR.
- IF NOT AVAILABLE HoReLager THEN
- DO:
- MESSAGE ArtLager.Artnr.
- NEXT.
- END.
- HoReLager.Bestand = HoReLager.Bestand + iBestand.
- END.
|