| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &Scoped-define FRAME-NAME gVerbuchen
- {adecomm/appserv.i}
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gVerbuchen
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrdlg.w - ADM2 SmartDialog Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- Author:
- Created:
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* Create an unnamed pool to store all the widgets created
- by this procedure. This is a good default which assures
- that this procedure's triggers and internal procedures
- will execute in this procedure's storage, and that proper
- cleanup will occur on deletion of the procedure. */
- CREATE WIDGET-POOL.
- /* *************************** Definitions ************************** */
- /* Parameters Definitions --- */
- DEFINE INPUT PARAMETER ipParam AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipKontainer AS HANDLE NO-UNDO.
- DEFINE OUTPUT PARAMETER oplRetVal AS LOG NO-UNDO.
- /* Local Variable Definitions --- */
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iRecid AS INTEGER NO-UNDO.
- DEFINE VARIABLE cHerk AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lBatch AS LOG NO-UNDO.
- DEFINE VARIABLE lGebinde AS LOG NO-UNDO.
- DEFINE VARIABLE lSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE iVonKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE lSendMail AS LOG NO-UNDO.
- DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dSperrDat AS DATE NO-UNDO.
- DEFINE VARIABLE dBuchDat AS DATE NO-UNDO.
- DEFINE VARIABLE iFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufSta AS INTEGER NO-UNDO.
- DEFINE VARIABLE iTrNr1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE iTrNr2 AS INTEGER NO-UNDO.
- DEFINE VARIABLE iTrans AS INTEGER NO-UNDO.
- DEFINE VARIABLE nFakTotal AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nFakTotalFrw AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nWW AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nSkBer AS DECIMAL NO-UNDO.
- DEFINE VARIABLE dMwstDatum AS DATE NO-UNDO.
- DEFINE TEMP-TABLE tAuftraege
- FIELD cFirma AS CHARACTER
- FIELD iAufnr AS INTEGER
- FIELD nKurs AS DECIMAL DECIMALS 4
- FIELD iFaktor AS INTEGER
- .
- DEFINE TEMP-TABLE tAufko LIKE Aufko
- FIELD cKtoDebitor AS CHARACTER
- FIELD cKtoGebinde AS CHARACTER
- .
- DEFINE TEMP-TABLE tAufze LIKE Aufze.
- DEFINE TEMP-TABLE tVerbucht
- FIELD Datum AS DATE
- FIELD Konto AS CHARACTER
- FIELD FakBetr AS DECIMAL
- FIELD ZahBetr AS DECIMAL
- FIELD Skonto AS DECIMAL
- FIELD Frw AS CHARACTER
- FIELD nKurs AS DECIMAL DECIMALS 4
- FIELD iFaktor AS INTEGER
- FIELD FakBetr_Frw AS DECIMAL
- FIELD ZahBetr_Frw AS DECIMAL
- FIELD Skonto_Frw AS DECIMAL
- .
- DEFINE TEMP-TABLE tMwst
- FIELD iFaknr AS INTEGER
- FIELD iCd AS INTEGER
- FIELD lInkl AS LOG
- FIELD nBetrag AS DECIMAL
- FIELD nMwst AS DECIMAL
- FIELD nTotal AS DECIMAL
- FIELD nBetrag_FRW AS DECIMAL
- FIELD nMwst_FRW AS DECIMAL
- FIELD nTotal_FRW AS DECIMAL
- FIELD Frw AS CHARACTER
- FIELD nKurs AS DECIMAL DECIMALS 4
- FIELD iFaktor AS INTEGER
- FIELD cKonto AS CHARACTER
- FIELD nAnsatz AS DECIMAL
- .
- DEFINE TEMP-TABLE tUmsatz
- FIELD cArt AS CHARACTER
- FIELD iKnr AS INTEGER
- FIELD iArtnr AS INTEGER
- FIELD iInhalt AS INTEGER
- FIELD iJG AS INTEGER
- FIELD iPeriode AS INTEGER
- FIELD iJahr AS INTEGER
- FIELD nMenge AS DECIMAL
- FIELD nLiter AS DECIMAL
- FIELD nEp AS DECIMAL
- FIELD nVp AS DECIMAL
- FIELD nZuschlag AS DECIMAL
- FIELD nPorto AS DECIMAL
- FIELD nTransp AS DECIMAL
- FIELD nVerpack AS DECIMAL
- FIELD nAufTot AS DECIMAL
- FIELD Frw AS CHARACTER
- FIELD nKurs AS DECIMAL DECIMALS 4
- FIELD iFaktor AS INTEGER
- FIELD cKonto AS CHARACTER
- FIELD nZahBetr AS DECIMAL
- FIELD nSkonto AS DECIMAL
- FIELD nAufTot_Frw AS DECIMAL
- FIELD nZahBetr_Frw AS DECIMAL
- FIELD nSkonto_Frw AS DECIMAL
- .
- DEFINE TEMP-TABLE tKonto
- FIELD cKto1 AS CHARACTER FORMAT "x(12)"
- FIELD cKto2 AS CHARACTER FORMAT "x(12)"
- FIELD nBetrag AS DECIMAL
- FIELD Frw AS CHARACTER
- FIELD nKurs AS DECIMAL
- FIELD iFaktor AS INTEGER
- FIELD iMWST_Cd AS INTEGER
- FIELD lMWSt AS LOG INIT FALSE
- FIELD cArt AS CHARACTER
- FIELD nBetrag_Frw AS DECIMAL
- .
- DEFINE TEMP-TABLE tSendMail
- FIELD iKnr AS INTEGER
- FIELD cKunde AS CHARACTER
- FIELD cMail AS CHARACTER
- FIELD iFaknr AS INTEGER
- .
- { properties.i }
- { ttsendmail.i }
- { incl/dlgdefinition.i }
- { src/adm2/widgetprto.i }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartDialog
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-CONTAINER DIALOG-BOX
- &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME gVerbuchen
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-2 F_vonFaknr F_bisFaknr F_vonFakKnr ~
- F_bisFakKNr F_vonDatum F_bisDatum F_BuchDat CB_Fakart CB_Aufsta Btn_Start ~
- Btn_Cancel F_Adresse
- &Scoped-Define DISPLAYED-OBJECTS F_vonFaknr F_bisFaknr F_vonFakKnr ~
- F_bisFakKNr F_vonDatum F_bisDatum F_BuchDat CB_Fakart CB_Aufsta
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-5 F_Adresse
- &Scoped-define List-6 F_vonFaknr F_bisFaknr F_vonFakKnr F_bisFakKNr ~
- F_vonDatum F_bisDatum F_BuchDat CB_Fakart CB_Aufsta
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD checkAlleGedruckt gVerbuchen
- FUNCTION checkAlleGedruckt RETURNS LOGICAL
- ( ipRecid AS RECID ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD makeUmsatz gVerbuchen
- FUNCTION makeUmsatz RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define a dialog box */
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Cancel AUTO-END-KEY
- LABEL "abbrechen"
- SIZE 15 BY 1.
- DEFINE BUTTON Btn_Start
- LABEL "Starten"
- SIZE 21 BY 1.
- DEFINE VARIABLE CB_Aufsta AS CHARACTER FORMAT "X(256)":U
- LABEL "Auftragstatus"
- VIEW-AS COMBO-BOX INNER-LINES 5
- DROP-DOWN-LIST
- SIZE 43.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE CB_Fakart AS CHARACTER FORMAT "X(256)":U
- LABEL "Faktura-Art"
- VIEW-AS COMBO-BOX INNER-LINES 5
- DROP-DOWN-LIST
- SIZE 43.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U INITIAL "Hallo"
- VIEW-AS FILL-IN NATIVE
- SIZE 80 BY 1.05
- BGCOLOR 14 NO-UNDO.
- DEFINE VARIABLE F_bisDatum AS DATE FORMAT "99.99.9999":U
- VIEW-AS FILL-IN NATIVE
- SIZE 18.2 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_bisFakKNr AS INTEGER FORMAT "999999":U INITIAL 999999
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_bisFaknr AS INTEGER FORMAT "9999999":U INITIAL 9999999
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BuchDat AS DATE FORMAT "99.99.9999":U
- LABEL "Verbuchungsdatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1 TOOLTIP "Wenn kein Datum eingegeben wird, wird das Rechnungsdatum übernommen"
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_vonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/1901
- LABEL "von - bis Fakturadatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_vonFakKnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "von - bis Faktura-Kundennummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_vonFaknr AS INTEGER FORMAT "9999999":U INITIAL 0
- LABEL "von - bis Fakturanummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-2
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 88 BY 11.91.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME gVerbuchen
- F_vonFaknr AT ROW 2 COL 35 COLON-ALIGNED WIDGET-ID 20
- F_bisFaknr AT ROW 2 COL 58 COLON-ALIGNED NO-LABEL WIDGET-ID 12
- F_vonFakKnr AT ROW 3 COL 35 COLON-ALIGNED WIDGET-ID 24
- F_bisFakKNr AT ROW 3 COL 58 COLON-ALIGNED NO-LABEL WIDGET-ID 16
- F_vonDatum AT ROW 4 COL 35 COLON-ALIGNED WIDGET-ID 22
- F_bisDatum AT ROW 4 COL 58 COLON-ALIGNED NO-LABEL WIDGET-ID 14
- F_BuchDat AT ROW 5 COL 35 COLON-ALIGNED WIDGET-ID 18
- CB_Fakart AT ROW 7 COL 35 COLON-ALIGNED WIDGET-ID 8
- CB_Aufsta AT ROW 8 COL 35 COLON-ALIGNED WIDGET-ID 6
- Btn_Start AT ROW 9.52 COL 37 WIDGET-ID 4
- Btn_Cancel AT ROW 9.52 COL 64
- F_Adresse AT ROW 11.38 COL 3.4 COLON-ALIGNED NO-LABEL WIDGET-ID 10
- RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2
- SPACE(1.99) SKIP(0.51)
- WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
- SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
- TITLE "Verbuchen von Rechnungen"
- CANCEL-BUTTON Btn_Cancel WIDGET-ID 100.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartDialog
- Allow: Basic,Browse,DB-Fields,Query,Smart
- Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
- Design Page: 1
- Other Settings: COMPILE APPSERVER
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gVerbuchen
- /* ************************* Included-Libraries *********************** */
- {src/adm2/containr.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR DIALOG-BOX gVerbuchen
- FRAME-NAME */
- ASSIGN
- FRAME gVerbuchen:SCROLLABLE = FALSE
- FRAME gVerbuchen:HIDDEN = TRUE.
- /* SETTINGS FOR COMBO-BOX CB_Aufsta IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR COMBO-BOX CB_Fakart IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_Adresse IN FRAME gVerbuchen
- NO-DISPLAY 5 */
- ASSIGN
- F_Adresse:HIDDEN IN FRAME gVerbuchen = TRUE.
- /* SETTINGS FOR FILL-IN F_bisDatum IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_bisFakKNr IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_bisFaknr IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_BuchDat IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_vonDatum IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_vonFakKnr IN FRAME gVerbuchen
- 6 */
- /* SETTINGS FOR FILL-IN F_vonFaknr IN FRAME gVerbuchen
- 6 */
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gVerbuchen
- /* Query rebuild information for DIALOG-BOX gVerbuchen
- _Options = "SHARE-LOCK"
- _Query is NOT OPENED
- */ /* DIALOG-BOX gVerbuchen */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME gVerbuchen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVerbuchen gVerbuchen
- ON END-ERROR OF FRAME gVerbuchen /* Verbuchen von Rechnungen */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVerbuchen gVerbuchen
- ON WINDOW-CLOSE OF FRAME gVerbuchen /* Verbuchen von Rechnungen */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Cancel
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gVerbuchen
- ON CHOOSE OF Btn_Cancel IN FRAME gVerbuchen /* abbrechen */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Start
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start gVerbuchen
- ON CHOOSE OF Btn_Start IN FRAME gVerbuchen /* Starten */
- DO:
- SESSION:SET-WAIT-STATE ('NORMAL').
- RUN VERBUCHEN.
- SESSION:SET-WAIT-STATE ('').
- IF RETURN-VALUE = 'APPLY' THEN RETURN NO-APPLY.
- btnOK = TRUE.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Aufsta
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Aufsta gVerbuchen
- ON RETURN OF CB_Aufsta IN FRAME gVerbuchen /* Auftragstatus */
- DO:
- APPLY 'TAB' TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Aufsta gVerbuchen
- ON VALUE-CHANGED OF CB_Aufsta IN FRAME gVerbuchen /* Auftragstatus */
- DO:
- iAufSta = INTEGER(SELF:SCREEN-VALUE).
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Fakart
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Fakart gVerbuchen
- ON RETURN OF CB_Fakart IN FRAME gVerbuchen /* Faktura-Art */
- DO:
- APPLY 'TAB' TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Fakart gVerbuchen
- ON VALUE-CHANGED OF CB_Fakart IN FRAME gVerbuchen /* Faktura-Art */
- DO:
- iFakArt = INTEGER(SELF:SCREEN-VALUE).
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gVerbuchen
- /* *************************** Main Block *************************** */
- { incl/dlgmainblock.i }
- iAufnr = INTEGER(ENTRY(1, ipParam, ';')).
- iRecid = INTEGER(ENTRY(2, ipParam, ';')).
- cHerk = ENTRY(3, ipParam, ';') .
- dSperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR.
- oplRetVal = FALSE.
- hKontainer = ipKontainer.
- lSendMail = FALSE.
- CASE cHerk:
- WHEN 'A' THEN
- lBatch = FALSE.
- OTHERWISE
- lBatch = TRUE.
- END CASE.
- {src/adm2/dialogmn.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gVerbuchen _ADM-CREATE-OBJECTS
- PROCEDURE adm-create-objects :
- /*------------------------------------------------------------------------------
- Purpose: Create handles for all SmartObjects used in this procedure.
- After SmartObjects are initialized, then SmartLinks are added.
- Parameters: <none>
- ------------------------------------------------------------------------------*/
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE createMailBodyProtokoll gVerbuchen
- PROCEDURE createMailBodyProtokoll :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER opcBody AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBodyDatei AS CHARACTER INIT ? NO-UNDO.
- DEFINE VARIABLE cBody AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE cBodyProtokoll AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE lBody AS LONGCHAR NO-UNDO.
- DO WHILE cBodyDatei = ?:
- cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Protokoll.html', cInstallation).
- cBodyDatei = SEARCH(cBodyDatei).
- IF cBodyDatei <> ? THEN LEAVE.
- END.
- IF cBodydatei = ? THEN cBody = ''.
- ELSE
- DO:
- FILE-INFO:FILE-NAME = cBodyDatei.
- cBodyDatei = FILE-INFO:FULL-PATHNAME.
- COPY-LOB FILE cBodydatei TO lBody NO-CONVERT.
- cBody = lBody.
- END.
- cBodyDatei = ?.
- DO WHILE cBodyDatei = ?:
- cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Protokoll-Tabelle.html', cInstallation).
- cBodyDatei = SEARCH(cBodyDatei).
- LEAVE.
- END.
- IF cBodydatei = ? THEN cBody = ''.
- ELSE
- DO:
- /* FILE-INFO:FILE-NAME = cBodyDatei. */
- /* cBodyDatei = FILE-INFO:FULL-PATHNAME.*/
- COPY-LOB FILE cBodydatei TO lBody NO-CONVERT.
- cBodyProtokoll = lBody.
- END.
- FOR EACH tSendMail:
- cString = cString
- /* + (IF cString = '' THEN '' ELSE CHR(10)) */
- + SUBSTITUTE(cBodyProtokoll, tSendMail.iKnr, tSendMail.cKunde, tSendMail.cMail, tSendMail.iFaknr).
- END.
- cBody = SUBSTITUTE(cBody, cString).
- opcBody = cBody.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_ZAHLUNG gVerbuchen
- PROCEDURE CREATE_ZAHLUNG :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND FIRST tAufko.
- FOR EACH tUmsatz
- WHERE tUmsatz.cArt = 'Debza'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- IF tUmsatz.nZahBetr = 0 AND
- tUmsatz.nSkonto = 0 THEN NEXT.
- FIND LAST Zahlung NO-LOCK
- WHERE Zahlung.Firma = tAufko.Firma NO-ERROR.
- IF AVAILABLE Zahlung THEN iTrans = Zahlung.Trnr + 1.
- ELSE iTrans = 1.
- CREATE Zahlung.
- ASSIGN
- Zahlung.Firma = tAufko.Firma
- Zahlung.Trnr = iTrans
- Zahlung.Knr = tAufko.Fak_Knr
- Zahlung.Faknr = STRING(tAufko.Faknr,"9999999")
- Zahlung.Datum_1 = dBuchDat
- Zahlung.Konto_S = tUmsatz.cKonto
- Zahlung.Konto_H = tAufko.cKtoDebitor
- Zahlung.Betrag = tUmsatz.nZahBetr_Frw
- Zahlung.Skonto = tUmsatz.nSkonto_Frw
- Zahlung.Zahl_Art = 90
- Zahlung.Herk = 62
- Zahlung.Frw = tAufko.Frw
- Zahlung.Kurs = tAufko.Kurs
- Zahlung.Faktor = tAufko.Faktor
- Zahlung.Verbucht = FALSE
- .
- FIND FIRST tVerbucht
- WHERE tVerbucht.Datum = Zahlung.Datum_1
- AND tVerbucht.Konto = Zahlung.Konto_S NO-ERROR.
- IF NOT AVAILABLE tVerbucht THEN
- DO:
- CREATE tVerbucht.
- ASSIGN
- tVerbucht.Datum = Zahlung.Datum_1
- tVerbucht.Konto = Zahlung.Konto_S.
- END.
- ASSIGN
- tVerbucht.ZahBetr_Frw = tVerbucht.ZahBetr_Frw + tUmsatz.nZahBetr_Frw
- tVerbucht.Skonto_Frw = tVerbucht.Skonto_Frw + tUmsatz.nSkonto_Frw
- tVerbucht.ZahBetr = tVerbucht.ZahBetr + tUmsatz.nZahBetr
- tVerbucht.Skonto = tVerbucht.Skonto + tUmsatz.nSkonto
- .
- RELEASE Zahlung.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gVerbuchen _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- Notes: Here we clean-up the user-interface by deleting
- dynamic widgets we have created and/or hide
- frames. This procedure is usually called when
- we are ready to "clean-up" after running.
- ------------------------------------------------------------------------------*/
- /* Hide all frames. */
- HIDE FRAME gVerbuchen.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gVerbuchen
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER bTabel FOR Tabel.
- cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- F_Adresse = ''.
- F_Buchdat = ?.
- IF cHerk = 'A' THEN
- DO:
- FIND bAufko NO-LOCK WHERE RECID(bAufko) = iRecid.
- F_vonFaknr = bAufko.Faknr .
- F_bisFaknr = bAufko.Faknr .
- F_vonFakKnr = bAufko.Fak_Knr .
- F_bisFakKnr = bAufko.Fak_Knr .
- F_vonDatum = bAufko.Fak_Datum.
- F_bisDatum = bAufko.Fak_Datum.
- F_Buchdat = bAufko.Fak_Datum. .
- FIND bTabel NO-LOCK
- WHERE bTabel.Firma = bAufko.Firma
- AND bTabel.RecArt = 'FAKART'
- AND bTabel.CodeC = ''
- AND bTabel.CodeI = bAufko.Fak_Art
- AND bTabel.Sprcd = 1 NO-ERROR.
- IF bTabel.Int_3 = 4 THEN
- DO:
- /* F_Buchdat = ?.*/
- F_vonDatum = DATE(MONTH(bAufko.Fak_Datum),01,YEAR(bAufko.Fak_Datum)).
- F_bisDatum = TODAY.
- IF F_bisDatum > F_BuchDat THEN F_bisDatum = F_BuchDat.
- IF F_bisDatum < F_VonDatum THEN F_bisDatum = F_vonDatum.
- DO WHILE TRUE:
- IF MONTH(F_vonDatum) = MONTH(F_bisDatum) AND
- YEAR (F_vonDatum) = YEAR (F_bisDatum) THEN LEAVE.
- F_bisDatum = F_bisDatum - 1.
- END.
- END.
- IF F_Buchdat <> ? AND
- F_Buchdat <= dSperrDat THEN F_Buchdat:BGCOLOR = 12.
- END.
- ELSE
- DO:
- F_vonFaknr = 1.
- F_bisFaknr = 9999999.
- F_vonFakKnr = 1.
- F_bisFakKnr = 999999.
- F_vonDatum = DATE(MONTH(TODAY),01,YEAR(TODAY)).
- F_bisDatum = DATE(MONTH(TODAY),28,YEAR(TODAY)).
- CASE MONTH(TODAY):
- WHEN 01 OR
- WHEN 03 OR
- WHEN 05 OR
- WHEN 07 OR
- WHEN 08 OR
- WHEN 10 OR
- WHEN 12 THEN
- F_bisDatum = F_bisDatum + 3.
- WHEN 04 OR
- WHEN 06 OR
- WHEN 09 OR
- WHEN 11 THEN
- F_bisDatum = F_bisDatum + 2.
- WHEN 02 THEN
- DO:
- IF YEAR(TODAY) MOD 4 = 0 THEN F_bisDatum = F_BisDatum + 1.
- IF YEAR(TODAY) MOD 1000 = 0 THEN F_bisDatum = F_BisDatum - 1.
- END.
- END CASE.
- END.
- RUN COMBO_FAKART ( CB_Fakart:HANDLE ) NO-ERROR.
- RUN COMBO_AUFSTATUS ( CB_Aufsta:HANDLE ) NO-ERROR.
- IF AVAILABLE bAufko THEN
- DO:
- CB_Fakart:SCREEN-VALUE = STRING(bAufko.Fak_Art,'999999').
- CB_Aufsta:SCREEN-VALUE = STRING(bAufko.Auf_Sta,'999999').
- F_Adresse:SCREEN-VALUE = DYNAMIC-FUNCTION('getAdressAnzeige':U, bAufko.Fak_Knr ).
- END.
- END.
- { incl/dlgenableobject.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gVerbuchen _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- Notes: Here we display/view/enable the widgets in the
- user-interface. In addition, OPEN all queries
- associated with each FRAME and BROWSE.
- These statements here are based on the "Other
- Settings" section of the widget Property Sheets.
- ------------------------------------------------------------------------------*/
- DISPLAY F_vonFaknr F_bisFaknr F_vonFakKnr F_bisFakKNr F_vonDatum F_bisDatum
- F_BuchDat CB_Fakart CB_Aufsta
- WITH FRAME gVerbuchen.
- ENABLE RECT-2 F_vonFaknr F_bisFaknr F_vonFakKnr F_bisFakKNr F_vonDatum
- F_bisDatum F_BuchDat CB_Fakart CB_Aufsta Btn_Start Btn_Cancel
- F_Adresse
- WITH FRAME gVerbuchen.
- VIEW FRAME gVerbuchen.
- {&OPEN-BROWSERS-IN-QUERY-gVerbuchen}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gVerbuchen
- PROCEDURE ENDE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- IF btnOK THEN
- DO:
- oplRetVal = TRUE.
- END.
- { incl/dlgende.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_IN_KONTO gVerbuchen
- PROCEDURE GEBINDE_IN_KONTO :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE nAnsatz AS DECIMAL INIT 0.00 NO-UNDO.
- DEFINE VARIABLE lIncl AS LOG INIT FALSE NO-UNDO.
- DEFINE BUFFER bAufGKon FOR AufGKon.
- FIND FIRST tAufko.
- FOR EACH bAufGKon NO-LOCK
- WHERE bAufGKon.Firma = tAufko.Firma
- AND bAufGKon.Aufnr = tAufko.Aufnr :
- IF NOT lGebinde THEN
- DO: /* Keine Gebindeverrechnung beim Kunden */
- IF bAufGKon.Depot <> 0 THEN NEXT.
- END.
- nAnsatz = 0.
- FIND FIRST Wust NO-LOCK
- WHERE Wust.WuCd = bAufGKon.Mwst_Cd NO-ERROR.
- IF AVAILABLE Wust THEN lIncl = Wust.Incl.
- IF lIncl THEN
- DO: /* Ansatz wird nur für Inkl Mwst gesetzt wegen Reduktion Gebindewert */
- FIND LAST MwstAns NO-LOCK
- WHERE MwstAns.Mwst_Cd = bAufGKon.Mwst_Cd
- AND MwstAns.Datum <= tAufko.Fak_Datum NO-ERROR.
- IF AVAILABLE MwstAns THEN nAnsatz = MwstAns.Ansatz.
- END.
- FIND FIRST tKonto
- WHERE tKonto.cKto1 = tAufko.cKtoDebitor
- AND tKonto.cKto2 = tAufko.cKtoGebinde
- AND tKonto.iMWSt_Cd = bAufGKon.MWSt_Cd NO-ERROR.
- IF NOT AVAILABLE tKonto THEN
- DO:
- CREATE tKonto.
- ASSIGN
- tKonto.cKto1 = tAufko.cKtoDebitor
- tKonto.cKto2 = tAufko.cKtoGebinde
- tKonto.iMWSt_Cd = bAufGKon.MWSt_Cd
- tKonto.Frw = tAufko.Frw
- tKonto.nKurs = tAufko.Kurs
- tKonto.iFaktor = tAufko.Faktor
- tKonto.lMwst = FALSE
- tKonto.cArt = 'GEBINDE'.
- END.
- ASSIGN
- tKonto.nBetrag = tKonto.nBetrag + (bAufGKon.Betrag * 100 / (100 + nAnsatz) * tAufko.Kurs / tAufko.Faktor).
- RELEASE bAufGKon.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE getMailBody gVerbuchen
- PROCEDURE getMailBody :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipcSprcd AS CHARACTER NO-UNDO.
- DEFINE OUTPUT PARAMETER opcBody AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBodyDatei AS CHARACTER INIT ? NO-UNDO.
- DEFINE VARIABLE cBody AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE lBody AS LONGCHAR NO-UNDO.
- DO WHILE cBodyDatei = ?:
- cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Rechnung-&2.html', cInstallation, ipcSprcd).
- cBodyDatei = SEARCH(cBodyDatei).
- LEAVE.
- END.
- IF cBodydatei = ? THEN cBody = ''.
- ELSE
- DO:
- FILE-INFO:FILE-NAME = cBodyDatei.
- cBodyDatei = FILE-INFO:FULL-PATHNAME.
- COPY-LOB FILE cBodydatei TO lBody NO-CONVERT.
- cBody = lBody.
- END.
- opcBody = cBody.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gVerbuchen
- PROCEDURE initializeObject :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- /* Code placed here will execute PRIOR to standard behavior. */
- RUN SUPER.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN_VERBUCHTE_AUFTRAEGE gVerbuchen
- PROCEDURE LOESCHEN_VERBUCHTE_AUFTRAEGE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- F_Adresse = 'Löschen der verbuchten Aufträge ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
- DISABLE TRIGGERS FOR LOAD OF Aufko .
- DISABLE TRIGGERS FOR LOAD OF Aufze .
- DISABLE TRIGGERS FOR LOAD OF AufLot .
- DISABLE TRIGGERS FOR LOAD OF RuestAuf.
- FOR EACH Aufko USE-INDEX Aufko-k1
- WHERE Aufko.Firma = Firma
- AND Aufko.Verbucht = TRUE TRANSACTION:
- FIND Debst NO-LOCK
- WHERE Debst.Firma = Aufko.Firma
- AND Debst.Knr = Aufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN
- DO:
- FIND Debst NO-LOCK
- WHERE Debst.Firma = Aufko.Firma
- AND Debst.Knr = Aufko.Knr.
- END.
- FOR EACH Aufze OF Aufko:
- CREATE Savze.
- BUFFER-COPY Aufze TO Savze.
- DELETE Aufze.
-
- IF Savze.Artnr = 0 THEN NEXT.
- FIND Artst OF Savze NO-ERROR.
- IF AVAILABLE Artst THEN Artst.Letzt_Ausg = Aufko.Fak_Datum.
- END.
- FOR EACH AufGKon OF Aufko:
- DO WHILE TRUE:
- IF AufGKon.Depot = 0 THEN LEAVE.
- FIND LAST GebKontr NO-LOCK
- WHERE GebKontr.Firma = Aufko.Firma
- AND GebKontr.Knr = Aufko.Knr NO-ERROR.
- IF AVAILABLE GebKontr THEN ii = GebKontr.Trnr + 1.
- ELSE ii = 1.
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.Wucd = AufGKon.MWST_Cd
- AND Wust.CodeA < 13
- AND Wust.CodeK < 13 NO-ERROR.
- FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = AufGKon.MWST_Cd
- AND MWSTAns.Datum <= Aufko.Kond_Datum NO-ERROR.
- CREATE GebKontr.
- ASSIGN
- GebKontr.Firma = Aufko.Firma
- GebKontr.Knr = Aufko.Knr
- GebKontr.Trnr = ii
- GebKontr.Geb_Cd = AufGKon.Geb_Cd
- GebKontr.Datum = dBuchdat
- GebKontr.Doknr = Aufko.Faknr
- GebKontr.Preis = AufGKon.Depot
- GebKontr.Eingang = AufGKon.Eingang
- GebKontr.Ausgang = AufGKon.Ausgang
- GebKontr.MWST_Cd = AufGKon.MWST_Cd
- GebKontr.lAbgerechnet = Debst.Geb_Rg.
- IF AVAILABLE MWSTAns THEN GebKontr.MWST_% = MWSTAns.Ansatz.
- IF AVAILABLE Wust THEN GebKontr.MWST_Inkl = Wust.Incl.
- LEAVE.
- END.
- CREATE SavGKon.
- BUFFER-COPY AufGKon TO SavGKon.
- DELETE AufGKon.
- END.
- FOR EACH AufRabSu OF Aufko:
- CREATE SavRabSu.
- BUFFER-COPY AufRabSu TO SavRabSu.
- DELETE AufRabSu.
- END.
- FOR EACH AufGebKo OF Aufko:
- IF AufGebKo.Menge <> 0 THEN
- DO:
- CREATE SavGebKo.
- BUFFER-COPY AufGebKo TO SavGebKo.
- END.
- DELETE AufGebKo.
- END.
- FOR EACH AufLot OF Aufko:
- CREATE SavLot.
- BUFFER-COPY AufLot TO SavLot.
- DELETE AufLot.
- END.
- FOR EACH RuestAuf OF Aufko:
- CREATE RuestSav.
- BUFFER-COPY RuestAuf TO RuestSav.
- DELETE RuestAuf.
- END.
- FOR EACH AufSpRab USE-INDEX AufSpRab-k1
- WHERE AufSpRab.Firma = Aufko.Firma
- AND AufSpRab.Aufnr = Aufko.Aufnr:
- CREATE SavSpRab.
- BUFFER-COPY AufSpRab TO SavSpRab.
- DELETE AufSpRab.
- END.
- CREATE Savko.
- BUFFER-COPY Aufko TO Savko.
- DELETE Aufko.
- END.
- RELEASE Aufko .
- RELEASE Aufze .
- RELEASE AufGKon .
- RELEASE AufRabSu.
- RELEASE AufGebKo.
- RELEASE AufSpRab.
- RELEASE Savko .
- RELEASE Savze .
- RELEASE SavGKon .
- RELEASE SavRabSu.
- RELEASE SavGebKo.
- RELEASE SavSpRab.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER_IN_KONTO gVerbuchen
- PROCEDURE MEHRWERTSTEUER_IN_KONTO :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER lRetVal AS LOGICAL NO-UNDO.
- lRetVal = TRUE.
- DEFINE VARIABLE nTotMwst AS DECIMAL DECIMALS 2 NO-UNDO.
- DEFINE VARIABLE nTotAbsolut AS DECIMAL DECIMALS 2 NO-UNDO.
- DEFINE VARIABLE nDiff AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nRest AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nProz AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE nWert AS DECIMAL NO-UNDO.
- FIND FIRST tAufko.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FOR EACH tMwst
- WHERE tMwst.iFaknr = tAufko.Faknr
- AND tMwst.iCd < 12:
- IF tMwst.lInkl THEN
- DO:
- tMwst.nMwst = tMwst.nTotal * tMwst.nAnsatz / (100 + tMwst.nAnsatz).
- tMwst.nBetrag = tMwst.nTotal - tMwst.nMwst.
- END.
- tMwst.nTotal = tMwst.nBetrag + tMwst.nMwst.
- nTotMwst = nTotMwst + tMwst.nTotal.
- nTotAbsolut = nTotAbsolut + ABS(tMwst.nTotal).
- END.
- nDiff = nFakTotal - nTotMwst.
- nRest = nDiff.
- DO WHILE TRUE:
- IF nDiff = 0 THEN LEAVE.
- /* Die Rundungsdifferenzen werden auf den Warenertrag */
- /* mit dem grössten Betrag gelegt */
- FOR EACH tKonto
- WHERE tKonto.cArt = 'WARE'
- BY tKonto.nBetrag DESCENDING:
- tKonto.nBetrag = tKonto.nBetrag + nDiff.
- LEAVE.
- END.
- LEAVE.
- END.
- FOR EACH tMwst
- WHERE tMwst.iFaknr = tAufko.Faknr
- AND tMwst.iCd < 12
- AND tMwst.nMwst <> 0:
- FIND FIRST tKonto
- WHERE tKonto.cKto1 = tAufko.cKtoDebitor
- AND tKonto.cKto2 = tMwst.cKonto
- AND tKonto.iMwst_Cd = tMwst.iCd NO-ERROR.
- IF NOT AVAILABLE tKonto THEN
- DO:
- CREATE tKonto.
- ASSIGN
- tKonto.cKto1 = tAufko.cKtoDebitor
- tKonto.cKto2 = tMwst.cKonto
- tKonto.iMwst_Cd = tMwst.iCd
- tKonto.Frw = tMwst.Frw
- tKonto.nKurs = tMwst.nKurs
- tKonto.iFaktor = tMwst.iFaktor
- tKonto.cArt = 'MWST'
- tKonto.lMwst = TRUE.
- END.
- tKonto.nBetrag = tKonto.nBetrag + tMwst.nMwst.
- END.
- lRetVal = FALSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEBENKOSTEN_IN_KONTO gVerbuchen
- PROCEDURE NEBENKOSTEN_IN_KONTO :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER lRetVal AS LOG NO-UNDO.
- lRetVal = TRUE.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE nBetrag AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cKonto AS CHARACTER NO-UNDO.
- FIND FIRST tAufko.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FIND SteuNr NO-LOCK
- WHERE SteuNr.Firma = tAufko.Firma.
- DO ii = 1 TO 3:
- CASE ii:
- WHEN 1 THEN
- nBetrag = tUmsatz.nTransp .
- WHEN 2 THEN
- nBetrag = tUmsatz.nPorto .
- WHEN 3 THEN
- nBetrag = tUmsatz.nVerpack.
- END CASE.
- IF nBetrag = 0 THEN NEXT.
- CASE ii:
- WHEN 1 THEN
- cKonto = SteuNr.Konto_Transp.
- WHEN 2 THEN
- cKonto = SteuNr.Konto_Porto.
- WHEN 3 THEN
- cKonto = SteuNr.Konto_Verpack.
- END.
- FIND FIRST tKonto
- WHERE tKonto.cKto1 = tAufko.cKtoDebitor
- AND tKonto.cKto2 = cKonto
- AND tKonto.iMWSt_Cd = 12 NO-ERROR.
- IF NOT AVAILABLE tKonto THEN
- DO:
- CREATE tKonto.
- ASSIGN
- tKonto.cKto1 = tAufko.cKtoDebitor
- tKonto.cKto2 = cKonto
- tKonto.iMWSt_Cd = 12
- tKonto.Frw = tAufko.Frw
- tKonto.nKurs = tAufko.Kurs
- tKonto.iFaktor = Taufko.Faktor
- tKonto.lMwst = FALSE
- tKonto.cArt = 'NK'.
- END.
- ASSIGN
- tKonto.nBetrag = tKonto.nBetrag + (nBetrag * tAufko.Kurs / tAufko.Faktor).
- END.
- lRetVal = FALSE.
- RELEASE SteuNr.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PASSANT gVerbuchen
- PROCEDURE PASSANT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND FIRST tAufko.
- CREATE Passant.
- ASSIGN
- Passant.Firma = tAufko.Firma
- Passant.Knr = tAufko.Knr
- Passant.Faknr = tAufko.Faknr
- Passant.Adr[01] = tAufko.Adresse[01]
- Passant.Adr[02] = tAufko.Adresse[02]
- Passant.Adr[03] = tAufko.Adresse[03]
- Passant.Adr[04] = tAufko.Adresse[04]
- Passant.Adr[05] = tAufko.Adresse[05].
- RELEASE Passant.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN gVerbuchen
- PROCEDURE VERBUCHEN :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE AnzFak AS INTEGER NO-UNDO.
- DEFINE VARIABLE aRecid AS RECID NO-UNDO.
- DEFINE VARIABLE kRecid AS RECID NO-UNDO.
- DEFINE VARIABLE dRecid AS RECID NO-UNDO.
- DEFINE VARIABLE nKurs AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE iFaktor AS INTEGER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE cKtoGebinde AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cKtoDebitor AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cKtoVereinnahmt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lGedruckt AS LOG NO-UNDO.
- DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lFehler AS LOG NO-UNDO.
- DEFINE VARIABLE cBody AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMailBody AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cAnrede AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMailTo AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iAnzMail AS INTEGER NO-UNDO.
- DEFINE VARIABLE nTotBetrFrw AS DECIMAL NO-UNDO DECIMALS 2.
- DEFINE VARIABLE nTotBetr AS DECIMAL NO-UNDO DECIMALS 2.
- DEFINE VARIABLE nDiffFrw AS DECIMAL NO-UNDO DECIMALS 2.
- DEFINE VARIABLE nDiff AS DECIMAL NO-UNDO DECIMALS 2.
- DEFINE BUFFER bSteuer FOR Steuer.
- DEFINE BUFFER bSteuNr FOR SteuNr.
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER bAufze FOR Aufze.
- DEFINE BUFFER bDebst FOR Debst.
- DEFINE BUFFER bArtst FOR Artst.
- DEFINE BUFFER bArtbw FOR Artbw.
- DEFINE BUFFER bAdresse FOR Adresse.
- DEFINE BUFFER bDebop FOR Debop.
- RUN WERTE_EINLESEN.
- IF RETURN-VALUE <> '' THEN
- DO:
- IF RETURN-VALUE = 'ERROR' THEN RETURN NO-APPLY.
- CASE RETURN-VALUE:
- WHEN 'F_Buchdat' THEN
- APPLY 'ENTRY' TO F_Buchdat IN FRAME {&FRAME-NAME}.
- WHEN 'Keine Selektion' THEN
- MESSAGE 'Keine Rechnungen in der Auswahl'
- VIEW-AS ALERT-BOX.
- END CASE.
- RETURN 'APPLY'.
- END.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- iFakArt = INTEGER(CB_Fakart:SCREEN-VALUE).
- iAufSta = INTEGER(CB_Aufsta:SCREEN-VALUE).
- F_Adresse:HIDDEN = FALSE.
- F_Adresse:SCREEN-VALUE = 'Aufträge werden verbucht ...'.
- END.
- /* ------------------------------------------------------------------------ */
- /* Verbuchen der Aufträge */
- /* ------------------------------------------------------------------------ */
- FIND bSteuer WHERE bSteuer.Firma = Firma NO-LOCK.
- FIND bSteuNr WHERE bSteuNr.Firma = Firma NO-LOCK.
- cKtoGebinde = bSteuNr.Konto_Gebinde.
- cKtoVereinnahmt = bSteuNr.Konto_Wust_H.
- EMPTY TEMP-TABLE tVerbucht .
- EMPTY TEMP-TABLE tAufko .
- EMPTY TEMP-TABLE tAufze .
- EMPTY TEMP-TABLE tSendMail .
- EMPTY TEMP-TABLE ttSendMail .
- CREATE tAufko.
- CREATE tAufze.
- AnzFak = 0.
- FOR EACH bAufko NO-LOCK USE-INDEX Aufko-k7
- WHERE bAufko.Firma = Firma
- AND bAufko.Fak_Art = iFakArt
- AND bAufko.Auf_Sta = iAufSta
- AND bAufko.Faknr >= F_vonFaknr
- AND bAufko.Faknr <= F_bisFaknr
- AND bAufko.Fak_Knr >= F_vonFakKnr
- AND bAufko.Fak_Knr <= F_bisFakKnr
- AND bAufko.Fak_Dat >= F_vonDatum
- AND bAufko.Fak_Dat <= F_bisDatum
- AND bAufko.Faknr <> 0
- AND bAufko.Gedruckt = TRUE
- AND bAufko.Verbucht = FALSE
- AND ((bAufko.Samm_Nr = 0)
- OR (bAufko.Samm_Nr > 0 AND bAufko.Auf_Sta > 3))
- BREAK
- BY bAufko.Fak_Knr
- BY bAufko.Faknr
- BY bAufko.Aufnr :
- IF FIRST-OF ( bAufko.Faknr ) THEN
- DO:
- lFehler = FALSE.
- nFakTotalFrw = 0.00.
- nFakTotal = 0.00.
- FIND FIRST bDebop NO-LOCK
- WHERE bDebop.Firma = bAufko.Firma
- AND bDebop.Knr = bAufko.Fak_Knr
- AND bDebop.Faknr = bAufko.Faknr NO-ERROR.
- IF AVAILABLE bDebop THEN
- DO:
- MESSAGE 'Rechnungsnummer ' bAufko.Faknr ' ist ungültig. Eine solche Nummer besteht bereits'
- VIEW-AS ALERT-BOX ERROR.
- RELEASE bDebop.
- lFehler = TRUE.
- NEXT.
- END.
- IF bAufko.Samm_Nr > 0 THEN
- DO:
- lGedruckt = DYNAMIC-FUNCTION('checkAlleGedruckt':U, RECID(bAufko) ) NO-ERROR.
- IF NOT lGedruckt THEN
- DO:
- MESSAGE
- 'Fehler beim Verbuchen der Rechnung ' SKIP
- 'Kundennummer ' bAufko.Knr SKIP
- 'Fakturanummer ' bAufko.Faknr SKIP
- 'Nicht alle LS gedruckt! '
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- lFehler = TRUE.
- NEXT.
- END.
- END.
- FIND bAdresse NO-LOCK
- WHERE bAdresse.Firma = AdFirma
- AND bAdresse.Knr = bAufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE bAdresse THEN
- DO:
- FIND bAdresse NO-LOCK
- WHERE bAdresse.Firma = AdFirma
- AND bAdresse.Knr = bAufko.Knr NO-ERROR.
- END.
- IF NOT AVAILABLE bAdresse THEN
- DO:
- MESSAGE
- 'Fehler beim Verbbuchen der Rechnung ' SKIP
- 'Kundennummer ' bAufko.Fak_Knr SKIP
- 'ist nicht als Adresse erfasst'
- VIEW-AS ALERT-BOX.
- lFehler = TRUE.
- NEXT.
- END.
- aRecid = RECID(bAdresse).
- DO WITH FRAME {&FRAME-NAME}:
- F_Adresse = bAdresse.Anzeig_Br.
- DISPLAY {&List-5}.
- END.
- FIND bDebst NO-LOCK
- WHERE bDebst.Firma = bAufko.Firma
- AND bDebst.Knr = bAufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE bDebst THEN
- DO:
- FIND bDebst NO-LOCK
- WHERE bDebst.Firma = bAufko.Firma
- AND bDebst.Knr = bAufko.Knr NO-ERROR.
- END.
- IF NOT AVAILABLE bDebst THEN
- DO:
- MESSAGE
- 'Fehler beim Verbbuchen der Rechnung ' SKIP
- 'Kundennummer ' bAufko.Fak_Knr SKIP
- 'ist nicht als Debitor erfasst'
- VIEW-AS ALERT-BOX.
- lFehler = TRUE.
- NEXT.
- END.
- dRecid = RECID(bDebst).
- lGebinde = bDebst.Geb_Rg.
- lSendMail = (IF bDebst.DokumentStatus > 0 THEN TRUE ELSE FALSE).
- EMPTY TEMP-TABLE tMwst .
- EMPTY TEMP-TABLE tUmsatz .
- EMPTY TEMP-TABLE tAuftraege .
- EMPTY TEMP-TABLE tKonto .
- dBuchDat = F_BuchDat.
- IF dBuchDat = ? THEN dBuchDat = bAufko.Fak_Datum.
- IF dBuchDat < dSperrDat THEN dBuchDat = dSperrDat + 1.
- FIND Waehrung NO-LOCK
- WHERE Waehrung.Firma = bAufko.Firma
- AND Waehrung.Frw = bAufko.Frw.
- nKurs = Waehrung.Kurs.
- iFaktor = Waehrung.Faktor.
- CREATE tUmsatz.
- ASSIGN
- tUmsatz.cArt = 'Debst'
- tUmsatz.iKnr = bAufko.Fak_Knr
- tUmsatz.iJahr = YEAR(dBuchDat)
- tUmsatz.iPeriode = MONTH(dBuchdat)
- tUmsatz.Frw = bAufko.Frw
- tUmsatz.nKurs = nKurs
- tUmsatz.iFaktor = iFaktor
- tUmsatz.cKonto = (IF bDebst.Konto <> '' THEN bDebst.Konto ELSE bSteuNr.Konto_Debit).
- ASSIGN
- AnzFak = AnzFak + 1
- iKnr = bAufko.Fak_Knr
- iFaknr = bAufko.Faknr
- cKtoDebitor = tUmsatz.cKonto.
- END.
- IF lFehler THEN NEXT.
- IF FIRST-OF ( bAufko.Aufnr ) THEN
- DO:
- FIND FIRST tAufko.
- BUFFER-COPY bAufko TO tAufko
- ASSIGN
- tAufko.Kurs = nKurs
- tAufko.Faktor = iFaktor
- tAufko.cKtoDebitor = cKtoDebitor
- tAufko.cKtoGebinde = cKtoGebinde.
- kRecid = RECID(bAufko).
- CREATE tAuftraege.
- ASSIGN
- tAuftraege.cFirma = bAufko.Firma
- tAuftraege.iAufnr = bAufko.Aufnr
- tAuftraege.nKurs = nKurs
- tAuftraege.iFaktor = iFaktor.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = bAufko.Fak_Knr.
- ASSIGN
- tUmsatz.nPorto = tUmsatz.nPorto + (bAufko.Porto * nKurs / iFaktor)
- tUmsatz.nVerpack = tUmsatz.nVerpack + (bAufko.Verpack * nKurs / iFaktor)
- tUmsatz.nTransp = tUmsatz.nTransp + (bAufko.Transp * nKurs / iFaktor)
- tUmsatz.nAufTot = tUmsatz.nAufTot + (bAufko.Auf_Tot * nKurs / iFaktor)
- tUmsatz.nAufTot_Frw = tUmsatz.nAufTot_Frw + bAufko.Auf_Tot
- .
- CREATE tUmsatz.
- ASSIGN
- tUmsatz.cArt = 'Debza'
- tUmsatz.iKnr = bAufko.Fak_Knr
- tUmsatz.iJahr = YEAR(dBuchDat)
- tUmsatz.iPeriode = MONTH(dBuchdat)
- tUmsatz.Frw = bAufko.Frw
- tUmsatz.iFaktor = iFaktor
- tUmsatz.nKurs = nKurs
- tUmsatz.cKonto = bAufko.Bar_Konto
- tUmsatz.nZahBetr = tUmsatz.nZahBetr + (bAufko.Bar_Betr * nKurs / iFaktor)
- tUmsatz.nSkonto = tUmsatz.nSkonto + (bAufko.Bar_Skonto * nKurs / iFaktor)
- tUmsatz.nZahBetr_Frw = tUmsatz.nZahBetr_Frw + bAufko.Bar_Betr
- tUmsatz.nSkonto_Frw = tUmsatz.nSkonto_Frw + bAufko.Bar_Skonto
- .
- DO ii = 1 TO 12:
- IF bAufko.Wpfl[ii] = 0 THEN NEXT.
- FIND FIRST tMwst
- WHERE tMwst.iFaknr = bAufko.Faknr
- AND tMwst.iCd = ii NO-ERROR.
- IF NOT AVAILABLE tMwst THEN
- DO:
- FIND LAST MWSTAns NO-LOCK
- WHERE MWSTAns.Mwst_Cd = ii
- AND MWSTAns.Datum <= bAufko.Fak_Datum NO-ERROR.
- CREATE tMwst.
- ASSIGN
- tMwst.iFaknr = bAufko.Faknr
- tMwst.iCd = ii
- tMwst.lInkl = MWSTAns.Incl
- tMwst.Frw = bAufko.Frw
- tMwst.nKurs = nKurs
- tMwst.iFaktor = iFaktor
- tMwst.cKonto = (IF cKtoVereinnahmt <> '' THEN cKtoVereinnahmt ELSE MWSTAns.Konto)
- tMwst.nAnsatz = MWSTAns.Ansatz.
- IF tMwst.cKonto = '' THEN tMwst.cKonto = bSteuNr.Konto_Wust_H.
- RELEASE MWSTAns.
- END.
- ASSIGN
- tMwst.nBetrag_FRW = tMwst.nBetrag_FRW + bAufko.Wpfl[ii]
- tMwst.nMwst_FRW = tMwst.nMwst_FRW + bAufko.Wust[ii]
- tMwst.nTotal_FRW = tMwst.nTotal_FRW + bAufko.Wpfl[ii] + bAufko.Wust[ii]
- tMwst.nBetrag = tMwst.nBetrag_FRW * nKurs / iFaktor
- tMwst.nMwst = tMwst.nMwst_FRW * nKurs / iFaktor
- tMwst.nTotal = tMwst.nTotal_FRW * nKurs / iFaktor
- .
- END.
- nFakTotalFrw = nFakTotalFrw + bAufko.Auf_Tot.
- nFakTotal = nFakTotal + (bAufko.Auf_Tot * nKurs / iFaktor).
- RELEASE Wust .
- RELEASE MwstAns .
- RUN GEBINDE_IN_KONTO.
- END.
- FIND FIRST tAufko.
- FOR EACH bAufze NO-LOCK
- WHERE bAufze.Firma = bAufko.Firma
- AND bAufze.Aufnr = bAufko.Aufnr
- AND bAufze.Artnr > 0
- BREAK
- BY bAufze.Artnr
- BY bAufze.Inhalt
- BY bAufze.Jahr:
- IF FIRST-OF ( bAufze.Jahr ) THEN
- DO:
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = bAufze.Firma
- AND bArtst.Artnr = bAufze.Artnr
- AND bArtst.Inhalt = bAufze.Inhalt
- AND bArtst.Jahr = bAufze.Jahr.
- CREATE tUmsatz.
- ASSIGN
- tUmsatz.cArt = 'Artst'
- tUmsatz.iArtnr = bAufze.Artnr
- tUmsatz.iInhalt = bAufze.Inhalt
- tUmsatz.iJG = bAufze.Jahr
- tUmsatz.iJahr = YEAR(dBuchDat)
- tUmsatz.iPeriode = MONTH(dBuchdat)
- tUmsatz.cKonto = (IF bArtst.Konto <> '' THEN bArtst.Konto ELSE bSteunr.Konto_Ertrag)
- tUmsatz.Frw = bAufko.Frw
- tUmsatz.nKurs = tAufko.Kurs
- tUmsatz.iFaktor = tAufko.Faktor
- .
- CREATE tUmsatz.
- ASSIGN
- tUmsatz.cArt = 'DebArt'
- tUmsatz.iKnr = bAufko.Fak_Knr
- tUmsatz.iArtnr = bAufze.Artnr
- tUmsatz.iInhalt = bAufze.Inhalt
- tUmsatz.iJG = bAufze.Jahr
- tUmsatz.iJahr = YEAR(dBuchDat)
- tUmsatz.iPeriode = MONTH(dBuchdat)
- tUmsatz.cKonto = ''
- tUmsatz.Frw = bAufko.Frw
- tUmsatz.nKurs = nKurs
- tUmsatz.iFaktor = iFaktor
- .
- END.
- FIND FIRST tAufze.
- BUFFER-COPY bAufze TO tAufze
- ASSIGN
- tAufze.Kurs = tAufko.Kurs
- tAufze.Faktor = tAufze.Faktor
- .
- DYNAMIC-FUNCTION('makeUmsatz':U) NO-ERROR.
- END.
- IF NOT LAST-OF ( bAufko.Faknr ) THEN NEXT.
- IF lFehler THEN NEXT.
-
- nTotBetrFrw = 0.
- nTotBetr = 0.
- FOR EACH tMwst
- WHERE tMwst.iFaknr = bAufko.Faknr:
- nTotBetrFrw = nTotBetrFrw + tMwst.nTotal_FRW.
- nTotBetr = nTotBetr + tMwst.nTotal .
- END.
- IF nTotBetrFrw <> nFakTotalFrw OR
- nTotBetr <> nFakTotal THEN
- DO:
- nDiffFrw = nFakTotalFrw - nTotBetrFrw.
- nDiff = nFakTotal - nTotBetr .
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = bAufko.Fak_Knr.
- tUmsatz.nAufTot = tUmsatz.nAufTot + nDiff.
- tUmsatz.nAufTot_Frw = tUmsatz.nAufTot_Frw + nDiffFrw.
- /* OUTPUT TO 'C:\TEMP\tMwst.csv'. */
- /* FOR EACH tMwst: */
- /* EXPORT DELIMITER ';' tMwst.*/
- /* END. */
- /* OUTPUT CLOSE. */
- FOR EACH tMwst
- WHERE tMwst.iFaknr = bAufko.Faknr
- BY tMwst.nTotal_FRW:
- IF nDiffFrw <> 0 THEN
- ASSIGN
- tMwst.nTotal_Frw = tMwst.nTotal_Frw + nDiffFrw
- tMwst.nBetrag_FRW = tMwst.nTotal_FRW - tMwst.nMwst_FRW.
- IF nDiff <> 0 THEN
- ASSIGN
- tMwst.nTotal = tMwst.nTotal + nDiff
- tMwst.nBetrag = tMwst.nTotal - tMwst.nMwst.
- LEAVE.
- END.
- /* OUTPUT TO 'C:\TEMP\tMwst.csv' APPEND.*/
- /* FOR EACH tMwst: */
- /* EXPORT DELIMITER ';' tMwst. */
- /* END. */
- /* OUTPUT CLOSE. */
- END.
- lFehler = FALSE.
- BUCHEN:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND FIRST tAufko.
- RUN VERBUCHEN_UMSAETZE ( OUTPUT lFehler ).
- IF lFehler THEN UNDO BUCHEN, LEAVE BUCHEN.
- IF tAufko.Fak_Art <> 99 THEN
- DO:
- RUN VERBUCHEN_DEBITOR ( OUTPUT lFehler ).
- IF lFehler THEN UNDO BUCHEN, LEAVE BUCHEN.
- RUN MEHRWERTSTEUER_IN_KONTO ( OUTPUT lFehler ).
- IF lFehler THEN UNDO BUCHEN, LEAVE BUCHEN.
- RUN NEBENKOSTEN_IN_KONTO ( OUTPUT lFehler ).
- IF lFehler THEN UNDO BUCHEN, LEAVE BUCHEN.
- RUN VERBUCHEN_INTERFACE ( OUTPUT lFehler ).
- IF lFehler THEN UNDO BUCHEN, LEAVE BUCHEN.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FIND Debst WHERE RECID(Debst) = dRecid.
- Debst.Saldo = Debst.Saldo + nFakTotal.
- Debst.Saldo_Frw = Debst.Saldo_Frw + nFakTotalFrw.
- Debst.Zuschl_Verr = Debst.Zuschl_Verr + tUmsatz.nZuschlag.
- Debst.LetztVK = dBuchDat.
-
- END.
- DISABLE TRIGGERS FOR LOAD OF Aufze.
-
- FOR EACH tAuftraege:
- FIND Aufko
- WHERE Aufko.Firma = tAuftraege.cFirma
- AND Aufko.Aufnr = tAuftraege.iAufnr.
- ASSIGN
- Aufko.Verbucht = TRUE
- Aufko.Kurs = tAuftraege.nKurs
- Aufko.Faktor = tAuftraege.iFaktor
- .
- FOR EACH Aufze OF Aufko:
- ASSIGN
- Aufze.Verbucht = TRUE
- Aufze.Kurs = Aufko.Kurs
- Aufze.Faktor = Aufko.Faktor
- .
- END.
- RELEASE Aufko.
- RELEASE Aufze.
- END.
- IF tAufko.Fak_Art = 99 THEN LEAVE.
- FIND FIRST tVerbucht
- WHERE tVerbucht.Datum = dBuchDat
- AND tVerbucht.Konto = tAufko.cKtoDebitor NO-ERROR.
- IF NOT AVAILABLE tVerbucht THEN
- DO:
- CREATE tVerbucht.
- ASSIGN
- tVerbucht.Datum = dBuchDat
- tVerbucht.Konto = tAufko.cKtoDebitor
- tVerbucht.nKurs = tAufko.Kurs
- tVerbucht.iFaktor = tAufko.Faktor
- tVerbucht.Frw = tAufko.Frw.
- END.
- ASSIGN
- tVerbucht.FakBetr = tVerbucht.FakBetr + nFakTotal.
- IF Debst.Passant THEN RUN PASSANT.
-
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debza'
- AND tUmsatz.iKnr = tAufko.Fak_Knr NO-ERROR.
- IF AVAILABLE tUmsatz THEN RUN CREATE_ZAHLUNG.
- RELEASE bAufko.
- RELEASE Debst.
- LEAVE.
- END.
- IF lFehler THEN
- DO:
- FIND FIRST tAufko.
- MESSAGE
- 'Fehler beim Verbuchen der Rechnung ' SKIP
- 'Kundennummer ' tAufko.Knr SKIP
- 'Auftragsnummer ' tAufko.Aufnr SKIP
- 'Fakturanummer ' tAufko.Faknr SKIP
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- END.
- REPEAT TRANSACTION WHILE NOT lFehler:
- FIND FIRST tAufko.
- IF tAufko.Fak_Art = 99 THEN LEAVE.
-
- IF lSendMail THEN
- DO:
- ASSIGN
- cMailTo = ''
- cAnrede = ''.
- FIND bAdresse NO-LOCK WHERE RECID(bAdresse) = aRecid.
- FIND bDebst NO-LOCK WHERE RECID(bDebst) = dRecid.
- FOR EACH Ansprech NO-LOCK
- WHERE Ansprech.Firma = Firma
- AND Ansprech.Knr = bDebst.Knr
- AND Ansprech.Debitoren = TRUE
- AND Ansprech.Mail <> '':
- cMailTo = cMailTo
- + (IF cMailTo = '' THEN '' ELSE ';')
- + Ansprech.Mail.
- cAnrede = cAnrede
- + (IF cAnrede = '' THEN '' ELSE ', ')
- + Ansprech.BriefAnr.
- END.
- IF cMailTo = '' THEN
- DO:
- cMailTo = bAdresse.Mail.
- cAnrede = bAdresse.BriefAnr.
- END.
- RUN getMailBody ( TRIM(STRING(bAdresse.Sprcd,'>9')), OUTPUT cMailBody ).
- cMailBody = SUBSTITUTE(cMailBody, bAdresse.BriefAnr, tAufko.Faknr).
- CREATE tSendMail.
- ASSIGN
- tSendMail.iKnr = bDebst.Knr
- tSendMail.cKunde = bAdresse.Anzeig_Br
- tSendMail.cMail = (IF cMailTo = '' THEN 'Keine Mailadresse' ELSE cMailTo)
- tSendmail.iFaknr = iFaknr.
- IF cMailTo = '' THEN
- DO:
- lSendMail = FALSE.
- LEAVE.
- END.
- cDateiName = SUBSTITUTE(cMailVersandPath,
- STRING(tAufko.Fak_Knr,'999999'),
- STRING(tAufko.Faknr ,'9999999'),
- DYNAMIC-FUNCTION('getDokumentArt':U, tAufko.Fak_Art) ).
- CREATE ASMutation.
- ASSIGN
- ASMutation.asmutation_id = NEXT-VALUE(asmutation_id)
- ASMutation.MutArt = 'MAIL'
- ASMutation.Aktiv = TRUE
- ASMutation.cStatus = ''
- ASMutation.Datum = TODAY
- ASMutation.Firma = Firma
- ASMutation.cFeld_1 = SUBSTITUTE('TO:&1;CC:&2', cMailTo, cKopieRechnung)
- ASMutation.cFeld_2 = SUBSTITUTE('Rechnung Nr &1', tAufko.Faknr )
- ASMutation.cFeld_3 = cMailBody
- ASMutation.cKey_1 = STRING(tAufko.Fak_Art,'99')
- ASMutation.cKey_2 = cDateiName.
- RELEASE ASMutation.
- lSendMail = FALSE.
- iAnzMail = iAnzMail + 1.
- END.
- IF tAufko.Samm_Nr = 0 THEN LEAVE.
- FOR EACH Aufko USE-INDEX Aufko-k2
- WHERE Aufko.Firma = tAufko.Firma
- AND Aufko.Fak_Knr = tAufko.Fak_Knr
- AND Aufko.Samm_Nr <> 0
- AND Aufko.Auf_Sta < 4:
- Aufko.Faknr = 0.
- Aufko.Gedruckt = FALSE.
- RELEASE Aufko.
- END.
- RELEASE Aufko.
- LEAVE.
- END.
- END.
- RUN LOESCHEN_VERBUCHTE_AUFTRAEGE.
-
- F_Adresse = 'Barzahlungen werden verbucht ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
-
- RUN ZAHLUNGEN_BUCHEN ( Firma, 90 ).
- IF AnzFak > 1 THEN
- DO:
- DEFINE VARIABLE hVerbucht AS HANDLE NO-UNDO.
- hVerbucht = TEMP-TABLE tVerbucht:DEFAULT-BUFFER-HANDLE.
- RUN 'g-verbuchjour.w':U ( hVerbucht ).
- END.
- IF iAnzMail > 0 THEN
- DO:
- RUN createMailBodyProtokoll ( OUTPUT cMailBody ).
- REPEAT TRANSACTION:
- CREATE ASMutation.
- ASSIGN
- ASMutation.asmutation_id = NEXT-VALUE(asmutation_id)
- ASMutation.MutArt = 'MAIL'
- ASMutation.Aktiv = TRUE
- ASMutation.cStatus = ''
- ASMutation.Datum = TODAY
- ASMutation.Firma = Firma
- ASMutation.cFeld_1 = SUBSTITUTE('TO:&1', cProtokollRechnungen)
- ASMutation.cFeld_2 = SUBSTITUTE('Protokoll Mailversand Rechnung &1 &2', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS') )
- ASMutation.cFeld_3 = cMailBody
- ASMutation.cKey_1 = 'Protokoll'
- ASMutation.cKey_2 = ''.
- RELEASE ASMutation.
- LEAVE.
- END.
- F_Adresse = 'Versenden der Mail-Rechnungen ...'.
- DISPLAY F_Adresse WITH FRAME {&FRAME-NAME}.
- RUN 'SendMailStart.p'.
- END.
- ENABLE Btn_Start WITH FRAME {&FRAME-NAME}.
- IF lBatch THEN
- DO:
- APPLY 'GO' TO FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN_DEBITOR gVerbuchen
- PROCEDURE VERBUCHEN_DEBITOR :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER lRetVal AS LOG NO-UNDO.
- lRetVal = TRUE.
- DEFINE VARIABLE iTage AS INTEGER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE nToleranz AS DECIMAL INIT 1.00 NO-UNDO.
- DEFINE VARIABLE nDifferenz AS DECIMAL NO-UNDO.
- FIND FIRST tAufko.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tAufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN
- DO:
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tAufko.Knr.
- END.
- FIND Debst
- WHERE Debst.Firma = tAufko.Firma
- AND Debst.Knr = tAufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN
- DO:
- FIND Debst
- WHERE Debst.Firma = tAufko.Firma
- AND Debst.Knr = tAufko.Knr NO-ERROR.
- END.
- FIND Kondi NO-LOCK
- WHERE Kondi.Sprcd = Adresse.Sprcd
- AND Kondi.Kond = tAufko.Kond NO-ERROR.
- IF NOT AVAILABLE Kondi THEN
- DO:
- FIND FIRST Kondi NO-LOCK
- WHERE Kondi.Kond = tAufko.Kond NO-ERROR.
- END.
- IF AVAILABLE Kondi THEN iTage = Kondi.Faellig.
- ELSE iTage = 30.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = tAufko.Firma.
- FIND SteuNr NO-LOCK
- WHERE SteuNr.Firma = tAufko.Firma.
- nFakTotal = 0.
- FOR EACH tMwst WHERE tMwst.iCd < 12:
- FIND LAST MwstAns NO-LOCK
- WHERE MwstAns.Mwst_Cd = tMwst.iCd
- AND MwstAns.Datum <= dBuchDat NO-ERROR.
- tMwst.nAnsatz = MwstAns.Ansatz.
- nFakTotal = nFakTotal + tMwst.nTotal.
- END.
- /* RUN RUNDEN ( 1, INPUT-OUTPUT nFakTotal ).*/
- nDifferenz = tUmsatz.nAufTot - nFakTotal.
- IF ABS(nDifferenz) > nToleranz THEN RETURN.
- FIND LAST TransNr NO-LOCK
- WHERE TransNr.Firma = '9999' NO-ERROR.
- iTrNr1 = (IF AVAILABLE TransNr THEN TransNr.TrNr1 + 1 ELSE 1).
- iTrNr2 = 1.
- iTrans = 0.
- CREATE TransNr.
- ASSIGN
- TransNr.Firma = '9999'
- TransNr.TrNr1 = iTrnr1
- TransNr.TrNr2 = iTrnr2
- TransNr.Herk = 51
- TransNr.Erf_Datum = TODAY
- TransNr.Erf_Zeit = TIME
- TransNr.SaBe = DYNAMIC-FUNCTION('getSysUser':U)
- TransNr.Betrag = nFakTotalFrw.
- RELEASE TransNr.
- CREATE Debop.
- ASSIGN
- Debop.Firma = tAufko.Firma
- Debop.Knr = tAufko.Fak_Knr
- Debop.Faknr = tAufko.Faknr
- Debop.Fakdat = dBuchDat
- Debop.Faellig = dBuchDat + iTage
- Debop.Skber = nSkBer
- Debop.WW = nWW
- Debop.Fakbetr = nFakTotal
- Debop.Saldo = nFakTotal
- Debop.Kond = tAufko.Kond
- Debop.Transp = tUmsatz.nTransp
- Debop.Porto = tUmsatz.nPorto
- Debop.Verpack = tUmsatz.nVerpack
- Debop.Konto = tUmsatz.cKonto
- Debop.Vertr = Debst.Vertr
- Debop.Kte = 'DEF':U
- Debop.TrNr1 = iTrNr1
- Debop.TrNr2 = iTrNr2
- Debop.FRW = tUmsatz.Frw
- Debop.Kurs = tUmsatz.nKurs
- Debop.Faktor = tUmsatz.iFaktor
- Debop.Fakbetr_FRW = nFakTotalFrw
- Debop.Saldo_FRW = nFakTotalFrw
- Debop.WW_FRW = nWW / tUmsatz.nKurs * tUmsatz.iFaktor
- Debop.Skber_FRW = nSkber / tUmsatz.nKurs * tUmsatz.iFaktor
- .
- IF Steuer.MWST = 0 THEN Debop.WustAbr = TRUE. /* vereinbart */
- ELSE Debop.WustAbr = FALSE. /* vereinnahmt */
- IF Debop.Fakbetr_FRW = 0 THEN Debop.WustAbr = TRUE. /* vereinbart */
- FOR EACH tMwst
- WHERE tMwst.iFaknr = tAufko.Faknr
- AND tMwst.nTotal <> 0:
- ASSIGN
- Debop.FakWpfl[tMwst.iCd] = tMwst.nBetrag
- Debop.FakWust[tMwst.iCd] = tMwst.nMwst
- Debop.FakIncl[tMwst.iCd] = tMwst.lInkl
- Debop.FakWPro[tMwst.iCd] = tMwst.nAnsatz.
- END.
- CREATE Debfa.
- ASSIGN
- Debfa.Firma = Debop.Firma
- Debfa.Knr = Debop.Knr
- Debfa.Faknr = Debop.Faknr
- Debfa.Fakdat = Debop.Fakdat
- Debfa.Faellig = Debop.Faellig
- Debfa.Fakbetr = Debop.Fakbetr
- Debfa.Skber = Debop.Skber
- Debfa.WW = Debop.WW
- Debfa.Transp = Debop.Transp
- Debfa.Porto = Debop.Porto
- Debfa.Verpack = Debop.Verpack
- Debfa.Konto = Debop.Konto
- Debfa.Vertr = Debop.Vertr
- Debfa.Kte = Debop.Kte
- Debfa.TrNr1 = Debop.TrNr1
- Debfa.TrNr2 = Debop.TrNr2
- Debfa.FRW = Debop.FRW
- Debfa.Kurs = Debop.Kurs
- Debfa.Faktor = Debop.Faktor
- Debfa.Fakbetr_FRW = Debop.Fakbetr_FRW
- Debfa.WW_FRW = Debop.WW_FRW
- Debfa.Skber_FRW = Debop.Skber_FRW
- Debfa.Fakwpfl = Debop.Fakwpfl
- Debfa.Fakwust = Debop.Fakwust
- .
- /* DO ii = 1 TO 12: */
- /* ASSIGN */
- /* Debfa.FakWpfl[ii] = Debop.FakWpfl[ii] */
- /* Debfa.FakWust[ii] = Debop.FakWust[ii].*/
- /* END. */
- FIND LAST Debhi NO-LOCK USE-INDEX Debhi-k1
- WHERE Debhi.Firma = Debop.Firma
- AND Debhi.Knr = Debop.Knr NO-ERROR.
- IF AVAILABLE Debhi THEN iTrans = Debhi.Trnr + 1.
- ELSE iTrans = 1.
- CREATE Debhi.
- ASSIGN
- Debhi.Firma = Debop.Firma
- Debhi.Knr = Debop.Knr
- Debhi.Trnr = iTrans
- Debhi.Datum = Debop.Fakdat
- Debhi.Faknr = Debop.Faknr
- Debhi.Kte = Debop.Kte
- Debhi.Soll = Debop.Fakbetr
- Debhi.Transp = Debop.Transp
- Debhi.Porto = Debop.Porto
- Debhi.Verpack = Debop.Verpack
- Debhi.Konto = Debop.Konto
- Debhi.TrNr1 = Debop.TrNr1
- Debhi.TrNr2 = Debop.TrNr2
- Debhi.FRW = Debop.FRW
- Debhi.Kurs = Debop.Kurs
- Debhi.Faktor = Debop.Faktor
- Debhi.Saldo = Debst.Saldo_FRW + Debop.Fakbetr_Frw
- Debhi.Soll_FRW = Debop.Fakbetr_FRW
- .
- IF Debop.WustAbr THEN
- DO: /* Mehrwertsteuer vereinbart */
- CREATE Debwu.
- ASSIGN
- Debwu.Firma = Debop.Firma
- Debwu.Knr = Debop.Knr
- Debwu.Faknr = Debop.Faknr
- Debwu.Trnr = 1
- Debwu.Datum = Debop.Fakdat
- Debwu.Betrag = Debop.Fakbetr
- Debwu.Konto = Debop.Konto
- Debwu.Kte = Debop.Kte
- Debwu.TrNr1 = Debop.TrNr1
- Debwu.TrNr2 = Debop.TrNr2
- Debwu.FRW = Debop.FRW
- Debwu.Kurs = Debop.Kurs
- Debwu.Faktor = Debop.Faktor
- Debwu.Betrag_FRW = Debop.Fakbetr_FRW
- Debwu.Wustpfl = Debop.FakWpfl
- Debwu.Wust = Debop.FakWust
- .
- /* DO ii = 1 TO 12: */
- /* IF Debop.FakWpfl[ii] = 0 THEN NEXT. */
- /* ASSIGN */
- /* Debwu.Wustpfl[ii] = Debop.FakWpfl[ii] */
- /* Debwu.Wust [ii] = Debop.FakWust[ii].*/
- /* END. */
- END.
- lRetVal = FALSE.
- RELEASE Adresse .
- RELEASE Debst .
- RELEASE Steuer .
- RELEASE Debop .
- RELEASE Debhi .
- RELEASE Debfa .
- RELEASE Debwu .
- RELEASE Kondi .
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN_INTERFACE gVerbuchen
- PROCEDURE VERBUCHEN_INTERFACE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER lRetVal AS LOG NO-UNDO.
- lRetVal = TRUE.
- DEFINE VARIABLE cBuchText1 AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBuchText2 AS CHARACTER NO-UNDO.
- DEFINE VARIABLE nDiff AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cFBFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE nBetrag AS DECIMAL NO-UNDO.
- FIND FIRST tAufko.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tAufko.Fak_Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN
- DO:
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tAufko.Knr NO-ERROR.
- END.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = tAufko.Firma.
- cBuchText1 = SUBSTITUTE('Debitorrechnung Nr. &1', STRING(tAufko.Faknr,'9999999')).
- cBuchText2 = Adresse.Anzeig_Br.
- /* OUTPUT TO 'C:\LogFiles\SAGEKonto.csv' NO-MAP NO-CONVERT.*/
- /* FOR EACH tKonto */
- /* BY tKonto.cKto1 */
- /* BY tKonto.cKto2 */
- /* BY tKonto.iMWSt_Cd: */
- /* EXPORT DELIMITER ';' tKonto. */
- /* END. */
- /* OUTPUT CLOSE. */
- /* */
- nDiff = nFakTotal.
- FOR EACH tKonto
- BY tKonto.cKto1
- BY tKonto.cKto2
- BY tKonto.iMWSt_Cd:
- IF tKonto.nBetrag = 0 THEN
- DO:
- DELETE tKonto.
- NEXT.
- END.
- tKonto.nBetrag = DECIMAL(STRING(tKonto.nBetrag,'99999999.99-')).
- IF tKonto.cKto1 = tAufko.cKtoDebitor THEN nDiff = nDiff - tKonto.nBetrag.
- IF Steuer.Fwc09 = '' THEN
- DO:
- ASSIGN
- tKonto.iMWSt_Cd = 0
- tKonto.lMWSt = FALSE.
- END.
- END.
- IF nDiff <> 0 THEN
- DO:
- /* Rundungsdifferenz vom Faktura-Total zu den einzelnen Ertragsbuchungen */
- /* werden auf das Ertragskonto mit dem grössten Betrag gebucht */
- FOR EACH tKonto
- WHERE tKonto.cArt = 'WARE'
- BY tKonto.nBetrag DESCENDING:
- tKonto.nBetrag = tKonto.nBetrag + nDiff.
- LEAVE.
- END.
- END.
- IF Steuer.Fwc09 = '' THEN cFBFirma = Steuer.FBFirma.
- ELSE cFBFirma = Steuer.Fwc09.
- FIND FIRST TransNr NO-LOCK
- WHERE TransNr.Firma = '9999'
- AND TransNr.TrNr1 = iTrNr1
- AND TransNr.TrNr2 = iTrNr2.
- FOR EACH tKonto
- BREAK
- BY tKonto.cKto1
- BY tKonto.cKto2
- BY tKonto.iMWSt_Cd:
-
- IF FIRST-OF ( tKonto.iMWSt_Cd ) THEN nBetrag = 0.
-
- nBetrag = nBetrag + tKonto.nBetrag.
-
- IF NOT LAST-OF ( tKonto.iMWSt_Cd ) THEN NEXT.
- FIND LAST Interf USE-INDEX Interf-k1
- WHERE Interf.Firma = cFBFirma
- AND Interf.TrNr1 = iTrNr1
- AND Interf.TrNr2 = iTrNr2 NO-LOCK NO-ERROR.
- IF AVAILABLE Interf THEN iTrans = Interf.Trnr + 1.
- ELSE iTrans = 1.
- CREATE Interf.
- ASSIGN
- Interf.Firma = cFBFirma
- Interf.TrNr1 = iTrNr1
- Interf.TrNr2 = iTrNr2
- Interf.TrNr = iTrans
- Interf.Kto1 = tKonto.cKto1
- Interf.Kto2 = tKonto.cKto2
- Interf.Herk = TransNr.Herk
- Interf.Datum = dBuchDat
- Interf.Buchtxt1 = cBuchText1
- Interf.Buchtxt2 = cBuchText2
- Interf.Betrag = nBetrag
- Interf.Betrag_Frw = nBetrag / tKonto.nKurs * tKonto.iFaktor
- Interf.FRW = tAufko.Frw
- Interf.Faktor = tAufko.Faktor
- Interf.Kurs = tAufko.Kurs
- Interf.Verbucht = FALSE
- Interf.Faknr = STRING(tAufko.Faknr,"9999999")
- Interf.Knr = tAufko.Fak_Knr
- Interf.MWST_Nr = ""
- Interf.MWST_Cd = tKonto.iMWST_Cd
- Interf.HKFirma = tAufko.Firma
- Interf.MWST_Art = (IF tKonto.lMWSt THEN 1 ELSE 0).
- END.
- lRetVal = FALSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN_UMSAETZE gVerbuchen
- PROCEDURE VERBUCHEN_UMSAETZE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER lRetVal AS LOG NO-UNDO.
- lRetVal = TRUE.
- FIND FIRST tAufko.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- FIND DebUms USE-INDEX DebUms-k1
- WHERE DebUms.Firma = tAufko.Firma
- AND DebUms.Jahr = tUmsatz.iJahr
- AND DebUms.Knr = tUmsatz.iKnr
- AND DebUms.Ums_Grp = 999 NO-ERROR.
- IF NOT AVAILABLE DebUms THEN
- DO:
- CREATE DebUms.
- ASSIGN
- DebUms.Firma = tAufko.Firma
- DebUms.Jahr = tUmsatz.iJahr
- DebUms.Knr = tUmsatz.iKnr
- DebUms.Ums_Grp = 999.
- END.
- ASSIGN
- DebUms.Me_Mon[tUmsatz.iPeriode] = DebUms.Me_Mon[tUmsatz.iPeriode] + tUmsatz.nMenge
- DebUms.Me_Kum = DebUms.Me_Kum + tUmsatz.nMenge
- DebUms.Ep_Mon[tUmsatz.iPeriode] = DebUms.Ep_Mon[tUmsatz.iPeriode] + tUmsatz.nEp
- DebUms.Ep_Kum = DebUms.Ep_Kum + tUmsatz.nEp
- DebUms.Vp_Mon[tUmsatz.iPeriode] = DebUms.Vp_Mon[tUmsatz.iPeriode] + tUmsatz.nVp
- DebUms.Vp_Kum = DebUms.Vp_Kum + tUmsatz.nVp.
- RELEASE DebUms.
- ASSIGN
- nWW = 0
- nSkBer = 0
- nFakTotal = 0
- .
- FOR EACH tUmsatz
- WHERE tUmsatz.cArt = 'Artst':
- FIND Artst NO-LOCK
- WHERE Artst.Firma = tAufko.Firma
- AND Artst.Artnr = tUmsatz.iArtnr
- AND Artst.Inhalt = tUmsatz.iInhalt
- AND Artst.Jahr = tUmsatz.iJG.
- IF Artst.Sk_Ber THEN nSkBer = nSkber + tUmsatz.nVp.
- nWW = nWW + tUmsatz.nVp.
- FIND ArtUms
- WHERE ArtUms.Firma = tAufko.Firma
- AND ArtUms.Jahr = tUmsatz.iJahr
- AND ArtUms.Artnr = tUmsatz.iArtnr
- AND ArtUms.Inhalt = tUmsatz.iInhalt
- AND ArtUms.Jahrg = tUmsatz.iJG NO-ERROR.
- IF NOT AVAILABLE ArtUms THEN
- DO:
- CREATE ArtUms.
- ASSIGN
- ArtUms.Firma = tAufko.Firma
- ArtUms.Jahr = tUmsatz.iJahr
- ArtUms.Artnr = tUmsatz.iArtnr
- ArtUms.Inhalt = tUmsatz.iInhalt
- ArtUms.Jahrg = tUmsatz.iJG.
- END.
- ASSIGN
- ArtUms.Me_Mon[tUmsatz.iPeriode] = ArtUms.Me_Mon[tUmsatz.iPeriode] + tUmsatz.nMenge
- ArtUms.Me_Kum = ArtUms.Me_Kum + tUmsatz.nMenge
- ArtUms.Ep_Mon[tUmsatz.iPeriode] = ArtUms.Ep_Mon[tUmsatz.iPeriode] + tUmsatz.nEp
- ArtUms.Ep_Kum = ArtUms.Ep_Kum + tUmsatz.nEp
- ArtUms.Li_Mon[tUmsatz.iPeriode] = ArtUms.Li_Mon[tUmsatz.iPeriode] + tUmsatz.nLiter
- ArtUms.Li_Kum = ArtUms.Li_Kum + tUmsatz.nLiter
- ArtUms.Vp_Mon[tUmsatz.iPeriode] = ArtUms.Vp_Mon[tUmsatz.iPeriode] + tUmsatz.nVp
- ArtUms.Vp_Kum = ArtUms.Vp_Kum + tUmsatz.nVp.
- RELEASE ArtUms.
- FIND Umsatz
- WHERE Umsatz.Firma = tAufko.Firma
- AND Umsatz.Ums_Art = 'TOTAL'
- AND Umsatz.Jahr = tUmsatz.iJahr
- AND Umsatz.Grp_01 = 0 NO-ERROR.
- IF NOT AVAILABLE Umsatz THEN
- DO:
- CREATE Umsatz.
- ASSIGN
- Umsatz.Firma = tAufko.Firma
- Umsatz.Ums_Art = 'TOTAL'
- Umsatz.Jahr = tUmsatz.iJahr
- Umsatz.Grp_01 = 0.
- END.
- ASSIGN
- Umsatz.VP_Mon[tUmsatz.iPeriode] = Umsatz.Vp_Mon[tUmsatz.iPeriode] + tUmsatz.nVp
- Umsatz.VP_Kum = Umsatz.Vp_Kum + tUmsatz.nVp
- Umsatz.EP_Mon[tUmsatz.iPeriode] = Umsatz.EP_Mon[tUmsatz.iPeriode] + tUmsatz.nEP
- Umsatz.EP_Kum = Umsatz.EP_Kum + tUmsatz.nEP.
- RELEASE Umsatz.
- END.
- FOR EACH tUmsatz
- WHERE tUmsatz.cArt = 'DebArt':
- FIND DeArUms
- WHERE DeArUms.Firma = tAufko.Firma
- AND DeArUms.Jahr = tUmsatz.iJahr
- AND DeArUms.Knr = tUmsatz.iKnr
- AND DeArUms.Artnr = tUmsatz.iArtnr
- AND DeArUms.Inhalt = tUmsatz.iInhalt
- AND DeArUms.Jahrg = tUmsatz.iJG NO-ERROR.
- IF NOT AVAILABLE DeArUms THEN
- DO:
- CREATE DeArUms.
- ASSIGN
- DeArUms.Firma = tAufko.Firma
- DeArUms.Jahr = tUmsatz.iJahr
- DeArUms.Knr = tUmsatz.iKnr
- DeArUms.Artnr = tUmsatz.iArtnr
- DeArUms.Inhalt = tUmsatz.iInhalt
- DeArUms.Jahrg = tUmsatz.iJG.
- END.
- ASSIGN
- DeArUms.Me_Mon[tUmsatz.iPeriode] = DeArUms.Me_Mon[tUmsatz.iPeriode] + tUmsatz.nMenge
- DeArUms.Me_Kum = DeArUms.Me_Kum + tUmsatz.nMenge
- DeArUms.Ep_Mon[tUmsatz.iPeriode] = DeArUms.Ep_Mon[tUmsatz.iPeriode] + tUmsatz.nEp
- DeArUms.Ep_Kum = DeArUms.Ep_Kum + tUmsatz.nEp
- DeArUms.Li_Mon[tUmsatz.iPeriode] = DeArUms.Li_Mon[tUmsatz.iPeriode] + tUmsatz.nLiter
- DeArUms.Li_Kum = DeArUms.Li_Kum + tUmsatz.nLiter
- DeArUms.Vp_Mon[tUmsatz.iPeriode] = DeArUms.Vp_Mon[tUmsatz.iPeriode] + tUmsatz.nVp
- DeArUms.Vp_Kum = DeArUms.Vp_Kum + tUmsatz.nVp.
- RELEASE DeArUms.
- END.
- lRetVal = FALSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_EINLESEN gVerbuchen
- PROCEDURE WERTE_EINLESEN :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
- DEFINE VARIABLE iFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufSta AS INTEGER NO-UNDO.
- DEFINE VARIABLE lBuchdat AS LOGICAL NO-UNDO.
- DEFINE BUFFER bTabel FOR Tabel.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- IF F_vonFaknr = 0 AND F_bisFaknr = 0 THEN F_bisFaknr = 9999999 .
- IF F_vonFaknr > F_bisFaknr THEN F_bisFaknr = F_vonFaknr .
- IF F_vonFakKnr = 0 AND F_bisFakKnr = 0 THEN F_bisFakKnr = 999999 .
- IF F_vonFakKnr > F_bisFakKnr THEN F_bisFakKnr = F_vonFakKnr .
- IF F_vonFaknr = 0 THEN F_vonFaknr = 1.
- IF F_vonDatum = ? AND
- F_bisDatum = ? THEN
- DO:
- F_vonDatum = 01/01/1901.
- F_bisDatum = TODAY.
- END.
- IF F_vonDatum > F_bisDatum THEN F_bisDatum = F_vonDatum.
-
- iFakart = INTEGER(CB_Fakart:SCREEN-VALUE).
- iAufSta = INTEGER(CB_AufSta:SCREEN-VALUE).
-
- FIND FIRST Aufko NO-LOCK
- WHERE Aufko.Firma = Firma
- AND Aufko.Fak_Art = iFakArt
- AND Aufko.Faknr >= F_vonFaknr
- AND Aufko.Faknr <= F_bisFaknr
- AND Aufko.Fak_Datum >= F_vonDatum
- AND Aufko.Fak_Datum <= F_bisDatum
- AND Aufko.Fak_Knr >= F_vonFakKnr
- AND Aufko.Fak_Knr <= F_bisFakKnr
- AND Aufko.Auf_Sta >= iAufSta
- AND Aufko.Auf_Sta <= iAufSta NO-ERROR.
- IF NOT AVAILABLE Aufko THEN RETURN 'Keine Selektion'.
- IF F_vonFaknr = F_bisFaknr AND
- Aufko.Samm_Nr = 0 AND
- F_Buchdat = ? THEN F_Buchdat = Aufko.Fak_Datum.
-
- /* lBuchdat = (IF Aufko.Samm_Nr > 0 THEN TRUE ELSE FALSE ).*/
- /* IF NOT lBuchdat AND */
- /* THEN F_Buchdat = ?. */
-
- DO WHILE TRUE:
- IF F_Buchdat = ? AND
- lBuchdat THEN
- DO:
- MESSAGE 'Buchungsdatum fehlt!'
- VIEW-AS ALERT-BOX.
- RETURN 'F_Buchdat'.
- END.
- IF F_Buchdat = ? THEN LEAVE.
-
- IF F_Buchdat <= dSperrDat THEN
- DO:
- MESSAGE 'Das Buchungsdatum ist älter als das SperrDatum '
- dSperrDat
- VIEW-AS ALERT-BOX.
- RETURN 'F_Buchdat'.
- END.
- IF F_Buchdat >= (TODAY - 60) AND
- F_Buchdat <= (TODAY + 30) THEN LEAVE.
- F_Buchdat:BGCOLOR = 12.
- lRetVal = FALSE.
- MESSAGE 'das Buchungsdatum sollte überprüft werden!' SKIP
- 'wenn es richtig ist, dann OK'
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE lRetVal.
- IF lRetVal THEN LEAVE.
- RETURN 'F_Buchdat'.
- END.
- DISPLAY {&List-6}.
- F_Adresse:VISIBLE = TRUE.
- F_Adresse:SCREEN-VALUE = ''.
- iFakArt = INTEGER(CB_Fakart:SCREEN-VALUE).
- iAufSta = INTEGER(CB_AufSta:SCREEN-VALUE).
- FIND bTabel NO-LOCK
- WHERE bTabel.Firma = Firma
- AND bTabel.RecArt = 'FAKART'
- AND bTabel.CodeC = ''
- AND bTabel.CodeI = iFakArt
- AND bTabel.Sprcd = 1 NO-ERROR.
- IF bTabel.Int_3 = 4 THEN lSammFak = TRUE.
- ELSE lSammFak = FALSE.
- DISPLAY {&List-6}.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Implementations ***************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION checkAlleGedruckt gVerbuchen
- FUNCTION checkAlleGedruckt RETURNS LOGICAL
- ( ipRecid AS RECID ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
- DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE BUFFER dAufko FOR Aufko.
- FIND dAufko NO-LOCK WHERE RECID(dAufko) = ipRecid.
- ASSIGN
- iFaknr = dAufko.Faknr
- iSammNr = dAufko.Samm_Nr
- iKnr = dAufko.Fak_Knr.
- RELEASE dAufko.
- lRetVal = TRUE.
- FOR EACH dAufko NO-LOCK USE-INDEX Aufko-k6
- WHERE dAufko.Firma = Firma
- AND dAufko.Fak_Knr = iKnr
- AND dAufko.Samm_Nr = iSammNr
- AND dAufko.Faknr = iFaknr :
- IF NOT dAufko.Gedruckt THEN
- DO:
- lRetVal = FALSE.
- RELEASE dAufko.
- LEAVE.
- END.
- END.
- RELEASE dAufko.
- RETURN lRetVal.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION makeUmsatz gVerbuchen
- FUNCTION makeUmsatz RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: Super Override */
- /* Parameters: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE nNetto AS DECIMAL NO-UNDO.
- DEFINE VARIABLE nMwst AS DECIMAL NO-UNDO.
- DEFINE VARIABLE iTrnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE cKtoSoll AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cKtoHaben AS CHARACTER NO-UNDO.
- DEFINE BUFFER bArtbw FOR Artbw.
- DEFINE BUFFER bAufze FOR Aufze.
- FIND FIRST tAufko.
- FIND FIRST tAufze.
- IF tAufko.Fak_Art = 99 THEN RETURN TRUE.
- nNetto = tAufze.Net_Betr - tAufze.Auf_Rab - tAufze.Abh_Rab - tAufze.Auf_Sp_Rab.
- IF tAufze.Mwst_Inkl THEN nMwst = nNetto * tAufze.Mwst% / (100 + tAufze.Mwst%).
- ELSE nMwst = 0.
- nNetto = nNetto - nMwst.
- nNetto = nNetto * tAufko.Kurs / tAufko.Faktor.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Debst'
- AND tUmsatz.iKnr = tAufko.Fak_Knr.
- ASSIGN
- tUmsatz.nMenge = tUmsatz.nMenge + tAufze.MGel
- tUmsatz.nEp = tUmsatz.nEp + (tAufze.MGel * tAufze.Ep)
- tUmsatz.nVp = tUmsatz.nVp + nNetto
- tUmsatz.nZuschlag = tUmsatz.nZuschlag + tAufze.Zus_Betr
- tUmsatz.nLiter = tUmsatz.nLiter + tAufze.Liter.
- cKtoSoll = tUmsatz.cKonto.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'Artst'
- AND tUmsatz.iArtnr = tAufze.Artnr
- AND tUmsatz.iInhalt = tAufze.Inhalt
- AND tUmsatz.iJG = tAufze.Jahr.
- ASSIGN
- tUmsatz.nMenge = tUmsatz.nMenge + tAufze.MGel
- tUmsatz.nEp = tUmsatz.nEp + (tAufze.MGel * tAufze.Ep)
- tUmsatz.nVp = tUmsatz.nVp + nNetto
- tUmsatz.nZuschlag = tUmsatz.nZuschlag + tAufze.Zus_Betr
- tUmsatz.nLiter = tUmsatz.nLiter + tAufze.Liter.
- cKtoHaben = tUmsatz.cKonto.
- FIND FIRST tUmsatz
- WHERE tUmsatz.cArt = 'DebArt'
- AND tUmsatz.iKnr = tAufko.Fak_Knr
- AND tUmsatz.iArtnr = tAufze.Artnr
- AND tUmsatz.iInhalt = tAufze.Inhalt
- AND tUmsatz.iJG = tAufze.Jahr.
- ASSIGN
- tUmsatz.nMenge = tUmsatz.nMenge + tAufze.MGel
- tUmsatz.nEp = tUmsatz.nEp + (tAufze.MGel * tAufze.Ep)
- tUmsatz.nVp = tUmsatz.nVp + nNetto
- tUmsatz.nZuschlag = tUmsatz.nZuschlag + tAufze.Zus_Betr
- tUmsatz.nLiter = tUmsatz.nLiter + tAufze.Liter.
- FIND FIRST tKonto
- WHERE tKonto.cKto1 = cKtoSoll
- AND tKonto.cKto2 = cKtoHaben
- AND tKonto.iMwst_Cd = tAufze.WuCd NO-ERROR.
- IF NOT AVAILABLE tKonto THEN
- DO:
- CREATE tKonto.
- ASSIGN
- tKonto.cKto1 = cKtoSoll
- tKonto.cKto2 = cKtoHaben
- tKonto.iMwst_Cd = tAufze.WuCd
- tKonto.Frw = tAufko.Frw
- tKonto.nKurs = tAufko.Kurs
- tKonto.iFaktor = tAufko.Faktor
- tKonto.cArt = 'WARE'.
- END.
- tKonto.nBetrag = tKonto.nBetrag + nNetto.
- iTrnr = tAufze.Trnr.
- htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
- DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ).
- REPEAT TRANSACTION:
- FIND bAufze OF tAufze.
- ASSIGN
- bAufze.Trnr = tAufze.Trnr
- bAufze.Kurs = tAufze.Kurs
- bAufze.Faktor = tAufze.Faktor.
- RELEASE bAufze.
- LEAVE.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|