| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- DEF VAR Firma AS CHAR NO-UNDO INIT '1000'.
- DEF VAR VJJ AS INT NO-UNDO.
- DEF VAR VMM AS INT NO-UNDO.
- DEF VAR nRundbetr AS DEC DECIMALS 4.
- DEF TEMP-TABLE tArtikel
- FIELD Artnr AS INT
- FIELD Inhalt AS INT
- FIELD Jahr AS INT
- FIELD Datum AS DATE
- FIELD DEP AS DEC DECIMALS 4
- FIELD LDEP AS DEC DECIMALS 4
- FIELD EP AS DEC DECIMALS 4
- FIELD NDEP AS DEC DECIMALS 4
- .
-
- DEF TEMP-TABLE tKunden
- FIELD Knr AS INT
- .
-
- FOR EACH Artbw
- WHERE Artbw.Firma = Firma
- AND Artbw.Datum > 01/01/2021
- AND Artbw.EP > 5000
- AND Artbw.Tr_Art = 11,
-
- FIRST ArtLief NO-LOCK
- WHERE ArtLief.Firma = Artbw.Firma
- AND ArtLief.Artnr = Artbw.Artnr
- AND ArtLief.Inhalt = Artbw.Inhalt
- AND ArtLief.Jahr = Artbw.Jahr
- AND ArtLief.Knr = Artbw.Knr :
-
- FIND FIRST tArtikel
- WHERE tArtikel.Artnr = Artbw.Artnr
- AND tArtikel.Inhalt = Artbw.Inhalt
- AND tArtikel.Jahr = Artbw.Inhalt NO-ERROR.
- IF NOT AVAILABLE tArtikel THEN DO:
- CREATE tArtikel.
- ASSIGN tArtikel.Artnr = Artbw.Artnr
- tArtikel.Inhalt = Artbw.Inhalt
- tArtikel.Jahr = Artbw.Inhalt
- tArtikel.Datum = Artbw.Datum
- tArtikel.DEP = Artbw.EP
- .
- END.
- IF Artbw.Datum < tArtikel.Datum THEN tArtikel.Datum = Artbw.Datum.
- ASSIGN tArtikel.EP = (IF Artbw.Preis < 0.05 THEN ArtLief.S_Preis ELSE Artbw.Preis).
- END.
- FOR EACH tArtikel:
- FIND LAST Artbw NO-LOCK
- WHERE Artbw.Firma = Firma
- AND Artbw.Artnr = tArtikel.Artnr
- AND Artbw.Inhalt = tArtikel.Inhalt
- AND Artbw.Jahr = tArtikel.Jahr
- AND Artbw.Tr_Art = 11
- AND Artbw.Datum < tArtikel.Datum NO-ERROR.
- IF AVAILABLE Artbw THEN tArtikel.LDEP = Artbw.EP.
- ELSE tArtikel.LDEP = tArtikel.EP.
- IF tArtikel.LDEP <> 0 THEN DO:
- tArtikel.NDEP = (tArtikel.LDEP + tArtikel.EP) / 2.
- NEXT.
- END.
-
- FIND FIRST ArtLief NO-LOCK
- WHERE ArtLief.Firma = Firma
- AND ArtLief.Artnr = tArtikel.Artnr
- AND ArtLief.Inhalt = tArtikel.Inhalt
- AND ArtLief.Jahr = tArtikel.Jahr
- AND ArtLief.Haupt = TRUE NO-ERROR.
- tArtikel.LDEP = ArtLief.S_Preis.
- tArtikel.NDEP = (tArtikel.LDEP + tArtikel.EP) / 2.
- END.
- FOR EACH tArtikel:
- FOR EACH Artbw
- WHERE Artbw.Firma = Firma
- AND Artbw.Artnr = tArtikel.Artnr
- AND Artbw.Inhalt = tArtikel.Inhalt
- AND Artbw.Jahr = tArtikel.Jahr
- AND Artbw.Datum = 04/01/2021
- AND Artbw.EP > 5000
- AND Artbw.Tr_Art < 11:
-
- FIND FIRST tKunden
- WHERE tKunden.Knr = Artbw.Knr NO-ERROR.
- IF NOT AVAILABLE tKunden THEN DO:
- CREATE tKunden.
- ASSIGN tKunden.Knr = Artbw.Knr.
- END.
- END.
- END.
- FOR EACH tArtikel:
- FIND Artst
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = tArtikel.Artnr
- AND Artst.Inhalt = tArtikel.Inhalt
- AND Artst.Jahr = tArtikel.Jahr.
- ASSIGN Artst.DEP = tArtikel.NDEP
- Artst.LEP = tArtikel.EP.
-
- FOR EACH Aufze
- WHERE Aufze.Firma = Firma
- AND Aufze.Artnr = tArtikel.Artnr
- AND Aufze.Inhalt = tArtikel.Inhalt
- AND Aufze.Jahr = tArtikel.Jahr
- AND Aufze.EP > 5000:
- Aufze.Ep = tArtikel.NDEP.
- END.
- FOR EACH Savze
- WHERE Savze.Firma = Firma
- AND Savze.Artnr = tArtikel.Artnr
- AND Savze.Inhalt = tArtikel.Inhalt
- AND Savze.Jahr = tArtikel.Jahr
- AND Savze.EP > 5000:
- Savze.Ep = tArtikel.NDEP.
- END.
- END.
- FOR EACH tKunden:
- FOR EACH tArtikel:
- FOR EACH Artbw
- WHERE Artbw.Firma = Firma
- AND Artbw.Knr = tKunden.Knr
- AND Artbw.Artnr = tArtikel.Artnr
- AND Artbw.Inhalt = tArtikel.Inhalt
- AND Artbw.Jahr = tArtikel.Jahr
- AND Artbw.Datum >= tArtikel.Datum
- AND Artbw.EP > 5000:
-
- IF Artbw.Faknr = 0 THEN DO:
- Artbw.EP = tArtikel.NDEP.
- NEXT.
- END.
-
- VJJ = YEAR (Artbw.Fak_Dat).
- VMM = MONTH(Artbw.Fak_Dat).
- nRundbetr = (Artbw.Menge * tArtikel.NDEP) - (Artbw.Menge * Artbw.EP).
- FIND DeArUms USE-INDEX DeArUms-k1
- WHERE DeArUms.Firma = Firma
- AND DeArUms.Jahr = VJJ
- AND DeArUms.Knr = tKunden.Knr
- AND DeArUms.Artnr = tArtikel.Artnr
- AND DeArUms.Inhalt = tArtikel.Inhalt
- AND DeArUms.Jahrg = tArtikel.Jahr NO-ERROR.
- IF AVAILABLE DeArUms THEN
- DO:
- DeArUms.Ep_Kum = DeArUms.Ep_Kum + nRundbetr.
- DeArUms.Ep_Mon[VMM] = DeArUms.Ep_Mon[VMM] + nRundbetr.
- END.
- FIND ArtUms USE-INDEX ArtUms-k1
- WHERE ArtUms.Firma = Firma
- AND ArtUms.Jahr = VJJ
- AND ArtUms.Artnr = tArtikel.Artnr
- AND ArtUms.Inhalt = tArtikel.Inhalt
- AND ArtUms.Jahrg = tArtikel.Jahr NO-ERROR.
- IF AVAILABLE ArtUms THEN
- DO:
- ArtUms.Ep_Kum = ArtUms.Ep_Kum + nRundbetr.
- ArtUms.Ep_Mon[VMM] = ArtUms.Ep_Mon[VMM] + nRundbetr.
- END.
- FIND DebUms USE-INDEX DebUms-k1
- WHERE DebUms.Firma = Firma
- AND DebUms.Jahr = VJJ
- AND DebUms.Knr = tKunden.Knr
- AND DebUms.Ums_Grp = 999 NO-ERROR.
- IF AVAILABLE DebUms THEN
- DO:
- DebUms.Ep_Kum = DebUms.Ep_Kum + nRundbetr.
- DebUms.Ep_Mon[VMM] = DebUms.Ep_Mon[VMM] + nRundbetr.
- END.
- Artbw.Ep = tArtikel.NDEP.
- END.
- END.
- END.
|