| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipFaknr AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipVerbuch AS LOG NO-UNDO.
- DEFINE INPUT PARAMETER ipNeuFnr AS LOG NO-UNDO.
- DEFINE INPUT PARAMETER ipSpez AS LOG NO-UNDO.
- DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO.
- DEFINE TEMP-TABLE tSavko LIKE Savko .
- DEFINE TEMP-TABLE tSavze LIKE Savze .
- DEFINE TEMP-TABLE tSavGebKo LIKE SavGebKo.
- DEFINE TEMP-TABLE tSavGKon LIKE SavGKon .
- DEFINE TEMP-TABLE tSavRabSu LIKE SavRabSu.
- DEFINE TEMP-TABLE tSavSpRab LIKE SavSpRab.
- DEFINE TEMP-TABLE tPassant LIKE Passant .
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 15
- WIDTH = 60.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
- FOR EACH Savko NO-LOCK USE-INDEX Savko-k6
- WHERE Savko.Firma = ipFirma
- AND Savko.Faknr = ipFaknr
- AND Savko.Knr = ipKnr:
- CREATE tSavko.
- BUFFER-COPY Savko TO tSavko.
- END.
- FIND FIRST tSavko NO-LOCK NO-ERROR.
- IF NOT AVAILABLE tSavko THEN RETURN.
- FOR EACH tSavko:
- FOR EACH Savze NO-LOCK
- WHERE Savze.Firma = tSavko.Firma
- AND Savze.Aufnr = tSavko.Aufnr :
- CREATE tSavze.
- BUFFER-COPY Savze TO tSavze.
- END.
- FOR EACH SavGebKo NO-LOCK
- WHERE SavGebKo.Firma = tSavko.Firma
- AND SavGebKo.Aufnr = tSavko.Aufnr :
- CREATE tSavGebKo.
- BUFFER-COPY SavGebKo TO tSavGebKo.
- END.
- FOR EACH SavGKon NO-LOCK
- WHERE SavGKon.Firma = tSavko.Firma
- AND SavGKon.Aufnr = tSavko.Aufnr :
- CREATE TSavGKon.
- BUFFER-COPY SavGKon TO TSavGKon.
- END.
- FOR EACH SavRabSu NO-LOCK
- WHERE SavRabSu.Firma = tSavko.Firma
- AND SavRabSu.Aufnr = tSavko.Aufnr :
- CREATE tSavRabSu.
- BUFFER-COPY SavRabSu TO tSavRabSu.
- END.
- FOR EACH SavSpRab NO-LOCK USE-INDEX SavSpRab-k1
- WHERE SavSpRab.Firma = tSavko.Firma
- AND SavSpRab.Aufnr = tSavko.Aufnr:
- CREATE tSavSpRab.
- BUFFER-COPY SavSpRab TO tSavSpRab.
- END.
- FOR EACH Passant NO-LOCK
- WHERE Passant.Firma = tSavko.Firma
- AND Passant.Knr = tSavko.Knr
- AND Passant.Faknr = tSavko.Faknr:
- CREATE tPassant.
- BUFFER-COPY Passant TO tPassant.
- END.
- END.
- cDateiName = 'geloeschte_auftraege.log'.
- cBenutzer = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR.
- OUTPUT TO VALUE(cDateiName) APPEND NO-MAP NO-CONVERT.
- RUN STORNO.
- OUTPUT CLOSE.
- RETURN RETURN-VALUE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &IF DEFINED(EXCLUDE-STORNO) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE STORNO Procedure
- PROCEDURE STORNO :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE cRet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE ja AS LOG NO-UNDO.
- DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO.
- DEFINE VARIABLE cTotal AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iTrnr1 AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE FBFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
- cRet = ''.
-
- FIND FIRST tSavko.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = tSavko.Firma.
- FBFirma = Steuer.FBFirma.
- IF Steuer.Fwc09 <> '' THEN FBFirma = Steuer.Fwc09.
- STORNO:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FOR EACH tSavko:
- ASSIGN
- iFaknr = tSavko.Faknr
- iKnr = tSavko.Fak_Knr.
- PUT CONTROL STRING(NOW,'99.99.9999 HH:MM:SS.SSS')
- ' / '
- cBenutzer
- ' / '
- 'Knr = ' STRING(tSavko.Knr,'999999')
- ' / '
- 'Faknr = ' STRING(tSavko.Faknr,'999999')
- ' / '
- 'Auftragstotal = ' STRING(tSavko.Auf_Tot,'zzz,zz9.99-')
- ' / '
- 'Neue Rechnungsnummer = ' STRING(ipNeuFnr,'ja/nein')
- ' / '
- 'Nochmals verbuchen = ' STRING(ipVerbuch,'ja/nein')
- ' / '
- 'Spezial löschen = ' STRING(ipSpez,'ja/nein') CHR(10).
- FOR EACH tSavze
- WHERE tSavze.Firma = tSavko.Firma
- AND tSavze.Aufnr = tSavko.Aufnr :
- IF tSavze.Artnr = 0 THEN NEXT.
- IF NOT tSavze.Verbucht THEN NEXT.
- ASSIGN
- tSavze.MGeli = tSavze.MGeli * -1
- tSavze.Net_Betr = tSavze.Net_Betr * -1
- tSavze.Auf_Rab = tSavze.Auf_Rab * -1
- tSavze.Abh_Rab = tSavze.Abh_Rab * -1
- tSavze.Auf_Sp_Rab = tSavze.Auf_Sp_Rab * -1.
- hBuffer = BUFFER tSavze:HANDLE.
- ja = DYNAMIC-FUNCTION('buchenArtikel':U,
- tSavko.Fak_Knr, hBuffer) NO-ERROR. /* Umsätze zurückbuchen */
- IF ipVerbuch OR
- ipSpez THEN NEXT.
- FIND Artbw OF tSavze NO-ERROR.
- IF NOT AVAILABLE Artbw THEN NEXT.
- IF NOT Artbw.Lag_Buch THEN
- DO:
- DELETE Artbw.
- NEXT.
- END.
- FIND ArtLager OF Artbw NO-ERROR.
- ASSIGN
- ArtLager.Bestand = ArtLager.Bestand - tSavze.MGeli
- ArtLager.Ausgang = ArtLager.Ausgang + tSavze.MGeli.
- DELETE Artbw.
- END.
- END.
- FIND FIRST tSavko.
- DO WHILE TRUE:
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = tSavko.Firma
- AND Debst.Knr = tSavko.Fak_Knr NO-ERROR.
- FOR EACH Debop USE-INDEX Debop-k1
- WHERE Debop.Firma = tSavko.Firma
- AND Debop.Knr = iKnr
- AND Debop.Faknr = iFaknr :
- IF iTrnr1 = 0 THEN iTrnr1 = Debop.Trnr1.
- Debst.Saldo = Debst.Saldo - Debop.Saldo.
- Debst.Saldo_Frw = Debst.Saldo_Frw - Debop.Saldo_Frw.
- DELETE Debop.
- END.
- FOR EACH Debfa
- WHERE Debfa.Firma = tSavko.Firma
- AND Debfa.Knr = iKnr
- AND Debfa.Faknr = iFaknr:
- IF iTrnr1 = 0 THEN iTrnr1 = Debfa.Trnr1.
- DELETE Debfa.
- END.
- FOR EACH Debwu
- WHERE Debwu.Firma = tSavko.Firma
- AND Debwu.Knr = iKnr
- AND Debwu.Faknr = iFaknr:
- IF iTrnr1 = 0 THEN iTrnr1 = Debwu.Trnr1.
- DELETE Debwu.
- END.
- FOR EACH Debhi
- WHERE Debhi.Firma = tSavko.Firma
- AND Debhi.Knr = iKnr
- AND Debhi.Faknr = iFaknr:
- IF iTrnr1 = 0 THEN iTrnr1 = Debhi.Trnr1.
- DELETE Debhi.
- END.
- FOR EACH Debza
- WHERE Debza.Firma = tSavko.Firma
- AND Debza.Knr = iKnr
- AND Debza.Faknr = iFaknr:
- IF iTrnr1 = 0 THEN iTrnr1 = Debza.Trnr1.
- DELETE Debza.
- END.
- FOR EACH Interf
- WHERE Interf.Firma = FBFirma
- AND Interf.Trnr1 = iTrnr1:
- DELETE Interf.
- END.
- LEAVE.
- END.
- FOR EACH tSavSpRab:
- FIND SavSpRab OF tSavSpRab.
- DELETE SavSpRab.
- END.
- FOR EACH tSavRabSu:
- FIND SavRabSu OF tSavRabSu.
- DELETE SavRabSu.
- END.
- FOR EACH TSavGKon:
- FIND SavGKon OF TSavGKon.
- DO WHILE TRUE:
- IF SavGKon.Depot = 0 THEN LEAVE.
- FIND LAST GebKontr USE-INDEX GebKontr-k1
- WHERE GebKontr.Firma = tSavko.Firma
- AND GebKontr.Knr = tSavko.Knr NO-LOCK NO-ERROR.
- IF AVAILABLE GebKontr THEN ix = GebKontr.Trnr + 1.
- ELSE ix = 1.
- CREATE GebKontr.
- ASSIGN
- GebKontr.Firma = tSavko.Firma
- GebKontr.Knr = tSavko.Knr
- GebKontr.Trnr = ix
- GebKontr.Geb_Cd = SavGKon.Geb_Cd
- GebKontr.Datum = tSavko.Fak_Datum
- GebKontr.Doknr = tSavko.Faknr
- GebKontr.Preis = SavGKon.Depot
- GebKontr.Eingang = SavGKon.Eingang * -1
- GebKontr.Ausgang = SavGKon.Ausgang * -1
- GebKontr.MWST_Cd = SavGKon.MWST_Cd
- .
- LEAVE.
- END.
- DELETE SavGKon.
- END.
- FOR EACH tSavGebKo:
- FIND SavGebKo OF tSavGebKo.
- DELETE SavGebKo.
- END.
- FOR EACH tSavze:
- FIND Savze OF tSavze.
- DELETE Savze.
- END.
- FOR EACH tSavko:
- FIND Savko OF tSavko.
- DELETE Savko.
- END.
- FOR EACH tPassant:
- FIND Passant OF tPassant.
- DELETE Passant.
- END.
- IF NOT ipVerbuch AND
- NOT ipSpez THEN LEAVE.
- FOR EACH tSavze:
- ASSIGN
- tSavze.MGeli = tSavze.MGeli * -1
- tSavze.Net_Betr = tSavze.Net_Betr * -1
- tSavze.Auf_Rab = tSavze.Auf_Rab * -1
- tSavze.Abh_Rab = tSavze.Abh_Rab * -1
- tSavze.Auf_Sp_Rab = tSavze.Auf_Sp_Rab * -1
- tSavze.Verbucht = FALSE.
- END.
- IF ipNeuFnr THEN
- DO:
- iFaknr = 0.
- RUN "v8/steunr.p" ( INPUT 2, OUTPUT iFaknr ).
- IF RETURN-VALUE <> '' THEN iFaknr = 0.
- END.
- FOR EACH tSavko:
- CREATE Aufko.
- BUFFER-COPY tSavko EXCEPT Faknr Gedruckt TO Aufko
- ASSIGN
- Aufko.Faknr = iFaknr
- Aufko.Gedruckt = FALSE
- Aufko.Verbucht = FALSE.
- END.
- FOR EACH tSavze:
- CREATE Aufze.
- BUFFER-COPY tSavze TO Aufze.
- END.
- FOR EACH tSavGebKo:
- CREATE AufGebKo.
- BUFFER-COPY tSavGebKo TO AufGebKo.
- END.
- FOR EACH tSavGKon:
- CREATE AufGKon.
- BUFFER-COPY tSavGKon TO AufGKon.
- END.
- FOR EACH tSavRabSu:
- CREATE AufRabSu.
- BUFFER-COPY tSavRabSu TO AufRabSu.
- END.
- FOR EACH tSavSpRab:
- CREATE AufSpRab.
- BUFFER-COPY tSavSpRab TO AufSpRab.
- END.
-
- DYNAMIC-FUNCTION('createAufGebKo':U, tSavko.Aufnr ) NO-ERROR.
- LEAVE.
- END.
- FOR EACH tSavko:
- DYNAMIC-FUNCTION('calculateAuftragsTotal':U, tSavko.Firma,
- tSavko.Aufnr,
- OUTPUT nTotale ) NO-ERROR.
- END.
- RETURN cRet.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
|