| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691 |
- &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, '<PayLoadDS ') > 0 THEN NEXT.
- IF INDEX(cZeile, '</PayLoadDS>') > 0 THEN LEAVE.
- iZeile = iZeile + 1.
- CREATE tXML.
- ASSIGN tXML.iZeile = iZeile
- tXML.iSpace = INDEX(cZeile, '<')
- tXML.cLine = TRIM(cZeile).
- IF INDEX(cZeile, '<OutletEntry') > 0 THEN iSpace = tXML.iSpace.
- IF INDEX(cZeile, '</DeliverTo>') = 0 THEN NEXT.
-
- DO WHILE TRUE:
- IMPORT STREAM sTEMP UNFORMATTED cZeile.
- IF INDEX(cZeile, '<?xml') > 0 THEN NEXT.
- IF INDEX(cZeile, '<BillTo ') > 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, '</BillToRow>') > 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: <none>
- 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
|