| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- { SUPER/funktionen.i }
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR nFakbetr AS DEC NO-UNDO DECIMALS 2.
- DEF VAR iAnz AS INT NO-UNDO.
- DEF VAR nMwstPfl AS DEC NO-UNDO EXTENT 12.
- DEF VAR nMwstBetr AS DEC NO-UNDO EXTENT 12.
- DEF VAR cMessage AS CHAR NO-UNDO.
- DEF TEMP-TABLE tAufko LIKE Aufko.
- { incl/tmwstcalc.i }
- CREATE tMwstParam.
- CREATE tAufko.
- OUTPUT TO 'C:\TEMP\Fehlerjournal.csv' NO-MAP NO-CONVERT.
- OUTPUT CLOSE.
- OUTPUT TO 'C:\TEMP\Fehlerjournal.csv' NO-MAP NO-CONVERT APPEND.
- FOR EACH Aufko NO-LOCK
- WHERE Aufko.Firma = '1000'
- /* AND Aufko.Fak_Art = 40 */
- /* AND Aufko.Aufnr = 2466479 */
- /* AND Aufko.Fak_Datum >= 01/01/2021 */
-
- /* BREAK BY Aufko.Faknr */
- :
-
- /* IF FIRST-OF(Aufko.Faknr) THEN */
- /* DO: */
- /* ASSIGN */
- /* nMwstPfl = 0 */
- /* nMwstBetr = 0. */
- /* END. */
- FIND FIRST tAufko.
- BUFFER-COPY Aufko TO tAufko.
- ASSIGN
- nMwstPfl = Aufko.Wpfl
- nMwstBetr = Aufko.Wust.
- /* DO i1 = 1 TO 12: */
- /* ASSIGN */
- /* nMwstPfl [i1] = nMwstPfl [i1] + Aufko.Wpfl[i1] */
- /* nMwstBetr[i1] = nMwstBetr[i1] + Aufko.Wust[i1] */
- /* . */
- /* END. */
-
- /* IF NOT LAST-OF(Aufko.Faknr) THEN NEXT. */
- FIND FIRST tMwstParam.
-
- FIND FIRST Wust NO-LOCK
- WHERE Wust.CodeK = Aufko.Mwst
- AND Wust.CodeA = 9 NO-ERROR.
- ASSIGN
- tMwstParam.Firma = Aufko.Firma
- tMwstParam.Knr = Aufko.Knr
- tMwstParam.Datum = Aufko.Fak_Datum
- tMwstParam.Frw = Aufko.Frw
- tMwstParam.MwstPfl = nMwstPfl
- tMwstParam.MwstBetr = nMwstBetr
- tMwstParam.MwstCdKd = Aufko.Mwst
- tMwstParam.lInklusive = (IF AVAILABLE Wust THEN Wust.Incl ELSE FALSE)
- .
- DYNAMIC-FUNCTION('calculateMwstFaktura':U, INPUT TABLE tMwstParam, OUTPUT TABLE tMwstCalc, OUTPUT cMessage ).
- /* MESSAGE cMessage */
- /* VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. */
- IF cMessage = 'NORECORDS' THEN
- DO:
- EXPORT DELIMITER ';'
- Aufko.Knr Aufko.Aufnr Aufko.Faknr Aufko.Auf_Tot 'Null-Rechnung'.
- NEXT.
- END.
- nFakbetr = DECIMAL(RETURN-VALUE).
- FIND FIRST tMwstCalc NO-ERROR.
- IF NOT AVAILABLE tMwstCalc THEN NEXT.
- /* FIND Debop NO-LOCK */
- /* WHERE Debop.Firma = Aufko.Firma */
- /* AND Debop.Knr = Aufko.Fak_Knr */
- /* AND Debop.Faknr = Aufko.Faknr NO-ERROR. */
- /* IF NOT AVAILABLE Debop THEN */
- /* DO: */
- /* EXPORT DELIMITER ';' */
- /* Aufko.Knr Aufko.Aufnr Aufko.Faknr 'Kein Debop'. */
- /* NEXT. */
- /* END. */
- ASSIGN
- nMwstPfl = 0
- nMwstBetr = 0.
-
- IF ABS(tMwstCalc.Fakbetr) - ABSOLUT(tAufko.Auf_Tot) > 0.05 THEN
- DO:
- EXPORT DELIMITER ';'
- Aufko.Knr Aufko.Aufnr Aufko.Faknr tAufko.Auf_Tot tMwstCalc.Fakbetr 'Differenz Totalbetrag'.
- NEXT.
- END.
-
- DO i1 = 1 TO 11:
- IF tAufko.Wpfl[i1] = 0 THEN NEXT.
- FIND FIRST tMwstCalc WHERE tMwstCalc.Mwst_Cd = i1 NO-ERROR.
- IF NOT AVAILABLE tMwstCalc THEN NEXT.
-
- /* IF tMwstParam.lInklusive THEN */
- /* DO: */
- /* IF ABS(Debop.FakWpfl[i1]) - ABS(tMwstCalc.Brutto) <= 0.05 AND */
- /* ABS(Debop.FakWust[i1]) - ABS(tMwstCalc.Mwst) <= 0.05 THEN NEXT. */
- /* END. */
- /* ELSE DO: */
- /* IF ABS(Debop.FakWpfl[i1]) - ABS(tMwstCalc.Netto) <= 0.05 AND */
- /* ABS(Debop.FakWust[i1]) - ABS(tMwstCalc.Mwst) <= 0.05 THEN NEXT. */
- /* END. */
- IF ABS(tAufko.Wust[i1]) - ABS(tMwstCalc.Mwst) <= 0.05 THEN NEXT.
- EXPORT DELIMITER ';'
- Aufko.Knr Aufko.Aufnr Aufko.Faknr Aufko.Wpfl[i1] tMwstCalc.Brutto tAufko.Wust[i1] tMwstCalc.Mwst 'Differenz Mehrwertsteuer'.
- END.
- iAnz = iAnz + 1.
- /* IF iAnz >= 20 THEN LEAVE. */
- END.
- OUTPUT CLOSE.
- MESSAGE 'Anzahl verarbeitete Aufträge = ' iAnz
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
|