| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- DEF VAR Firma AS CHAR NO-UNDO INIT '1000'.
- DEF VAR AdFirma AS CHAR NO-UNDO INIT '1000'.
-
- DEF VAR Knr AS INT NO-UNDO INIT 0.
-
- DEF TEMP-TABLE tDateien
- FIELD Datei AS CHAR
- FIELD Firma AS LOG.
-
- DEF TEMP-TABLE tBesko LIKE Besko
- INDEX tBesko-k1 AS PRIMARY
- Firma
- Knr.
- EMPTY TEMP-TABLE tDateien.
- FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Knr' NO-LOCK:
- FIND _File OF _Field NO-LOCK.
-
- IF _File._File-Name = 'Benutzer' THEN NEXT.
-
- FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-ERROR.
- IF AVAILABLE tDateien THEN NEXT.
- CREATE tDateien.
- ASSIGN
- tDateien.Datei = _File._File-Name
- tDateien.Firma = FALSE.
- END.
- FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Firma' NO-LOCK:
- FIND _File OF _Field NO-LOCK.
- FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-LOCK NO-ERROR.
- IF NOT AVAILABLE tDateien THEN NEXT.
- tDateien.Firma = TRUE.
- END.
-
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
- IF AVAILABLE Adresse THEN RUN LOESCHEN.
- PROCEDURE LOESCHEN:
- DEF VAR bHandle AS WIDGET-HANDLE NO-UNDO.
- DEF VAR dHandle AS WIDGET-HANDLE NO-UNDO.
- DEF VAR qHandle AS WIDGET-HANDLE NO-UNDO.
- DEF VAR sSelektion AS CHAR NO-UNDO.
- DEF VAR fErst AS LOG NO-UNDO.
- DEF VAR iRecid AS RECID NO-UNDO.
- DEF VAR cFirma AS CHAR NO-UNDO.
-
- DISABLE TRIGGERS FOR LOAD OF Aufze .
- DISABLE TRIGGERS FOR LOAD OF ArtLager.
- DISABLE TRIGGERS FOR LOAD OF ArtLief .
- DISABLE TRIGGERS FOR LOAD OF Aufko .
- DISABLE TRIGGERS FOR LOAD OF BesEing .
- DISABLE TRIGGERS FOR LOAD OF ArtLief .
- DISABLE TRIGGERS FOR LOAD OF Besze .
- DISABLE TRIGGERS FOR LOAD OF Debst .
- DISABLE TRIGGERS FOR LOAD OF Liefst .
- DISABLE TRIGGERS FOR LOAD OF AufLot .
- DISABLE TRIGGERS FOR LOAD OF RuestAuf.
- CREATE QUERY qHandle.
- FOR EACH Steuer NO-LOCK
- WHERE Steuer.AdFirma = AdFirma:
- MESSAGE Steuer.Firma Steuer.AdFirma knr
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- cFirma = Steuer.Firma.
- FOR EACH tDateien NO-LOCK
- BY tDateien.Datei:
- IF tDateien.Datei = 'Adresse' THEN NEXT.
- IF tDateien.Datei = 'HoReLager' THEN NEXT.
- IF tDateien.Datei = 'Artbw' AND
- Knr = 0 THEN NEXT.
- IF tDateien.Firma = FALSE AND
- cFirma <> AdFirma THEN NEXT.
-
- CREATE BUFFER bHandle FOR TABLE tDateien.Datei.
- qHandle:SET-BUFFERS(bHandle).
- IF tDateien.Firma = TRUE THEN
- DO:
- sSelektion = 'FOR EACH '
- + tDateien.Datei
- + ' WHERE '
- + tDateien.Datei + '.Firma = "' + cFirma + '" AND '
- + tDateien.Datei + '.Knr = ' + STRING(Knr).
- END.
- ELSE
- DO:
- sSelektion = 'FOR EACH '
- + tDateien.Datei
- + ' WHERE '
- + tDateien.Datei + '.Knr = ' + STRING(Knr).
- END.
-
- qHandle:QUERY-PREPARE(sSelektion).
- qHandle:SKIP-DELETED-RECORD = TRUE.
- qHandle:QUERY-OPEN().
- fErst = TRUE.
- REPEAT TRANSACTION:
- IF fErst THEN qHandle:GET-FIRST(EXCLUSIVE-LOCK, NO-WAIT).
- ELSE qHandle:GET-NEXT (EXCLUSIVE-LOCK, NO-WAIT).
- IF qHandle:QUERY-OFF-END THEN LEAVE.
- fErst = FALSE.
- dHandle = qHandle:GET-BUFFER-HANDLE().
- IF dHandle:LOCKED THEN NEXT.
- DO WHILE TRUE:
- IF bHandle:NAME <> 'Aufko' THEN LEAVE.
- iRecid = dHandle:RECID.
- FIND Aufko WHERE RECID(Aufko) = iRecid NO-LOCK NO-ERROR.
- FOR EACH AufGebKo OF Aufko:
- DELETE AufGebKo.
- END.
- FOR EACH AufGKon OF Aufko:
- DELETE AufGKon.
- END.
- FOR EACH AufRabSu OF Aufko:
- DELETE AufRabSu.
- END.
- FOR EACH AufSpRab USE-INDEX AufSpRab-k1
- WHERE AufSpRab.Firma = Aufko.Firma
- AND AufSpRab.Aufnr = Aufko.Aufnr:
- DELETE AufSpRab.
- END.
- FOR EACH Aufze OF Aufko:
- DELETE Aufze.
- END.
- FOR EACH AufLot OF Aufko:
- DELETE AufLot.
- END.
- FOR EACH RuestAuf OF Aufko:
- DELETE RuestAuf.
- END.
- RELEASE Aufko.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF bHandle:NAME <> 'Besko' THEN LEAVE.
- iRecid = dHandle:RECID.
- FIND Besko WHERE RECID(Besko) = iRecid NO-LOCK NO-ERROR.
- FOR EACH BesGebKo OF Besko:
- DELETE BesGebKo.
- END.
- FOR EACH Besze OF Besko:
- DELETE Besze.
- END.
- RELEASE Besko.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF bHandle:NAME <> 'Savko' THEN LEAVE.
- iRecid = dHandle:RECID.
- FIND Savko WHERE RECID(Savko) = iRecid NO-LOCK NO-ERROR.
- FOR EACH SavGebKo OF Savko:
- DELETE SavGebKo.
- END.
- FOR EACH SavGKon OF Savko:
- DELETE SavGKon.
- END.
- FOR EACH SavRabSu OF Savko:
- DELETE SavRabSu.
- END.
- FOR EACH SavSpRab USE-INDEX SavSpRab-k1
- WHERE SavSpRab.Firma = Savko.Firma
- AND SavSpRab.Aufnr = Savko.Aufnr:
- DELETE SavSpRab.
- END.
- FOR EACH Savze OF Savko:
- DELETE Savze.
- END.
- FOR EACH SavLot OF Savko:
- DELETE SavLot.
- END.
- FOR EACH RuestSav OF Savko:
- DELETE RuestSav.
- END.
- RELEASE Savko.
- LEAVE.
- END.
- dHandle:BUFFER-DELETE().
- END.
- qHandle:QUERY-CLOSE().
- DELETE OBJECT bHandle.
- END.
- REPEAT TRANSACTION:
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr NO-ERROR.
- IF AVAILABLE Adresse THEN DELETE Adresse.
- LEAVE.
- END.
- END.
- DELETE OBJECT qHandle.
- END PROCEDURE.
|