&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
&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 ************************** */
DEF INPUT PARAMETER ipFirma AS CHAR NO-UNDO.
DEF INPUT PARAMETER ipSalerId AS CHAR NO-UNDO.
DEF INPUT PARAMETER ipHerst AS INT NO-UNDO.
DEF INPUT PARAMETER ipLiefnr AS INT NO-UNDO.
DEF INPUT PARAMETER ipvonDatum AS DATE NO-UNDO.
DEF INPUT PARAMETER ipBisDatum AS DATE NO-UNDO.
DEF INPUT PARAMETER ipDatei AS CHAR NO-UNDO.
/*
DEF VAR ipFirma AS CHAR INIT '1000' NO-UNDO.
DEF VAR ipSalerId AS CHAR INIT '2700721304' NO-UNDO.
DEF VAR ipHerst AS INT NO-UNDO.
DEF VAR ipLiefnr AS INT NO-UNDO.
DEF VAR ipvonDatum AS DATE NO-UNDO.
DEF VAR ipBisDatum AS DATE NO-UNDO.
DEF VAR ipDatei AS CHAR NO-UNDO.
*/
DEF VAR cFirma AS CHAR NO-UNDO.
DEF VAR AdFirma AS CHAR NO-UNDO.
DEF VAR cInstall AS CHAR NO-UNDO.
DEF VAR nMenge AS DEC NO-UNDO.
DEF VAR hDS AS HANDLE NO-UNDO.
DEF VAR iTransDet AS INT NO-UNDO.
DEF VAR cZeile AS CHAR NO-UNDO.
DEF VAR iZeile AS INT NO-UNDO.
DEF VAR iSpace AS INT NO-UNDO.
DEF VAR cDatei AS CHAR NO-UNDO.
DEF STREAM sXML.
DEF STREAM sTEMP.
DEF BUFFER bSteuer FOR Steuer.
{ incl/cocacola_ds.i }
DEF TEMP-TABLE tArtbw LIKE Artbw
INDEX tArtbw-k1 IS PRIMARY
Knr
Artnr
Inhalt
Jahr
Fak_Dat
INDEX tArtbw-k2
Artnr
Inhalt
Jahr.
DEF TEMP-TABLE tXML
FIELD iZeile AS INT
FIELD iSpace AS INT
FIELD cLine AS CHAR
.
/* _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
/* ************************ Function Prototypes ********************** */
&IF DEFINED(EXCLUDE-createDeliverBillTo) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createDeliverBillTo Procedure
FUNCTION createDeliverBillTo RETURNS LOGICAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createOutlets) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createOutlets Procedure
FUNCTION createOutlets RETURNS LOGICAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createPayload) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createPayload Procedure
FUNCTION createPayload RETURNS LOGICAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createPeriod) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createPeriod Procedure
FUNCTION createPeriod RETURNS LOGICAL
( ipMenge AS DEC ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createProductEntry) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createProductEntry Procedure
FUNCTION createProductEntry RETURNS LOGICAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createSales) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createSales Procedure
FUNCTION createSales RETURNS LOGICAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-findArtbw) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD findArtbw Procedure
FUNCTION findArtbw RETURNS DECIMAL
( /* parameter-definitions */ ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* *********************** 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 *************************** */
hDS = DATASET PayLoadDS:HANDLE.
hDS:SET-CALLBACK-PROCEDURE ("BEFORE-FILL", "POSTDATAFILLDS", THIS-PROCEDURE ).
hDS:SET-CALLBACK-PROCEDURE ("AFTER-FILL" , "POSTDATAFILLDS", THIS-PROCEDURE ).
FIND bSteuer NO-LOCK
WHERE bSteuer.Firma = ipFirma NO-ERROR.
AdFirma = bSteuer.AdFirma.
cInstall = bSteuer.Fwc10.
/* ------
ipHerst = 31.
ipLiefnr = 100031.
ipvonDatum = 01/01/2016.
ipbisDatum = 01/31/2016.
IF cInstall = 'WIEDERKEHR' THEN DO:
ipSalerId = '2700721304'.
ipHerst = 10.
ipLiefnr = 32.
ipvonDatum = 01/01/2016.
ipbisDatum = 01/31/2016.
END.
------ */
cFirma = ipFirma.
nMenge = DYNAMIC-FUNCTION ('findArtbw':U).
DYNAMIC-FUNCTION ('createPayload':U).
DYNAMIC-FUNCTION ('createPeriod':U, nMenge).
DYNAMIC-FUNCTION ('createOutlets':U).
DYNAMIC-FUNCTION ('createDeliverBillTo':U).
DYNAMIC-FUNCTION ('createProductEntry':U).
DYNAMIC-FUNCTION ('createSales':U).
hDS:FILL() NO-ERROR.
cDatei = SESSION:TEMP-DIR + 'PayLoad.xml'.
hDS:WRITE-XML ('File', cDatei, TRUE, 'UTF-8', 'wsdata CCH WHS.xsd', FALSE, FALSE ).
cDatei = SESSION:TEMP-DIR + 'BillTo.xml'.
TEMP-TABLE BillTo:WRITE-XML ('File', cDatei, TRUE, 'UTF-8', '', FALSE, FALSE ).
EMPTY TEMP-TABLE tXML.
cDatei = SESSION:TEMP-DIR + 'PayLoad.xml'.
INPUT STREAM sXML FROM VALUE(cDatei) NO-MAP NO-CONVERT NO-ECHO.
cDatei = SESSION:TEMP-DIR + 'BillTo.xml'.
INPUT STREAM sTEMP FROM VALUE(cDatei) NO-MAP NO-CONVERT NO-ECHO.
iZeile = 0.
DO WHILE TRUE:
IMPORT STREAM sXML UNFORMATTED cZeile.
IF INDEX(cZeile, ' 0 THEN NEXT.
IF INDEX(cZeile, '') > 0 THEN LEAVE.
iZeile = iZeile + 1.
CREATE tXML.
ASSIGN tXML.iZeile = iZeile
tXML.iSpace = INDEX(cZeile, '<')
tXML.cLine = TRIM(cZeile).
IF INDEX(cZeile, ' 0 THEN iSpace = tXML.iSpace.
IF INDEX(cZeile, '') = 0 THEN NEXT.
DO WHILE TRUE:
IMPORT STREAM sTEMP UNFORMATTED cZeile.
IF INDEX(cZeile, ' 0 THEN NEXT.
IF INDEX(cZeile, ' 0 THEN NEXT.
iZeile = iZeile + 1.
CREATE tXML.
ASSIGN tXML.iZeile = iZeile
tXML.iSpace = INDEX(cZeile, '<') + iSpace - 1
tXML.cLine = TRIM(cZeile).
IF INDEX(cZeile, '') > 0 THEN LEAVE.
END.
END.
INPUT STREAM sXML CLOSE.
INPUT STREAM sTEMP CLOSE.
OUTPUT TO VALUE(ipDatei) NO-MAP NO-CONVERT.
FOR EACH tXML BY tXML.iZeile:
tXML.cLine = REPLACE(tXML.cLine, 'BillToRow', 'BillTo').
IF tXML.iSpace > 2 THEN tXML.iSpace = tXML.iSpace - 2.
PUT CONTROL FILL(' ', (tXML.iSpace - 1)).
PUT CONTROL tXML.cLine CHR(10).
END.
OUTPUT CLOSE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
/* ********************** Internal Procedures *********************** */
&IF DEFINED(EXCLUDE-POSTDATAFILLDS) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE POSTDATAFILLDS Procedure
PROCEDURE POSTDATAFILLDS :
/*------------------------------------------------------------------------------
Purpose:
Parameters:
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER DATASET-HANDLE iphDS.
END PROCEDURE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* ************************ Function Implementations ***************** */
&IF DEFINED(EXCLUDE-createDeliverBillTo) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createDeliverBillTo Procedure
FUNCTION createDeliverBillTo RETURNS LOGICAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
FIND FIRST Outlets.
FOR EACH tArtbw NO-LOCK USE-INDEX tArtbw-k1
BREAK BY tArtbw.Knr:
IF NOT FIRST-OF ( tArtbw.Knr ) THEN NEXT.
FIND FIRST Outlets.
CREATE OutletEntry.
ASSIGN OutletEntry.Comments = ''.
ASSIGN OutletEntry.Outlets_id = Outlets.Outlets_Id
OutletEntry.OutletEntry_Id = RECID(OutletEntry).
FIND Adresse NO-LOCK
WHERE Adresse.Firma = AdFirma
AND Adresse.Knr = tArtbw.Knr NO-ERROR.
FIND Debst NO-LOCK
WHERE Debst.Firma = cFirma
AND Debst.Knr = Adresse.Knr NO-ERROR.
FIND Tabel NO-LOCK
WHERE Tabel.Firma = cFirma
AND Tabel.RecArt = 'KUNDGRP'
AND Tabel.CodeI = Debst.Ku_Grp
AND Tabel.CodeC = ''
AND Tabel.Sprcd = 1 NO-ERROR.
CREATE DeliverTo.
ASSIGN DeliverTo.OutletNumber = TRIM(STRING(Adresse.Knr,'>>>>>>9'))
DeliverTo.Name1 = (IF Adresse.Firma1 <> '' THEN Adresse.Firma1 ELSE Adresse.Name)
DeliverTo.Address1 = Adresse.Strasse
DeliverTo.PostalCode = Adresse.Plz
DeliverTo.City = Adresse.Ort
DeliverTo.OutletEntry_Id = OutletEntry.OutletEntry_id
DeliverTo.Channel = (IF AVAILABLE Tabel THEN Tabel.Bez1 ELSE '').
ASSIGN DeliverTo.DeliverTo_Id = RECID(DeliverTo).
FIND Adresse NO-LOCK
WHERE Adresse.Firma = AdFirma
AND Adresse.Knr = tArtbw.Fak_Knr NO-ERROR.
CREATE BillTo.
ASSIGN BillTo.OutletNumber = TRIM(STRING(Adresse.Knr,'>>>>>>9'))
BillTo.Name1 = (IF Adresse.Firma1 <> '' THEN Adresse.Firma1 ELSE Adresse.Name)
BillTo.Address1 = Adresse.Strasse
BillTo.PostalCode = Adresse.Plz
BillTo.City = Adresse.Ort.
BillTo.DeliverTo_Id = DeliverTo.DeliverTo_id.
BillTo.OutletEntry_Id = OutletEntry.OutletEntry_id.
END.
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createOutlets) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createOutlets Procedure
FUNCTION createOutlets RETURNS LOGICAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
FIND FIRST Period.
CREATE Outlets.
ASSIGN Outlets.Comments = ''
Outlets.Period_Id = Period.Period_Id
Outlets.Payload_Id = Period.Payload_Id.
ASSIGN Outlets.Outlets_Id = RECID(Outlets).
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createPayload) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createPayload Procedure
FUNCTION createPayload RETURNS LOGICAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
CREATE Payload.
ASSIGN Payload.StructureVersion = '1'
Payload.Comments = ''
Payload.WholesalerID = ipSalerId.
Payload.Payload_id = RECID(Payload).
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createPeriod) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createPeriod Procedure
FUNCTION createPeriod RETURNS LOGICAL
( ipMenge AS DEC ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
CREATE Period.
ASSIGN Period.PeriodType = 'Month'
Period.DateFrom = STRING(YEAR (ipvondatum),'9999')
+ '-'
+ STRING(MONTH(ipvonDatum),'99')
+ '-'
+ STRING(DAY (ipvonDatum),'99')
Period.DateTo = STRING(YEAR (ipbisdatum),'9999')
+ '-'
+ STRING(MONTH(ipbisDatum),'99')
+ '-'
+ STRING(DAY (ipbisDatum),'99')
Period.TotalRecordsCount = 1
Period.TotalVolume = DECIMAL(TRIM(STRING(ipMenge,'->>>,>>>,>>9.999'))).
FIND FIRST PayLoad.
ASSIGN Period.Payload_Id = Payload.Payload_id
Period.Period_Id = RECID(Period).
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createProductEntry) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createProductEntry Procedure
FUNCTION createProductEntry RETURNS LOGICAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
CREATE Products.
FIND FIRST Period.
ASSIGN Products.Period_id = Period.Period_Id
Products.Products_id = RECID(Products).
FOR EACH tArtbw NO-LOCK USE-INDEX tArtbw-k2
BREAK BY tArtbw.Artnr
BY tArtbw.Inhalt
BY tArtbw.Jahr :
IF NOT FIRST-OF ( tArtbw.Jahr ) THEN NEXT.
FIND Artst NO-LOCK
WHERE Artst.Firma = cFirma
AND Artst.Artnr = tArtbw.Artnr
AND Artst.Inhalt = tArtbw.Inhalt
AND Artst.Jahr = tArtbw.Jahr NO-ERROR.
FIND FIRST Artbez NO-LOCK OF Artst.
FIND VGebinde NO-LOCK
WHERE VGebinde.Firma = cFirma
AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR.
FIND KGebinde NO-LOCK
WHERE KGebinde.Firma = cFirma
AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
FIND ArtLief NO-LOCK
WHERE ArtLief.Firma = cFirma
AND ArtLief.Knr = ipLiefNr
AND ArtLief.Artnr = tArtbw.Artnr
AND ArtLief.Inhalt = tArtbw.Inhalt
AND ArtLief.Jahr = tArtbw.Jahr NO-ERROR.
CREATE ProductEntry.
ASSIGN ProductEntry.ProductNumber = TRIM(STRING(Artst.Artnr,'>>>>>9'))
+ '.'
+ STRING(Artst.Inhalt,'9999')
+ '.'
+ STRING(Artst.Jahr ,'9999')
ProductEntry.Comments = ''
ProductEntry.ProductName = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2)
ProductEntry.UnitOfQuantity = 'L' /*(IF KGebinde.KBez = 'Lt' THEN 'L' ELSE 'PC')*/
ProductEntry.PackageSizeLitres = KGebinde.Inhalt / 100
ProductEntry.SalesUnit = '1x' + TRIM(STRING(VGebinde.Inhalt,'>>>>9'))
ProductEntry.PackageType = KGebinde.Bez
ProductEntry.ArticleNumberHbc = (IF AVAILABLE ArtLief THEN ArtLief.S_Artnr ELSE '').
ASSIGN ProductEntry.Products_id = Products.Products_id
ProductEntry.ProductEntry_Id = RECID(ProductEntry).
END.
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-createSales) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSales Procedure
FUNCTION createSales RETURNS LOGICAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEF VAR iRecid AS RECID NO-UNDO.
DEF VAR nLiter AS DEC NO-UNDO.
DEF VAR nTotLiter AS DEC NO-UNDO.
iTransDet = 0.
nTotLiter = 0.
CREATE Sales.
ASSIGN Sales.TransactionType = 'Sales'.
FIND FIRST Period.
ASSIGN Sales.Period_Id = Period.Period_id
Sales.Sales_Id = RECID(Sales).
FOR EACH tArtbw NO-LOCK USE-INDEX tArtbw-k2
BREAK BY tArtbw.Knr
BY tArtbw.Artnr
BY tArtbw.Inhalt
BY tArtbw.Jahr :
IF FIRST-OF ( tArtbw.Knr ) THEN DO:
CREATE Transaction1.
ASSIGN Transaction1.Comments = ''
Transaction1.OutletNumber = TRIM(STRING(tArtbw.Knr,'>>>>>>9'))
Transaction1.DeliveryDate = STRING(YEAR (tArtbw.Fak_Dat),'9999')
+ '-'
+ STRING(MONTH(tArtbw.Fak_Dat),'99')
+ '-'
+ STRING(DAY (tArtbw.Fak_Dat),'99')
Transaction1.Sales_id = Sales.Sales_id.
ASSIGN Transaction1.Transaction_id = RECID(Transaction1).
iRecid = RECID(Transaction1).
END.
IF FIRST-OF ( tArtbw.Jahr ) THEN nLiter = 0.
nLiter = nLiter + tArtbw.Liter.
nTotLiter = nTotLiter + tArtbw.Liter.
IF NOT LAST-OF ( tArtbw.Jahr ) THEN NEXT.
FIND Transaction1 WHERE RECID(Transaction1) = iRecid.
FIND Artst NO-LOCK
WHERE Artst.Firma = cFirma
AND Artst.Artnr = tArtbw.Artnr
AND Artst.Inhalt = tArtbw.Inhalt
AND Artst.Jahr = tArtbw.Jahr NO-ERROR.
FIND FIRST Artbez NO-LOCK OF Artst.
FIND VGebinde NO-LOCK
WHERE VGebinde.Firma = cFirma
AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR.
FIND KGebinde NO-LOCK
WHERE KGebinde.Firma = cFirma
AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
CREATE TransactionDetails.
ASSIGN TransactionDetails.ProductNumber = TRIM(STRING(Artst.Artnr,'>>>>>9'))
+ '.'
+ STRING(Artst.Inhalt,'9999')
+ '.'
+ STRING(Artst.Jahr ,'9999')
TransactionDetails.Quantity = DECIMAL(TRIM(STRING(nLiter,'->>>,>>>,>>9.999'))).
ASSIGN TransactionDetails.Transaction_id = iRecid
TransactionDetails.TransactionDetails_Id = RECID(TransactionDetails).
iTransDet = iTransDet + 1.
END.
FIND FIRST Period.
ASSIGN Period.TotalRecordsCount = iTransDet.
RETURN TRUE.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-findArtbw) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION findArtbw Procedure
FUNCTION findArtbw RETURNS DECIMAL
( /* parameter-definitions */ ) :
/*------------------------------------------------------------------------------
Purpose:
Notes:
------------------------------------------------------------------------------*/
DEF VAR nMenge AS DEC NO-UNDO.
FOR EACH Artst NO-LOCK
WHERE Artst.Firma = cFirma
AND Artst.Herst = ipHerst
AND Artst.Aktiv = TRUE:
FOR EACH Artbw NO-LOCK
WHERE Artbw.Firma = cFirma
AND Artbw.Artnr = Artst.Artnr
AND Artbw.Inhalt = Artst.Inhalt
AND Artbw.Jahr = Artst.Jahr
AND Artbw.Faknr > 0
AND Artbw.Tr_Art < 10
AND Artbw.Fak_Dat <> ?
AND Artbw.Fak_Dat >= ipvonDatum
AND Artbw.Fak_Dat <= ipbisDatum:
FIND FIRST tArtbw
WHERE tArtbw.Knr = Artbw.Knr
AND tArtbw.Artnr = Artbw.Artnr
AND tArtbw.Inhalt = Artbw.Inhalt
AND tArtbw.Jahr = Artbw.Jahr NO-ERROR.
IF NOT AVAILABLE tArtbw THEN DO:
CREATE tArtbw.
BUFFER-COPY Artbw TO tArtbw.
nMenge = nMenge + tArtbw.Liter.
NEXT.
END.
ASSIGN tArtbw.Menge = tArtbw.Menge + Artbw.Menge
tArtbw.GGeb_Me = tArtbw.GGeb_Me + Artbw.GGeb_Me
tArtbw.VGeb_Me = tArtbw.VGeb_Me + Artbw.VGeb_Me
tArtbw.KGeb_Me = tArtbw.KGeb_Me + Artbw.KGeb_Me
tArtbw.Liter = tArtbw.Liter + Artbw.Liter.
nMenge = nMenge + Artbw.Liter.
END.
END.
RETURN nMenge.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF